175192387 发表于 2010-11-24 16:33:12

如何关闭CPU

我的板子是用电池供电,现在需要个功能,在电压降低到1.8V时关闭CPU,通过上电复位。我用一块电压检测芯片来检测1.8V,
我不清楚,检测到1.8V,是进入低功耗4吗?还是怎么样?
进入低功耗4,但是电压重新达到3V时,我又实现不了复位。如何才能实现关闭CPU后,到达3V时,实现复位???

175192387 发表于 2010-11-29 09:49:31

1、初始化时将*RESET/NMI脚设定为NMI功能
2、外部电压检测芯片检测到电池电压低于1.8V时(应该给MCU的最低工作电压留点余量),通过这个NMI脚触发NMI中断。
3、在NMI中断服务中判别是外部NMI中断后,使MCU进入LPM4状态。
4、换电池时上电复位,从头再来。


不知道为什么,我进入LPM4后,上电就没什么反应了;我用一个数显的电源,先将电压调到1.9V左右,进入LPM4后,再调高至3V,但是就是没什么反映

175192387 发表于 2010-11-29 10:16:12

WDTCTL = WDTPW + WDTHOLD+ WDTNMI+ WDTNMIES ; //

while(!(P1IN&BIT2)); //初始化中加这句,判断电压是否大于3V,防止因电压不够,一直复位


当电压芯片检测为小于1.9V时,
IE1 |= NMIIE;


不可屏蔽中断函数
if((IFG1&NMIIFG)==NMIIFG)
{
//RST/NMI不可屏蔽中断
IFG1 &= ~NMIIFG;
//以下填充用户代码
LPM4;
}
else //if((FCTL3&ACCVIFG)==ACCVIFG)
{
//存储器非法访问
FCTL3 &= ~ACCVIFG;
//以下填充用户代码
}


发现进不了中断,我是参考TI的例子

first_blood 发表于 2010-11-29 10:26:36

貌似进入LPM4后里面所有时钟全部关闭,当然就不会再运行任何程序了,只有外部中断才能唤醒,你不给外部中断,就会一直处在LPM4中,你用数调电源先调到1.9再调到3V是不行的,没有断电复位,所以先调到1.9V,断电,再直接加3V,试试

175192387 发表于 2010-11-30 09:17:57

断电当然可以复位了,但是我想实现的就是1.9V时候,重新上电,复位。这个应该可以实现,我看过类是的东西,就是不知道它怎么实现的
页: [1]
查看完整版本: 如何关闭CPU