Passer au contenu principal

Alimenter depuis des GPIO ?

IOH (Courant de Sortie Elevée)

Il n'est pas recommandé d'alimenter directement des composants depuis les GPIO.
Mais parfois cela peut être utile (si on veut les éteindre et les allumer depuis un GPIO)

Si on regarde le datasheet de l'ESP32.
On peut retrouver le IOH sur le datasheet de l'ESP32.

L'IOH, ou "Courant de Sortie Élevé" (Output High Current) fait référence au courant maximal qu'une broche de sortie d'un microcontrôleur peut fournir lorsqu'elle est dans un état logique élevé ("High" ou "1").

Il y a trois valeurs qui corresponds à des broches différentes

VDD3P3_CPU 40ma : 5 - 18 - 23 - 19 - 18 - 23 - 19 - 22 - 3 - 1 - 21
VDD3P3_RTC 40ma : 36 - 37 - 38 - 39 - 34 - 35 - 32 - 33 - 25 - 26 - 27 - 14 - 12 - 13 - 15 - 2 - 0 - 4
VDD_SDIO 20ma : 16 - 17 - 9 - 10 - 11 - 6 - 7 - 8

En résumé en théorie on peut tirer 40mA, mais il vaut mieux éviter de dépasser les 20mA

La somme des intensités utilisés (mA) ne peut pas dépasser la capacité du 3V3 (dépends de l'alimentation / régulateur de tension / consommation autres composants sur la carte) est théoriquement on peut aller jusqu'à 1.2A.

Ex BME280

Imaginons que l'on veut avoir un capteur "météo" et l'éteindre facilement quand on met l'ESP32 en veille (à savoir que le BME280 peut être mis en veille depuis l'I2C aussi)

On check le datasheet

image.png

Grosso modo quand il fait une mesure , il consomme 1.4mA max (en standby on est à 0.5µA max et en veille 0.3µA max)

Composants > 40mA / 3.3v

Si on veut contrôler des composants avec une intensité ou une tension plus élevée
Alors il nous faut soit un transistor mosfet / relai

image.png

Mots clefs: mosfet arduino

image.png

Mots clefs: relay 3.3v arduino

Attention aux strapping pins!

Certains broches font des trucs au démarrage, ils vaut mieux les éviter:

Lors du boot de l’ESP32, pendant un cours laps de temps, certains pins changent rapidement d’états logiques (0V → 3.3V). Il se peut que vous ayez des bugs bizarres avec ces pins : par exemple un relais qui s’active temporairement . Les pins fautifs sont les suivants:

  • GPIO 1 : Envoi les logs du boot de l’ESP32 via l’UART

  • GPIO 3 : Tension de 3.3V lors du boot

  • GPIO 5 : Envoie un signal PWM lors du boot

  • GPIO 14 : Envoie un signal PWM lors du boot

  • GPIO 15 : Envoi les logs du boot de l’ESP32 via l’UART


ESP32 Pinout: Comprendre les pins GPIO de l'ESP32 (schéma broches) (upesy.fr)

Liens