如何通过ADC监控STM32L071KZ电池电压?

2019-07-14 18:05发布

我采用S的是TM32L071KZ微控制器设计我的第一个电路,它通过VBUS(USB,5V)作为主电源和2xAA碱性电池(3V)作为辅助电源供电。电源被调节到3.3V,微控制器和电路的其余部分由稳压电源供电,而不是直接来自VBUS或电池供电。我想监控电池电压水平,该如何连线才能实现当它低于特定阈值(例如,2.2V)时,会向用户反馈。微控制器的VDD为3.3v,等于VDDA。如果不出错,当我采样电池的电压时,我会得到一个恒定的值,因为样本是VDD和VDDA之间的比率。以下我的电源电路框图: 1.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
Green_LJ
1楼-- · 2019-07-15 00:09
你让ADC对内部带隙电压基准进行测量 , 与我在这里回答关于在PIC中执行此操作的问题的答案非常相似。你的STM32的参考不同(1.224V而不是1.024V),但原理是相同的。
hucc
2楼-- · 2019-07-15 00:56
Vdd是ADC的参考,带隙是被测量的输入。由于带隙是恒定的并且Vdd是变化的,因此ADC的结果用作Vdd的度量。不需要分压器。
hgimtk
3楼-- · 2019-07-15 02:26
假设在测量实际ADC输入之前以这种方式(不是Vdd或Vdda)计算Vref +。Vdd / Vdda 不是 STM32中的ADC参考,Vref +是。上面提到的1.224V是Vrefint,它根本不能用作ADC参考。
K_Ming
4楼-- · 2019-07-15 05:20
 精彩回答 2  元偷偷看……
K_Ming
5楼-- · 2019-07-15 08:29
你需要确保使用的电池永远不会超过3.3V。如果可以使用新电池,则应考虑添加分压器以使ADC输入降至可接受的范围。但这会增加电池的功耗。通常的解决办法是在电池和ADC之间增加MOSFET开关,由另一个MCU引脚控制。MCU将定期打开开关,测量电压并将其关闭。
此外,升压DC-DC和Vdd之间的二极管将降低一些电压(取决于电流和二极管),因此您可能希望将升压输出调整为稍高的电压。
请注意,即使连接了USB,Boost转换器也会耗尽电池电量。此外,你的LDO必须产生比DC-DC更高的电压,以便二极管闭合,例如3.4~3.5V。因此,我建议使用桶式直流适配器和带机械开关的插孔,在插入电源时断开电池,或者在USB电压存在时断开电池的另一个MOSFET开关。

一周热门 更多>