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
となっているようだ。
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自体はデフォルトでシリアルコンソールを使用するようになっているので,ログインプロンプトが表示される。
新しくコメントをつける