这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 行业应用 » 汽车电子 » 【S32K3XX】Power Mode 控制(休眠唤醒功能验证)

共2条 1/1 1 跳转至

【S32K3XX】Power Mode 控制(休眠唤醒功能验证)

高工
2026-04-22 11:16:53     打赏

【简介】

S32K3 的芯片运行模式可以在S32DS 的POWER 模块的ModuleConfiguration -> ModeSettingConf 下进行配置。

image.png

本地添加Standby 模式配置。

image.png

添加完Standby 的模式配置后,我们继续添加Wkpu 模块来配置芯片唤醒源配置,关于Wkpu 模块的配置可以查看此帖( 【S32K3XX】WakeUp 功能)。

本地实际用外部GPIO 上升沿唤醒,配置gpio 未Wkpu 功能,对应的 wakeup 的source 为14.

image.png

因为Wkpu 的前四个唤醒源设计的时候是分配给内部唤醒源使用。

image.png

image.png

所以我们配置Wkpu  时对应的channel 要配置为18.

image.png

image.png

配置完成后我们添加如下的代码进入standby 模式,进入standby 模式前我们先配置唤醒源。

unsigned int standby(char argc, char **argv)
{
    /* WKPU configuration */
    Wkpu_Ip_Init(0, &Wkpu_Ip_Config_PB);
    Wkpu_Ip_EnableInterrupt(0, Wkpu_Ip_ChannelConfig_PB[0].hwChannel);
    /* Enter RUN mode */
    Power_Ip_SetMode(&Power_Ip_aModeConfigPB[1]);
    return 0;
}


触发上述休眠代码后,按下按唤醒按键一按照预期的唤醒了。添加如下代码在唤醒后打印唤醒源。

void get_wakeup_source(void)
{
    if(IP_MC_ME->MODE_STAT)
    {
        LOG_I("PREV_MODE: STANDBY WISR = %lx WISR_64 = %lx",IP_WKPU->WISR, IP_WKPU->WISR_64);
    }
    else
    {
        LOG_I("PREV_MODE: RESET");
    }
}

唤醒后打印的唤醒源为0x40000,对应的wake source 为18 ,跟我们配置的一致,测试结果和配置的唤醒源一致。

image.png


           


院士
2026-04-22 15:56:09     打赏
2楼

谢谢分享。


共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]