ADC在stm板卡的stm芯片是哪家的上吗 属于片上还是板载

很多人都提到了STM32F407的ADC似乎精度不够

实际上STM32F407的ADC精准度真的不够吗?如果其精准度不够那么其系统误差怎么测试计算?

实际上经过我一系列测试后发现:STM32F407的ADC足够精准通过設置合理的参数之后,其ADC误差完全可以控制在±0.1%之内

下面先说一下我的测试原理和方法:

上图有一个错误:右上面2K和1K分压之后接入的是STM32F407的Vref引脚不是ADC

上面采样分压电阻选得比较大,是出于16选1stm芯片是哪家的输出负载能力比较低并且对测试电路有一定影响的考虑。

另外Vref采样分壓电阻选的跟AD采样分压电阻不一致本来想使用一致的值,后来发现STM32F407的Vref的输入阻抗相当低

使用220K 和100K分压的话,Vref电压远比分压值低这说明Rref || 100K遠小于100K。手头上没有2.2K的电阻只好用2K的

这也就使得本次测试AD没能达到“满量程”,当然在经过分压之前,做了个电压跟随

测试的方法:在STM32F407的main函数while中2分钟内不停的读取16选1的各个通道的AD值,统计其最高值和最低值

通过设置不同的ADCCLK和采样保持周期,来分析比较从而选出相對于电路一定的最合理参数。

呃图片被压缩了,将就着看吧通过对上述结果做如下分析: 多次采集的最高值和最低值的差足够小的话,那么就能保证STM32F407的ADC足够稳定精准比如采样保持设置为480个周期时,

多次采集的最高值和最低值的差都不大于3相对于千分之一(±0.1%)的数徝(大约是8),其精度约为0.0366%,远高于千分之一精度同时,还有一个现象:0通道的值在采样周期比较短(如3个周期)时其最大和最小值都遠高于0,从而得出如下结论:

1、STM32F407的AD引脚和地之间存在一定的分布电容该分布电容使得使用220K 和100K分压时,不能将AD引脚的电压“及时地”拉低(因为上一个16选1选择的是16通道电压最高)

2、STM32F407的AD引脚输入电流有一定要求,或者说AD引脚外部的dv/dt能力要足够高电流太低将影响AD采集精度或時间。针对上面第2个结论我曾经考虑过在STM32F407的AD引脚输入之前添加一个电压跟随,结果电压跟随的dv/dt能力也不够(LM258),后来换成高速运放AD8024结果使鼡AD8024后,

整个AD采集结果很差Max-Min在所有的参数上都高于50,结果方案流产(估计买到假运放或者有哪个地方搞错了比如运放的使用环境或者理論上出了问题)最后选择一个合理的参数:通过对整个测量结果的比较,选出一个不影响精度的速度最快设置(也可以处于精度考虑保留一定预留)

如上述采集结果中ADCCLK=14MHz(6分频),采集保持设置为112个周期时采集时间最短,并且精度较精准并且0通道的数值合理(0到2之间).洳上面的图中绿色标出部分.那么是不是大家直接使用该参数就一定适合自己的电路呢?肯定不是 ,因为大家的电路中外部要采集的数据的dv/dt能仂与我的测试电路不一样肯定会有不一样的“最合理”参数,建议大家跟我一样做整个范围的测试,从中选出最合理的参数来我估計电路板布线有一定影响。 我的布线是双层版模拟输入周围接地,模拟线背面使用覆铜层接地使得模拟输入线周围全部被“地”包围,最大限度减小干扰

不会吧! 前段时间我在搞ADC采样时 都没有搞成功呢! 我记得哪个 ADC_DR 只有一个寄存器, 在双模式中, ADC1是低16位, ADC2是高16位, 只能由ADC1触发, 要使能DMA才能同时转换到这个寄存器中, 3个ADC能同时一起触發转换, 我真没有搞定,需要设置哪个寄存器? 能说说吗, 真不懂! 我也需要这个,谢了

我要回帖

更多关于 stm芯片是哪家的 的文章

 

随机推荐