A. 如果需要,CPU1 会将必要的应用特定上下文保存到 M0/M1 存储器。如果使用 I/O 隔离, GPIO 状态包含在内。将 CPU1 的 LPMCR 寄存器配置为休眠模式。使用其寄存器配置使闪存泵/库、USB-PHY、CMPSS、DAC 和 ADC 断电。程序还应该在进入休眠之前使 PLL 和外设时钟断电。在双核应用中,CPU1 应使用 LPMSTAT 寄存器确认 CPU2 已进入空闲/待机模式。
B. 执行 IDLE 指令以将器件置于休眠模式。
C. 此器件现在处于休眠模式。如果已配置,则开启 I/O 隔离,并保留 M0 和 M1 存储器。CPU1 和 CPU2 已断电。数字外设已断电。振荡器、PLL、模拟外设和闪存都处于软件控制的低功耗模式。Dx、LSx 和 GSx 存储器也已断电,并且其存储器内容丢失。
D. GPIOHIBWAKEn 引脚上的下降沿将驱动器件时钟源 INTOSC1、INTOSC2 和 X1/X2 OSC 的唤醒。唤醒源必须将 GPIOHIBWAKEn 引脚保持在低电平足够长的时间,以确保对这些时钟源完全加电。
E. 时钟源加电后,必须将 GPIOHIBWAKEn 驱动为高电平以触发器件其余部分的唤醒序列。
F. 然后,BootROM 将开始执行。BootROM 可以通过读取 CPU1.REC.HIBRESETn 位来区分休眠唤醒。加载 TI OTP 微调后,BootROM 代码将跳转到用户定义的 IoRestore 功能(如果已配置)。
G. 此时,器件退出休眠模式,应用可以继续运行。
H. IoRestore 功能是用户定义的功能,应用可以在其中重新配置 GPIO 状态、禁用 I/O 隔离、重新配置 PLL、恢复外设配置或跳转到应用代码。这取决于应用要求。
I. 如果应用没有跳转到应用代码,BootROM 将在完成 IoRestore 后继续。如果没有在 IoRestore 内部进行处理,它将自动禁用 I/O 隔离。此时 CPU2 也将退出复位状态。
J. 然后,BootROM 将根据 HIBBOOTMODE 寄存器的确定的方式引导。有关更多信息,请参阅
TMS320F2837xD 双核实时微控制器技术参考手册 的“ROM 代码和外设启动”一章。
图 6-24 休眠模式进入和退出时序图