2014-03-12 58 views
4

在bash腳本,我使用以下命令:RS232控制檯通訊 - 設置波特率爲1 MBd的

$ stty -F /dev/ttyUSB0 921600 raw 
$ echo -n "some test data" >/dev/ttyUSB0 

,它按預期工作。使用PL2303 USB轉RS232適配器 :

$ lsusb 
... 
Bus 006 Device 010: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port 
Bus 006 Device 011: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port 

現在我試圖做同樣的1兆位的,但得到了一個錯誤:

$ stty -F /dev/ttyUSB0 1000000 raw 
stty: /dev/ttyUSB0: unable to perform all requested operations 

此外,當我嘗試用500 kBd工作相同的消息。嘗試250大骨節病的錯誤信息是不同的:

$ stty -F /dev/ttyUSB0 250000 raw 
stty: invalid argument `250000' 
Try `stty --help' for more information. 

可以看出here,它在PL2303的Linux驅動程序有問題。

我正在Kubuntu12.04,32Bit上工作。不幸的是,我不知道如何修復我的系統上的驅動程序(獲取驅動程序源代碼,修補程序,編譯,安裝...嗯,也許我學習了一下,試試看 - 建議是受歡迎的)。

但也許有一個更新的驅動程序可用,易於安裝?

還是有人知道另一個USB到RS232適配器,它工作在1MBd(通過rts/cts需要硬件流量控制,這對於PL2303來說工作得很好)?

+3

爲什麼你說你的適配器是「基於ftdi」,當它清楚地使用Prolific芯片或其克隆?多產和FTDI是競爭對手*。 –

+0

通常,buntu分發的過程是從'uname'獲取正在運行的內核版本並獲取相應的內核源代碼包。然後你可以做一個'make modules'並驗證你得到了一個工作的驅動模塊(沒有改變已經發貨的)。然後,您可以對其進行編輯以進行此功能更改並重建。你也可以直接獲取kernel-headers包並從其他地方獲取模塊源來構建我們的樹,但是你需要確保獲得與你的內核版本兼容的版本。 –

+0

感謝您的信息»多產和FTDI是競爭對手«,我已經糾正了這個問題。 – Joe

回答

0

在意識到»Prolific和FTDI是競爭對手«之後,我購買了Ftdi US232R-10這是一款基於FT232R的設備,並規定了1MBd的傳輸速率。

使用此適配器,我通過傳輸一些GiB數據而無任何錯誤(包括使用Rts/Cts硬件流控制)成功地測試了1MBd的通信。

使用的stty像配置此設備:

$ stty -F /dev/ttyUSB0 1000000 raw 

成功地工作。

+0

這不是原始問題的答案。 – unwind

+0

好吧,我現在添加了正確的工作命令行調用。是的,我沒有描述如何解決PL2303的驅動程序錯誤,但我提供了一個問題的答案部分?或者是否有人知道另一個USB到RS232適配器,其工作在1MBd«。 – Joe

+0

附加信息:經過一番研究後,我得到了Fxdi US232R-10也在OSX Yosemite的1MBd上運行 - 這有點複雜,但可能。 – Joe