历史上的今天
返回首页

历史上的今天

今天是:2025年06月28日(星期六)

2021年06月28日 | MSP430单片机系统复位和初始化

2021-06-28 来源:eefocus

简介:
本章我们来学习一下MSP430单片机的系统复位与初始化的过程。
这节课的主要内容有:
·系统复位POR与PUC
·POR产生过程
·复位后,系统初始状态
·程序中如何复位
·硬件中如何设计


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系列单片机只需要提供上电复位和按键手动复位即可。


推荐阅读

史海拾趣

General Magnetics Inc公司的发展小趣事
用于电力传输和分配过程中的电压变换。
BILIN公司的发展小趣事
用于电力传输和分配过程中的电压变换。
Daewoo公司的发展小趣事

在汽车产业领域,Daewoo公司同样取得了令人瞩目的成就。大宇汽车公司作为Daewoo集团的骨干企业,自1983年独立以来,凭借其先进的技术和出色的品质,迅速在韩国汽车市场崭露头角。公司不仅在国内市场表现优异,还积极开拓国际市场,成功将产品出口到世界各地。

BLACK&DECKER公司的发展小趣事

BLACK&DECKER一直致力于产品革新和专利申请。1914年,公司为世界第一台配有枪式手柄、扳机开关和通用马达的便携式手电钻申请了专利。这一发明极大地提高了工作效率,并在市场上取得了巨大的成功。此后,BLACK&DECKER不断推出创新产品,如1946年发明的世界上第一台专为家用消费者设计的便携式电钻,以及后续的电动篱笆剪、全绝缘电钻等一系列重要发明。

Flambeau公司的发展小趣事

在追求经济效益的同时,Flambeau公司始终不忘履行社会责任和环保使命。公司积极响应全球可持续发展号召,将环保理念融入产品研发、生产和销售的各个环节。通过采用环保材料、优化生产工艺、推广循环经济等措施,Flambeau有效降低了产品生命周期中的环境影响。此外,公司还积极参与环保公益活动和社会责任项目,为推动电子行业的绿色可持续发展贡献力量。

Dover Corporation公司的发展小趣事

作为一家多元化制造商,Dover Corporation一直致力于创新技术的研发与应用。公司在多个领域拥有先进的技术和解决方案,如先进的电梯控制系统、高效的燃料解决方案等。这些技术的应用不仅提高了Dover产品的性能和质量,也为客户提供了更加优质的服务。

问答坊 | AI 解惑

一种税控收款机打印模块电机的驱动电路

着“金税工程”的推广实施,税控收款机的客户群不断地在增加,税控收款机的市场容量越来越大。税控收款机打印模块电机的控制对收款机的品质影响比较大。本文将介绍打印机驱动芯片MTD2003F,并介绍基于此芯片的实用驱动电路。 图1 双极型步进电机接 ...…

查看全部问答>

XC886/888CLM:有先进网络功能的8位微控制器

XC886/888CLM:有先进网络功能的8位微控制器,集成了CAN控制器和支持LIN,采用基于工业标准8051架构的高性能XC800核,24MHz CPU时钟的指令周期为83-166ns,闪存24KB-32KB,其中有8KB用于数据闪存和EEPROM仿真,有内置的误差修正(ECC),通过缓存能增加闪存性 ...…

查看全部问答>

怎么写需求分析

来做实习,但是不知道怎么写需求分析 哪儿为达人给详细说明下嘛   格式    注意要点等 谢谢…

查看全部问答>

fpga的下载问题

我目前在使用altera 的cyclone EP28 ,在程序下载的过程中出现一个奇怪的问题。 使用quartusII打开programmer,点击start按钮,出现以下错误: Error: Can\'t access JTAG chain Error: Operation failed 请高手指点…

查看全部问答>

PCB Tools,PCB设计工具比较和选择

      可以给楼主参考下@ 我觉得找到适合自己设计的工具才是最好的工具?…

查看全部问答>

求助,怎样对霍尔电流传感器器进行保护?

为了测量电解电源,我选用霍尔电流传感器来测量电解电源输出的直流电流。 霍尔电流传感器输出的电压信号或者电流信号进入AD再进入单片机。 传感器的厂家的人提醒我,传感器进入AD之前需要加一些保护电路,例如什么过流或者过压。 他说如果传感器 ...…

查看全部问答>

大赛C题论文询问

本帖最后由 paulhyde 于 2014-9-15 04:03 编辑 大家认为大赛中C题智能小车论文中提到的理论分析和计算都应该写些什么呢?想不到什么要特别计算的,应用的都是一些传感器。有识之士回帖。。  …

查看全部问答>

求助,热电偶

N型热电偶在160°C-340°C范围内的曲线如图3,N型热电偶的两极材料为镍镉硅-镍硅,温度测量范围是-270-1300°C,在160-340°C区间其变化趋势为一中间下凹曲线,接近直线,随着参考温度的变化,其输出电压也呈线性变化。以参考温度20°C,经过(5.38 ...…

查看全部问答>

这究竟是什么电路

那位高手能给小弟分析一下这个电路图啊?特别是运放LM358的所起的作用是什么?     [ 本帖最后由 土星雨 于 2012-4-20 12:12 编辑 ]…

查看全部问答>

CN5609LED恒流驱动电路讨论

最近想找个能驱动35W的LED芯片,可是这样的驱动芯片不好找,于是用CN5609,打算3串3并,恒流输出1A电压,每路330mA,12V铅蓄电池供电,理论这样应该可行,于是就照参考电路做了板子,可是并不理想,问题很多,让我现在无从下手,有没有用过这片芯片 ...…

查看全部问答>