MSP430单片机系统复位和初始化

1,系统复位 POR与PUC

1.1 MSP430单片机复位逻辑图

可以看到,它在复位时会产生两个信号,一个是POR信号,一个是PUC信号。

POR信号叫做power-on reset。PUC信号叫做power-up clear。翻译成中文就是:POR为上电复位信号,PUC为上电清除信号。这两个信号都可以导致MSP430单片机发生复位中断。但是他们之间的级别是不一样的。

1.2 POR信号来源

POR信号的复位级别更高一些,POR信号主要来自于硬件:

※芯片上电;

※RST/NMI设置成复位模式,并在RST/NMI引脚上出现低电平信号;

※超级电压监视电路发现电压不稳。

1.3 PUC信号来源

POR信号的产生总会产生PUC信号,但PUC信号的发生不一定会产生POR信号。PUC信号是上电清除信号,产生PUC信号的情况有:

※发生POR信号;

※处于看门狗模式下,看门狗定时时间到;

※看门狗定时器写入错误的安全键值;

※FLASH存储器写入错误的安全键值;

※CPU从外设地址范围0H-01FF取数据。

2 POR产生过程(BOR)

2.1 POR信号产生过程图

我们现在看到的这张图是POR信号的产生过程图。

如果这里是一个供电电压的话,在上电初期,刚开始供电的时候,电压是很不稳的,电压就有可能发生来回的跳变,电源还会产生很多的毛刺,这时候就需要POR信号来时刻监视电源电压,一旦电源电压低于可编程的有效阈值的时候,就应该产生一个上电复位,保证单片机从一个确定的起始位置开始运行程序。

如果在单片机上电的时候,没有一个监视电压的波动情况的过程,那么如果单片机在这个位置开始从Flash读取程序代码,开始执行的话,跑程序时突然来了一个电压的下降(比如这个位置),这时候如果没有一个有效的复位信号,那么可能导致单片机的内核陷入一个无效的状态,或者说让它的内部发生自锁,进入一个不确定的状态,这时候系统就变得很不稳定了,所以需要在上电初期产生一个有效的复位信号,保证系统是在一个确定的位置,按照确定的方式开始执行的。

2.2 掉电产生POR

我们来看一下这张图,掉电复位电路BOR会在芯片上电或掉电的过程中监测电源电压,并产生POR信号。芯片上电过程中,当电源电压VCC超过VCC(start)后,BOR电路产生POR信号,直到Vcc超过V(B_IT+),然后再经过延时t(BOR)后,POR信号撤销。如果VCC电压上升速率较慢,t(BOR)会相应延长。芯片掉电过程中,VCC必须降到低于V(B_IT-)之后,BOR电路才产生POR信号。这是个迟滞比较的功能,V(B_IT+)和V(B_IT-)差值即为迟滞电压Vhys(B_IT-),通过迟滞比较避免错误产生POR信号。VCC(start),Vhys(B_IT-),V(B_IT-)和t(BOR)的值,就如这张表所示。

3 复位后,系统初始化状态

3.1 系统复位后的系统状态

系统复位POR后的单片机系统状态为:

※RST/NMI引脚为复位功能;

※I/O方向寄存器复位,即I/O引脚为输入状态;

※MSP430内部的功能模块初始化,寄存器为默认值;

※SR(状态寄存器)复位;

※看门狗激活

※PC(程序计数器)载入0xFFFE处地址并开始执行。

3.2 上电复位后的硬件初始化

发生复位后,程序查询各复位源的标志。程序能确定复位源,以执行适当的复位操作。

MSP430在发生VCC上电后开始硬件初始化,即:

※全部I/O引脚切换成输入状态;

※I/O标志复位,细节见个外围模块的说明。

※将复位向量0FFFEh中包含的地址加载入PC中。CPU从上电清除(PUC)向量中包含的地址开始运行。

※状态寄存器(SR)复位。

※用户程序必须对除PC与SR外的全部寄存器进行初始化(如SP、RAM等)。

※决定工作频率的系统时钟从DCO 最低频率开始工作。启动晶振时钟后,频率调整到目标值。

3.3 RST /NMI复位功能复位后执行顺序

RST/NMI引脚在加载电压Vcc后设置成复位功能。引脚的复位功能一直保持到不选此功能为止。处于复位功能状态下,在RST/NMI引脚上拉低至GND,然后释放,则MSP430按以下顺序开始工作。

※将在复位向量0FFFEh中包含的地址加载入PC。

※在释放RST/NMI引脚后,CPU从复位向量中所含的地址开始运行。

※状态寄存器SR复位。

※除PC与SR外,用户程序对全部寄存器进行初始化(如SP、RAM等)。

※对外围模块中的寄存器进行处理。

※决定工作频率的系统时钟从DCO的最低频率开始工作。启动晶振时钟后,频率调整到目标值。

4 程序中如何复位

4.1软件初始化

在系统复位以后,用户就要进行软件初始化,用户软件必须根据应用的需求对MSP430进行初始化,它包括以下几个部分:

1、初始化SP,通常是RAM的顶部,也就是初始化堆栈指针,让它指向RAM的顶端。MSP430的RAM的堆栈是向下生长的。也就是最开始的时候堆栈指针是指向一个搞地址,然后随着用户不断的压栈,往里面存入数据的时候,SP的地址是往下减小的。

2、初始化看门狗定时器,也就是讲看门狗放入到一个根据系统需要的一个确定的状态,是使用它还是关闭它。即使使用看门狗的时候,看门狗定时的时间间隔是可以用户编程的。

3、配置外围模块,也就是配置一些外设资源。

4.2程序初始化

我们来看主函数,首先我们看到的是关闭看门狗程序,在这里,我需要说明一下,在MSP430单片机中,看门狗默认是开的,所以在初始化时我们需要关闭看门狗,当我们需要看门狗的时候再打开看门狗定时器。

第2行代码显示的是时钟(系统)初始化程序,其他的外围模块都是沿着时钟这个核心来执行的。所以我们有必要在开始的进行时钟初始化,具体的时钟初始化过程,我们会在后面的振荡器与系统时钟这一课详细讲解。

下面一行我们看到的是端口的初始化程序。在这里说下,给芯片上电时,我们大家都知道,芯片内部是有一个复位的,复位后,各个端口有一个固定的状态,但是在端口初始化的时候,我们可以根据我们的需要来设定端口的初始化。

然后,就是我们的外设资源的初始化了,我们在我们的系统中,需要用到什么外设资源,那么我们就需要对什么进行初始化,当然,我们也可以将时钟初始化改成系统初始化,然后将我们需要的外设资源初始化,放到里面,一起进行初始化。这个方法,在我们编写大的软件时,进行模块化编程的时候很受用。

到这里,我们的软件初始化就完成了。

5 硬件中如何设计

5.1 复位电路的设计

复位电路是单片机系统中不可缺少的部分,其好坏影响整个单片机应用系统的可靠性。同时,复位电路非常容易受到外部噪声的干扰。因此,复位电路的设计首先要保证整个应用系统的可靠性,其次是具有抗干扰能力。

复位电路的基本功能是:系统上电时提供复位信号,直至系统电源稳定后,撤销复位信号。为可靠起见,电源稳定后,还要经一定的延时才撤销复位信号,以防电源开关或电源插头分-合过程中引起的抖动而影响复位。

图中的电路图,就是我们畅学电子MSP430核心板的复位电路,该电路图可靠性高,抗干扰能力强,具有非常广泛的应用。

5.2 掉电产生POR

为提高系统设计的可靠性,也可以采用专用集成电路提供复位。这张图便是采用专用集成电路的原理图。

这种集成电路一般除了能够提供上电复位信号,还可以提供按键手动复位和定时自动复位信号。由于MSP430系列单片机都有片内看门狗定时器能够实现看门狗功能,因此MSP430系列单片机只需要提供上电复位和按键手动复位即可。

(0)

相关推荐

  • 解决方案︱无触点有载调压配电变压器可靠性技术的分析与应用

    中国电工技术学会定于2016年7月10~11日在北京铁道大厦举办"2016第十一届中国电工装备创新与发展论坛",主题为"电工行业十三五规划研究与解读". 请感兴 ...

  • ST单片机:独立看门狗和窗口看门狗

    STM32单片机中有两只看门狗,分别是独立看门狗和窗口看门狗.这两只看门狗有什么区别,今天来看一下. 1. 时钟源的区别 独立看门狗使用的是内部低速时钟,其频率为40kHz,但是这个40KHz不是准确 ...

  • 用CD4060制作看门狗报警电路

    看门狗定时器(WDT,WatchDogTImer)是单片机的一个组成部分,它实际上是一个计数器,一般给看门狗一个大数,程序开始运行后看门狗开始倒计数.如果程序运行正常,过一段时间CPU应发出指令让看门 ...

  • FAI飞亚摩托车电喷系统改装及初始化图示操作教程

    有的摩友喜欢把化油器车改装成电喷车,以体验改装的乐趣,下面,就以图文的形式为大家梳理一下改装过程和初始化步骤. FAI飞亚电喷,采用独特的直线式脉冲电磁泵技术,泵-喷嘴高度集成为一个喷射单元,不需要在 ...

  • 谨慎使用系统复位

    SYSTEM RESET USE WITH CAUTION 前言 系统复位似乎一直是故障快速处理的有效方法,其实不然.若在飞行中人工执行了不恰当的系统复位会严重损害飞行安全.在地面如果在未执行必要的排 ...

  • 单片机系统的电磁兼容性设计详解,看完秒懂!

    随着单片机系统越来越广泛地应用于消费类电子.医疗.工业自动化.智能化仪器仪表.航空航天等各领域,单片机系统面临着电磁干扰(EMI)日益严重的威胁.电磁兼容性(EMC)包含系统的发射和敏感度两方面的问题 ...

  • 详解单片机系统的EMC电磁兼容性设计

    电子汇 20篇原创内容公众号随着单片机系统越来越广泛地应用于消费类电子.医疗.工业自动化.智能化仪器仪表.航空航天等各领域,单片机系统面临着电磁干扰(EMI)日益严重的威胁.电磁兼容性(EMC)包含系 ...

  • 单片机系统设计|复位电路设计

    昨天讲解了单片机系统正常工作所需要的基本配置,也就是最小系统.单片机的最小系统包括:复位电路.晶振电路.电源电路.下载电路.从今天开始讲解每个电路,并结合实际设计,展示实际电路. 1 什么是单片机的复 ...

  • 单片机系统ram的低功耗测试方法

    在各种单片机应用系统中,存储器的正常与否,直接关系到该系统的正常工作.为了提高系统的可靠性,对系统的可靠性进行测试是十分必要的.通过测试可以有效地发现并解决因存储器发生故障对系统带来的破坏问题.专注于 ...

  • Keil、IAR实现处理器复位而变量不被初始化的方法

    有时候,我们有这种需求:处理器复位,要求变量不被初始化. 比如:一个实时统计数据的系统,不想因为某种原因(异常原因死机.看门狗等)复位,而丢失正在计数而未来得及保存的数据. 下面就来讲讲在Keil. ...

  • MDK下怎样才能让变量在复位时不被初始化

    最近一个项目需要保存一下临时数据,而产品容易受干扰而复位.所以需要保存一下数据,那么只有在系统复位时候不再初始化变量即可.对应MDK(keil)来说是一个比较麻烦的问题.通过网络上找了大量资料和测试发 ...

  • Keil MDK下如何设置非零初始化变量(复位后变量值不丢失)

    一些工控产品,当系统复位后(非上电复位),可能要求保持住复位前RAM中的数据,用来快速恢复现场,或者不至于因瞬间复位而重启现场设备.而keil mdk在默认情况下,任何形式的复位都会将RAM区的非初始 ...