
Raspberry PI (Niveau 1) -
Le GPIO
Le RASPBERRY PI dispose d'un port d'entrées / sorties directement accessible par l'utilisateur.
Il est nommé GPIO : General Purpose Input Output.
De nombreuses ressources sur le sujet son disponibles sur Internet. Les informations de base, notamment celles qui vont nous servir, sont rappelées ici.
Le brochage du port GPIO - numérotation BCM
+3v3 | (01) |  | (02) | +5v |
GPIO-02 | (03) |  | (04) | +5v |
GPIO-03 | (05) |  | (06) | GND |
GPIO-04 | (07) |  | (08) | GPIO-14 |
GND | (09) |  | (10) | GPIO-15 |
GPIO-17 | (11) |  | (12) | GPIO-18 |
GPIO-27 | (13) |  | (14) | GND |
GPIO-22 | (15) |  | (16) | GPIO-23 |
+3v3 | (17) |  | (18) | GPIO-24 |
GPIO-10 | (19) |  | (20) | GND |
GPIO-09 | (21) |  | (22) | GPIO-25 |
GPIO-11 | (23) |  | (24) | GPIO-07 |
GND | (25) |  | (26) | GPIO-08 |
GPIO-00 (!) | (27) |  | (28) | GPIO-01 (!) |
GPIO-05 | (29) |  | (30) | GND |
GPIO-06 | (31) |  | (32) | GPIO-12 |
GPIO-13 | (33) |  | (34) | GND |
GPIO-19 | (35) |  | (36) | GPIO-16 |
GPIO-26 | (37) |  | (38) | GPIO-20 |
GND | (39) |  | (40) | GPIO-21 |
Sur les modèles que nous utiliserons (Pi2 et Pi3) le GPIO se présente sous la forme d'un connecteur de 40 broches (2 x 20)
Si l'OS istallé sur le RASPBERRY est RASPBIAN Desktop, l'info de brochage est disponible en tapant dans un terminal :
pinout
Cet outil est fourni avec la bibliothèque python GPIO Zero.
Considérations et contraintes électroniques
- Le GPIO est clairsemé de quelques broche à potentiel fixe : GND (référence très utile), +5v et +3v3
- Toutes les broches du port peuvent être configurées en entrée ou en sortie logique.
Au niveau logique bas elles seront à 0v et au niveau logique haut elles seront à 3v3 et non pas à 5v !
- Certaines broches ont une double fonction.
Non seulement elles peuvent être utlisées comme simple état logique d'entrèe ou de sortie mais elles sont matériellement adaptées pour réaliser une autre fonction :
- GPIO 12, 13, 18 et 19 : PWM matériel
- GPIO-10 (MOSI), GPIO-09 (MISO), GPIO-11 (SCLK), GPIO-08 (CE0), GPIO-07 (CE1) : liaison SPI 0
- GPIO-20 (MOSI), GPIO-19 (MISO), GPIO-21 (SCLK), GPIO-18 (CE0), GPIO-17 (CE1), GPIO-16 (CE2) : liaison SPI 1
- GPIO-02 (Data), GPIO-03 (Clock) : spécialisées bus I2C
- GPIO-00 (Data), GPIO-01 (Clock) : spécialisées pour liaison EEPROM I2C
- GPIO-14 (TX), GPIO-15 (RX) : spécialisée port série - RS 232
- Le courant maximal de sortie disponible sur une broche est de 16 mA. Mais il ne faut pas dépasser un total de 50 mA pour l'ensemble des broches.
- Une résistance (60 kΩ) de pull-up ou pull-down peut être logiciellement affectée aux broches programmées en entrée
- Toutes les entrées peuvent être source d'interruption
- On peut connaitre l'état global du port en tapant dans un terminal :
gpio readall
On observe, dans le résultat donné par cette commande, que le GPIO accepte différents modes de numérotation
selon la bibliothèque logicielle utilisée (BCM - BroadCom, wPi - wiring Pi, Physical).
Cela va compliquer légèrement notre première approche quand le moment sera venu de programmer.
Il faudra garder cette particularité à l'esprit et prendre nos disposistions.
Première structure connectée
Comme promis, on va commencer simplement en connectant une LED entre la broche GPIO-21 (pin 40 du connecteur) et la masse (pin 34 du connecteur)
et un bouton poussoir entre le GPIO-20 (pin 38 du connecteur) et la masse (pin 34 du connecteur).
Le schéma de principe est donné ci-dessous.
Attention, aucune soudure ne sera réalisée directement sur le connecteur, cela risquerait de l'endommager irréversiblement.
On utilisera un connecteur femelle intermédiaire pour réaliser la liaison.
Quelques points importants :
- La LED est un composant polarisé.
Comme une diode normale, elle autorise la circulation du courant uniquement dans le sens Anode-Cathode.
Il est donc important de choisir son sens d'implantation.
- La LED est incapable de limiter le courant qui la traverse. Il faut donc le limiter à l'aide d'un composant supplémentaire (souvent une résistance)
- Une résistance de 270 Ω permettra ici de limiter le courant à environ 5 mA
Les premier essais de configuration du GPIO seront basés sur cette simple structure.