This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
您好!
我禁用了 UART 的异步时钟请求、以允许 MCU 进入低功耗模式(电源策略待机1)。
因此、当接收到字符时、我无法再接收 UART 中断。
我的预期目标是在使用 UART 中断接收到一个字符时退出低功耗模式。
UART_0_INST->GPRCM.CLKCFG = 0xA9000100; UART_1_INST->GPRCM.CLKCFG = 0xA9000100; UART_2_INST->GPRCM.CLKCFG = 0xA9000100;
您好、 Sho
https://www.ti.com/lit/ds/symlink/mspm0l1228.pdf
ULPCLK 在 standby1中断开、请使用 standby0。
此致、
Helic
嗨、 Helic Chi
当通过 UART 中断接收到字符时、我可以使用异步快速时钟从待机1唤醒吗?
我还测试了待机1、将 GPIOA 作为开关。 该中断仅在按下开关时发生、导致 MCU 退出待机1。
但它不适用于 UART。 如上所述、如果我不禁用 UART 异步快速时钟(UART_0_INST->GPRCM.CLKCFG = 0xA9000100)、则 MCU 无法进入低功耗模式。
您好、 Sho
当通过 UART 中断接收到字符时、我能否使用异步快速时钟从待机1唤醒?
有。
我还使用 GPIOA 作为交换机测试了 Standby1。
GPIO 中断可在除关断之外的所有低功耗模式下工作。
[报价 userid="59845" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1465293/mspm0l1228-how-to-enable-uart-interrupt-in-low-power-mode/5623257 #5623257"]但不适用于 UART。 如上所述、如果我未禁用 UART 异步快速时钟(UART_0_INST->GPRCM.CLKCFG = 0xA9000100)、MCU 将无法进入低功耗模式。[/QUOT]可能 UART 中仍然设置了中断、请尝试观察 UART->RIS、MIS IMASK 寄存器、
在进入 LPM 之前、请仅使 UART Rx 中断保持启用状态并保持 Rx 中断清除。
此致、
Helic
嗨、 Helic Chi
[报价 userid="571933" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1465293/mspm0l1228-how-to-enable-uart-interrupt-in-low-power-mode/5623398 #562338"]可能 UART 中仍然设置了中断、请尝试观察 UART->RIS、MIS IMASK 寄存器、
在进入 LPM 之前、请仅使 UART Rx 中断保持启用状态并保持 Rx 中断清除。
[报价]我发送了一个示例代码。
在 SYSCONF 中、会添加 UART0但不使用 UART0。 SysTick 计时器仍在待机1模式下运行、而不禁用 UART 异步快速时钟。
您可以查看此内容并指导我如何在 SysTick 计时器停止的情况下进入待机1模式、然后在通过 UART 中断接收到字符时使用异步快速时钟从待机1唤醒?
您好、 Sho
请参阅 MSPM0-SDK 中的以下代码示例:
C:\ti\mspm0_sdk_2_03_00_07\examples\nortos\LP_MSPM0G3507\driverlib\uart_echo_interrupts_standby
我已在 LaunchPad 上对其进行了测试、LP-MPSM0G3507和 LP-MSPM0L2228都可以正常运行。
需要在 syscfg 中将 LPM 模式从 STANBY0更改为 STANNBY1。
此致、
Helic
嗨、 Helic Chi
我 在 LP-MSPM0L2228上测试了 uart_echo_interrupts_standby、运行良好。
(我还添加了 SysTick 以观察 LPM 模式。 并且仅在处理 UART 中断时发生。)
但是、
当我将 UART 的 RX 和 TX 从 PA11/PA10更改为 PA1/PA0时、 即使没有 UART 中断、也会始终发生 SysTick。
我使用引脚 PA1/PA0进行 UART 通信。 如何使 MCU 使用 PA1/PA0时的运行方式与使用 PA11/PA10时的运行方式一样?
您好、 Sho
PA0和 PA1是 ODIO、需要外部上拉电阻。
此致、
Helic
嗨、 Helic Chi
[报价 userid="571933" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1465293/mspm0l1228-how-to-enable-uart-interrupt-in-low-power-mode/5626262 #5626262"]PA0和 PA1是 ODIO、需要外部上拉电阻。[/QUOT]效果很好。 谢谢!
顺便说一下、您能否告诉我为什么 ODIO 需要外部上拉电阻?以及为什么在未使用外部上拉电阻的情况下、即使在 LPM 模式下没有 UART 中断、SysTick 也仍然会发生?
您好、 Sho
顺便说一下、您能告诉我为什么 ODIO 需要外部上拉电阻器吗?
请参阅 TRM IOMUX 部分、了解 ODIO M0内部电路原理图、IDIO 无法在没有外部上拉的情况下输出高电平。
为什么在未使用外部上拉电阻器的情况下、即使在 LPM 模式下没有 UART 中断、SysTick 仍会发生?
当 ODIO 保持低电平时、UART 可能导致的 CPU 持续唤醒。
此致、
Helic