UART am Raspberry Pi: zusätzlicher Hardware-UART oder serielle Pi-Konsole

On this page

UART ist beim Raspberry Pi schnell belegt: durch eine Boot-Konsole, ein Mobilfunkmodem, einen Mikrocontroller oder das Gerät, das eigentlich entwickelt werden soll. Der BE-IIS-HPP-UART schafft hier eine klare Trennung. Er stellt zusätzliche Hardware-UARTs bereit und kann alternativ den UART des Raspberry Pi selbst auf die Serviceschnittstelle führen.

Aufbau

BE-IIS-HPP-UART im Raspberry-Pi-Aufbau

Der HAT ist für Entwicklungsaufbauten, Inbetriebnahme und die dauerhafte Anbindung serieller Geräte gedacht. Die Schnittstellen werden als Linux-Geräte mit stabilen Namen bereitgestellt. Damit bleiben Skripte und Anwendungen unabhängig davon, welche ttyS*- oder ttySC*-Nummer der Kernel im jeweiligen System vergibt.

Zwei Betriebsarten über die Instance-ID

Instance I, IV oder V – HAT++-Modus
Zusätzliche Hardware-UARTs stehen zur Verfügung.

Instance VI – Raspberry-Pi-Modus
Der HAT++-Teil ist deaktiviert; der UART des Raspberry Pi wird auf die Serviceschnittstelle geführt.

Instance-ID VI: Raspberry-Pi-Modus

Mit Instance-ID VI ist der HAT besonders praktisch für die Inbetriebnahme eines Raspberry Pi ohne Display und Netzwerk. Bootausgabe, Kernelmeldungen und Login-Konsole lassen sich direkt über die isolierte USB-C-Serviceschnittstelle erreichen.

Instance-ID I: HAT++-Modus

Mit Instance I, IV oder V ergänzt der HAT den Raspberry Pi um eigene UARTs. Der Pi-UART bleibt dabei für seine ursprüngliche Aufgabe verfügbar, während der HAT zum Beispiel ein Steuergerät, einen Sensor, ein Debug-Interface oder ein weiteres Embedded-System bedient.

Installation

Die Integration erfolgt über den BE-IIS-Installer. Er richtet die erforderlichen Device-Tree-Overlays, Treiber und Udev-Regeln ein.

$ git clone https://github.com/be-iis/be-iis-installer.git
$ cd be-iis-installer
$ ./scripts/install/install-all.sh
$ sudo reboot

Nach dem Neustart lassen sich die bereitgestellten UARTs prüfen:

$ ls -l /dev/beiis-uart-*

Ein Beispiel für Instance IV:

/dev/beiis-uart-iv-a -> ttySC0
/dev/beiis-uart-iv-b -> ttySC1

Die Namen enthalten die Instance-ID und den Kanal. Sie können direkt in Anwendungen, Tests und Skripten verwendet werden.

Zusätzlichen UART verwenden

Im HAT++-Modus wird der UART wie jede andere serielle Linux-Schnittstelle verwendet. Im folgenden Beispiel wird Kanal A von Instance I auf 115200 Baud eingestellt und eine Testmeldung ausgegeben:

$ sudo stty -F /dev/beiis-uart-i-a 115200 raw -echo -ixon -ixoff
$ printf 'BE-IIS-HPP-UART: Interface ready\r\n' | sudo tee /dev/beiis-uart-i-a

Die Gegenseite kann beispielsweise mit picocom verbunden werden:

$ picocom -b 115200 --flow n /dev/ttyACM0

Testausgabe über den zusätzlichen HAT++-UART

Der UART des HATs ist damit ein zusätzliches Werkzeug im Aufbau – ohne den Raspberry-Pi-UART umzubelegen oder auf USB-Seriell-Adapter ausweichen zu müssen.

UART des Raspberry Pi als Boot- und Login-Konsole

Mit Instance VI wird der UART des Raspberry Pi selbst genutzt. Für die Bootausgabe werden in /boot/firmware/config.txt folgende Zeilen ergänzt:

enable_uart=1
dtoverlay=uart0

In /boot/firmware/cmdline.txt wird zusätzlich die serielle Konsole aktiviert:

console=serial0,115200

Nach einem Neustart erscheinen die Bootmeldungen auf der Serviceschnittstelle. Eine serielle Login-Konsole kann anschließend wie gewohnt über serial-getty genutzt werden. Beim Raspberry Pi 5 muss Bluetooth dafür nicht deaktiviert werden; es verwendet einen separaten PL011-UART.

Boot- und Login-Konsole über den UART des Raspberry Pi

Fazit

Der BE-IIS-HPP-UART ist kein einfacher USB-zu-UART-Adapter. Er stellt zusätzliche Hardware-UARTs mit stabilen Linux-Gerätenamen bereit und bietet mit Instance VI zugleich einen sauberen Zugang zum UART des Raspberry Pi.

Damit eignet er sich für Debugging, serielle Geräteintegration, Prototypen und die Inbetriebnahme von Raspberry-Pi-Systemen im Labor und im professionellen Entwicklungsaufbau.

Vom Ingenieur für den Ingenieur.