zoyee.l 发表于 2019-12-4 17:17

STM32 ADC采集电压偏低

最近使用STM32F103采集一个恒流脉冲电流,20mA电流经过0.5Ω的采样电阻,经过电流放大器50倍放大后,约为500mV,从示波器测量RC后直接到单片机引脚的波形,看电压为494mV,但ADC采样得到的ADC数值为555,那么换算成电压为447mV,差了有50mV左右,实在不清楚原因在哪,请教下各位。





tianxj01 发表于 2019-12-5 09:07

理论上,官方手册STM32的DAC可没有这么高的线性误差。
建议检查下面几个:
是不是Vcc做基准的,则VCC的绝对值和输出结果是反比的。
采样时间是不是够,采样时间不够,则容易导致采样结果偏低。
12位DAC后几位的稳定性本来就差,是不是采样次数不够,需要12位的,建议多次采样平均的结果才比较可靠。

kingkits 发表于 2019-12-5 09:40

STM32的ADC有个内部的参考电压 Vref,可以由ADC同时采样,你用参考电压算出来的电压来解析你的采样看看如何?
另外要注意采样电压为零时,你的adc读数是不是有偏移

zoyee.l 发表于 2019-12-5 10:58

tianxj01 发表于 2019-12-5 09:07
理论上,官方手册STM32的DAC可没有这么高的线性误差。
建议检查下面几个:
是不是Vcc做基准的,则VCC的绝对 ...

基准是LDO出来的3.3V,实测3.27V,且纹波很小,采样时间是选择最高的239.5周期,采样次数做了5次做平均

zoyee.l 发表于 2019-12-5 11:00

kingkits 发表于 2019-12-5 09:40
STM32的ADC有个内部的参考电压 Vref,可以由ADC同时采样,你用参考电压算出来的电压来解析你的采样看看如何 ...

应该不是基准源问题,我的基准源是3.3V LDO,实际测量3.27V,波形很小,0V时读取的ADC值没有偏移,就是0

kingkits 发表于 2019-12-5 11:08

你采样时,同时把Vref采样下来,截个图看一下,另外,你的电路没有纹波吗? 确定ADC的值就是0?
不过你这示波器不错

steelen 发表于 2019-12-5 11:50

示波器不一定准

XZL 发表于 2019-12-5 12:29

1.ADC的电压基准有误差;选用带外部参考电压的ADC,或者提高VDDA的精度。
2.放大电路的输出阻抗影响。在进入ADC时加入一级射极跟随器;
3.干扰---采用多次采样求平均值。

lylwff91128 发表于 2019-12-5 14:41

ADC自动校准加上去了没有?

zoyee.l 发表于 2019-12-6 22:48

lylwff91128 发表于 2019-12-5 14:41
ADC自动校准加上去了没有?
还真的是,自校准一下就OK了,不知道是不是只有F103系列是这样。

romotic 发表于 2019-12-9 13:55

有没有兴趣试试紘康的高精度24位ADC主控。

Hufei1994 发表于 2020-2-18 13:01

zoyee.l 发表于 2019-12-6 22:48
还真的是,自校准一下就OK了,不知道是不是只有F103系列是这样。

我的也是不校准,差了50mV,C8T6
页: [1]
查看完整版本: STM32 ADC采集电压偏低