楼上的大哥,能否再回忆一下,给指点指点啊!
在这个问题上,楼主是幸运的,莫名其妙的问题,莫名其妙就解决了,借楼主的帖子,我也说说我碰到的问题,和大家讨论一下有关STM32的AD使用问题,期盼有经验的大侠提点一下!
我是使用STM32F103VCT6上的ADC1采用扫描的模式顺序转换14个通道,每个通道的采样时间配置都完全一样,55个时钟周期,每次扫描转换由定时器触发,通过DMA读取转换数据。14个通道分别测量8路交流电流、6路交流电压,每周波24点采样,测试过程中发现,而部分通道测量精度较低,测量值飘动特别大。
例如项目中是使用ADC的13、14和15通道分别测量A、B、C三相电压,测试中发现13通道测量的A相电压值稳定,精度非常好,而14、15通道测量的B、C相电压值飘动很大。此时很自然是用示波器观察14、15通道的输入信号是否有毛刺,观测结果是输入信号非常正常,没有任何毛刺!
为了进一步排除是输入信号的问题,我做了个简单的实验,将原13通道的输入信号断开,把14通道的输入信号通过飞线引到13通道上,就是用13、14通道同时测量同一个输入信号(原14通道的输入信号),结果发现问题依旧,依然是13通道的测量值非常稳定,而14通道测量值飘动很大,两通道的两周波采样结果如下图:
图中红色为13通道的采样结果,蓝色为14通道的采样结果。可以看出在某些采样点上,通道14的AD转换值出现了明显的偏差,而且是采样值偏低了!再撤掉输入的交流信号,此时13和14通道相当于直接输入交流信号的偏置电压1.65V,观察两通道的AD转换值,13通道的转换值在2238~3340之间飘动,AD有2位的飘动,比较稳定,而14通道的转换值则比较有意思,大部分在2238~3340之间飘动,但偶尔有些转换值会偏低,甚至偏低到2231,相当于AD有4位的飘动了,这样的话12位的AD只能顶8位用了!
同一个输入信号,分别用不同的AD通道进行采样,测量精度却相差较大,换个芯片情况依旧,这个问题困扰了我很长时间了!原打算使用STM32F103这个平台对公司的产品进行更新换代,现在看来该芯片的AD部分电路还真不容易掌握,问题未搞清楚前是不敢轻举妄动了!希望给位大侠能不吝指点一下,提出可能的原因,我将一一验证并给大家汇报验证结果,共同提高!
file:///C:\DOCUME~1\IBM-TH~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.jpgfile:///C:\DOCUME~1\IBM-TH~1\LOCALS~1\Temp\msohtmlclip1\01\clip_image002.jpg |