S32K312 休眠唤醒

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

S32K312 休眠唤醒

Jump to solution
1,237 Views
Gaulle
Contributor I

背景信息我目前正在使用S32k312进行休眠唤醒的功能开发,我有以下问题请请教咨询一下;

1、我使用的是Normal Wakeup而非Fast Standby,请问在Normal唤醒模式下可以实现唤醒源在StandbyRam的存储吗,我目前无法从WISR寄存器中读到有效唤醒源;

2、我通过示波器观察发现K3在休眠状态下收到唤醒源后是先走复位然后才进入的Icu中断,我想知道唤醒到底是先复位再进Icu中断还是先进Icu中断再复位;

3、我在休眠后只触发一次电平沿边中断唤醒,唤醒后从WISR寄存器中的值来看我所有配置了Icu唤醒功能的中断都触发了一次,因此我怀疑是否存在AB两种唤醒源,通过A方式唤醒MCU后WISR会同时记录AB两个唤醒事件,麻烦帮我解答一下;

Tags (1)
0 Kudos
Reply
1 Solution
1,167 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@Gaulle

自己去排查,可能是的程序根本就没有成功进入standby模式,亦或者你的唤醒源一直存在

View solution in original post

0 Kudos
Reply
5 Replies
1,201 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@Gaulle

Q.请问在Normal唤醒模式下可以实现唤醒源在StandbyRam的存储吗

可以,外部唤醒源唤醒后读取WISR,再将其存储在StandbyRam中没有问题

 

Q.我通过示波器观察发现K3在休眠状态下收到唤醒源后是先走复位然后才进入的Icu中断,我想知道唤醒到底是先复位再进Icu中断还是先进Icu中断再复位;

唤醒的中断标志位在唤醒后依然存在,如果当前使能了中断,那么会在唤醒后进入唤醒中断处理。

Since the wakeup flag register is retained after waking up, the wakeup ISR can be entered once the NVIC->ISER of Wakeup Unit is enabled by code. All the 64 wakeup sources share one interrupt vector.

 

Q.唤醒后从WISR寄存器中的值来看我所有配置了Icu唤醒功能的中断都触发了一次

所有的64个唤醒源共用一个中断向量,ICU唤醒功能的中断都触发了一次是可能的,但是相应的唤醒WISR是独立的,所有你自己去排查是否响应的唤醒口是否触发了唤醒操作。

Read the WKPU->WISR & WKPU->WISR_64 (Wakeup/Interrupt Status Flag Register). They are cleared by writing 1.

 

0 Kudos
Reply
1,197 Views
Gaulle
Contributor I
1、我的软件内部如果检测到有效唤醒源会进行一个唤醒状态的维持,在这种情况下,我在MCU休眠后如果只触发一次唤醒事件,MCU只会唤醒然后很快再次休眠下去,愿意是未识别到有效唤醒源,而在休眠后如果触发二到三次MCU就可以识别到有效唤醒源且维持唤醒,因此我认为在K3平台上只触发一次唤醒事件只能唤醒且复位MCU,如果没有第二三次唤醒事件,则MCU在复位起来后会立马又休眠下去,请问我的结论正确吗?谢谢
0 Kudos
Reply
1,186 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@Gaulle

不正确,除非你的程序在唤醒后又进入了休眠,不存在几次唤醒的问题

0 Kudos
Reply
1,178 Views
Gaulle
Contributor I
对的,如你所说,我的程序也是这样设计的,同样的唤醒源,例如我是CAN唤醒,如果我只发一次唤醒报文,那么我的程序会唤醒然后又休眠,而我发两三帧唤醒报文的时候,软件就能识别到有效唤醒源且维持唤醒,这是为什么呢,谢谢
0 Kudos
Reply
1,168 Views
Senlent
NXP TechSupport
NXP TechSupport

Hi@Gaulle

自己去排查,可能是的程序根本就没有成功进入standby模式,亦或者你的唤醒源一直存在

0 Kudos
Reply