MSP430使用了两个分离的复位信号,一个用作软件复位(上电清除),另一个就用作硬件复位(上电复位)信号。硬件复位也就是POR(power on reset),软件复位标识为PUC(power up clear)。下面我们给出一般的两种复位信号的图解。
POR信号在下面两种事件发生时才会产生:
- 器件上电;
- RST/NMI 引脚配置为复位模式,当RST/NMI 引脚产生低电平时。
当POR信号产生时,必然会产生PUC信号;而PUC信号的产生并不会牵连POR信号。PUC信号的产生依赖与下面的事件:
- POR信号发生;
- 启动看门狗时,看门狗定时器计满时;
- 向看门狗写入错误的安全参数值时;
- 向片内FLASH写入错误的安全参数值时。
可以看出PUC信号的产生涉及到一些关于安全参数和看门狗之类的问题,我们在此并不解释,待会会专门讲一下看门狗,我们现在关心的是,当这些信号产生时,单片机做出了什么反应,给出了什么结果。
当POR信号(或者PUC信号,存在一些不同之处,但大体相似)发生时就引起了器件的复位,进行初始化,初始化后的状态为:
- RST/NMI引脚被配置为复位模式;
- I/O引脚设置为输入模式,I/O标志复位;
- 状态寄存器被复位;
- 程序计数器(PC)装入复位向量地址0xFFFE,CPU从此地址开始取指令执行;
- 决定工作频率的系统时钟从DCO的最低频率开始工作。启动晶振时钟后,频率调整到目标值;
- 一些其他模块的寄存器初始化。
下面我们来看一下整个过程的实现。RST/NMI 引脚在加载电压Vcc后设置成复位功能。引脚的复位功能一直保持到不选此功能为止。处于复位功能状态下,引脚电压被拉低至GND,然后释放,MPS430按照下面的顺序开始工作:
- 将在复位向量地址0FFFEh中包含的地址加载入PC;
- 在释放RST/NMI引脚后,CPU从复位向量中所含的地址开始运行;
- 状态寄存器SR复位
- 除PC与SR外,用户程序对全部寄存器进行初始化;
- 对 外围模块中的寄存器进行处理;
- 决定工作频率的系统时钟从DCO的最低频率开始工作。启动晶振时钟后,频率调整到目标值。
下面给出了一个POR信号的时序图。
提供三种典型的复位电路:
- 在RST/NMI管脚上接100k欧的上拉电阻。
- 在1的基础上再接0.1uf的电容,电容的一端接地,可以使复位更加可靠。
- 在2的基础上,再在电阻上面并接出一个型号为IN4008的二极管,可以可靠的实现系统断电后立即上电
以上文章出处:http://www.61ic.com/Article/MSP430/MSP430/201108/36688.html
复位电路:
(原文件名:201007021900354706.jpg)
网友是这样说的:
只要
电源接通,那么这个电容就会“逐渐充满电”,这个过程必须要有,正是这个过程保证了CPU正确地“RESET”。
当电容充满电之后我们把电源开关断开了,这个电容中的电“何去何从”呢?VCC和GND之间接了N多的器件,所有的器件都对它说:“把你那点电给我吧,我还能坚持一下。”电容说:“给你们没问题,可是我他娘脑袋上有个电阻挡我的财路,你们先别急,我慢慢把电放给你们。”
当电容刚刚要把电通过那个上拉电阻放出来,电源开关突然又接通了。CPU开始冲电容吼:“孙子!你Y的那个充电过程怎么没啦?我还要复位呢!”电容不干了:“废话,我上次充的电还没放呢这他妈电源又通啦!”CPU急了:“那我怎么办?我得复位啊!”电容眼珠一翻:“管你Y怎么办,死去吧你!”
如果有了这个二极管就可以快速将电容上的电压释放,保证复位信号正确无误。这个才是该二极管起到的真正作用。
以上出处:http://bbs.elecfans.com/jishu_293228_1_1.html