序列槽喚醒功能主要是從supernova 待機進入PM後,序列槽接收PC端口發送過來的特定字串,然後将主機闆喚醒的功能。與IR,KEYPAD,WOL,CEC,MHL 等等基本流程一緻,觸發源不一樣而已。
待機前設定待機參數
bPmWakeEnableUART1 設定為FALSE,開啟該口的喚醒功能,然後EnterSleepMode裡面設定到PM裡面
PM 開啟相關參數
開啟PM_WK_UART_EN
開啟序列槽,設定序列槽波特率
開啟UART0 口,并設定序列槽波特率為19200(平台目前不支援115200)
設定UART口的寄存器CLK
vendor\mstar\pm\zenonia\Project\Source\customer.c
Cus_Sys_ChangeUartForPllClk 裡面設定序列槽clk,配置好S1CON,PCON 否則後面無法擷取到喚醒的字串。
設定喚醒字串
vendor\mstar\pm\zenonia\Project\Mstar\Source\CusProj_Inf.h
UART_WAKEUP_COMMAND 設定喚醒字串。
循環監聽
CusProj_InfUart1Polling 中通過S1BUF不停讀取字串,與喚醒字串比對後,就開是喚醒
喚醒
通過PM_WKUP_UART 事件喚醒。