2.5 KiB
Initialisation de l'UART avec un Raspberry Pi
Yohan Boujon
Pour tester l'intégration de l'UART j'ai décidé de me focaliser uniquement sur l'UART 1 du STM32. Afin de simplifier la programmation côté microcontrôleur, et aussi d'apprendre plus sur mon Raspberry Pi ce choix était plus complaisant.
Configuration du Raspberry Pi
La première chose est de vérifier si les pins pour la communication UART sont dans le bon mode. Pour se faire il suffit de lancer la commande :
sudo raspi-gpio get 14-15
Normalement le résultat devrait être le suivant : Si func n'est pas TXD/RXD alors entrez ces commandes :
sudo raspi-gpio set 15 a5
sudo raspi-gpio set 14 a5
Pour rappel, le terme après 15/14 détermine l'alternative function, plus d'informations peuvent être trouvées ici Détail sur les différentes ALT. Pour vérifier si vous voulez UART1 ou UART 0, avec la commande ls -l /dev
il est possible de voir le lien symbolique réalisé entre votre serialX et la pin réelle de votre pi. Choisissez celle que vous voulez, mais si vous avez besoin du bluetooth, ttyS0 est la liaison serie recommandée. (Dans notre cas elle est reliée à l'UART1)
Pour finalement activer du côté hardware l'UART, il faut entrer la commande suivante :
sudo raspi-config
Après cela une fenêtre bleue avec divers paramètres sont disponible. Ce qui nous intéresse c'est donc d'activer le port UART, soit : 3 Interface Option > I6 Serial Port > No > Yes Il faut ensuite vérifier que le fichier de configuration accepte bien l'UART, soit :
sudo nano /boot/config.txt
et entrez les paramètres suivants en fin de ligne :
enable_uart=1
dtoverlay=disable-bt
dtoverlay=uart1,txd1_pin=14,rxd1_pin=15
Le premier active l'UART, le second désactive le bluetooth (peut poser des problèmes sur l'UART 1 ou 0, dépendant des cas) et enfin le dernier active le txd/rxd 0/1 pour une certaine pin. Faites CTRL+X , 'y' et rebootez votre Raspberry :
sudo reboot
Ensuite il ne reste plus qu'à tester ! à l'aide du programme minicom il est possible de tester simplement l'UART en rebouclant les GPIO comme ici :
Maintenant testons avec la commande
minicom -b 9600 -o -D /dev/ttyS0