MSP430第一章:系统介绍

发布者:温暖心绪最新更新时间:2022-08-24 来源: csdn关键字:MSP430  系统介绍  模块  交互 手机看文章 扫描二维码
随时随地手机看文章

1.系统控制模块(SYS)介绍

SYS负责整个系统中各个模块之间的交互,其提供的功能不是模块本身自有的。地址解码、总线仲裁、中断事件整合和复位生成是SYS提供的许多功能的一些例子。


2.系统重启和初始化

系统重启电路如图所示,有断电复位(BOR)、上电复位(POR)、上电清除(PUC)三个来源。不同的事件触发这些信号并产生不同的初始条件。

以下事件会产生BOR:


设备上电

在重启模式下RST/NMI引脚低电平

一个事件从LPMx.5唤醒设备

软件BOR事件

违反安全事件

以下事件会触发POR:


BOR信号(BOR总是会产生POR,反之则不然)

SVSH或者SVSM低电平信号

SVSL或者SVSL低电平信号

软件POR信号

以下事件会触发PUC:


POR信号

看门狗到期

看门狗密码错误

Flash密码错误

电源管理模块密码错误

外围模块产生


2.1 系统重启后的设备初始化

BOR之后设备初始条件如下:


RST/NMI配置为重启模式


I/O引脚设置为输入


状态寄存器重置


看门狗启动


程序计数器(PC)装载启动代码的地址,一旦完成启动代码,PC将被装入SYSRSTIV中断地址 (0FFFEh)


系统重置之后,用户软件必须根据需要初始化设备,一下操作是必要的:


初始化堆栈指针,典型值是RAM的顶部

根据需要初始化看门狗

配置外围模块


3.中断

中断优先级是固定的,由连接链中模块的排列顺序决定,如图所示。当多个中断同时挂起时,中断优先级决定了需要哪个中断。MSP430包含三种类型的中断:


系统中断

不可屏蔽中断

可屏蔽中断

3.1 不可屏蔽中断(NMI)

NMI分为系统不可屏蔽中断(SNMI)和用户不可屏蔽中断(UNMI),两者都不可被GIE屏蔽。NMI源由单独的中断启用位启用。当一个NMI中断被接受时,该级别的其他NMI被自动禁用,以防止同一级别的连续NMI嵌套。

以下事件能够产生UNMI:


在NMI模式下RST/NMI引脚产生边缘信号

振荡器错误

Flash访问冲突

以下事件能够产生SNMI:

电源模块SVML/SVMH供电错误

电源模块高低侧延时超时

访问空内存

JATG邮箱事件


3.2 NMI时序

在用RETI指令完成SNMI处理程序之后,发生频率比处理频率高的连续中断(中断风暴),允许主程序,在SNMI再次执行之前,执行一条指令。

3.3 可屏蔽中断

可屏蔽中断是由具有中断能力的外围设备引起的。每个可屏蔽中断源可以被一个中断启用位单独禁用,或者所有可屏蔽中断可以被状态寄存器(SR)中的通用中断启用(GIE)位禁用。


3.4 中断处理

当外设请求中断,并且设置了外设中断使能位和GIE位时,中断服务程序会被执行。中断延迟是6个周期,从接受中断请求开始,一直持续到中断服务程序的第一条指令开始执行为止。


以下是通用中断步骤:


任何当前正在执行的指令都已完成

指向下一条指令的PC被压入堆栈

SR被推到栈上

如果在最后一条指令期间发生了多个中断并等待服务,则选择优先级最高的中断

中断请求标志在单源标志上自动重置。多个源标志仍然被设置为软件服务

除了SCG0, SR的所有位都被清除,从而终止任何低功耗模式。由于GIE位已被清除,进一步的中断将被禁用

将中断向量的内容加载到PC上,程序在该地址继续中断服务程序

在这里插入图片描述

由于采用流水线CPU结构,设置通用中断启用(GIE)需要特别注意:


在启用中断指令(EINT)之后,指令将会立即执行,即使有中断服务正在挂起

在清除中断使能/标志与EINT之间至少插入一条指令,例如在EINT指令前插入NOP指令

在DINT和需要防止中断保护的代码序列的开始之间至少包含一条指令。例如:在DINT之后插入NOP指令

永远不要在设置完通用中断启用(GIE)后立即清除它。在这些序列之间插入至少一条指令。

以上规则适用于所有设置或清除通用中断启用位的指令。不遵循这些规则可能会导致意外的CPU执行。


中断处理程序以RENTI指令终止,返回指令需要5个时钟周期:


具有前面所有设置的SR将从堆栈中弹出。不管中断服务程序期间使用的设置是什么,所有之前的GIE、CPUOFF和其他设置现在都生效了

PC从堆栈中弹出,并在它被中断的地方开始执行

在这里插入图片描述

3.5 中断嵌套

如果在中断服务程序中设置了GIE位,则中断嵌套被启用。当中断嵌套被启用时,在中断服务程序期间发生的任何中断都会中断这个程序,而不管中断优先级是多少。


3.6 中断向量

中断向量位于地址范围0FFFFh到0FF80h,对于一个最大的64个中断源。矢量由用户编写程序,指向相应的中断服务程序的起始位置。

在这里插入图片描述

使用RAM作为中断向量位置的替代位置是可能的。设置在SYSCTL中的SYSRIVECT位导致中断向量重新映射到RAM的顶端,一旦设置,任何中断向量现在驻留在RAM中的备用位置。因为SYSRIVECT在BOR上被自动清除,所以中断向量被重置到0FFFEh和在固件中正确处理是至关重要的。


3.7 系统中断向量生成器

SYS收集所有模块的SNMI 源、UNMI源和BOR/POR/PUC源,它们被组合成三个中断向量。中断向量寄存器SYSRSTIV, SYSSNIV, SYSUNIV用于确定请求中断或重置的标志。当组中优先级最高的中断被启用时,在相应的SYSRSTIV, SYSSNIV, SYSUNIV寄存器中产生一个数字。这个数字可以直接添加到程序计数器上,导致中断服务程序的适当部分出现分支。禁用中断不会影响SYSRSTIV、SYSSNIV、SYSUNIV的值。读取SYSRSTIV, SYSSNIV, SYSUNIV寄存器会自动重置该寄存器的最高挂起中断标志。如果设置了另一个中断标志,则在服务于初始中断后立即产生另一个中断。向SYSRSTIV, SYSSNIV, SYSUNIV寄存器写入会自动重置组的所有挂起的中断标志。


4.运行模式

运行模式考虑了三种不同的需求:


超低功耗

速度与数据吞吐量

最大限度地减少单个外围电流的消耗

CPUOFF、OSCOFF、SCG0和SR中的SCG1位配置低功耗模式LPM0 ~ LPM4。在SR中包含CPUOFF、scoff、SCG0和SCG1模式控制位的优点是,在中断服务例程期间,当前的操作模式被保存到堆栈中,如果保存的SR值在中断服务程序期间没有改变,程序流返回到以前的操作模式。通过修改中断服务程序内部堆栈上保存的SR值,程序流可以返回到不同的操作模式。当设置任何模式选择位时,所选的操作模式立即生效。外围设备也可以通过其单独的控制寄存器设置禁用。


当进入LPMx.5 (LPM3.5或LPM4.5),电源管理模块的稳压模块(PMM)禁用。所有的RAM和寄存器内容都丢失了。虽然I/O寄存器的内容丢失了,但是I/O引脚状态在LPMx上被锁定。从LPM4.5唤醒可能来自电源序列、RST事件或特定的I/O。从LPM3.5中唤醒可能来自电源序列、RST事件、RTC事件或特定的I/O。

在这里插入图片描述
在这里插入图片描述

5. 低功耗应用准则

通常,降低功耗的最重要因素是尽可能使用设备时钟系统最大化LPM3或LPM4模式下的时间:


使用中断唤醒设备控制程序流

只有当需要时启用外围设备

采用低功耗集成外设模块代替软件驱动功能。例如,Timer_A和Timer_B可以在没有CPU资源的情况下自动生成PWM并捕获外部定时

使用计算分支和快速表查找来代替标记轮询和复杂计算

避免频繁调用子程序和子函数造成的开销

对于较长的软件程序,应该使用单周期CPU寄存器

写入RAM控制寄存器RCCTL0,将所有不可用和未使用的段设置为低功耗状态(= 1)

如果应用程序具有低占空比、慢响应时间事件,最大化处于LPMx.5模式的时间


6. JTAG引脚

JTAG引脚与通用I/O引脚共享。BOR之后,SYSCTL寄存器中的SYSJTAGPIN位被清除。清除SYSJTAGPIN后,带有JTAG功能的引脚被配置为通用I/O。在这种情况下,只有TEST和RST/NMI引脚上的特殊序列才能启用JTAG功能。只要测试引脚被拉到DVCC,引脚就会保持其JTAG功能。如果测试引脚被释放到DVSS,共享的JTAG引脚将恢复为通用I/ o。如果SYSJTAGPIN = 1, JTAG引脚将永久配置为4线JTAG模式,并保持该模式,直到另一个BOR条件发生。如果MSP430设备是JTAG链的一部分,则尽早在软件中使用该特性。注意,这也会禁用监听双线模式。

SYSJTAGPIN是一个只写一次的函数。用软件清除是不可能的。


7. 启动代码

启动代码总是在BOR之后执行。启动代码加载工厂存储的振荡器校准值和参考电压。此外,它检查用户定义的引导带加载程序(BSL)是否存在。


8. 引导装载程序(BSL)

BSL使用户能够在原型设计阶段、最终生产和服务期间与微控制器中的嵌入式内存进行通信。BSL可以根据需要修改所有的内存映射资源,包括可编程存储器(flash)、数据存储器(RAM)和外设。用户可以为基于闪存的设备定义自定义BSL代码,并防止擦除和无意或未经授权的访问。

在没有USB的设备上,TI提供了一个基本的BSL程序。这支持常用的UART协议与RS232接口,允许灵活使用硬件和软件。要使用BSL,特定的BSL输入序列必须应用于特定的设备引脚。正确的输入顺序将导致SYSBSLIND被设置。增加的命令顺序将启动所需的功能。引导加载会话可以通过在定义的用户程序地址继续操作或应用标准重置序列来退出。BSL对设备内存的访问是通过用户定义的密码来防止误用的。带有USB的设备有TI提供的基于USB的BSL程序。


9. 空闲内存空间

空闲内存指不存在的内存空间。当中断使能(VMAIE = 1)时,访问不存在的内存空间会产生SNMI,从空闲内存读取会得到3FFFh。访问空闲的外围空间会导致一个PUC。

关键字:MSP430  系统介绍  模块  交互 引用地址:MSP430第一章:系统介绍

上一篇:MSP430番外——BSL介绍
下一篇:MSP430 ADC_12bit

推荐阅读最新更新时间:2024-11-17 02:12

智能汽车揭开出行新时代,语音操控创造交互新方式
在这个人工智能兴起的时代,“智能手机”、“智能电视”、“智能家居”等一系列新名词逐渐出现。从完全陌生到欣然接受,这些智能产品以其新奇而又便捷的性能很快被人们接受。   这些带有“智能”标签的产品逐步覆盖生活的方方面面,吃、穿、住、行一个也没有少。今天我们就来看看,在“行”这个部分里,“ 智能汽车 ”给人们的生活带来了什么样的改变。     当前的智能汽车主要“智能”在车载系统上,而智能车载的主要功能则是实现全自动驾驶。   美国高速公路安全管理局(NHTSA)按智能程度将智能汽车的发展划分为“辅助驾驶”阶段与“无人驾驶”阶段。“辅助阶段”又包括初级智能网联,辅助驾驶阶段,半自动驾驶阶段以及高度自动驾驶阶段。美国高速公路安全管理
[嵌入式]
剖析MSP430电容触摸系统驱动电路 —电路图天天读(167)
  电容触摸技术作为一种实用、时尚的人机交互方式,已经被广泛的应用到各种电子产品,小到电灯开关,大到平板电脑、触摸桌等。随之而来的是考验产品设计者如何发挥智慧,在把产品用户界面设计得方便简洁的同时,又能呈现产品绚丽的外观,从而带来良好的用户体验。LED 显示由于界面友好,可以实时反映触摸的位置信息,在电容触摸产品设计中得到广泛应用。本设计正是利用了大量的LED 来实现呼吸灯、轨迹灯的特效,可以为例如灯光、音量、温度等带有调节功能的产品提供设计参考。   电容触摸实现原理   MSP430 根据型号的不同支持多种电容触摸检测方式,有RC 震荡、比较器、PIN RO,本设计使用的是PIN Relaxation Oscillator
[单片机]
剖析<font color='red'>MSP430</font>电容触摸<font color='red'>系统</font>驱动电路 —电路图天天读(167)
MSP430--数字IO 流水灯程序
1.数字IO共有6组,其中P1,P2可以设置外部中断。 2.通用寄存器: PxIN,PxOUT,PxDIR,PxSEL 上电默认PxDIR为0,即默认为输入。PxSEL若为1,则表示数字IO用作外设功能,这时候P1或P2的中断功能丢失。 3.P1的寄存器:每个地址对应8位寄存器,对应IO的8个PIN. 026h P1SEL 025h P1IE: 中断使能 024h P1IES:中断响应上升沿变化(0),响应下降沿变化(1) 023h P1IFG:中断发生就置位为1,中断执行后要手动清除 022h P1DIR 021h P1OUT 020h P1IN read only 4.流水灯电路:P2端口输
[单片机]
使用MSP430需要注意的问题总结
1. #include 指要在编辑器设定目录下,#include 指的是在当前工程目录下。 2. 要调用另一个文件中的函数,要把这个函数文件放到当前工程目录下,并且在工程中添加此文件。 3. 命名中不能有-,比如:byq-ee会认为是错误的,要用下划线。 4. 用IAR软件仿真时,可以加入变量,如果是查看I/O信息只需加入PXIN,PXOUT即可。 5. IAR在处理字符时,要注意,是字符处理结尾标志,它和其他编辑软件是不同的。比如我们常用字符处理会自动在结尾处加,但IAR有些是不加的,这就要十分注意。 6. 如果只用到LFX1的低速时钟,9600bit/s传输的话,接收会出现问题,原因是误差太大,可以设置到4800以下。
[单片机]
MSP430 ADC12采样分析
AD部分主要配置ADC12模块的时钟、参考源、采样通道、采样模式、存储和采样保持。 我就一个部分一个部分来 第一个是ADC12模块的时钟,这个是模块运行时的时钟,跟采样定时器是两个概念,曾经我有一段时间被迷惑住了。这个由ADC12CTL1里面的ADC12SSEL和ADC12DIV配置,可以选择ADC12OSC/ACLK/SMCLK/MCLK,TI例程里面好像都是选择的ADC12OSC,这个是5MHZ,不过频率容易受外界影响而改变。这个部分配置好了就得到了ADC12CLK。 第二个参考源,这个部分可以用单片机的参考模块控制,也可以用ADC12模块控制,REFCTL0 &= ~REFMSTR;这句就是设置ADC模块直
[单片机]
<font color='red'>MSP430</font> ADC12采样分析
嵌入式RTOS在MSP430单片机上的实现
  单片机作为嵌入式信息产品的一个重要应用方面,其使用、设计面临着全新的挑战。一方面,人们对嵌入式产品的要求越来越高,稳定可靠、功能丰富、物美价廉的信息产品将成为人们的首选。另一方面,随着微电子工艺水平的发展,单片机处理器的能力不断提高,从最初的8位单片机到16位,进而32位单片机,功能越来越强大,执行速度越来越快,集成度、精确度也越来越高,应用领域进一步拓宽。可以说,单片机芯片的性能已经能够满足现代人们对嵌入式信息产品的更高要求。为了能将二者有效地结合起来,嵌入式RTOS的软件设计方法也取代了以前的前后台(超循环)设计方法,越来越受到重视和应用。   正如分时操作系统中Linux的出现打破了Windows一统天下的局面一样,
[单片机]
嵌入式RTOS在<font color='red'>MSP430</font>单片机上的实现
基于CDMA模块MG815+的车载终端数据通信设计
在传统的移动网络中,很多网络问题需要工程师或者技术人员携带仪表驾车路测来发现。这种测试方法在以往的网络优化测试中已采用多年,存在系统复杂、人员管理不方便、效率低下等问题。且每个技术人员或工程师都不可能负责太多的基站小区优化工作和问题分析。为此,建立无线网络质量自动监测系统的工作是有必要的。    车载终端 简介   车载终端组成   图1为车载终端的结构图,车载数据终端主要包括单片机(rabbit2000)、GPS模块、CDMA 手机模块、GSM手机模块、铁电存储器、电源变换模块等。其中,CDMA模块负责所采集数据的无线传输。      图1 车载终端结构图   车载终端工作原理   车载终端的工作原理可以描述为
[模拟电子]
基于CDMA<font color='red'>模块</font>MG815+的车载终端数据通信设计
英飞凌推出超高电流密度功率模块,助力高性能AI计算
【2024年11月5日, 德国慕尼黑讯】 数据中心目前占全球能源消耗的2%以上。在人工智能的推动下,预计到2030年,这一数字将增长到7%左右,相当于整个印度目前的能耗 。实现从电网到核心的高效功率转换对于实现卓越的功率密度至关重要,从而在降低总拥有成本(TCO)的同时提高计算性能。因此,英飞凌科技股份公司将推出 TDM2354xD和TDM2354xT双相电源模块 ,具有出色的功率密度,适用于高性能AI数据中心。这些模块实现了真正的垂直功率传输(VPD),并提供了业界领先的电流密度1.6A/mm2。英飞凌在今年早些时候还推出了TDM2254xD双相功率模块。 TDM23541D双相功率模块 英飞凌科技公司电源IC副总裁
[汽车电子]
英飞凌推出超高电流密度功率<font color='red'>模块</font>,助力高性能AI计算
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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