MCU 电压检测的方法
最近碰到一个案子,目标是检测MCU电源欠压,到具体实现的时候才发现留下了一个巨大的坑。
看到这个标题首先想到的是带ADC的MCU,对的在VDD端加一个隔离电阻,一个下拉电容轻松搞定。可结果呢,写程序才知道原来,MCU电源下降了,ADC参考电压也下降了,但是ADC数值是个相对量,才发现入坑了。
所以一下介绍你认为可以实现功能的方法,
1.ADC参考电压选择内部固定电压值做参考,不会随着电源电压下降而出现变动,在输入电路上 加上分压电路,这样能保证采样电压在参考电压范围内,因为参考电压采样电压比例不一样所以会出现一个特定的采样值用来识别欠压。
2.使用MCU自带的LVD检测电压值,方式类似于ADC,设定一个参考电压,低于此电压标志位为零,高于此电压标志位为1。
为了测量的稳定性,你还需要给标志做一个时延来滤除抖动。
if((PCON1 & 0x40) == 0) // 小于3.6V
{
if(volCount > 3000)
{
lowVFlg = 1;
volCount = 0;
}
else
{
volCount++;
}
}
else
{
lowVFlg = 0;
volCount = 0;
}
把这段代码放到1ms函数里面做了3s的滤波。
吹牛、扯淡、交朋友,请联系:18665321219