搜索
bottom↓
回复: 4

如何关闭CPU

[复制链接]

出0入0汤圆

发表于 2010-11-24 16:33:12 | 显示全部楼层 |阅读模式
我的板子是用电池供电,现在需要个功能,在电压降低到1.8V时关闭CPU,通过上电复位。我用一块电压检测芯片来检测1.8V,
我不清楚,检测到1.8V,是进入低功耗4吗?还是怎么样?
进入低功耗4,但是电压重新达到3V时,我又实现不了复位。如何才能实现关闭CPU后,到达3V时,实现复位???

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 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,但是就是没什么反映

出0入0汤圆

 楼主| 发表于 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的例子

出0入0汤圆

发表于 2010-11-29 10:26:36 | 显示全部楼层
貌似进入LPM4后里面所有时钟全部关闭,当然就不会再运行任何程序了,只有外部中断才能唤醒,你不给外部中断,就会一直处在LPM4中,你用数调电源先调到1.9再调到3V是不行的,没有断电复位,所以先调到1.9V,断电,再直接加3V,试试

出0入0汤圆

 楼主| 发表于 2010-11-30 09:17:57 | 显示全部楼层
断电当然可以复位了,但是我想实现的就是1.9V时候,重新上电,复位。这个应该可以实现,我看过类是的东西,就是不知道它怎么实现的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-1 15:43

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表