STM32F0 休眠模式下 ADC采样失效

笔者最近在作某汽车上的智能方向盘按键项目,系统要求待机电流小于100uA,同时能检测系统输入电压状态,做到能自检欠压和过压,并通过LIN发送给中控。

故笔者在对输入电压加了一个分压电路来检测,现在客户测试发现过压和欠压的判断阈值与要求不符合,笔者在实际测试过程中也确实发现了问题,但未烧录过程序的板子却不会出现这种情况。实际电路如下图

比如,假设VCC输入电压为8V,那么理论值就是0.56V(电路前端有一个整流二极管,故实际输入电压又0.7V压降),但测试烧录过程序的板子的TP6点却发现测量值只有0.36V。这个问题困扰了笔者一天,笔者测试了多块不同的板子,才勉强得出烧录和未烧录过程序的区别。后来笔者想到曾经有个大神跟我普及过输入阻抗匹配的问题,突然灵感一现,查询了芯片手册,才茅塞顿开。

查询芯片手册,可知芯片ADC引脚内部拓扑结构如下图二所示:

                                                          图二 芯片ADC拓扑结构

                   图三 充电时间公式

其中, RAIN:外部输入阻抗,最大50KΩ;

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

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

由上可以分析:

  1. 当电流流经RAIN会产生一个压降,经过RADC后会对CADC充电。根据图三公式可以得出CADC的充电时间由 RAIN和RADC控制,可近似的看成 Tc = (RADC + RAIN) × CADC。如果时间过短,ADC转换的数值会小于实际值。
  2. 当阻抗大于IC里ADC允许的最大阻抗。电路工作时,一路电流经过R40到R42到地,还有一路经过R40流入MCU的AD接口;因为当系统休眠时,芯片供电断开,芯片I/O口呈现悬空状态,I/O可能会存在一定的到地的漏电流。故可等效的看成是一个电阻RL与R42并联到地,因此检测点的电压会存在误差。

那知道了问题该怎么去规避这种问题呢,笔者给出以下两种方案

1. 增加电压跟随器,具体原理大家可以去百度,主要是为了增大输入阻抗,这样在芯片引脚悬空时,输入阻抗就无穷大,这样就不影响测量结果

2. R42接地脚由MCU控制,这样就可以实现对采样的控制,具体电路可参考下图

其中,可根据实际应用场景选择是否需要隔离,另外MOS管的过流能力也是根据实际情况选择。

 

 

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值