序文
最近、CM4 を使用する場合、I2C と複数の UART が使用されました。
同時に、ポート マッピングの構成にはいくつかの問題があります。
ここでは記録に焦点を当てましょう。
1. Raspberry Pi で I2C および UART シリアル ポート ログインを有効にする
コマンドsudo raspi-config
を入力して次のインターフェイスにジャンプします。この列を
選択し、ボタンを押して上下に切り替え、Enter キーを押して選択します。Interface Options
↑↓
I2C オプションを選択し、Yes
これを選択して I2C 機能をオンにします。
再度同様に選択しSerial Port
、「はい」を選択します。
このオプションを使用すると、シリアル ポート ログインである UART を介してシェル情報を出力できます。
他の機能も有効になっているので、自分で調べることができます。
最後に、左と右↔
を選択して<Back>
最初のインターフェイスに戻り、もう一度選択します<Finish>
。
ここに 1 つあります坑点
。シリアル ポート ログインが有効な場合、この uart1 を使用する必要があり、RX1 ピンを介して受信されるデータが異常になる可能性があります。
したがって、このシリアル ポート 1 のピンを使用する必要がある場合は、シリアル ポートのログインを閉じる必要があります。
最後に、再起動するだけです。
ログインすると、ls /dev
次のようなレンダリングが表示され、i2c 関連のインターフェイスが表示されます。このシリアル ポートが ttyS0 にマッピングされている
ことがわかります。ls -l /dev
2. 複数のシリアルポートを有効にする
シリアル ポートを使用する場合は、複数のシリアル ポートを使用できますが、複数のシリアル ポートが必要な場合は、この時点で他のシリアル ポートを開く必要があります。
CM4 はデフォルトで UART0 のみをオンにします。先ほど書き込んだ UART シリアル ポート ログインにより、実際にはシリアル ポート 1 がオンになります。
ただし、ここでは uart0 と uart1 が同じピンのペアを使用していることがわかります。uart1 を使用する場合、デフォルトのピン構成が 14 ピンと 15 ピンである場合は、上記の raspi-config に従ってそれをオンにする必要があります。
Raspberry Pi CM4 は、内蔵 Bluetooth およびコンソール通信用の UART0 シリアル ポートにデフォルトで GPIO14 ピンと GPIO15 ピンを使用します。デフォルト設定では、コンソールはこのシリアル ポートを介して Raspberry Pi と通信し、シリアル ポートを介して Raspberry Pi に接続し、起動ログやコマンド ライン出力などを出力できます。
/boot/config.txt
複数のシリアル ポートを開くには、これを追加するだけですdtoverlay=uartx
。x はシリアル ポートに対応する番号です。
たとえば、uart3 を有効にしたい場合は、それを config.txt ファイルの最後の行に追加するだけですdtoverlay=uart3
。
設定が完了したら再起動するだけです。
構成が完了すると、ls /dev
もう 1 つあることがわかりますttyAMA1
。
ここで注意すべき点の 1 つは、CM4 はデフォルトで uart0 と uart1 を有効にしますが、それらはそれぞれ ttyAMA0 と ttyS0 に対応するということです。すべての uart をオンにすると、uart2 は ttyAMA1 に対応し、uart3 は ttyAMA2 に対応し、以下同様になります。
ただし、ここでは uart3 を設定していますが、ls コマンドを使用すると、マッピングされたポートが ttyAMA1 であることがわかります。これは、ttyAMAx のマッピングが実際には順番に割り当てられていることを示しています。つまり、uart0 と 1 を有効にすると、uart2 ではなく uart3、4、5 などの場合は、ttyAMAx が次にマッピングされます。ttyAMA1 の代わりに uart2 のマッピングを修正しました。
要約:
このブログでは主に日常使用でよく遭遇する設定関連の問題について、忘れないように記録しておきます。