3.8. Adaptation de niveau¶
Une broche GPIO de la caméra fournit environ 3,3 V à l’état haut. Un périphérique de l’autre côté peut fonctionner en 5 V (anciens microcontrôleurs, nombreuses cartes de capteurs) ou en 1,8 V (capteurs plus récents, certains bus puce à puce). Relier les deux directement est parfois sûr et parfois destructeur ; l”adaptation de niveau est le circuit qui comble cet écart de manière fiable.
3.8.1. Pourquoi une commande directe en tension croisée peut endommager une broche¶
Le plot d’E/S de chaque puce possède une paire de diodes de protection intégrées : l’une de la broche vers la masse, l’autre de la broche vers le rail d’alimentation de la puce. Elles servent à absorber les décharges électrostatiques (ESD) – une brève impulsion à haute tension issue de l’électricité statique qui peut frapper une broche lors de la manipulation de la carte. Une personne ayant marché sur une moquette peut accumuler plusieurs kilovolts de charge statique ; toucher la mauvaise broche transfère cette charge à la puce en quelques nanosecondes. La diode de protection supérieure se polarise en direct et dérive l’impulsion en toute sécurité vers le rail d’alimentation avant qu’elle n’atteigne les transistors internes de la puce.
Lorsqu’un signal de 5 V est appliqué en continu à une broche 3,3 V qui n’est pas tolérante au 5 V, la diode de protection supérieure conduit en permanence. Les diodes sont dimensionnées pour de brèves impulsions ESD, pas pour un courant permanent ; le rail d’alimentation commence à dépasser 3,3 V, la diode chauffe, et soit la broche soit le régulateur de tension intégré finit par défaillir.
Les broches tolérantes au 5 V utilisent un étage d’entrée différent – la diode supérieure va vers un rail plus élevé ou est absente – de sorte qu’appliquer 5 V est sans danger. Le fait que les broches d’une carte soient tolérantes au 5 V varie d’une carte à l’autre ; consultez la référence rapide de l’OpenMV Cam.
L’autre direction pose son propre problème. Un GPIO 3,3 V à l’état haut produit environ 3,3 V sur le fil. Un récepteur 5 V qui exige 0.7 × Vcc pour reconnaître un état haut voit son seuil à 3,5 V ; 3,3 V peut être lu comme bas ou comme ambigu. Même sans dommage, le signal ne fonctionne pas de manière fiable.
Un adaptateur de niveau résout les deux directions.
3.8.2. Le N-MOSFET comme interrupteur¶
Les circuits ci-dessous utilisent un seul MOSFET à canal N. Il possède trois broches – la grille, le drain et la source – et se comporte comme un interrupteur commandé électriquement.
L’entrée de commande est la tension entre la grille et la source, notée Vgs (tension grille-source) :
Vgs = (gate voltage) - (source voltage)
Le MOSFET ne tient compte que de cette différence, et non de la tension absolue sur l’une ou l’autre broche prise isolément. Son comportement découle de Vgs :
Lorsque
Vgsdépasse la tension de seuil du MOSFET (typiquement autour de 1 V pour un composant petit signal à niveau logique), le transistor se met en conduction (on) et le courant circule librement du drain vers la source.Lorsque
Vgsest égale ou inférieure à 0, le transistor est bloqué (off) et presque aucun courant ne circule du drain vers la source.
Le chemin drain-source est le chemin de courant commuté ; Vgs ouvre ou ferme cet interrupteur.
Un N-MOSFET possède aussi une diode de substrat entre le drain et la source qui conduit lorsque le drain est tiré sous la source de plus de ~0,6 V environ. Cette diode est un effet secondaire de la fabrication ; l’adaptateur bidirectionnel ci-dessous l’utilise volontairement.
3.8.2.1. Règles de câblage¶
Un N-MOSFET n’est pas un composant à trois bornes symétrique. La diode de substrat pointe de la source (anode) vers le drain (cathode), et c’est Vgs qui commande le canal. Deux règles en découlent et doivent être respectées pour tout circuit d’interrupteur à N-MOSFET :
La source va vers la tension la plus basse ; le drain vers la plus haute. Avec le drain au rail le plus élevé, la diode de substrat est polarisée en inverse et ne fait rien. Inversez-les et la diode de substrat est polarisée en direct en permanence : le courant circule de la source désormais plus haute, à travers la diode de substrat, vers le drain désormais plus bas, quel que soit l’état de la grille. Le MOSFET cesse d’être un interrupteur – il fuit en continu, le signal ne peut plus être coupé, et le composant surchauffe et défaille souvent.
La grille est reliée au rail de tension de la source. Maintenir la grille au rail sur lequel repose la source au repos fait que
Vgs = 0à l’arrêt, bien en dessous du seuil ; le MOSFET reste fermement bloqué jusqu’à ce que quelque chose tire la grille au-dessus de la source (le circuit unidirectionnel ci-dessous) ou tire la source en dessous de la grille (le circuit bidirectionnel). Laissez la grille flotter ailleurs et l’état bloqué cesse d’être défini – le bruit, les fuites ou une capacité parasite peuvent faire dériverVgsau-dessus du seuil et déclencher le MOSFET de manière aléatoire.
Inverser l’une ou l’autre règle transforme l’adaptateur de niveau en un chemin fuyard et peu fiable. Les deux circuits d’adaptation ci-dessous respectent ces règles : la source du côté bas, le drain du côté haut, la grille reliée au rail de la source ou commandée depuis celui-ci.
3.8.3. Unidirectionnel 3,3 V → 5 V¶
L’adaptateur de niveau le plus simple pousse un signal unidirectionnel du GPIO de la caméra vers une entrée 5 V. Un seul N-MOSFET et deux résistances suffisent.
Un N-MOSFET adapte le niveau (et inverse) d’un signal 3,3 V vers une sortie 5 V.¶
Lorsque le GPIO est à l’état haut (3,3 V sur la grille), Vgs dépasse le seuil et le MOSFET conduit ; le drain est tiré à ~0 V. Lorsque le GPIO est à l’état bas (0 V sur la grille), le MOSFET est bloqué et la résistance de tirage de 10 kΩ amène le drain à 5 V.
La sortie est l”inverse de l’entrée. Le logiciel peut rétablir le signal (écrire 0 pour une « sortie 5 V à l’état haut »), ou enchaîner deux étages pour obtenir un signal non inversé au prix du double de composants.
3.8.4. Bidirectionnel avec un seul N-MOSFET¶
Pour une ligne qui doit pouvoir être commandée depuis l’un ou l’autre côté – un bus partagé où chaque extrémité peut tirer la ligne à l’état bas – le circuit standard est un seul N-MOSFET par ligne, avec une résistance de tirage vers l’alimentation de chaque côté.
Un seul N-MOSFET fait le pont entre une ligne 3,3 V et une ligne 5 V ; chaque côté a sa propre résistance de tirage.¶
La grille est reliée à l’alimentation 3,3 V, de sorte que le comportement du MOSFET dépend du côté qui commande :
Les deux côtés au repos. La source est à 3,3 V via la résistance de tirage de gauche ; la grille est à 3,3 V ;
Vgs = 0; le MOSFET est bloqué. Le côté 5 V flotte à 5 V via la résistance de tirage de droite. Les deux côtés lisent l’état haut.Le côté 3,3 V tire à l’état bas. La source descend à 0 V ;
Vgsdépasse le seuil ; le MOSFET conduit de la source vers le drain. Le côté 5 V est tiré à l’état bas à travers le transistor.Le côté 5 V tire à l’état bas. Le drain descend à 0 V ; la diode de substrat du MOSFET (du drain vers la source) se polarise en direct et conduit ; la source (côté 3,3 V) est tirée à environ 0,6 V.
Vgsdépasse alors le seuil et le MOSFET conduit pleinement, amenant les deux côtés à l’état bas.
Le BSS138 est le N-MOSFET standard pour ce schéma ; les N-MOSFET petit signal à niveau logique présentant des tensions de seuil de grille similaires se comportent tous de la même manière ici.