2014年2月12日 星期三

linux UART

筆記幾個 chip 的 UART driver (kernel 2.6.35.3 內建的) 實作程度...

EXAR:
RTS output: yes
CTS input: yes
DTR output: yes
DSR input: yes
DCD input: yes
RI input: yes

FTDI:
RTS output: yes
CTS input: yes
DTR output: yes
DSR input: yes
DCD input: yes
RI input: yes

freescale i.MX MXC:
RTS output: yes
CTS input: yes
DTR :no
DSR :no
DCD :no
RI :no
ps. DSR/DCD/RI 可以另外在 driver 裡 implement TIOCM 的三個 status read, 但 DTR output 目前所知無法單獨控制.  DSR/DCD/RI freescale 有實作 interrupt call, 但怎麼套我不知道, linux kernel 本身是不支援 DTR/DSR hand-shake 的..

Profic PL2303:
RTS output: yes
CTS input: yes
DTR output: yes
DSR input: yes
DCD input: yes
RI input: yes
ps. 1024byte 以下 loopback 收送會有點怪怪的.

QinHein (南京沁恒电子) CH341:
RTS output: yes
CTS input: yes
DTR output: yes
DSR input: yes
DCD input: yes
RI input: yes
ps. h/w handshake RTS-CTS 有沒有接起來沒有差別, 這是 bug.

  • TXD/RXD 目前沒有測試到 TIOCM_ST & TIOCM_SR 有支援的產品
  • freescale i.MX 產品的 source code 裡有支援 DTR (硬體應該是 DSR 那條線), DSR 沒看到. DCD 跟 RI 要 DTE 模式才有. 不過目前測過的產品裡都沒有完整的拉出來, 所以無法確定是不是可以 work.
  • 之前另外兩家 USB serial 測試有問題是因為在設定 output level 後沒有 delay 一小段時間就去讀取, 導致回傳值是錯誤的.
先這樣.

沒有留言: