對于在一些需要在MCU完全初始化之前需要始終保持某些引腳高或低狀態(tài)的應用中,Pad Keeping 功能比較有用。從待機模式喚醒時,HSE非安全啟動將需要1.8ms,啟動代碼(從reset_handler到main)將需要4.3ms,Clock_Ip_Init將需要830ms(代碼優(yōu)化級別-O0)。啟用Pad Keeping功能時,可以確保IO電壓在這3個時間段內保持運行模式下的設置,直到禁用Pad Keeping 功能并在喚醒后復位端口。
有遇到如果引腳被外部電阻拉高,出現(xiàn) WISR和 WISR64中會有設置錯誤的位的情況,這是因為Pad keeping功能設置問題。
-> 用戶在進入待機模式前需先使能 pad keeping 功能,在初始化 Siul2_Port_Ip_Init后再禁止pad keeping功能。
PAD Keeping使能的時候,PAD的狀態(tài)。
如果pad keeping功能是禁止的,在喚醒事件發(fā)生后,所有的 pad將進入復位模式。如果喚醒源引腳是外部上拉的,此時引腳會產生一個內部邊沿,相關的WISR&WISR64位將會產生置位。
PAD Keeping禁止的時候,PAD的狀態(tài)。
?在待機模式下,所有引腳保持在運行模式下設置的狀態(tài)。復位后,所有引腳將進入默認狀態(tài)。意味著喚醒和端口初始化(非安全啟動(1.8ms), APP 應用程序內核啟動(4.3ms), main中時鐘初始化 )這段時間, 引腳是不受控的。
?當padkeeping 保持使能,可確保引腳保持喚醒時的狀態(tài),直到有用戶解鎖它。
在復位時和復位后,Pad引腳的狀態(tài)
SIUL2 控制 GPIO口功能,它在功能復時會將GPIO口設置為默認狀態(tài),確保每個 GPIO口初始化到默認狀態(tài),可以查看用戶手冊 IOMUX中的GPIO口默認狀態(tài)。
備注1: 在進入待機模式前,無論 pad keeping使能還是沒使能,GPIO 將總是保持進入待機模式前的狀態(tài)設置。pad keeping用于在MCU Reset時和從復位釋放到pad軟件重新初始化時,保持 pad狀態(tài)不變。
(寫DCM_GPR->DCMRWF1[STANDBY_IO_CONFIG] = 1)。
備注2: 在進入待機模式前,使能 pad keeping(寫 DCM_GPR->DCMRWF1[STANDBY_IO_CONFIG] = 0。默認寄存器的數(shù)值,無論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函數(shù)中,當在函數(shù)Siul2_Port_Ip_Init前調用它時,就需要注意這點。
審核編輯:湯梓紅
-
mcu
+關注
關注
146文章
17326瀏覽量
352665 -
寄存器
+關注
關注
31文章
5363瀏覽量
121200 -
端口
+關注
關注
4文章
990瀏覽量
32211 -
引腳
+關注
關注
16文章
1220瀏覽量
50914 -
GPIO
+關注
關注
16文章
1216瀏覽量
52391
原文標題:S32K344 的 Pad Keeping功能
文章出處:【微信號:嵌入式 MCU,微信公眾號:嵌入式 MCU】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論