Raspberry Piでシリアル通信する方法(通信設定・通信確認)
Raspberry Pi 4 と Raspberry Pi Zero W をシリアル(UART)で通信させた時に、少しだけ手こずったのでメモしておきます。
1. sudo raspi-config でシリアル通信を有効化
まずは以下コマンドを実施します。
$ sudo raspi-config
次に “3 Interface Options” を選択してEnter
次に “P6 Serial Port 〜” を選択してEnter
次に、”Would you like a login shell to be accessible over serial?” では <いいえ> を選択してEnter。
(ここで<はい>とするとShellコンソールとして使用できるとの事)
次に、”Would you like the serial port hardware to be enabled?” では <はい> を選択してEnter
次に以下のように表示されるので、 <了解> で Enter
<Finish> でコンソールに戻り、設定が変わっていればrebootを求められるのでrebootする。
2. miniUARTではなく普通のUARTが使えるようにする
Raspberry Pi には機能制限版のminiUARTと通常のUARTが存在し、デフォルトではminiUARTがピンに割り当てられている模様。
// ttyS0 : miniUART(機能制限版UART) // ttyAMA0 : 普通のUART $ ls /dev -l ... ... serial0 -> ttyS0 serial1 -> ttyAMA0 ... ... ... // serial0がGPIOピンに割り付けられる。 // その為、上記状態では ttyS0(miniUART) が使用される。
なので、 /boot/config.txt を編集して、通常のUART(ttyAMA0)が使えるようにする。
$ sudo nano /boot/config.txt # ... 最下部に追加 dtoverlay=miniuart-bt core_freq=250
保存・reboot後、再度 “ls /dev -l” を実施し、serial0 -> ttyAMA0 となっていることを確認する。
ちなみにminiUARTも特に問題なく使えるが、以下の機能が使用できない。
3. 配線する
6pinのGND, 8pinのTx, 10pinのRx を使用します。(ピン割当はRaspberry Pi 4 とzero w で同じ)
今回はRaspberry Pi 同士で通信するので、TxとRxはクロスさせます。(TxはRxに、RxはTxに接続)
4. minicomで通信確認
通信確認にはminicomを使用します。
$ sudo apt install minicom // -bでボーレート指定 // -Dで通信ポート指定 $ minicom -b 115200 -o -D /dev/ttyAMA0 minicom へようこそ 2.7.1 オプション: I18n コンパイルされた日時は: Aug 13 2017, 15:25:34. ポート /dev/ttyAMA0, 19:41:12 // この画面でキーを押下すると送信されます。 // また受信データもこの画面に表示されます。 // // Ctrl+Aキー押下後、Qキー押下で終了 // Ctrl+Aキー押下後、Oキー押下で通信設定 // Ctrl+Aキー押下後、Zキー押下で各種操作
コメント
コメントを投稿