Pi4のシリアルポート anchor.png

Raspberry Pi 4では,4個のUART2,UART3,UART4,UART5が追加されている。
Device Treeで読み込むと,デバイス名は/dev/ttyAMA1,/dev/ttyAMA2,/dev/ttyAMA3,/dev/ttyAMA4として利用可能になる。

/boot/config.txtに次のように行を追加すれば,UART2が使用できるようになる。

dtoverlay=uart2

フロー制御も使う場合は,

dtoverlay=uart2,ctsrts

のようにする。

この場合,デバイスにアクセスするには/dev/ttyAMA1を使用する。

どのピンにアサインされるかは,

$ dtoverlay -h uart2
Name:   uart2

Info:   Enable uart 2 on GPIOs 0-3

Usage:  dtoverlay=uart2,<param>

Params: ctsrts                  Enable CTS/RTS on GPIOs 2-3 (default off)

でわかる。

GPIO拡張ピンのすべてのファンクションは,

$ raspi-gpio funcs

で,調べられる。

使用するpinは,

uart2は,GPIO 0-3
uart3は,GPIO 4-7
uart4は,GPIO 8-11
uart5は,GPIO 12-15

となっているようだ。

Page Top

シリアルコンソールを使う anchor.png

Raspberry Pi 4では,Raspbian Busterをインストール直後はシリアルコンソールが動作していない。

使用するには,/boot/config.txtに以下を追加する。(もしくは,raspi-configで設定する)

enable_uart=1

Pi3でこの設定をするとボーレートジェネレータの元クロックのGPUコアクロックを250MHz固定になっていたが,Pi4だとGPUコアクロックは500MHz固定になっている。
ちなみに,

enable_uart=0

にすると,GPUコアクロック固定ではなくなり250MHz-500MHzになる。

また,カーネルのブート情報がデフォルトではシリアルコンソールでは表示されない。
/boot/cmdline.txtでのカーネルパラメーターは,

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=0f21bc49-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles

のようになっている。
よく見ると,plymouth.ignore-serial-consoles ってなっていてplymouthが組み込まれているんだ。ディスプレーを接続してブートしたことがなかったから気づかなかった。

なので,

quiet splash plymouth.ignore-serial-consoles

をcmdline.txtから削除すれば,ブート情報が表示される。

tty自体はデフォルトでシリアルコンソールを使用するようになっているので,ログインプロンプトが表示される。


新しくコメントをつける

題名
ゲスト名
投稿本文
より詳細なコメント入力フォームへ

トップ   凍結 差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 6040, today: 4, yesterday: 1
最終更新: 2020-12-26 (土) 16:08:10 (JST) (1188d) by yuji