Les entrées/sorties GPIO sur ESP32
publication: 31 mars 2022 / mis à jour 31 mars 2022
Appel à collaboration
Vous développez des montages, simples ou complexes avec ESP32 et ESP32forth.
Partagez-les ici sur ce site.
ESP32forth ne pourra se développer qu'avec la collaboration active de toutes les bonnes volontés.
Vos montages peuvent aider d'autres développeurs.
Les montages des autres développeurs peuvent vous aider.
Pour proposer un article ou un montage, cliquez ici
Introduction
Voici, en photo, la carte ESP32 à partir de laquelle nous allons expliquer le rôle des différentes entrées/sorties GPIO:
La position et le nombre des E/S GPIO peut changer en fonction des marques de cartes. Si c'est le cas, seules les indications figurant sur la carte physique font foi. Sur la photo, rangée du bas, de gauche à droite: CLK, SD0, SD1, G15, G2, G0, G4, G16.....G22, G23, GND.
Voici le schéma des E/S se rapprochant le plus de notre carte en photo:
Sur ce schéma, on voit que la rangée basse commence par 3V3 alors que sur la photo, cette E/S est à la fin de la rangée supérieure. Il est donc très important de ne pas se fier au schéma et de contrôler plutôt deux fois le bon branchement des périphériques et composants sur la carte ESP32 physique.
Attention à certaines E/S GPIO de la carte ESP32
Les cartes de développement basées sur un ESP32 possèdent en général 33 broches hormis celles pour l’alimentation. Certains pins GPIO ont des fonctionnements un peu particuliers:
GPIO | possible names |
---|---|
6 | SCK/CLK |
7 | SCK/CLK |
8 | SDO/SD0 |
9 | SDI/SD1 |
10 | SHD/SD2 |
11 | CSC/CMD |
Si votre carte ESP32 possède les E/S GPIO6, GPIO7, GPIO8, GPIO9, GPIO10, GPIO11, il ne faut surtout pas les utiliser car ils sont reliés à la mémoire flash de l’ESP32. Si vous les utilisez l’ESP32 ne fonctionnera pas.
Les E/S GPIO1(TX0) et GPIO3(RX0) sont utilisés pour communiquer avec l’ordinateur en UART via le port USB. Si vous les utilisez, vous ne pourrez plus communiquer avec la carte.
Les E/S GPIO36(VP), GPIO39(VN), GPIO34, GPIO35 peuvent être utilisés uniquement en entrée. Ils n’ont pas non plus de résistances pullup et pulldown internes intégrées.
La borne EN permet de controler l’état d’allumage de l’ESP32 via un fil extérieur. Il est relié au bouton EN de la carte. Lorsque l’ESP32 est allumé, il est à 3.3V. Si on relie ce pin à la masse, l’ESP32 est éteint. On peut l’utiliser lorsque l’ESP32 est dans un boiter et que l’on veut pouvoir l’allumer/l’eteindre avec un interrupteur.
Toutes les E/S GPIO de la carte ESP32
Récapitulatif des I/O possibles pour les pins de la carte ESP32:
GPIO | Entrée | Sortie | Commentaire |
---|---|---|---|
0 | OUI (Pullup interne) | OUI | Doit être à 0V pendant le FLASH |
1 (TX0) | NON | OUI | Communication UART avec le PC |
2 | OUI (Pulldown interne) | OUI | Doit être à 0V pendant le FLASH |
3 (RX0) | OUI | NON | Communication UART avec le PC |
4 | OUI | OUI | |
5 | OUI | OUI | |
6 | NON | NON | Connecté à la flash interne |
7 | NON | NON | Connecté à la flash interne |
8 | NON | NON | Connecté à la flash interne |
9 | NON | NON | Connecté à la flash interne |
10 | NON | NON | Connecté à la flash interne |
11 | NON | NON | Connecté à la flash interne |
12 (MTDI) | OUI (Pulldown interne) | OUI | Doit être à 0V pendant le BOOT |
13 | OUI | OUI | |
14 | OUI | OUI | |
15 (MTDO) | OUI (Pullup interne) | OUI | Startup log si à 3.3V |
16 | OUI | OUI | Pas dispo sur les WROVER |
17 | OUI | OUI | Pas dispo sur les WROVER |
18 | OUI | OUI | |
19 | OUI | OUI | |
21 | OUI | OUI | |
22 | OUI | OUI | |
23 | OUI | OUI | |
25 | OUI | OUI | |
26 | OUI | OUI | |
27 | OUI | OUI | |
32 | OUI | OUI | |
33 | OUI | OUI | |
34 | OUI | NON | Pas de pullup/pulldown interne |
35 | OUI | NON | Pas de pullup/pulldown interne |
36 (VP) | OUI | NON | Pas de pullup/pulldown interne |
39 (VN) | OUI | NON | Pas de pullup/pulldown interne |
EN | NON | NON | Relié au bouton EN (ESP32 Reset) |
Périphériques de l’ESP32
Pour interagir avec les modules, capteurs ou circuits électroniques, l’ESP32 comme tout micro-contrôleur possède une multitude de périphériques. Ils sont plus nombreux que sur une carte Arduino classique.
ESP32 dispose les périphériques suivants:
- 3 interfaces UART
- 2 interfaces I2C
- 3 interfaces SPI
- 16 sorties PWM
- 10 capteurs capacitifs
- 18 entrées analogiques (ADC)
- 2 sorties DAC
Certains périphériques sont déjà utilisés par ESP32 lors de son fonctionnement basique. Il y a donc moins d'interfaces possibles pour chaque périphérique.
Legal: site web personnel sans commerce / personal site without seling