GPS打開失敗

1,  在硬件上檢查GPS chip的外圍連接電路,例如是否導通、有沒有虛焊的地方、物料有沒有貼錯。
2,  在硬件連接檢查沒有問題之後,首先要使得GPS底層的驅動正常工作。
l  檢查項目makefile中,GPS_SUPPORT設置是否正確。
l  檢查dws文件中GPS相關的GPIO的配置是否正確,參考FAQ上的GPS CHIP管腳設置。
l  GPS_AssignGpioPins函數是用來選擇GPS相關的GPIO的模式,例如power_enable_pin、32K時鐘pin(僅對MT3336)、uart中tx和rx。這一步很重要,一定要確保正確。
在選擇好模式之後,GPS_GetUartMode函數會選擇uart的rx和tx的模式值,以及uart的端口號,要確保這裏選擇的uart端口和硬件上使用的uart口一致。
l  GPS_AssignEintPins函數是用來配置GPS EINT中斷管腳的模式,要確保正確。
l  GPS_MNL_Init函數中,會調用mtk_gps_init函數(在該函數中,cpu和GPS chip之前會通過uart通信,可以量測uart的rx和tx管腳會有數據波形)。
Mtk_gps_init函數返回成功,表示這GPS chip已經可以正常的工作了。如果上面的設置都沒有問題,該函數返回了失敗,極有可能是硬件的原因。例如復位管腳(GPS chip內已經集成了復位功能,如果接到cpu的GPIO來控制,一定要注意引腳電平狀態)連接不正確,或者是GPS chip上的某些電源管腳電壓不對等等。
3,  因爲有很多項目是沒有鍵盤和LCD的,這裏選擇一種實用的調試方法,即利用catcher工具發送命令給目標機。
打開GPS命令如下,然後發送,底層會調用GPS_MNL_Init函數。
關閉GPS命令如下,然後發送,底層會調用GPS_MNL_Shutdown函數。
4,  當成功打開GPS之後,底層的驅動正常工作,會定時的出發GPS的EINT中斷,從而將定位相關的信息上報,從catcher工具裏你可以看到以$開始的nmea語句,如下圖。
5,  在很多工程中(52平臺)的makefile中,
KAL_DEBUG_LEVEL=REALEASE_KAL,
KAL_TRACE_OUTPUT=NONE,
PARTIAL_TRACE_LIB=NONE.
上面的那些nmea語句的信息就不會再顯示出來了。
按照下面步驟修改即可以在catcher中看到nmea語句。
a)         PARTIAL_TRACE_LIB=gps mnl.
b)         在mtk_sys_nmea_output函數中,調用打印函數kal_promt_trace(MOD_MNL,”%s”,buffer)。
c)         重新編譯。
6,  通過上述調通了GPS的底層驅動,這表明GPS的軟體是沒有問題了。接下的就是硬件部分,例如GPS天線的接受性能等等,這些需要進一步的調試。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章