S32K344的Pad Keeping功能

电子说

1.2w人已加入

描述

mcu

 对于在一些需要在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的状态。

mcu

如果pad keeping功能是禁止的,在唤醒事件发生后,所有的 pad将进入复位模式。如果唤醒源引脚是外部上拉的,此时引脚会产生一个内部边沿,相关的WISR&WISR64位将会产生置位。

PAD Keeping禁止的时候,PAD的状态。

mcu

Ø在待机模式下,所有引脚保持在运行模式下设置的状态。复位后,所有引脚将进入默认状态。意味着唤醒和端口初始化(非安全启动(1.8ms), APP 应用程序内核启动(4.3ms), main中时钟初始化 )这段时间, 引脚是不受控的。

Ø当padkeeping 保持使能,可确保引脚保持唤醒时的状态,直到有用户解锁它。

在复位时和复位后,Pad引脚的状态

SIUL2 控制 GPIO口功能,它在功能复时会将GPIO口设置为默认状态,确保每个 GPIO口初始化到默认状态,可以查看用户手册 IOMUX中的GPIO口默认状态。

mcu

mcu

备注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 功能。

mcu

mcu

在禁止padkeeping后,WISR&WISR_64 将置位上拉引脚的标志,在禁止 pad keeping前显示正确的唤醒源。

mcu

mcu

WISR&WISR_64 将一直保留正确的唤醒源,如下打印所示。

mcu

mcu

备注:RTD2.0.0中,pad keeping禁止功能被集成到 Power_Ip_Init函数中,当在函数Siul2_Port_Ip_Init前调用它时,就需要注意这点。

mcu

审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分