【嵌入式系统】第8章 lES M4硬件介绍(1)系统控制(东南大学)

目录

回顾TM4123的特点、

TM4C123GHP6E的电气特性

TM4C123GHP6E的内部结构特点

TM4C123GHP6E的内部结构

5 系统控制

5.1 信号描述

5.2 功能说明

5.2.1 器件标识

5.2.2 复位控制

5.2.2.1 复位源

5.2.2.2 上电复位 (POR)

5.2.2.3 外部 RST 管脚

5.2.2.4 掉电复位 (BOR)

5.2.2.5 软件复位

5.2.2.6 看门狗定时器复位

5.2.3 不可屏蔽的中断

5.2.3.1 NMI 管脚

5.2.3.2 主振荡器校验失败

5.2.4 电源控制

5.2.5 时钟控制

5.2.5.1 基础时钟源

5.2.5.2 时钟配置

5.2.5.3 精确内部振荡器操作 (PIOSC)

5.2.5.4 用于主振荡器的晶振配置(MOSC)

5.2.5.5 主PLL 频率配置

5.2.5.6 PLL 模式

5.2.5.7 PLL 操作

5.2.5.8 主振荡器校验电路

5.2.6 工作模式控制


回顾TM4123的特点、

支持浮点运算
• 采用Thumb2指令集
• 集成了高级运动控制的PWM和QEI功能
• 集成了USB OTG以及CAN2.0等通信功能
• 集成了模拟比较器、12位模数转换器ADC
• 低功耗、低成本的优势明显
汽车控制、医疗仪器、工业自动化、楼宇自动化、
安防设备上大量应用。

TM4C123GHP6E的电气特性

14组GPIO端口(PA-PH,PJ-PN,PP)
• 电池供电VBAT
• 供电电源VDD、VDDA和VDDC
• 数字地GND
• 模拟地GNDA
• 复位RST(低电平有效)
• 晶体时钟输入OCS0-1等

TM4C123GHP6E的内部结构特点

1)80MHz的主频,1.25DMIPS/MHz的处理性能

• 2)存储单元:
256K单周期主频为40M的Flash;
32K单周期的SRAM;
ROM中包含了外设驱动库、引导装载程序、高级加密标准AES密码表、循环冗余码校验(CRC)错误检验功能;2KB的EEPROM

3)系统功能
系统控制和时钟,片上精确的16MHz振荡器定时器
PWM引脚
休眠模块
看门狗定时器
100多个可配置的GPIO(允许某一引脚作为通用IO输入输出或是几个外设功能引脚)

4)模拟及模数混合功能
2个12位、24通道的模数转换器ADC
3个模拟比较器

5)多种高级串行同行
UART(异步串行接口)
SSI(同步串行接口)
I2C(多主从的同步串行通信)
CAN
USB

5)运动控制
2个PWM模块
2个正交编码输入

TM4C123GHP6E的内部结构

微处理器内核
• 系统控制和时钟
• 片上存储器(SRAM、Flash、ROM)
• AHB-Lite和APB总线
• 调试跟踪接口
• 外设

外设包含了:
• 系统外设
DMA、EEPROM、GPIO、看门狗定时器、通用定时器
• 串行同行外设
UART、SSI、I2C、CAN、USB等
• 模拟外设
模拟比较器、模数转换器
• 运动控制外设

PWM
QEI(红皮书书21页的微处理器结构图)

5 系统控制

    系统控制配置整个器件的操作,并提供器件信息。可配置的特性包括:

5.1 信号描述
5.2 功能说明
5.2.1 器件标识
5.2.2 复位控制
5.2.3 不可屏蔽的中断
5.2.4 功率控制
5.2.5 基础时钟源

5.1 信号描述

 以下表格列出了系统控制模块的外部信号,并描述了各自的功能。NMI 信号是 GPIO 信号的备用功能,复位后用作GPIO 信号。NMI 管脚具备提交保护,并需要特定的处理过程才能被配置为任意备用功能或者随后返回 GPIO 功能,请参考“确认控制”。

   下表中“管脚复用/赋值”栏给出了 NMI信号的 GPIO 管脚位置。GPIO 备选功能选择 (GPIOAFSEL) 寄存器 里的AFSEL 位应被置位以选择 NMI 功能。括号里边的数字表示必须编入 GPIO 端口控制 (GPIOPCTL) 寄存器中的 PMCn位域里的编码,用以将 NMI 信号分配给指定的 GPIO 端口管脚。

   其余的管脚(在管脚复用/赋值栏中标记为“固定”的管脚都有一个固定的管脚赋值和功能。

表 5-1. 系统控制; 时钟信号 (64LQFP)

5.2 功能说明

系统控制模块提供以下功能:
• ■ 器件标识,见“器件标识”
• ■ 本地控制:复位控制,电源功率控制和时钟控制
• ■ 系统控制(运行、睡眠和深度睡眠模式)

5.2.1 器件标识

有些只读寄存器可以向软件提供微控制器的信息,比如版本号、器件编号、存储器大小以及器件上的外设。

• 器件标识 0 (DID0)和器件标识 1 (DID1)寄存器提供关于器件版本、封装、温度范围等的详细信息。

• 从系统控制偏移量 0x300 开始的外设存在寄存器(如看门狗定时器外设存在 PPWD 寄存器)提供关于器件中各种类型模块的数量信息。

• 最后,外设属性寄存器的各个外设寄存器空间的偏移量0xFC0 处提供了片上外设性能的信息(如 GPTM 外设属性(GPTMPP)寄存器)。

5.2.2 复位控制

这一节讨论复位期间硬件方面的功能以及复位序列之后的系统软件要求

5.2.2.1 复位源

微处理器有6种复位方式,包括:
(1)上电复位POR(Power-on rest);
(2)外部复位引脚RST低电平复位;
(3)内部掉电复位BOR(brown-out detector);
(4)软件引起的复位;
(5)看门狗定时器复位;
(6)MOSC失效复位。
复位后,可以从寄存器RESC查看复位原因。

表5-2 提供了不同复位操作结果的摘要。
表 5-2. 复位源

复位后,复位原因 (RESC) 寄存器根据复位原因置位。该寄存器中的位具有粘着特性,经过多个复位序列后仍能保持其状态,内部 POR 复位除外。内部 POR 复位后,RESC 寄存器中除 POR 指示器对应位之外的所有位都清零。RESC 寄存器的位可以通过写 0 来清零。


任何复位内核的复位操作中,通过使用启动配置 (BOOTCFG)寄存器中配置好的 GPIO 信号,用户可以选择让内核直接执行 ROM 的 Boot Loader 或 Flash 存储器上的应用程序。复位时,将执行以下序列:

1. 读取 BOOTCFG 寄存器。如果 EN 位被清零,那么执行 ROM的引导装载程序。


2. 在ROM的Boot Loader中,指定的GPIO管脚的状态与规定的极性相比较,如果管脚状态与规定的极性匹配,那么将 ROM映射到地址 0x0000.0000 并继续执行 ROM 的 Boot Loader。

3. 如果 EN 位置位或管脚状态与规定的极性不匹配,那么读取地址 0x0000.0004 的数据。如果该地址的数据是0xFFFF.FFFF,那么将 ROM 映射到地址 0x0000.0000 并继续执行 ROM 的 Boot Loader。


4. 如果地址 0x0000.0004 中的数据不是 0xFFFF.FFFF,堆栈指针 (SP) 将加载 Flash 存储器地址0x0000.0000 的数据,程序计数器 (PC) 将加载地址 0x0000.0004 的数据。随后用户应用程序开始执行。
注意: 如果设备未能完成初始化阶段,会切换 TDO 输出管脚,以表明设备当前未执行。此功能用于调试。

5.2.2.2 上电复位 (POR)

注意: JTAG 控制器仅可以通过上电复位重置。


内部上电复位 (POR) 电路监测电源电压 (VDD),并且在电源达到阈值 (VVDD_POK) 时向包括 JTAG 在内的所有内部逻辑产生复位信号。

当片上上电复位脉冲结束时,微控制器必须在规定的参数范围内工作(见“Power and Brown-Out”)。

当应用要求使用外部复位信号让微控制器更长时间地保持在复位状态时(相对使用内部 POR 而言),可以使用 RST 输入,具体原因请参阅“外部 RST管脚”。

上电复位序列如下:

1. 微控制器等待内部POR变为无效。


2. 内部复位释放,内核从存储器加载初始堆栈指针、初始程序计数器以及由程序计数器指定的第1条指令,然后开始执行。内部 POR 只用在微控制器最初上电。

5.2.2.3 外部 RST 管脚

  注意: 建议 RST 信号的跟踪线路越短越好。确保将连接 RST 信号的任何元件布置得尽可能靠近微控制器。

   如果应用中只使用内部 POR 电路,那么 RST 输入必须通过一个可选的上拉电阻(0 至 100 KΩ)连接到电源 (VDD),如图5-1所示。RST 输入的滤波功能需要最小脉宽,以便复位脉冲被识别。

图 5-1. 基本 RST 配置

外部复位管脚 (RST) 复位微控制器,包括内核和所有片上外设。外部复位序列如下:


1. 外部复位管脚 (RST) 在 TMIN 规定的时间持续有效,然后失效。
2. 内部复位释放,内核从存储器加载初始堆栈指针、初始程序计数器以及由程序计数器指定的第1条指令,然后开始执行。为提高噪声免疫和/或延迟上电复位,RST 输入可以连接至一个RC 网络。

图 5-2. 延长上电复位时间的外部电路

图 5-3. 复位电路由开关控制

5.2.2.4 掉电复位 (BOR)

微控制器提供一个由以下事件触发的掉电检测电路:

■ VDD 低于 BOR0。外部电源电压 VDD 低于指定的 VDD BOR0值。触发值是 BOR0 的最高 VDD 电压。


■ VDD 低于 BOR1。外部电源电压 VDD 低于指定的 VDD BOR1值。触发值是 BOR1 的最高 VDD 电压。

应用通过读取复位原因 (RESC) 寄存器即可识别导致复位的BOR 事件。检测到掉电条件时,默认条件将产生一次复位。可对 BOR 事件进行编程,以便在上电和掉电复位控制(PBORCTL) 寄存器的BOR0 或 BOR1 位清零时产生中断。

掉电复位序列如下:
1. 当 VDD 降至低于 VBORnTH 时,内部 BOR 条件将置位。有关 VBORnTH 值,请参考“Power and Brown-Out”。
2. 如果BOR条件存在,内部复位就有效。
3. 内部复位释放,微控制器获取并加载初始堆栈指针、初始程序计数器以及由程序计数器指定的第1条指令,然后开始执行。

掉电复位的效果等同于一次有效的外部 RST 输入,并且该复位将会保持有效,直到 VDD 恢复到正确的电压级别。在复位中断处理程序中可以检查 RESC 寄存器,以确定掉电条件是否是复位的原因,从而使软件确定需要恢复哪些操作。内部掉电复位时序如“Power and Brown-Out”所示。

5.2.2.5 软件复位

软件可以复位一个特别的外设或者对整个微控制器产生一个复位。

通过系统控制偏移量 0x500 处开始的外设专用复位寄存器(例如看门狗定时器软件复位 (SRWD) 寄存器),软件可以单独复位各个外设。如果外设对应的位被置位随后清零,那么该外设被复位。

软件可以通过置位应用中断和复位控制 (APINT) 寄存器的SYSRESREQ 位来复位包括内核在内的整个微控制器。

软件启动的系统复位序列如下:
1. 通过置位 SYSRESREQ 位即可产生软件微控制器复位。
2. 内部复位有效。
3. 内部复位释放,微控制器从存储器加载初始堆栈指针、初始程序计数器以及由程序计数器指定的第1条指令,然后开始执行。


软件只可以通过置位 APINT 寄存器的 VECTRESET 位来复位内核。

软件启动的系统复位序列如下:
1. 通过置位 SYSRESREQ 位即可产生软件微控制器复位。
2. 内部复位有效。
3. 内部复位释放,微控制器从存储器加载初始堆栈指针、初始程序计数器以及由程序计数器指定的第1条指令,然后开始执行。

软件只可以通过置位 APINT 寄存器的 VECTRESET 位来复位内核。

5.2.2.6 看门狗定时器复位

 •看门狗定时器模块的功能是阻止系统挂起。微控制器提供两个看门狗定时器模块,以防其中一个看门狗时钟源失效。一个看门狗在系统时钟下运行,另一个在精确内部振荡器(PIOSC)下运行。


•除了由于PIOSC看门狗定时器模块在不同的时钟范围,对寄存器的访问必须在它们之间有一个时间延迟外,每个模块以相同的方式工作。看门狗定时器可被配置为在第一次超时的时候向微控制器产生一个中断或不可屏蔽中断,在第二次超时的时候产生一个复位。


•在看门狗定时器第一次超时发生后,32 位看门狗计数器会重新加载看门狗定时器加载 (WDTLOAD)寄存器的值并从这个值开始递减计数。如果在第一次溢出中断被清零之前,定时器向下计数到0,同时复位信号使能,那么看门狗定时器将把复位信号发送给微控制器。

看门狗定时器复位序列如下:
1. 看门狗定时器第二次溢出时没有被服务。
2. 内部复位有效。
3. 内部复位释放,微控制器从存储器加载初始堆栈指针、初始程序计数器以及由程序计数器指定的第1条指令,然后开始执行。

5.2.3 不可屏蔽的中断

微控制器有四个不可屏蔽的中断源 (NMI):

■ NMI 信号有效确认
■ 主振荡器校验错误
■ 中断控制和状态 (INTCTRL) 寄存器的 NMISET 位( Cortex™-
M4F)。
■ 看门狗控制 (WDTCTL) 寄存器的 INTTYPE 位置位时,看门狗
模块将发生超时中断。

为辨认出中断源,软件必须检查中断原因。

5.2.3.1 NMI 管脚

•NMI 信号是 GPIO 端口管脚 PD7 或 PF0 的备用功能。如“通用输入/输入端口(GPIOs)”所描述的那样,若想将该信号用于中断,则必须启用 GPIO 中的备用功能。


•注意:启用 NMI 备用功能需要使用 GPIO 锁定和提交功能,正如与 JTAG/SWD 功能相关的 GPIO 端口管脚那样。高电平激活 NMI 信号;启用的 NMI 信号高于 VIH 会启动 NMI 中断序列。

5.2.3.2 主振荡器校验失败

•微控制器提供了一个主振荡器校验电路。
•如果振荡器运行得太快或太慢,该电路会产生一个错误条件。
•如果主振荡器校验电路被启用并产生一个错误,此时会产生一个上电复位并将控制权交给 NMI 处理程序,或产生中断。MOSCCTL 寄存器的 MOSCIM 位决定将发生的动作。


•在这两种情况中,系统时钟源自动切换为 PIOSC。发生 MOSC故障复位时,NMI 处理程序将用于解决主振荡器检验故障,因为可以从通用复位处理程序移除必要代码,加速复位处理过程。


•通过将主振荡器控制 (MOSCCTL) 寄存器的 CVAL 位置位来启用检测电路。主振荡器校验错误在复位原因(RESC) 寄存器的主振荡器失败状态位 (MOSCFAIL) 显示。

5.2.4 电源控制

微控制器提供了一个集成的 LDO 稳压器,可用来对大多数微控制器的内部逻辑提供电源。图5-4显示了功率结构。不可以使用外部LOD。

注意: VDDA 的电压必须符合规格,否则微控制器不能正常工作。VDDA为器件的所有模拟电路供电,包括时钟电路。

5.2.5 时钟控制

系统控制决定了该部分的时钟控制。

•基础时钟源
•时钟配置
•精确内部振荡器操作(PIOSC)
•用于主振荡器的晶振配置(MOSC)
•主PLL频率配置
•PLL模式
•PLL操作
•主振荡器校验电路

5.2.5.1 基础时钟源

在微控制器中有多个时钟源可以使用。
•精确内部振荡器 (PIOSC). 精确内部振荡器是一个片上时钟源,在POR期间和之后,微控制器使用该时钟源。它不需要使用任何外部元件,并提供一个 16-MHz 时钟,其校准精度为 ±1%,整个温度范围内的精度为 ±3%(参见“PIOSCSpecifications”)。


•PIOSC 是为需要精确时钟源并减少系统开销的应用而考虑的。如果需要主振荡器,软件必须在复位后使能主振荡器,并在改变时钟参考前让主振荡器达到稳定。不论 PIOSC 是否是系统时钟源,PIOSC 可以被配置为ADC 时钟源以及 UART 和 SSI的波特率时钟。

•主振荡器 (MOSC). 主振荡器可通过两种方式提供一个频率精确的时钟源:外部单端时钟源连接到 OSC0 输入管脚,或者外部晶振串接在 OSC0 输入管脚和 OSC1 输出管脚间。如果 PLL正在使用,晶振的值必须是 5 MHz 到 25 MHz(含)之间的一个支持的频率。如果 PLL 没有被使用,晶振可以是 4 MHz 到25 MHz 之间的任何一个支持的频率。单端时钟源范围请见表22-13。支持的晶振在 RCC 寄存器的 XTAL 位域列出。

•低频内部振荡器 (LFIOSC). 低频内部振荡器适用于深度睡眠省电模式。其频率范围较宽,具体请参阅“Low-FrequencyInternal Oscillator (LFIOSC) Specifications”。该省电模式受益于精简的内部配电系统,同时也允许MOSC关闭。此外,在深度睡眠模式中时PIOSC可以掉电。

内部系统时钟(SysClk) 源于上述任一时钟源,同时增加两项:主内部PLL输出和四分频的精确内部振荡器 (4 MHz ± 1%)。PLL时钟参考频率必须在范围5 MHz 到 25 MHz (包括)内。表5-3显示了不同的时钟源如何在系统中使用。表5-3列出了可能的时钟源。

5.2.5.2 时钟配置

   运行模式时钟配置 (RCC) 寄存器和运行模式时钟配置 2 (RCC2)寄存器提供对系统时钟的控制。

RCC2 寄存器用来扩充域,提供了 RCC 寄存器之外的其它编码。使用时,RCC2 寄存器中域的值被 RCC 寄存器相应域的逻辑使用。值得一提的是,RCC2 提供了更多种类的时钟配置选项。这些寄存器控制下面的时钟功能:

■ 睡眠和深度睡眠模式中的时钟源
■ 源自PLL或其它时钟源的系统时钟
■ 振荡器和PLL的使能/禁止
■ 时钟分频
■ 晶振输入选择

重要: 写RCC寄存器后再写RCC2寄存器。
在将系统时钟的基础时钟源变更为MOSC时,必须先将MOSCDIS位置位,然后再重新选择MOSC,否则可能偶尔会出现未定义的系统时钟配置。


系统时钟的配置在EEPROM操作过程中不可更改。
软件必须等到EEPROM完成状态(EEDONE)寄存器中的WORKING位清零之后,才能对系统时钟作出更改。

图5-5所示为主时钟树逻辑。外设框图由系统时钟信号驱动并且可以独立使能/禁止。如果PLL被禁用,可从PIOSC或系统时钟中选择ADC时钟信号,如果PLL被启用,可从分频至16MHZ的PLL输出中选择ADC时钟信号。PWM时钟信号是系统时钟的同步分频,这样可以向PWM电路提供更宽的范围(通过设置RCC中的PWMDIV)。

注意:如果ADC模块未使用PIOSC作为时钟源,系统时钟必须至少为16MHz。

通信时钟源
在上述的主时钟树之外,UART 和 SSI 模块在外设寄存器映射中都拥有时钟控制寄存器(偏移量0xFC8),以用来选择模块波特率时钟的时钟源。


用户可以在作为波特率时钟默认源的系统时钟和PIOSC 之间进行选择。请注意在使用 PIOSC 作为波特率时,可能有特别注意事项。使用 SYSDIV 和 SYSDIV2 域在 RCC 寄存器中,SYSDIV 域规定了哪个分频器用于产生源自 PLL 输出或振荡器源(取决于该寄存器中BYPASS 位的配置)的系统时钟。当使用PLL时,在应用分频前400MHz的VCO频率先被2分频。

5.2.5.3 精确内部振荡器操作 (PIOSC)

微控制器上电后运行 PIOSC。如果希望运行其它时钟源,PIOSC 在用于内部功能时必须保持启用。


仅可以在深度睡眠模式期间禁用 PIOSC。它可以通过置位DSLPCLKCFG 寄存器中的 PIOSCPD 位掉电。


PIOSC 生成一个 16-MHz 时钟,其校准精度为 ±1%,整个温度范围内的精度为 ±3%。在工厂,PIOSC 被设置为 16 MHz。但是,在其它的电压或温度条件下,该频率可以通过软件用下面的两种方法来调整:

■ 默认校准:在精确内部振荡器校准 (PIOSCCAL) 寄存器中清零 UTEN 位并置位 UPDATE 位。


■ 用户自定义校准:用户可以通过设置 UT 值来调整 PIOSC 频率。随着 UT 值的增大,生成的周期也将增大。为了提交一个新的 UT 值,首先要置位 UTEN 位,接着编程 UT 域,然后置位UPDATE 位。该调整在几个时钟周期内完成,然后频率突变。

5.2.5.4 用于主振荡器的晶振配置(MOSC)

主振荡器支持的晶振值:从 4 到 25 MHz。


RCC 寄存器中的 XTAL 位描述了可用的晶振选择和默认的编程值。


软件根据晶振值来配置 RCC 寄存器的 XTAL 域。如果设计中使用 PLL,那么 XTAL 域中的值会从内部转换到 PLL 设置中。

5.2.5.5 主PLL 频率配置

主PLL在上电复位期间默认为禁止,如果需要可在稍后通过软件使能。软件指定输出分频来设置系统时钟频率同时使能主PLL来驱动输出。PLL 以 400 MHz 的频率工作,但是在输出分频应用前将先被二分频,除非 RCC2 寄存器中的 DIV400 位置位。


要把 PIOSC 配置为主 PLL 的时钟源,可将运行模式时钟配置 2(RCC2) 寄存器的 OSCRC2 域编程为 0x1。如果主振荡器给主 PLL 提供了时钟基准,软件可以从 PLL 频率n (PLLFREQn) 寄存器中使用由硬件提供的转换(该转换通常用于对 PLL 进行编程)。内部转换可提供± 1% 的目标PLL VCO频率。


在运行模式时钟配置 (RCC) 寄存器中的晶振值域 (XTAL) 描述了可用的晶振选择和默认的 PLLFREQn 寄存器编程。只要 XTAL域改变,新的设置就会被转换,同时内部 PLL 设置被更新。

5.2.5.6 PLL 模式

■ 普通:PLL 倍频输入时钟参考并驱动输出。
■ 掉电模式:大部分PLL内部电路被禁止并且PLL不再驱动输出。使用RCC/RCC2寄存器的域来编程PLL模式。

5.2.5.7 PLL 操作

如果 PLL 配置改变,PLL输出频率是不稳定的,直到重新集中(重新锁定)到一个新的设定为止。配置更改和重新锁定之间的时间是 TREADY。在重新锁定期间,受影响的PLL不可用作时钟参考。软件可以查询 PLL 状态 (PLLSTAT) 寄存器的 LOCK 位以确定 PLL 锁定的时间。


PLL 可通过以下方法之一进行更改:
■ 更改为 RCC 寄存器的 XTAL 值 - 写入相同的值不会导致重新锁定。
■ 使PLL从掉电模式变为正常模式。

使用根据系统时钟计时的计数器测量 TREADY 的要求。如果PLL 上电,递减计数器初值设为 0x200。
如果 PLLFREQn 寄存器中的 M 或 N 值发生改变,则计数器将设为 0xC0。此时要提供硬件来保持PLL 不被用作系统时钟,直到上述更改完成并满足 TREADY 条件为止。用户要确保在RCC/RCC2 寄存器切换到使用 PLL 之前必须有一个稳定的时钟源(例如主振荡器)。


如果主 PLL 启用并且系统时钟一步切换到使用 PLL,系统控制硬件会继续使用 RCC/RCC2 寄存器选择的振荡器作为微控制器的时钟,直到主 PLL 稳定(满足 TREADY 时间)为止才更改到PLL。软件可以使用很多方法来确保系统由主 PLL 提供时钟,包括周期性地检测原始中断状态 (RIS) 寄存器的 PLLLRIS 位,并且启用 PLL 锁定中断。

5.2.5.8 主振荡器校验电路

时钟控制包括能确保主振荡器工作在合适频率的电路。如果频率在相连晶振允许的频带范围外,该电路会监测主振荡器频率和信号。


检测电路通过主振荡器控制 (MOSCCTL) 寄存器的 CVAL位来启用。当该电路启用且检测到错误,同时 MOSCCTL 寄存器中的MOSCIM 位清零时,硬件会执行下面的序列:

1. 复位原因 (RESC) 寄存器的 MOSCFAIL 位被置位。
2. 系统时钟由主振荡器切换到PIOSC。
3. 一个内部上电复位被启动。
4. 复位不再有效,处理器在复位序列期间直接执行 NMI 处理程序。

如果 MOSCCTL 寄存器中的 MOSCIM 位置位,那么硬件会执行下面的序列:
1. 系统时钟由主振荡器切换到PIOSC。
2. RIS 寄存器中的 MOFRIS 位置位以指示 MOSC 故障。

5.2.6 工作模式控制

运行模式
• 该模式下,微处理器正常执行代码,所有已被外设专用寄存器RCGC设置为使能的外设正常运行,系统时钟源可以是任意一种时钟源及其PLL分频。


• 睡眠模式
• 处理器通过WFI指令进入睡眠模式。该模式下,系统时钟源不变,外设的时钟频率不变;但处理器和存储器的时钟停止,不执行代码。该模式下,任何中断事件都将使系统回到运行模式。

• 深度睡眠模式

处理器通过首先将系统控制寄存器STSCTRL的SLEEPDEEP位置位,然后执行WFI指令进入睡眠模式。该模式下,任何中断事件都将使系统回到运行模式。

休眠模式

该模式下,只有休眠模块运行,处理器及其他外设不运行。该模式下,外部唤醒信号WAKE或者RTC事件将使系统回到运行模式。RTC是一个内部32位实时秒计数器,精度为1/32768s,可定时唤醒系统。

• 休眠模块负责管理电源的禁能和恢复,当处理器或外设空闲时,可以将其电源禁能。休眠模块可由连接至管脚VBAT的电池或辅助电源独立供电;其时钟由连接至XOSC0引脚的32.768kHZ的晶体振荡器提供。当通过XOSC0引脚单端输入时钟时,需要向寄存器HIBCTL写入0x40来使能;当通
过XOSC0和XOSC1引脚输入时钟时,需要向寄存器HIBCTL写入0x0001.0040来使能。


资料仅供学习使用

如有错误欢迎留言交流

上理考研周导师的其他专栏:

光电融合集成电路技术     电路原理

C语言       复变函数与积分变换

单片机原理

模式识别原理

数字电子技术

自动控制原理     ​​​​​​ 传感器技术

模拟电子技术

数据结构

 概率论与数理统计

高等数学

传感器检测技术

智能控制

嵌入式系统

图像处理与机器视觉

热工与工程流体力学

数字信号处理

线性代数

工程测试技术

上理考研周导师了解更多

  • 27
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值