TI中文支持网
TI专业的中文技术问题搜集分享网站

Struct RS485

Hello TI

在 serial.h 裡的 struct serial_rs485

delay_rts_before_send

delay_rts_after_send

請問這是用來幹嘛的? 為何需要這些? 希望能簡易說明。 謝謝。

Steven Liu1:

这个应该是流控信号的控制,建议你google一下485的RTS,CTS

Bernie Chen:

回复 Steven Liu1:

Hi Steven

https://github.com/gn00618777/am335x_serial_port_patch/blob/master/omap_serial_add_rs485_flag

上面是我的github,有關於 omap_serial.c 加入 RS485 功能的 patch。目的是要從板子傳送 data 時, RTS 被拉 high ,不傳送時RTS自動拉 low ,我在 baud rate 9600 時將data傳送到電腦,偶爾出現訊息出現雜訊狀態,但是如果用115200,幾乎每次傳送一個字元,他都是雜訊。看了波型,發現每次 data 傳送時把 RTS 拉 high ,TX的波型沒有整個被涵蓋在 RTS 為 high 的區間裡面,TX前端在區間外,所以才造成雜產生。 現在我看到 delay_rts_before_send 和 delay_rts_after_send 這兩個,不知道能不能改善我這個 driver 寫法?   查詢了很多資料,網路上根本都只是照字面上翻譯,希望能有圖形解說更好,謝謝了….

Bernie Chen:

回复 Bernie Chen:

Hi Steven

http://godspeedlee.myweb.hinet.net/modbus/0/ 我參考了這個

認為 delay_rts_after_send 的用意是 – 當要傳送 data 時,對方可能暫時無法接收訊息,但是 RTS 不能馬上被拉 low ,所以要加個 delay。

至於 delay_rts_before_send 也是類似道理,那這樣我的問題似乎就不是能靠這兩個來解決了…. 

謝謝

leo chen:

回复 Bernie Chen:

这个要看看你的硬件电路了

你的rs485方向控制是怎么接的

Bernie Chen:

回复 leo chen:

Hi Leo

        TTL

TX————>

RX————>      SP339E_40_QFN   

RTS———->              (RS485 mode)

這是 baud rate 9600   data 有在 RTS 被拉 high 的區間,所以 data 可以從板子傳送出去

這是 baud rate 115200 , data 波行前端沒包在 RTS high 區間,導致訊息 lost 掉,電腦端看不到

我想要 data 能夠 delay 或是還有甚麼方式能夠解決?    謝謝。

Segmentation fault:

回复 Bernie Chen:

您好,我目前调试485也是遇到同样的问题,请问您解决了吗,能不能分享下解决思路或者方法?谢谢

赞(0)
未经允许不得转载:TI中文支持网 » Struct RS485
分享到: 更多 (0)