Thread 中讨论的其他器件:EK-TM4C1294XL
工具/软件:TI-RTOS
尊敬的所有人:
我正在使用定制板进行 MCU 深度睡眠模式实施。 下面给出了配置详细信息
- 选择 MOSC (25MHz)作为深度睡眠的时钟源、并在深度睡眠中关闭 PIOSC。 运行时时钟配置为60MHz。
- HAL 计时器4在进入深度睡眠之前配置了10秒中断。
- 定时器、USB、PWM 及其相关的 GPIO 端口模块在深度睡眠中通过 SysCtlPeripheralDeepSlepEnable()启用。 通过 SysCtlPeripheralClockGating (真)启用外设时钟门控。
- 在进入深度睡眠之前、SysTick 也会被禁用、而在从深度睡眠中唤醒后、SysTick 也会被重新启用。 如果未添加此步骤、MCU 会立即从深度睡眠状态唤醒。
- 在禁用 SysTick 并进入深度睡眠之前、我正在使用__asm (" CPSID I")。 此外、_asm ("CPSIE I")在从深度睡眠模式唤醒并重新启用 SysTick 后使用。 使用这两个汇编指令 可确保先执行这些指令之间的代码、然后执行任何其他中断或进一步的代码。
我所面临的问题是、仪器进入深度睡眠后、它仅在定时器中断时唤醒、即在10秒后唤醒。 连接 USB 不会导致它从深度睡眠中唤醒。 PC 上显示一条消息、指出 USB 设备出现故障。 发生此问题后、仅在 MCU 未处于深度睡眠状态时断开并重新连接电缆后才会检测到电缆。
我遇到的另一个问题是、在深度睡眠10秒期间、LED 关闭。 一旦 MCU 从深度睡眠状态唤醒、LED 将再次打开。
请告诉我 在这里遗漏了哪些可能导致这些问题的原因、以及如何解决这些问题。 提前感谢。
Muhammad Shuaib.