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

发布者:橙子1234最新更新时间:2021-06-28 来源: eefocus关键字:MSP430  单片机  系统复位  初始化 手机看文章 扫描二维码
随时随地手机看文章

简介:
本章我们来学习一下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系列单片机只需要提供上电复位和按键手动复位即可。


关键字:MSP430  单片机  系统复位  初始化 引用地址:MSP430单片机系统复位和初始化

上一篇:MSP430结合PWM技术实现LED气氛灯光照明
下一篇:MSP430汇编指令自学笔记

推荐阅读最新更新时间:2024-11-09 16:43

8051单片机的控制总线的作用介绍
控制线一共有6条: (1)ALE/ (/PROG):地址锁存允许/编程线,配合P0口引脚的第二功能使用。在访问片外存储器时,8051CPU在P0.7~P0.0引脚上输出片外存储器低8位地址的同时在ALE/ (/PROG)上输出一个高电位脉冲,用于把这个片外存储器低8位地址锁存到外部专用地址锁存器,以便空出P0.7~P0.0引脚线去传送随后而来的片外存储器读写数据。在不访问片外存储器时,8051自动在ALE/ (/PROG)上输出频率为fosc/6的脉冲序列。该脉冲序列可用作外部时钟源或作为定时脉冲源使用 (2)(/EA)/Vpp:允许访问片外存储器/编程电源线,可以控制8051使用片内ROM还是使用片外ROM。若 (/EA)=0,
[单片机]
在对PIC单片机进行程序设计时应注意的四个问题
美国微芯公司开发的CMOS工艺PIC系列单片机,特别是采用内置第二代Flash存储器的微控制器在快速应用方面具有独到之处。PIC单片机系列内大都包含运算器、存储器、A/D、PWM、输入和输出I/O、通信等常用接口。自由灵活的定义功能可以适应不同的控制要求。 PIC单片机采用精简指令集,例如对于PIC16F716单片机,只有35条单字节指令。要用这么少的指令实现复杂的控制或计算,显然要在程序设计上多做文章,以下就程序设计需要注意的问题谈一些看法。 一、区分指令的大小写 编写PIC单片机的源程序,除了源程序的开始处需要严格的列表指令外,还须注意源程序中字母符号的大小写规则,否则在PC机上汇编程序时不会成功。在源程序中都会使用伪指
[单片机]
在对PIC<font color='red'>单片机</font>进行程序设计时应注意的四个问题
51单片机超声波水位控制器设计
说明: 本设计中液晶显示有4个字母,分别为 H------容器的最高水位设定值(不能高于实际高度) L------容器的最低水位设定值 D-----容器实际高度(可以设置) C-----容器内液体的高度(在实际演示中,障碍物离探头越近,液晶C显示越大,因为障碍物好比液面,离探头近了说明水位高了) 特别提醒:如果容器实际高度D你设置为1米,那么C液体的高度最高能测到98cm,因为探头的盲区在2cm左右。如果D设为2米,那么最高能测到1.98m. 按键功能分别为:设置键 增加键 减小键 复位键 三个指示灯的分别功能为:红色----超过设定的最高水位H 黄色-----低于设定的最低水位L 绿色----最高H和最低L中间
[单片机]
51<font color='red'>单片机</font>超声波水位控制器设计
AT89S51单片机各引脚的功能解析
掌握AT89S51单片机,应首先了解AT89S51的引脚,熟悉并牢记各引脚的功能。AT89S51与80C51系列中各种型号芯片的引脚是互相兼容的。目前AT89S51单片机多采用40个引脚的双列直插封装(DIP)方式,如图2-2所示。此外,还有44个引脚的PLCC和TQFP封装方式的芯片。 40个引脚按其功能可分为如下3类: (1)电源及时钟引脚——VCC、Vss;XTAL1、XTAL2。 (2)控制引脚——PSEN(的反)、ALE/PROG(的反)、EA(的反)/Vpp、RST(即RESET)。 (3)I/0口引脚-PO、Pl、P2、P3,为4个8位I/O口的外部引脚。 下面结合图2-2介绍各引脚的功能。 电源及时钟引脚1.电
[单片机]
AT89S51<font color='red'>单片机</font>各引脚的功能解析
单片机TIMERO控制流水灯
硬件连接: 代码: #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int void main() { uchar T_Count = 0; P0 = 0xfe; P2 = 0xfe; TMOD = 0x01; TH0 = (65535-40000)/256; TL0 = (65535-40000)%256; TR0 = 1; while(1) { if(TF0 == 1) { TF0 = 0; TH0 =
[单片机]
<font color='red'>单片机</font>TIMERO控制流水灯
C8051F单片机端口配置
前言 最近项目上使用C8051单片机,我也是首次用这款单片机,所以项目开发过程中还是或多或少的遇到了一些问题,在此做一个总结,方便以后再次使用,避免相同问题重复犯错。 一、涉及的寄存器 PxMDIN:端口输入方式寄存器,有模拟输入和非模拟输入两种方式 PxMDOUT:端口输出方式寄存器,开漏输出和推挽输出两种方式 PxSKIP:端口跳过寄存器 Px:端口寄存器 二、实例 1.配置端口输入 //P0.X(1 3 5 7)为数字输入,开漏输出,普通IO功能 P0MDIN |= (1 1) | (1 3) | (1 5) | (1 7); P0MDOUT &= ~((1 1) | (1 3) | (1 5)
[单片机]
C8051F<font color='red'>单片机</font>端口配置
基于STM32单片机的串口使用解析
STM32串口功能比较强大,但仅仅使用串口来说,是很简单的 我们要做的事 1.使能串口时钟 2.复位串口 3.设置串口波特率 4.设置数据长度,停止位 5.收发使能 6.串口使能 1 int main() 2 { 3 u8 buf; 4 sysclk_init(9); 5 6 RCC-》APB2ENR|=1《《14; //串口使能 7 8 RCC-》APB2RSTR|=1《《14; 9 RCC-》APB2RSTR&=~(1《《14);//复位串口,不复位会出错 10 USART1-》BRR=0x1D4C;//设置波特率 11 USART1-》CR1|=0x200c;//停止位在USART-》CR2中,默认为1位停止位 12 /
[单片机]
基于STM32<font color='red'>单片机</font>的串口使用解析
基于AT89C2051单片机的门禁系统设计
电路描述: 安全是我们日常的生活中最关心的问题。 每个人都觉得安全问题是非常至关重要的,在家里的门和安全,可以尽可能多的安全。 为了对于门访问安全因此,我们打算通过引进一个电子密码锁系统,该系统包括一个人得到一个访问某些项目之前要输入密码的安全性,以及在家里,一个房间密码锁系统,不只是普通的单用户密码锁系统,需要用户插入已编程的代码来访问一个房间; 它是一个密码锁系统,有密码而且可以启用多个用户访问。 在基于51单片机的门储物柜,只允许授权人员进入限制区域的门禁系统。 该系统由8位微控制器AT89C2051具有ROM的2K字节的程序存储器完全控制。 该系统具有通过该密码,可以通过它来输入键盘。 当输入的密码与存储在存储器中的口
[单片机]
基于AT89C2051<font color='red'>单片机</font>的门禁<font color='red'>系统</font>设计
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved