2163702_zh-CN

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

2163702_zh-CN

2163702_zh-CN

S32K358 MCU 上的睡眠和唤醒驱动器配置

您好,

我一直在使用 S32K358,并参考了 S32K3XX 的低电源管理单元示例,该示例演示了使用 GPIO 的睡眠和唤醒功能。不过,我还没能让它按照预期运行。

我怀疑可能是我的配置或执行出现了问题。如果您能查看我的配置和源文件,并告诉我它们是否正确或是否需要修改,我将不胜感激。

经过多次尝试,我仍然无法达到预期效果,因此我希望得到您的指导。

现附上我的配置和源文件,供您审阅。

IDE:S32DS 3.5.14

SW 版本:4.0

HW: S32K358


致以最诚挚的问候,
Karmegan C




Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU

嗨,@karmegancjk

  1. 当检测到唤醒且 S32K358 进入 RESET 序列时,RAM 内容是易失性还是非易失性?
    32KB 的 SRAM 内容是非易失性的,或者说,32KB 的 SRAM 在待机时保持供电:

    Julin_AragnM_1-1758153012739.png
     
  2. 如果 RAM 内容需要非易失性,如何创建备用 RAM 内存并将 RAM 数据复制到备用 RAM 内存?
    为了使用备用 RAM,必须修改链接器文件,分配单独的 32KB,放置备用部分,并调整链接器地址符号。如果之前的 RESET 是 POR,则还必须初始化待机 RAM 的 ECC。

    我已经给你发了一条私信,里面有关于如何使用待机 RAM 和一般低功耗的演示。

  3. 待机模式是否类似于 S32K358 Cortex-M7 的睡眠模式或深度睡眠模式?
    是的,待机模式类似于深度睡眠:

    Julin_AragnM_3-1758153583051.png

致以最诚挚的问候,
Julián

Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU

你好,胡利安、

S32K358 通过 GPIO 实现休眠和唤醒功能。如上所述,当检测到上升沿时,控制器将按复位顺序进行 RESET。现在,我有一些疑问:

  1. 当检测到唤醒且 S32K358 进入 RESET 序列时,RAM 内容是易失性还是非易失性?

  2. 如果 RAM 内容需要非易失性,如何创建备用 RAM 内存并将 RAM 数据复制到备用 RAM 内存?

  3. 待机模式是否类似于 S32K358 Cortex-M7 的睡眠模式或深度睡眠模式?

Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU

嗨,@karmegancjk

进入待机模式时,我使用的是唤醒通道 46 (PTC24)。我的理解是,如果在此引脚上检测到上升沿,则应触发唤醒中断。

外部唤醒信号支持上升或下降检测。

程序计数器是否从地址 0x00402000 开始恢复执行?
还是需要完全 RESET 微控制器才能恢复执行?

在以前的设备 (S32K1) 中,代码在 WFI 指令之后恢复执行,这意味着在 WFI 之后唤醒 ISR → 代码;S32K3 将在唤醒始终执行 RESET 序列。这可能取决于配置的待机模式。

例如,正常待机退出执行 RESET 序列,然后初始化 sbaF 和 HSE 固件(如果已安装),然后在 reset_handler 恢复执行。

但是,快速待机退出可以跳过 sbaF 和 HSE 初始化,直接跳转到用户定义的启动地址。在此用户定义的启动地址之后,建议执行完全 RESET 以完全初始化设备(或者您可以再次返回待机状态,具体取决于应用程序的需求):

Snag_aacf767.png


至于项目配置,似乎一切正常。

致以最诚挚的问候,
Julián

Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU

您好,

我对 MCU 进入待机模式(睡眠或深度睡眠模式)时的行为有些疑问。在这种模式下,程序计数器是否会冻结,并在唤醒后从矢量地址 0x00402000 重新启动,还是从停止的位置继续执行?

请检查我的电源和唤醒驱动程序配置(.cfg 文件中)是否正确。文件)是正确的吗?我附上了我的项目中的配置文件供你参考。


Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU你好,朱利安,
我们使用的是基于 S32K358 MCU 的定制硬件。我有一个关于待机模式下唤醒功能的问题。
进入待机模式时,我使用的是唤醒通道 46 (PTC24)。我的理解是,如果在此引脚上检测到上升沿,则应触发唤醒中断。

不过,我不确定唤醒事件之后会发生什么。具体为:
程序计数器是否从地址 0x00402000 开始恢复执行?
还是需要完全 RESET 微控制器才能恢复执行?

另外,我没有使用任何中断控制 API 进行唤醒配置,所以我不确定唤醒中断是否得到正确处理或者是否需要 RESET。

请说明在这种情况下唤醒过程是如何进行的,以及预期的程序流程是怎样的?
,感谢您的支持。

致以最诚挚的问候,
Karmegan C
Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU

嗨,@karmegancjk

您使用的是 S32K3X8EVB 还是定制硬件?

请记住,S32K358 在 PMIC 握手时增加了退出待机的步骤。 如果你不使用握手,请在 DCMRWF1: 已解决:S32K3: 请求唤醒和 RESET 行为支持——恩智浦社区中设置 PMIC_PGOOD_HNDSHK_BYP 位

另外,您配置的是哪个 GPIO?请使用 S32K3 参考手册所附的 S32K358_IOMUX.xlsx 文件交叉检查 WKPU 信号是否正确。

致以最诚挚的问候,
Julián

Re: Sleep and Wake-Up Driver Configuration on the S32K358 MCU@karmegancjk

我目前也在研究睡眠和唤醒序列,您能否分享一下您的工作代码供我参考?如果您能分享,那就太好了。
标记 (1)
无评分
版本历史
最后更新:
‎07-07-2026 02:31 AM
更新人: