您好,NXP技术支持,
我们正在使用S32K312 MCU ,并配置了一个带有中断回调的WKPU(唤醒单元)通道。
注意:将 Wkpu[n] 的偏移量加上 4 -> n+4
我们想澄清一下当 ECU 进入低功耗模式时 WKPU 的行为。
我们的问题是:
如果 MCU 处于睡眠/待机模式,WKPU 是否会继续监控已配置的外部唤醒引脚?
当在睡眠/待机模式下检测到配置的外部边沿时,WKPU 是否会唤醒 MCU?
MCU唤醒后,配置的WKPU中断回调会自动执行,还是需要额外的软件处理?
要确保从睡眠/待机模式唤醒,是否需要特定的 WKPU、NVIC 或电源管理单元配置?
S32K312 支持的低功耗模式(睡眠、停止、待机等)之间,WKPU 唤醒行为是否存在差异?
我们使用NXP RTD驱动程序来驱动S32K312。
感谢您的支持。
您好,NXP团队:
感谢您的快速回复。
我使用的是NXP S32K312 MCU。我已在 PTB2(WKPU 通道 8)上配置了外部中断源(WKPU)。当传感器 INT2 引脚置位时,中断旨在将 MCU 从睡眠/待机模式唤醒。
我的问题是:
当收到外部 WKPU 中断时,唤醒后是否应自动调用配置的回调函数?
或者,WKPU 是否仅在外部源配置为 WKPU 引脚的输入时才会产生唤醒事件,我是否需要将 PTB2 配置为 EIRQ 引脚并使用 WKPU 驱动程序作为外设?
如果需要回调,是否需要其他配置(例如,NVIC、中断路由、WKPU 设置或模式相关的限制)?
在我目前的实现中,当配置为 EIRQ/ECU 并处于运行模式时,外部中断可以成功唤醒 MCU,但在待机模式下(引脚和外设中都配置了 Wkpu)则无法工作,并且配置的回调函数也不会执行。
请您详细说明一下WKPU的预期行为以及回调执行所需的配置?
谢谢!
嗨@Dia ,
我建议查阅S32K3 电源管理单元 AN 和演示中的低功耗管理文档。
您还可以参考最新示例: [RTD600 MCAL & IP] S32K3 低功耗管理 AN 和演示。
此致,
朱利安
嗨@Dia ,
当收到外部 WKPU 中断时,唤醒后是否应自动调用配置的回调函数?
调用中断初始化后,将进入 WKPU_EXT_IRQ_SINGLE_ISR() 程序。如果需要使用回调函数,可以在调用中断初始化之前添加以下代码行:
Wkpu_Ip_u32ChState[0].chInit = TRUE;
Wkpu_Ip_u32ChState[0].notificationEnable = TRUE;
Wkpu_Ip_u32ChState[0].WkpuChannelNotification = Wkpu_Callback;
IntCtrl_Ip_Init(&IntCtrlConfig_0);
ISR 执行完毕后,将进入 WKPU 回调。
或者,WKPU 是否仅在外部源配置为 WKPU 引脚的输入时才会产生唤醒事件,我是否需要将 PTB2 配置为 EIRQ 引脚并使用 WKPU 驱动程序作为外设?
这也没错。您可以使用回调配置来了解在 Standby 之前是否调用了 WKPU 请求。
如果需要回调,是否需要其他配置(例如,NVIC、中断路由、WKPU 设置或模式相关的限制)?
请参阅第一个回复。
能否在 MCU 退出待机状态(唤醒)后立即停止它,并在 WKPU_EXT_IRQ_SINGLE_ISR 内部设置断点,看看 MCU 是否会跳转到该断点?
此致,
朱利安