关于STM32ADC采样阻抗匹配问题。

  在做一款消费电子产品时,需要采集电池电压(3.3V-4.2V),同时在休眠的时候希望尽量减小待机电流。电池电压采集电路采用两个1%的300K电阻进行分压,由该电路引起的待机电路为4.2/(300+300)mA=7uA.此时比较合理(整机的待机电流要求30uA以内)。

  初始设计电路如下:

  

  在编程采集数据时发现测试电压与实际电压有偏差,测试值总比实际值偏小一点。在软件上做补偿,把值修正了。

  但是换一个板子测试的时候发现测试的电压又不准了,此时知道通过软件补偿这种方法行不通。那么只能从硬件找原因。

  查找datasheet发现AD的输入阻抗最大只有50KΩ。

  

    图中RAIN:外部输入阻抗,STM32芯片中这个值最大为50KΩ;

      RADC:采样开关电阻,最大值为1KΩ;

      CADC:内部采样和保持电容,最大值为8pF.

  在ADC数据采集的时候需要有电流流入,那么RAIN会产生一个压降。阻容网络中的RADC和CADC上,对电容的充电由RADC控制。随着源电阻(RADC)的增加,对保持电容的充电时间也相应增加。

  对CADC的充电由RAIN+RADC控制,因此充电时间常数为tc = (RADC + RAIN) × CADC。如果时间过短,ADC转换的数值会小于实际值。

  通过以上数据知道,采集精度跟采集时间和输入阻抗有关。但是通过计算得知,如果输入阻抗为300KΩ,那么充电时间约为2.4uS。在软件上把采样周期调到最大(ADC_SampleTime_239_5Cycles,频率为12M,时间19.9uS),还是存在误差。说明此时跟周期不是主要原因。

  问题出在输如阻抗大于IC里ADC允许的最大阻抗。充电时电流分两路,一路经过R1到R2到地,还有一路经过R1流入MCU的AD接口。(不知是不是IO口会有一定的漏电流到地,IL)此时相当于在R2旁边并了一个电阻到地,检测点的电压不是标准的1/2Vbat.

  那么为了更准确地检测电池电压,那么只好把电阻改小。如果选两个50K的电阻,那么此处带来的电流会后42uA.所以在电路上做了个调整:

  

  原来接地的地方改接到一个IO口,在需要检测的时候输出低电平,不需要的时候输出高电平。然后分压电阻使用两个30K的问题得到解决,电压检测误差小于0.02V,待机电流比原来的还小了几个微安。

 

转载于:https://www.cnblogs.com/zjh-x/p/6617712.html

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在使用STM32ADC(模数转换器)进行采样时,可能会遇到以下一些常见问题: 1. 电源噪声:ADC对电源噪声非常敏感,因此在进行采样之前,需要确保电源供应稳定且干净,可以采取一些滤波措施来减小噪声的干扰。 2. 参考电压:ADC需要一个稳定的参考电压来进行转换,如果参考电压不准确或者不稳定,会导致采样结果的误差增大。因此,需要确保参考电压源的稳定性和准确性。 3. 采样速率:采样速率过高可能导致采样结果失真。如果采样速率超过ADC的最大值,可能会导致采样周期不足以完成转换,从而引入采样误差。需要根据ADC的规格和采样需求来选择合适的采样速率。 4. 输入信号幅度:如果输入信号的幅度超过了ADC的测量范围,会导致采样结果的溢出或失真。因此,在进行采样之前,需要对输入信号进行适当的放大或削减。 5. 通道选择:如果选择了错误的通道进行采样,可能会导致采样结果不准确。因此,在配置ADC时,需要确保选择了正确的通道进行采样。 6. 采样时间:ADC需要一定的采样时间来完成转换过程。如果设置的采样时间不足以完成转换,会导致采样结果的失真。需要根据ADC的规格和采样需求来设置合适的采样时间。 这些是常见的一些问题,当然,具体问题还可能因具体的应用场景和使用方式而有所不同。在使用STM32ADC时,建议参考相关文档和规格说明来正确配置和使用ADC,并根据实际情况对采样结果进行校准和处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值