Lorsque vous créez une application avec un microcontrôleur, vous souhaitez contrôler quelque chose à un moment ou à un autre. Il peut s'agir d'un dispositif nécessitant un faible courant, comme une LED, ou quelque chose demandant un peu plus de puissance, comme un moteur à courant continu. La plupart des débutants apprennent rapidement que les équipements tels que l'Arduino ou le Raspberry Pi ne peuvent pas commander directement de puissantes charges. Dans ce cas, un « pilote » est nécessaire, un circuit qui peut accepter le signal de commande du microcontrôleur mais qui a suffisamment de puissance pour commander la charge souhaitée. Les MOSFET sont parfaits dans de nombreux cas, acceptant une simple tension à leur entrée (grille) qui permet de contrôler un courant plus important via leurs broches drain-source. Cependant, il arrive que le MOSFET lui-même ait besoin d'un pilote. Passons rapidement en revue le rôle des MOSFET en tant que commutateurs en saturation avant d'explorer le fonctionnement des pilotes de MOSFET.

 
Fritzing - Motor controlled with MOSFET. Why do MOSFETs need drivers?
Un MOSFET permet aux cartes, comme une Arduino, de contrôler des charges importantes,
comme un moteur à courant continu.

MOSFET à canal n du côté du faible potentiel pour la commutation

 Les MOSFET, en particulier les MOSFET à mode d'amélioration, sont de deux types : à canal n et à canal p. Les MOSFET à canal n nécessitent une tension plus élevée sur leur grille que la tension sur la source pour s'allumer. La tension à laquelle cela se produit est la tension de seuil, Vth. Sortez n'importe quelle fiche technique de MOSFET à canal n et vous trouverez rapidement cette valeur. Par exemple, le Toshiba SSM3K56FS, un petit dispositif de commutation à grande vitesse, indique que la Vth se situe entre 0,4 V et 1,0 V lorsque la tension drain-source (VDS) est de 3,0 V et pour un courant de drain (ID) de 1 mA.    

De tels MOSFET peuvent être utilisés comme commutateurs du côté moins, c'est-à-dire qu'ils sont placés entre la charge et la masse du circuit dans une application simple de courant continu basse tension. Nous pouvons donc ainsi utiliser une broche de sortie Arduino de 5 V, connectée à la grille d'un SSM3K56FS, connecter la source à la masse et brancher un moteur entre une alimentation de 15 V et le drain du MOSFET. Une résistance (1 MΩ) entre la grille et la masse garantit que le MOSFET reste éteint si le signal de commande de l'Arduino se coupe.

Pour démontrer cela, le circuit a été simulé dans LTspice. V2 émule la sortie 5 V d'une broche E/S Arduino, tandis que R2 est utilisé comme charge à la place d'un moteur (nous ne tiendrons pas compte de la différence entre une charge résistive et inductive). V1 est l'alimentation de 15 V.   
 
Using a MOSFET as a low-side switch. Why do MOSFETs need drivers?
Utilisation d'un MOSFET comme commutateur côté faible potentiel - une simulation LTspice.

Les signaux montrent que le courant traversant le MOSFET est d'environ 720 mA lorsque 5 V est appliqué à la grille, ce qui est inférieur au maximum de 800 mA autorisé.
 
NMOS MOSFET Driver - Basic Plot
Avec un Arduino fournissant 5 V à la grille du MOSFET, le commutateur devient passant,
fournissant de l'énergie à la charge.

Il y a un autre point à prendre en compte lors de la lecture de la fiche technique. En se référant à nouveau au SSM3K56FS, le lecteur remarquera que la valeur de la résistance à l'enclenchement, RDS(ON), dépend de VGS. Par exemple, à une VGS de 1,5 V, RDS(ON) est de 840 mΩ, alors qu'à 4,5 V, elle n'est que de 235 mΩ. La différence est, il est vrai, minime. Lors du pilotage d'un moteur, il est peu probable que vous remarquiez une grande différence entre un Arduino pilotant la grille à 5 V et un Raspberry Pi qui la pilote à 3,3 V. 

Toutefois, si vous avez choisi le MOSFET en raison de sa faible résistance à l'état passant, il est important de se rappeler que celle-ci n'est obtenue qu'avec la tension de grille la plus élevée. Selon la fiche technique, la tension grille-source maximale admissible, GGSS, est de ±8 V, ce qui laisse une grande marge de manœuvre disponible. Ceci est important car de la puissance est perdue dans le MOSFET, et par conséquent la chaleur qu'il doit dissiper est plus élevée lorsque RDS(ON) est plus grand. 

La commutation côté moins présente également un léger inconvénient. Comme la résistance à l'enclenchement du MOSFET est du côté bas entre la charge et la masse, la charge (et la broche de drain du MOSFET) flotte légèrement au-dessus de la masse. Dans notre exemple, le drain se trouve à 0,126 V.
 
NMOS MOSFET Driver - MOSFET ON focus Plot
Comme le MOSFET est du côté bas, la charge n'est pas directement connectée à la masse du circuit.
Pour compléter l'analyse, notons que la puissance dissipée dans le MOSFET est d'environ 90 mW (715 mA à 0,126 V). Ce chiffre est largement inférieur aux 150 mW définis dans la fiche technique. Pour un moteur, cette élévation de la masse n'a que peu d'importance. Cependant, si vous souhaitez mesurer le courant traversant le moteur à l'aide d'une petite résistance, vous aurez besoin d'une mesure différentielle plutôt que d'une mesure par rapport à la masse.  

Si la charge est un système comme un Arduino, il y a un problème supplémentaire car la masse de l'Arduino ne sera plus la même que la masse du reste de l'application. En fait, elle variera en fonction de la charge. Par conséquent, il existe un risque de dysfonctionnement dû au fait que la masse de l'Arduino et celle des des autres circuits soient différentes.

De plus, comme la charge est connectée en permanence à l'alimentation, les électrons peuvent trouver leur chemin par d'autres voies, telles que les broches d'E/S, à travers le microcontrôleur jusqu'à la masse, même lorsque le MOSFET est éteint. Ainsi, l'Arduino peut encore avoir suffisamment de puissance pour être opérationnel. Dans le pire des cas, il peut se trouver dans un état « aléatoire » indéfini et effectuer toutes sortes d'actions étranges.

Dans ce cas, il convient d'envisager une commutation côté plus.

MOSFET à canal p pour la commutation côté plus

Si nous remplaçons le MOSFET à canal n par un canal p, nous pouvons placer la charge entre le MOSFET et la masse. La source du MOSFET est connectée à l'alimentation de la charge, et la charge est connectée au drain. Le composant complémentaire au MOSFET à canal n mentionné précédemment est le Toshiba SSM3J56MFV. Cependant, nous nous heurtons immédiatement à un problème. 
 
PMOS MOSFET Driver - CCT
Un MOSFET à canal p peut être utilisé du côté plus. Cependant, cela nécessite que la grille soit tirée vers le bas à partir de la tension d'alimentation, ce qui dépasse les limites des broches d'E/S de l'Arduino.

En regardant la fiche technique, nous remarquons que Vth est donnée entre -0,3 V et -1,0 V (pour VDS -3,0 V et ID -1 mA). Cela signifie que la grille doit être inférieure d'environ 1,0 V à la source pour commencer à s'allumer. Si l'on s'en tient à l'exemple précédent, qui utilise une alimentation de 15 V pour le moteur, la grille doit atteindre 14 V pour que le MOSFET commence à s'allumer. C'est évidemment un problème pour un Arduino ou un Raspberry Pi avec leurs broches d'E/S de 5 V et 3,3 V, ce qui signifie qu'un MOSFET ou un transistor supplémentaire est nécessaire pour tirer la grille vers la masse.   

Il y a également un autre problème. D'après les données fournies, la résistance à l'enclenchement à cette tension de grille est d'environ 4000 mΩ. Pour ramener la résistance à l'enclenchement à son niveau le plus bas de 390 mΩ, la tension de grille doit être de -4,5 V. Malgré cela, cela représente 155 mΩ de plus que le MOSFET complémentaire à canal n que nous avons vu précédemment, et met en évidence un autre problème des MOSFET à canal p - leur RDS(ON) plus élevée (par comparaison).     
En supposant que l'Arduino puisse décaler la tension de la grille de -5 V, le commutateur côté plus du canal p réagirait comme suit :
 
Pulling the gate to 5V below the supply turns on the switch
Le fait d'amener la grille à 5V en dessous de la tension d'alimentation active le commutateur, ce qui alimente la charge. La question est de savoir comment interfacer ce schéma avec un Arduino ou un Raspberry Pi.

En examinant le graphique en détail, on constate que, lorsqu'elle est activée, la tension de la source atteint 14,79 V, soit environ 0,21 V en dessous de l'alimentation de 15 V. Là encore, avec un flux d'environ 715 mA, cela signifie que le MOSFET dissipe 150 mW, juste à la limite du composant.

Ainsi, bien que les MOSFET à canal p soient plus faciles à fabriquer, les MOSFET à canal n offrent une résistance à l'enclenchement plus faible pour la même taille. Il est clair que, dans la mesure du possible, il est préférable d'utiliser un dispositif à canal n du côté plus.

Cependant, comme nous l'avons vu, pour allumer un MOSFET à canal n, il faut que la tension de la grille soit supérieure à celle de la source. Si nous plaçons le MOSFET à canal n du côté plus, la source et le drain ont presque la même tension lorsqu'il est allumé, de sorte que la grille devra être poussée à plusieurs volts au-dessus du niveau de l'alimentation du circuit.

Utilisation de pilotes avec des MOSFET à canal n comme commutateurs côté plus

C'est là qu'interviennent les pilotes de MOSFET. Ces petits dispositifs intelligents acceptent un signal de commande avec un faible voltage à leur entrée et le convertissent en tension nécessaire pour pousser la grille au-dessus du niveau de la broche source du MOSFET. La tension supérieure est générée à l'aide d'un circuit bootstrap qui utilise une pompe de charge pour élever la tension de grille plus haut que la tension de source utilisée dans l'application. Bien que cela ajoute un coût et une complexité supplémentaires à un circuit, les concepteurs bénéficient d'une gamme nettement plus complète de MOSFETs de puissance à canal n à faible résistance à l'enclenchement et capables de fournir un courant élevé.

Un excellent exemple de pilote MOSFET pour cette approche est le LTC7004 d'Analog Devices (anciennement Linear Technology). Ce composant à 10 broches, dont seulement neuf sont utilisées, ne nécessite qu'un condensateur en plus du MOSFET choisi pour fonctionner comme un commutateur. La broche d'entrée, INP, accepte les signaux d'entrée de niveau CMOS jusqu'à 15 V. Une alimentation entre 3,5 V et 15 V est également indispensable à la broche VCC. Avec un condensateur de 0,1µF placé entre la broche de bootstrap BST et la broche (côté plus) de source supérieure TS, le LTC7004 peut suivre la tension de source d'un MOSFET jusqu'à 60 V. Le dispositif génère une tension de grille de 12 V au-dessus de la tension de source. Il comprend également des verrouillages de surtension et de sous-tension pour assurer un fonctionnement correct.   
 
LTC7004 CCT: Why do MOSFETs need drivers?
Le LTC7004 permet à un microcontrôleur de piloter un MOSFET à canal n utilisé comme commutateur côté plus en générant la tension de contrôle nécessaire pour la grille.
En utilisant la broche d'E/S de 5 V d'un Arduino pour contrôler le circuit, vous pouvez voir comment le pilote du MOSFET monte rapidement la grille de 0 V à 24 V, 12 V au-dessus de l'alimentation de la charge.
 
LTC7004 - Gate and Source rise time
Un signal d'E/S de 5 V provenant d'un Arduino a pour effet de d'élever la grille du MOSFET à 12 V au-dessus de la tension d'alimentation de la charge. Cela garantit une mise en route rapide et franche de la charge.
Pour minimiser les pertes dans le MOSFET pendant la commutation, il est généralement préférable de commuter aussi rapidement que possible. C'est habituellement moins un problème dans les applications qui ne sont allumées et éteintes qu'occasionnellement, mais beaucoup plus critique dans les applications de commutation à grande vitesse telles que les convertisseurs de puissance (par exemple, un convertisseur buck). Le LTC7004 offre un temps de montée/descente minimum de 13 ns et des maximums de 90 ns (montée) et 40 ns (descente).

Un autre point à noter est le courant requis par la grille des MOSFETs conçus pour les applications de puissance. La capacité observée à la grille (appelée Ciss) pour l'Infineon IPB039N10N3 utilisé dans cet exemple peut être supérieure à 8400 pF. En zoomant sur le point de commutation, on constate que le courant de grille atteint un pic d'environ 3,2 A. Cela n'est pas inhabituel pour les MOSFET de puissance qui commutent rapidement, et c'est une autre raison pour laquelle un microcontrôleur seul n'est pas adapté à leur commutation, même dans les applications à faible tension.   
 
LTC7004 - Gate and Source rise time - gate current
Il n'est pas rare que les MOSFET de puissance nécessitent plusieurs ampères à leur grille lors de la commutation à grande vitesse.
Bien qu'il soit préférable d'allumer le MOSFET aussi franchement et aussi vite que possible, pour le faire passer rapidement de l'état hors tension à l'état sous tension avec la résistance la plus faible, cela peut également poser des problèmes dans certaines applications. Par exemple, si le MOSFET alimente une charge capacitive importante, le courant d'appel à la mise sous tension peut être significatif. Les drivers de MOSFET comme le LTC7400 fournissent deux broches pour contrôler la grille, une pour la mise sous tension (TGUP) et une pour la mise hors tension (TGDN). Cela permet de définir séparément les taux d'activation et de désactivation. L'ajout d'un petit circuit RC (100 kΩ/47 nF) à la sortie TGUP permet de ralentir la vitesse de mise en marche et de limiter le courant d'appel. Une résistance supplémentaire de 10 Ω permet de limiter les oscillations. Si la vitesse d'extinction doit être ajustée, une résistance peut être ajoutée au circuit TGDN.
 
LTC7004 CCT - slow. Why do MOSFETs need drivers?
Grâce à des broches d'activation et de désactivation séparées, la vitesse de commutation des fronts montants et descendants peut être contrôlée.
Le courant de pointe dans la charge capacitive est maintenant réduit à environ 180 mA et la tension au niveau de la charge augmente d'environ 2 V/ms.
 
LTC7004 - Gate and Source rise time - slow
La tension appliquée à la charge capacitive augmente maintenant d'environ 2 V/ms, limitant le courant d'appel à environ 180 mA.

Les pilotes de MOSFET simplifient la construction de commutateurs du côté plus

Les MOSFET de puissance sont idéaux pour contrôler des charges importantes, telles que des moteurs, à partir de plateformes basées sur des microcontrôleurs comme Arduino et Raspberry Pi. Toutefois, en raison de leur meilleure performance globale et de leur RDS(ON) plus faible, le choix des MOSFET à canal n est beaucoup plus large que celui des MOSFET à canal p.   

Si vous souhaitez placer le commutateur du côté plus de votre circuit de commande, la tension appliquée à la grille du MOSFET à canal n devra être plus élevée que la tension à la source. En plus, les MOSFET de puissance ont besoin d'un courant important à la grille pour passer rapidement de l'état éteint à leur résistance d'enclenchement la plus faible, ce qui est nécessaire pour minimiser la dissipation de puissance dans le MOSFET. Les pilotes de MOSFET, tels que le LTC7004, résolvent ce problème en générant la tension et le courant de grille nécessaires pour fournir une commutation franche et rapide en réponse au signal de commande fourni par la carte de développement à microcontrôleur choisie.

Faites-le vous-même : Code LTspice


Exemple de commutateur NMOS :
V1 N001 0 15V
R2 N001 drain 20.8R
XU1 drain gate 0 NMOS_SSM3K56FS
V2 gate 0 PULSE(0 5 100u 10n 10n 250u 500u 1)
R1 gate 0 1Meg
.tran 500us
.meas TRAN Vd-on MIN V(drain)
.lib Contrib/Toshiba/nmos/SSM3K56FS.lib
.backanno
.end

Exemple de commutateur PMOS :
V1 N001 0 15V
V2 N001 gate PULSE(0 5 100u 10n 10n 250u 500u 1)
R2 drain 0 20.8R
XU1 drain gate N001 PMOS_SSM3J56MFV
R1 N001 gate 1Meg
.tran 500us
.meas TRAN Vd-on MAX V(drain)
.lib Contrib/Toshiba/pmos/SSM3J56MFV.lib
.backanno
.end

Exemple de commutateur basique LTC7004 :
V1 N001 0 12
V2 inp 0 PULSE(0 5 100m 10n 10n 200m 1000m)
M1 supply gate source source IPB039N10N3
C1 source 0 100u Rser=7m
V3 supply 0 12V
C2 N002 source .1u
XU1 N001 0 0 inp 0 gate gate source N002 LTC7004
R1 source 0 2.5R
.model NMOS NMOS
.model PMOS PMOS
.lib C:\Users\<USER>\Documents\LTspiceXVII\lib\cmp\standard.mos
.tran 500m startup
.lib LTC7004.sub
.backanno
.end

Exemple de contrôle du temps de montée du LTC7004 :
V1 N002 0 12
V2 inp 0 PULSE(0 5 100m 10n 10n 200m 1000m)
M1 supply gate source source IPB039N10N3
C1 source 0 100u Rser=7m
V3 supply 0 12V
C2 N001 source .1u
XU1 N002 0 0 inp 0 gate N003 source N001 LTC7004
R1 source 0 2.5R
R2 gate N004 10R
C3 N004 0 47n
R3 gate N003 100k
.model NMOS NMOS
.model PMOS PMOS
.lib C:\Users\<USER>\Documents\LTspiceXVII\lib\cmp\standard.mos
.tran 500m startup
.lib LTC7004.sub
.backanno
.end


Traduction : Laurent RAUBER