GNU/Linux >> Linux の 問題 >  >> Linux

RaspberryPi シリアルポート

ディスプレイには RS232 インターフェイスがあり、Pi には RS232 インターフェイスがないことが問題であると確信しています。

Pi には (LV-)UART インターフェイスがあり、その TX ピンは論理 0 に対して 0V を出力します。 論理 1 の場合は 3.3V . Pi では 3.3V が既に利用可能であるため、これは非常に簡単に実装できます。ただし、これは 1 つの PCB または 1 つのデバイス内の通信でのみ機能します。

長距離のデバイス間の通信には、RS232 のような干渉信号の影響を受けにくいシステムが使用されます。波形の論理構造 (ビットレート、タイミング、開始、停止、パリティ、およびデータ ビット) は UART と同じですが、電圧レベルは論理 1 論理 0 の場合は +15V...+3V .これは、より高い (および負の) 電圧があるだけでなく、その意味も逆であることを意味します。

そのため、ディスプレイが RS232 レベルを予期し、Pi から 3.3V レベルを取得する場合、ほとんどの場合データを認識しません。

もちろん、同じインターフェイスの RX と TX を接続すると、期待どおりの結果が得られます。

ただし:RS232 TX 出力が電流制限されていない場合、Pi が損傷する可能性さえあります!

そこにはUARTからRS232へのコンバーターボードがありますが、はんだ付けが好きな場合、ボードにはMAX3232(および4つのコンデンサ)が含まれています.この IC は、Pi からの 3.3V 供給電圧から、より高い (および負の) 電圧レベルも生成します。

より一般的なのは MAX232 ですが (なぜそう呼ばれているのか推測してください)、これは 3.3V 動作ではなく 5V 用です。

最後に、UART と RS232 は同じ論理構造を使用しているため、特にソフトウェア (プログラマー) によって、両者が区別されないことがよくあります。単に「シリアル インターフェイス」と呼ばれることもよくありますが、シリアル インターフェイスの一種である I²C や SPI などの他のインターフェイスもありますが、「その」シリアル インターフェイスとは見なされません。


組み込みの Raspberry Pi シリアル ポートは、こちらで説明されているように、0 ~ 3.3 ボルトの電圧レベルを使用します。 USB からシリアルへのコンバーターとディスプレイは、公称 -15V から +15V の RS232 電圧レベルを使用し、最小値は -3V/+3V です。これら 2 つのレベルの間で変換する必要があります。

出力電圧と入力電圧に互換性があるため、ポートはループバック時に機能します。


Linux
  1. Linux 用の仮想シリアル ポート

  2. Linux のシリアル ポートでデータを監視するにはどうすればよいですか?

  3. ピンを変更せずにLinuxでシリアルポートを開く方法は?

  1. Linux シリアルポートのリスナーとインタープリター?

  2. Linux の C でのシリアル ポートへの読み取りと書き込み

  3. TCP 経由で仮想シリアル ポート接続を作成する

  1. ルートなしでシリアルポートへの読み取り/書き込み?

  2. コンソールをシリアル ポートにリダイレクトする

  3. シリアルポートのボーレートを決定する方法は?