This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Struct RS485



Hello TI

在 serial.h 裡的 struct serial_rs485

delay_rts_before_send

delay_rts_after_send

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

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

  • 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 寫法?   查詢了很多資料,網路上根本都只是照字面上翻譯,希望能有圖形解說更好,謝謝了....

  • Hi Steven

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

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

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

    謝謝

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

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

  • 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 或是還有甚麼方式能夠解決?    謝謝。

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