51 lines
2.5 KiB
Markdown
51 lines
2.5 KiB
Markdown
|
# 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 :
|
||
|
```bash
|
||
|
sudo raspi-gpio get 14-15
|
||
|
```
|
||
|
Normalement le résultat devrait être le suivant :
|
||
|
![sudo raspi-gpio get 14-15](../assets/resultcmd0.png)
|
||
|
Si func n'est pas TXD/RXD alors entrez ces commandes :
|
||
|
```bash
|
||
|
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](https://blog.boochow.com/wp-content/uploads/rpi-gpio-table.png). 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 :
|
||
|
```bash
|
||
|
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 :
|
||
|
```bash
|
||
|
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 :
|
||
|
```bash
|
||
|
sudo reboot
|
||
|
```
|
||
|
|
||
|
Ensuite il ne reste plus qu'à tester ! à l'aide du programme [**minicom**](https://doc.ubuntu-fr.org/minicom) il est possible de tester simplement l'UART en rebouclant les GPIO comme ici :
|
||
|
![Raspberry Pi](../assets/raspberry_config.jpg)
|
||
|
|
||
|
Maintenant testons avec la commande
|
||
|
```bash
|
||
|
minicom -b 9600 -o -D /dev/ttyS0
|
||
|
```
|
||
|
|
||
|
![Raspberry Pi UART](../assets/raspberry_uart.jpg)
|