对于在一些需要在MCU完全初始化之前需要始终保持某些引脚高或低状态的应用中,Pad Keeping 功能比较有用。从待机模式唤醒时,HSE非安全启动将需要1.8ms,启动代码(从reset_handler到main)将需要4.3ms,Clock_Ip_Init将需要830ms(代码优化级别-O0)。启用Pad Keeping功能时,可以确保IO电压在这3个时间段内保持运行模式下的设置,直到禁用Pad Keeping 功能并在唤醒后复位端口。
有遇到如果引脚被外部电阻拉高,出现 WISR和 WISR64中会有设置错误的位的情况,这是因为Pad keeping功能设置问题。
-> 用户在进入待机模式前需先使能 pad keeping 功能,在初始化 Siul2_Port_Ip_Init后再禁止pad keeping功能。
PAD Keeping使能的时候,PAD的状态。
如果pad keeping功能是禁止的,在唤醒事件发生后,所有的 pad将进入复位模式。如果唤醒源引脚是外部上拉的,此时引脚会产生一个内部边沿,相关的WISR&WISR64位将会产生置位。
PAD Keeping禁止的时候,PAD的状态。
Ø在待机模式下,所有引脚保持在运行模式下设置的状态。复位后,所有引脚将进入默认状态。意味着唤醒和端口初始化(非安全启动(1.8ms), APP 应用程序内核启动(4.3ms), main中时钟初始化 )这段时间, 引脚是不受控的。
Ø当padkeeping 保持使能,可确保引脚保持唤醒时的状态,直到有用户解锁它。
在复位时和复位后,Pad引脚的状态
SIUL2 控制 GPIO口功能,它在功能复时会将GPIO口设置为默认状态,确保每个 GPIO口初始化到默认状态,可以查看用户手册 IOMUX中的GPIO口默认状态。
备注1: 在进入待机模式前,无论 pad keeping使能还是没使能,GPIO 将总是保持进入待机模式前的状态设置。pad keeping用于在MCU Reset时和从复位释放到pad软件重新初始化时,保持 pad状态不变。
(写DCM_GPR->DCMRWF1[STANDBY_IO_CONFIG] = 1)。
备注2: 在进入待机模式前,使能 pad keeping(写 DCM_GPR->DCMRWF1[STANDBY_IO_CONFIG] = 0。默认寄存器的数值,无论SIUL2 的 PKE设置还是没设置),但是唤醒后没有禁止,SIUL2 模块不能再次初始化。这是因为芯片设计默认启用了此 pad keeping 功能。当MCU需要进入待机模式和唤醒时,如果不需要 pad 保持功能,需要在任何地方写1到这个位来禁止 pad keeping 功能。
在禁止padkeeping后,WISR&WISR_64 将置位上拉引脚的标志,在禁止 pad keeping前显示正确的唤醒源。
WISR&WISR_64 将一直保留正确的唤醒源,如下打印所示。
备注:RTD2.0.0中,pad keeping禁止功能被集成到 Power_Ip_Init函数中,当在函数Siul2_Port_Ip_Init前调用它时,就需要注意这点。
审核编辑:汤梓红
-
mcu
+关注
关注
146文章
16943浏览量
350077 -
寄存器
+关注
关注
31文章
5305浏览量
119906 -
端口
+关注
关注
4文章
952浏览量
31997 -
引脚
+关注
关注
16文章
1177浏览量
50201 -
GPIO
+关注
关注
16文章
1190浏览量
51864
原文标题:S32K344 的 Pad Keeping功能
文章出处:【微信号:嵌入式 MCU,微信公众号:嵌入式 MCU】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论