現(xiàn)象:
在產(chǎn)品測(cè)試過程中,發(fā)現(xiàn)在LIN喚醒過程中出現(xiàn)偶發(fā)無法休眠情況,導(dǎo)致產(chǎn)品休眠喚醒異常。原因分析:
根據(jù)異常情況下的測(cè)試數(shù)據(jù),RXD為低電平,正常情況應(yīng)該進(jìn)入休眠,RXD為floating,根據(jù)狀態(tài)表確認(rèn)異常情況樣機(jī)進(jìn)入待機(jī)模式(standby mode)。
小結(jié):休眠異常為LIN進(jìn)入待機(jī)模式
為什么會(huì)異常進(jìn)入待機(jī)狀態(tài)?
LIN進(jìn)入待機(jī)狀態(tài)跳轉(zhuǎn)圖
測(cè)試發(fā)現(xiàn)正常掉電SLP-N與MCU-VCC低電平的延時(shí)時(shí)間為123ms; 異常情況下SLP_N剛下拉20ms,LIN端口有信號(hào)進(jìn)入,導(dǎo)致芯片進(jìn)入待機(jī)模式,INH拉高,此時(shí)MCU-VCC電壓還沒有下降,MCU不會(huì)進(jìn)入初始化,SLP-N信號(hào)一直為低電平,RXD在待機(jī)模式下為低電平,由于軟件未對(duì)該信號(hào)進(jìn)行處理,所以LIN一直處于待機(jī)狀態(tài)無法跳轉(zhuǎn),表現(xiàn)樣機(jī)無法進(jìn)入休眠狀態(tài)。
處理措施:在芯片進(jìn)入待機(jī)模式后,MCU讀取RXD低電平時(shí)間超過200ms,c初始化MCU或者將SLP-N拉高,經(jīng)過測(cè)試,修改后不再出現(xiàn)無法休眠情況。