低レベルのシリアル構成?

低レベルのシリアル構成?

私は組み込みLinuxプラットフォームを使用しており、カーネルは2.6です。 sttyコマンドを使用してttyS * Advancedを設定しています。問題は、ハードウェアフロー制御をオンにしたい場合です。

stty -F /dev/ttySA0 crtscts

他のデバイスと通信できません(フロー制御も有効 - 選択)。 /proc/tty/driver/sc16is7x2(シリアルデバイス)に次のものがあることがわかりました。

serinfo:1.0 driver revision:
0: uart:sc16is752 port:00000001 irq:53 tx:155 rx:0 DSR|CD|RI
1: uart:sc16is752 port:00000002 irq:53 tx:10 rx:0 DSR|CD|RI

そして、同じハードウェアを使用する(そしてハードウェアフロー制御が機能する)他のプラットフォームには、次のものがあります。

serinfo:1.0 driver revision:
0: uart:sc16is752 port:00000001 irq:53 tx:155 rx:0 CTS|DSR|CD|RI
1: uart:sc16is752 port:00000002 irq:53 tx:10 rx:0 CTS|DSR|CD|RI

したがって、違いは「CTS | DSR | CD | RI」と「DSR | CD | RI」です。この「DSR | CD | RI」がハードウェアフロー制御を使用できない問題になる可能性はありますか?

答え1

2つの可能な問題があります。

一つは、ケーブルが間違っていることです。ハードウェアフロー制御信号が正しく転送されないと、ハードウェアフロー制御は機能しません。

もう1つは、一方の端またはもう一方の端でソフトウェアを誤って設定したことです。ハードウェアフロー制御は、両端のソフトウェアで有効にする必要があります。そして両端のソフトウェアはそのポートを開く必要があります。

関連情報