Passer au contenu principal
  • esp32
  • logique 5 v
  • conversion de niveau
  • protection gpio
  • électronique

ESP32 tolérant au 5 V? Vérifiez d’abord le GPIO

The Boss Factory8 min de lecture

Un capteur, un module ou une sortie Arduino de 5 V peut sembler fonctionner parfaitement sur une carte de 3,3 V. Cela ne prouve pas que l’entrée est sécuritaire. La réponse honnête est qu’un GPIO est tolérant au 5 V uniquement lorsque sa fiche technique ou le schéma de la carte le précise; sinon, limitez la tension de la broche ou convertissez le niveau logique.

Que se passe-t-il lorsque le 5 V atteint un GPIO de 3,3 V

Sur une entrée typique de microcontrôleur de 3,3 V, la structure de protection comprend une diode entre l’entrée et le rail d’alimentation. Si l’entrée dépasse la tension d’alimentation de la puce d’environ la chute de tension d’une diode, cette diode conduit. Appliquer 5 V à une entrée de 3,3 V force donc un courant à passer par la diode de protection interne de la puce vers le rail d’alimentation.

Ce courant doit aller quelque part. Il peut faire monter le rail local de 3,3 V, alimenter d’autres circuits par l’alimentation, perturber le régulateur ou déclencher un comportement inattendu. La quantité dépend de l’impédance de la source, de toute résistance en série, du nombre de broches commandées, de la charge de la carte et des limites de courant d’injection spécifiées pour la puce.

La diode n’est pas un convertisseur 5 V intégré. Elle sert à gérer de brèves surtensions transitoires dans les limites spécifiées, et non à rendre sécuritaire une connexion logique incompatible en utilisation continue. Le tableau des valeurs maximales absolues de la puce concernée détermine cette décision. Une carte portant la mention 3,3 V ne constitue pas une exception générale.

Pourquoi la carte peut fonctionner pendant des semaines au début

Un GPIO exposé à 5 V ne tombe pas toujours en panne immédiatement. Si la source présente une résistance suffisante, le courant injecté peut être assez faible pour que le rail reste près de sa tension normale et que le micrologiciel continue de fonctionner. Cette réussite visible contribue à entretenir le mythe.

La contrainte électrique atteint tout de même une jonction et une structure d’entrée qui n’ont pas été conçues pour cette tension. Une injection répétée ou prolongée peut dégrader le composant sans produire de symptôme évident sur l’établi. Un appareil peut continuer de fonctionner après ce mauvais traitement, puis tomber en panne des semaines plus tard. Un démarrage intermittent, une broche qui renvoie une valeur incorrecte, un courant d’alimentation excessif ou une seule entrée hors service peuvent apparaître longtemps après la modification initiale du câblage.

Il n’existe aucun test utile permettant de prouver qu’une broche auparavant soumise à une contrainte excessive n’a subi aucun dommage. Si cette broche est importante, corrigez la tension dès maintenant plutôt que d’attendre une panne qui pourrait être difficile à reproduire.

Les correctifs peu coûteux qui fonctionnent vraiment

Pour un signal de 5 V à sens unique entrant dans une entrée de 3,3 V, un diviseur de tension à résistances est généralement notre premier choix. Deux résistances réduisent le signal avant qu’il atteigne le GPIO. Choisissez leur rapport à partir de la tension d’entrée maximale, puis vérifiez l’impédance de source résultante en fonction du courant de fuite de l’entrée, de la vitesse de commutation, de l’environnement de bruit et des limites VIH et VIL de la puce réceptrice.

Une vérification pratique de la conception ressemble à ceci :

  • Calculez la sortie du diviseur à la tension maximale de la source, et non à sa tension nominale.
  • Confirmez que la sortie reste sous la tension d’entrée maximale de la broche réceptrice.
  • Confirmez qu’une sortie logique haute reste au-dessus du minimum VIH de l’entrée réceptrice sous charge.
  • Gardez une résistance de diviseur assez faible pour obtenir la vitesse de front requise, mais pas au point de gaspiller un courant inutile.
  • Ajoutez un petit condensateur seulement après avoir vérifié les temps de montée et de descente RC qui en résultent.

Pour un bouton lent, un interrupteur de fin de course ou un signal d’état, des résistances peu coûteuses suffisent souvent. C’est la réponse qui évite une mise à niveau : un convertisseur dédié n’est pas automatiquement meilleur, et fabriquer une carte complexe pour convertir une seule entrée lente est généralement inutile.

Une résistance en série seule est différente. Elle limite le courant qui entre dans la diode interne, mais elle ne garantit pas que la tension du GPIO reste dans sa plage normale. Elle peut être acceptable uniquement lorsque la fiche technique autorise le courant d’injection et que le déplacement du rail qui en résulte est compris. Nous ne considérons pas une résistance choisie au hasard dans le fil de signal comme une conversion de niveau.

Pour les bus bidirectionnels, les fronts rapides ou les signaux qui doivent fonctionner avec des tensions d’alimentation variables, utilisez un circuit de conversion de niveau conçu pour cette direction et ce protocole. Pour un signal numérique à sens unique, un tampon doté d’une plage d’entrée et de sortie appropriée est souvent plus facile à évaluer qu’un convertisseur bidirectionnel.

Choisir une méthode selon le comportement du signal

MéthodeTension à la broche de 3,3 VChemin du courantDirection et vitessePrincipal mode de défaillance
Connexion directeEnviron la tension de la sourceDiode de protection interne si la source est au-dessus du railÀ sens unique, électriquement rapide, mais dangereuse à moins que la broche soit spécifiée pour cette tensionContrainte de la broche, injection dans le rail, dommages différés
Diviseur de tension à résistancesDéterminée par le rapport des résistancesCourant du diviseur, avec l’effet du courant de fuite sur le résultatÀ sens unique; convient aux signaux lents et de vitesse modérée après une vérification RCUne résistance élevée ralentit les fronts ou le bruit modifie le niveau logique
Résistance en sérieToujours près de la tension de la source avec une faible chargeCourant limité dans la diode de protection interneÀ sens unique; valide uniquement dans les limites de courant d’injectionLa broche reste en surtension ou le rail d’alimentation est perturbé
Convertisseur de niveau ou tampon dédiéDéfinie par l’alimentation réceptriceContrôlé par les étages d’entrée et de sortie du convertisseurÀ sens unique ou bidirectionnel, selon le composantMauvais choix de direction, de seuil, de vitesse ou de séquencement d’alimentation
Interface à drain ouvert avec une résistance de rappel de 3,3 VTirée vers 3,3 VCourant de rappel lorsqu’elle est activéePartagée ou bidirectionnelle pour les protocoles compatiblesLa source push-pull entre en conflit avec la résistance de rappel ou les fronts deviennent trop lents

La bonne ligne dépend du signal, et non du circuit qui semble le plus sophistiqué. Vérifiez si la source est push-pull ou à drain ouvert, si le signal est partagé, sa fréquence maximale, la longueur de son câble et si l’une ou l’autre carte peut être hors tension pendant que l’autre reste active.

Comment vérifier une entrée supposément tolérante au 5 V

Commencez par le marquage et le boîtier exacts de la puce, et non par le nom de la carte. Lisez les sections sur les caractéristiques électriques du GPIO et les valeurs maximales absolues. Cherchez une plage explicite de tension d’entrée au-dessus du rail d’alimentation, une note indiquant les broches tolérantes au 5 V et toute restriction qui s’applique uniquement lorsque la broche est utilisée pour un périphérique particulier.

Examinez ensuite le schéma de la carte. Une carte peut comprendre un diviseur, un tampon ou un convertisseur entre son connecteur et le microcontrôleur. Dans ce cas, la tension du connecteur et celle de la broche de la puce sont différentes. Une broche USB de 5 V, une broche VIN ou une entrée de régulateur ne dit rien non plus sur la capacité d’un GPIO à accepter 5 V.

Si la documentation n’accorde pas explicitement cette tolérance, considérez la broche comme une entrée de 3,3 V. Mesurez le signal à la broche située du côté du microcontrôleur, avec la carte alimentée dans toutes les combinaisons pouvant se produire dans le montage final. Cela permet de détecter les chemins d’alimentation parasite qu’une simple vérification de continuité ne révèle pas.

Questions fréquentes

Un GPIO d’ESP32 est-il tolérant au 5 V?

Ne le présumez pas. Les puces de la famille ESP32 et les variantes de cartes diffèrent, et certaines broches peuvent faire l’objet de restrictions particulières. La fiche technique de la puce exacte et le schéma de la carte doivent identifier une broche tolérante au 5 V ou un chemin de conversion de tension intégré à la carte. Sans cette preuve, utilisez une logique de 3,3 V.

Une résistance en série de 1 kΩ protège-t-elle une entrée de 3,3 V contre 5 V?

Elle limite le courant, mais la valeur de la résistance seule ne prouve pas que la configuration est sécuritaire. Calculez le courant dans la diode de protection, vérifiez les limites de courant d’injection de la puce et vérifiez de combien le rail d’alimentation monte. Un diviseur est le correctif peu coûteux le plus clair pour un signal normal à sens unique.

Ai-je besoin d’une conversion de niveau pour un signal à drain ouvert de 5 V?

Souvent, une résistance de rappel de 3,3 V peut remplacer celle de 5 V si les appareils partagent la masse et que le protocole le permet. Confirmez que l’appareil de 5 V reconnaît 3,3 V comme niveau haut et qu’aucun appareil ne commande activement la ligne à 5 V. Pour un bus dont les seuils ou les états d’alimentation sont incompatibles, utilisez un convertisseur approprié.

The Boss Factory réalise des travaux faits sur commande dans les domaines de l’électronique sur mesure et des systèmes intelligents, de la conception et du développement de produits et du développement de logiciels, de sites Web et d’applications par l’intermédiaire de /quote.

Services associés

Tous les services →

Vous avez un projet en tête?

Dites-nous ce que vous voulez faire fabriquer — nous répondons en 24 à 48 heures.

Demander une soumission

À lire aussi