在一次項目開發中需要使用到CH395Q網絡芯片來連接網口進行數據處理,在設計過程中可謂是問題不斷:
1、CH395Q初始化問題:該芯片的初始化值得注意的是硬件上的鏈接,本人使用的是SPI通訊方式,在下載官方測試程序后芯片死活無法初始化,
后經查閱資料發現,在SPI通訊方式下芯片的RSTI引腳和TX引腳都需要與單片機進行連接並執行相關操作(具體可詳見附件文檔)。補齊引腳后
能夠實現芯片的初始化,但在if(CH395CMDGetPHYStatus() == PHY_DISCONN) 處一致顯示網絡鏈接斷開,排除了軟件問題后,經檢查是網口
沒有接電壓轉換芯片,以及在四根高頻信號線上接了濾波電容。去除以上故障后PC機與芯片能ping通。
2、通過例程將CH395設置為服務器模式后,調試發現服務器在客戶端連接一次斷開連接后就無法再次連接。通過查閱官方手冊,發現通過開啟
多連接的方式可以解決該問題。但由於需求指定要求不能有多台設備連接,因此從這之后開始毫無頭緒。通過CH395TCPDisconnect函數觀察
TCP斷開時的狀態,發現TCP斷開連接時Socket竟然自動關閉了。於是在斷開中斷中使用CH395SocketInitOpen對Socket重新打開后解決了該問題。
3、連續發送多個數據幀的時候數據幀丟失:具體情況表現為,連續發送22幀數據,但是能夠接收到的只有第一幀和最后一幀,查閱了手冊后發現連續發送多幀數據時需要等待發送緩沖區空閑
在Socket空閑中斷內對循環數據進行累加,即只有空閑狀態下才會發送數據,此操作后解決了該問題現象
資料鏈接:鏈接:https://pan.baidu.com/s/1XCvHOOrycYX3sDiF-xcN2A
提取碼:0trj