天天看点

Mstar 平台(648)唤醒之串口唤醒

串口唤醒功能主要是从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 事件唤醒。