2393018_zh-CN

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2393018_zh-CN

2393018_zh-CN

S32K3:睡眠模式下的 WKPU 唤醒中断行为

您好,NXP技术支持,

我们正在使用S32K312 MCU ,并配置了一个带有中断回调的WKPU(唤醒单元)通道
注意:将 Wkpu[n] 的偏移量加上 4 -> n+4

我们想澄清一下当 ECU 进入低功耗模式时 WKPU 的行为。

我们的问题是:

  1. 如果 MCU 处于睡眠/待机模式,WKPU 是否会继续监控已配置的外部唤醒引脚?

  2. 当在睡眠/待机模式下检测到配置的外部边沿时,WKPU 是否会唤醒 MCU?

  3. MCU唤醒后,配置的WKPU中断回调会自动执行,还是需要额外的软件处理?

  4. 要确保从睡眠/待机模式唤醒,是否需要特定的 WKPU、NVIC 或电源管理单元配置?

  5. S32K312 支持的低功耗模式(睡眠、停止、待机等)之间,WKPU 唤醒行为是否存在差异?

我们使用NXP RTD驱动程序来驱动S32K312。

感谢您的支持。

Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode

您好,NXP团队:

感谢您的快速回复。

我使用的是NXP S32K312 MCU。我已在 PTB2(WKPU 通道 8)上配置了外部中断源(WKPU)。当传感器 INT2 引脚置位时,中断旨在将 MCU 从睡眠/待机模式唤醒。

我的问题是:

  • 当收到外部 WKPU 中断时,唤醒后是否应自动调用配置的回调函数?

  • 或者,WKPU 是否仅在外部源配置为 WKPU 引脚的输入时才会产生唤醒事件,我是否需要将 PTB2 配置为 EIRQ 引脚并使用 WKPU 驱动程序作为外设?

  • 如果需要回调,是否需要其他配置(例如,NVIC、中断路由、WKPU 设置或模式相关的限制)?

在我目前的实现中,当配置为 EIRQ/ECU 并处于运行模式时,外部中断可以成功唤醒 MCU,但在待机模式下(引脚和外设中都配置了 Wkpu)则无法工作,并且配置的回调函数也不会执行。

请您详细说明一下WKPU的预期行为以及回调执行所需的配置?

谢谢!

Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode

@Dia

  1. 是的,WKPU 引擎具有通过多个可配置的异步唤醒事件唤醒芯片的功能。

  2. 是的。以下是 WKPU 唤醒事件后的备用退出序列:

    退出待机模式后,会发生以下事件:
    1. 唤醒事件发生
    2. FIRC 启动(如果在待机模式下被禁用)
    3. PMC 开始向 FPM 过渡的过程(例如,启用最后一公里稳压器并向芯片提供 V1_RUN 电源)
    4. MC_PCU 取消了运行功能域和备用功能域之间的隔离。
    5. 运行功能域复位取消钳位(待机进入时钳位),芯片将执行该功能域的功能复位退出序列
    6. 芯片进入运行模式

  3. 还需要进行其他配置。由于唤醒标志寄存器在唤醒后得以保留,因此一旦通过代码使能唤醒单元的 NVIC→ISER,即可进入唤醒 ISR。因此,在唤醒并处于运行模式后,如果您调用平台函数来启用唤醒中断(为 WKPU_IRQn 配置 NVIC_ISER),则您的程序将跳转到唤醒中断函数。

  4. S32K3 仅支持两种模式:运行和待机。

    Julin_AragnM_7-1783635768438.png
    但是,唤醒行为有所不同,因为 S32K3 可以选择正常待机退出或快速待机退出:

    Julin_AragnM_8-1783635776576.png
    RESET 和正常待机退出将执行 HSE sBAF 初始化代码和 HSE_FW 验证,而快速待机退出将跳过此步骤以节省时间,并启动到用户定义的地址。有关更多详细信息,请参阅 S32K3XX 参考手册中的图 176 (上电顺序)。

我建议查阅S32K3 电源管理单元 AN 和演示中的低功耗管理文档。

您还可以参考最新示例: [RTD600 MCAL & IP] S32K3 低功耗管理 AN 和演示。

此致,
朱利安

Re: S32K3: WKPU Wake-Up Interrupt Behaviour During Sleep Mode

@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 是否会跳转到该断点?

此致,
朱利安

タグ(1)
評価なし
バージョン履歴
最終更新日:
3 週間前
更新者: