打印
[其他ST产品]

关于stm32ADC采集分压电阻取值

[复制链接]
114|13
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
略略u|  楼主 | 2023-2-28 00:45 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

  初始设计电路如下:



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

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

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



使用特权

评论回复
沙发
略略u|  楼主 | 2023-2-28 00:46 | 只看该作者


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

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

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

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

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

使用特权

评论回复
板凳
略略u|  楼主 | 2023-2-28 00:46 | 只看该作者
通过以上数据知道,采集精度跟采集时间和输入阻抗有关。但是通过计算得知,如果输入阻抗为300KΩ,那么充电时间约为2.4uS。在软件上把采样周期调到最大(ADC_SampleTime_239_5Cycles,频率为12M,时间19.9uS),还是存在误差。说明此时跟周期不是主要原因。

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

使用特权

评论回复
地板
略略u|  楼主 | 2023-2-28 00:46 | 只看该作者
那么为了更准确地检测电池电压,那么只好把电阻改小。如果选两个50K的电阻,那么此处带来的电流会后42uA.所以在电路上做了个调整:


  

使用特权

评论回复
5
略略u|  楼主 | 2023-2-28 00:47 | 只看该作者
原来接地的地方改接到一个IO口,在需要检测的时候输出低电平,不需要的时候输出高电平。然后分压电阻使用两个30K的问题得到解决,电压检测误差小于0.02V,待机电流比原来的还小了几个微安。

使用特权

评论回复
6
Pulitzer| | 2024-5-1 07:30 | 只看该作者

需要靠近在外部添加一个钳位二极管

使用特权

评论回复
7
童雨竹| | 2024-5-1 09:26 | 只看该作者

ESD电压通过接地放掉

使用特权

评论回复
8
Wordsworth| | 2024-5-1 10:29 | 只看该作者

电阻消耗过电压的能量

使用特权

评论回复
9
公羊子丹| | 2024-5-1 12:25 | 只看该作者

当电路正常工作时,它处于截止状态(高阻态)

使用特权

评论回复
10
万图| | 2024-5-1 13:28 | 只看该作者

在信号线中串联小电阻其主要目的是对引脚的保护

使用特权

评论回复
11
Uriah| | 2024-5-1 14:31 | 只看该作者

根据电荷守恒:Qinitial=Qfinal

使用特权

评论回复
12
帛灿灿| | 2024-5-1 16:27 | 只看该作者

并且衡量电阻受温度影响大小的物理量是温度系数

使用特权

评论回复
13
Bblythe| | 2024-5-1 17:30 | 只看该作者

需要更大的齐纳二极管来承受能量

使用特权

评论回复
14
周半梅| | 2024-5-1 19:26 | 只看该作者

就导通接地放掉

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

62

主题

510

帖子

0

粉丝