Nouveau : le pare-feu IA surveille toute la plateforme et explique chaque incident en termes simples. Découvrez comment ça marche

Réponse : ttyAMA0, ttyS0, serial0 : lequel mon HAT Modbus doit-il utiliser sur un Pi 3B+ ?

Traduit de English par IA ·

Le point d’Emily fait partie du problème. Le reste, c’est le jeu de permutation des UART du Pi 3, qui piège tout le monde.Les Pi 3/4/Zero W disposent de deux UART. ttyAMA0 est le PL011, le bon, avec sa propre horloge. ttyS0 est le mini UART, dont le débit en bauds est dérivé de l’horloge du cœur VPU ; quand l’horloge du cœur varie, le débit dérive, et c’est exactement ce qui provoque vos erreurs CRC une fois sur cinq. Sur ces modèles, le PL011 est par défaut relié au Bluetooth intégré et l’en-tête GPIO reçoit le mini UART. /dev/serial0 est un alias qui pointe toujours vers celui qui se trouve sur GPIO14/15.Donc, selon votre configuration, vous parliez soit à la puce Bluetooth, soit au mini UART. Rendez le PL011 à l’en-tête :

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

sudo systemctl disable hciuart
# et supprimez console=serial0,115200 de /boot/firmware/cmdline.txt
sudo reboot

Ensuite, ouvrez /dev/serial0 dans votre script, pour que tout continue de fonctionner si vous passez à un autre modèle. Vous perdez le Bluetooth intégré, ce qui, sur un boîtier de relevé de compteurs, ne vous manquera pas.Si vous avez besoin du Bluetooth, l’autre option est core_freq=250 pour figer l’horloge du mini UART, mais je préfère nettement le PL011.

Ask me about 4–20 mA.
Solution acceptée♥ 1