Neu: Die KI-Firewall überwacht die gesamte Plattform und erklärt jeden Vorfall in einfachen Worten. So funktioniert es

Antwort: ttyAMA0, ttyS0, serial0: Welche soll mein Modbus-HAT auf einem Pi 3B+ verwenden?

Von English mit KI übersetzt ·

Emilys Hinweis ist ein Teil davon. Der Rest ist das UART-Durcheinander beim Pi 3, das alle erwischt.Der Pi 3/4/Zero W hat zwei UARTs. ttyAMA0 ist der PL011, der gute mit eigenem Takt. ttyS0 ist der Mini-UART, dessen Baudrate aus dem Takt des VPU-Kerns abgeleitet wird. Wenn sich der Kerntakt ändert, driftet die Baudrate, und genau dann bekommst du deine CRC-Fehler im Verhältnis eins zu fünf. Bei diesen Modellen ist der PL011 standardmäßig mit dem integrierten Bluetooth verbunden, und der GPIO-Header bekommt den Mini-UART. /dev/serial0 ist ein Alias, der immer auf denjenigen zeigt, der auf GPIO14/15 liegt.Je nach Konfiguration hast du also entweder mit dem Bluetooth-Chip oder mit dem Mini-UART gesprochen. Gib den PL011 dem Header zurück:

# /boot/firmware/config.txt (Bookworm)
enable_uart=1
dtoverlay=disable-bt

sudo systemctl disable hciuart
# und console=serial0,115200 aus /boot/firmware/cmdline.txt entfernen
sudo reboot

Öffne dann /dev/serial0 in deinem Skript, damit es auch bei einem Wechsel auf ein anderes Modell weiter funktioniert. Du verlierst das integrierte Bluetooth, was du in einer Zählerstand-Box aber nicht vermissen wirst.Falls du Bluetooth brauchst, wäre die andere Option core_freq=250, um den Takt für den Mini-UART festzusetzen, aber ich hätte lieber den PL011.

Ask me about 4–20 mA.
Akzeptierte Lösung♥ 1