AM335X下Linux驅動 485串列埠 只能收不能發 問題的解決
阿新 • • 發佈:2019-01-12
小弟剛拿到am335的開發板。最近在做linux驅動移植,Kernel版本3.14.26,這兩天移植485和232的驅動也就是Ti公司的omap-serial.c檔案。
由於電路板上232和485是硬體支援切換的,485的rts管腳不需要在dts上配置。
移植之後,連線電腦做對發測試。
由於手裡的轉接線有限,只能像如下方式連線電腦
連線圖為:
rs485的連發和上圖一樣。 rs232的連發是上圖去掉中間的rs485轉232轉換器。
結果rs232可以正常通訊。 切換為rs485時可以收到電腦發來的資料,發不出資料。
斷開接線後,用示波器測試db9公口,波形正常。
後面無意中發現 “母口 串列埠線 母口” 輸入1,2腳的波形,在輸出的時候變為1,3腳。 去掉它,直接用杜邦線連線後,rs485就可以正常通訊了,不過AM335傳送的資料還是會回顯在自己的microcom中,原因還不太清楚。
注意這根 “母口 串列埠線 母口” 是232用的,485不能使用!!
因為232的TX,RX是2,3腳,485的TX1,TX2是1,2腳,所以母口對母口的轉接線是不能混用的!!
請不要隨便拿一根串列埠線來做485/232的測試,因為它可能會把你坑出翔,希望能幫到大家。
最後必須吐槽一下win10的輸入法實在是太難用了,碼這些字都費勁。c =。=|||b
由於電路板上232和485是硬體支援切換的,485的rts管腳不需要在dts上配置。
移植之後,連線電腦做對發測試。
由於手裡的轉接線有限,只能像如下方式連線電腦
連線圖為:
rs485的連發和上圖一樣。 rs232的連發是上圖去掉中間的rs485轉232轉換器。
結果rs232可以正常通訊。 切換為rs485時可以收到電腦發來的資料,發不出資料。
斷開接線後,用示波器測試db9公口,波形正常。
後面無意中發現 “母口 串列埠線 母口” 輸入1,2腳的波形,在輸出的時候變為1,3腳。 去掉它,直接用杜邦線連線後,rs485就可以正常通訊了,不過AM335傳送的資料還是會回顯在自己的microcom中,原因還不太清楚。
注意這根 “母口 串列埠線 母口” 是232用的,485不能使用!!
請不要隨便拿一根串列埠線來做485/232的測試,因為它可能會把你坑出翔,希望能幫到大家。
最後必須吐槽一下win10的輸入法實在是太難用了,碼這些字都費勁。c =。=|||b