Les périphériques des microcontrôleurs

Jusqu'à présent, je n'ai parlé que d'un modèle de transistor : le BS170, un MOSFET de type canal N.

Les MOSFETs canal N sont les plus courants et les plus faciles à mettre en oeuvre : à partir d'une tension de commande faible, ils agissent comme des interrupteurs entre la tension de référence (0 V) et le dispositif à commander, sans nécessiter de composant supplémentaire.

Il existe aussi des MOSFETs de type canal P, complémentaires des types N, dont je parle plus loin.

Si vous voulez approfondir la théorie, vous pouvez aller lire l'article sur les MOSFETs dans Wikipedia. Mais cela n'a rien d'une obligation, les composants fonctionneront quand même ! :)

Revenons au BS170 qui peut commander un courant jusqu'à 500 mA. Si vous avez besoin d'un courant supérieur, il vous faut choisir un autre composant.

Les principaux critères de choix sont l'intensité et la tension maximales. Il vous faut donc, en première approche, sélectionner quelques modèles dans le catalogue de votre fournisseur préféré, puis rentrer dans les détails en consultant leurs fiches de caractéristiques (datasheets en anglais). Il n'existe pas de datasheet en français, mais il n'y a pas besoin d'être un expert pour les lire.

Les caractéristiques à prendre en compte sont :

  • VDS : tension maximum d'alimentation entre la Source et le Drain.
  • VGS : tension maximum entre la Gate et la Source.
  • ID : intensité maximale supportée, il vaut mieux prévoir large !
  • IDSS : intensité consommée lorsque la Gate est fermée (0 V), c'est le courant de fuite lorsque l'interrupteur est ouvert, il faut qu'elle soit la plus basse possible.
  • RDS(on) : résistance de passage lorsque l'interrupteur est fermé.
    • Cette valeur est importante car elle n'est pas nulle, lorsque le transistor conduit, il va dissiper de la puissance sous forme de chaleur. Pour connaître cette puissance, en watts, on applique la formule P = RDS(on) * I * I.
    Toutes autres valeurs égales par ailleurs, il vaut mieux choisir la plus faible valeur possible pour cette caractéristique.
  • VGS(th) : tension de déclenchement de la Gate, plus elle est basse, meilleur c'est pour nos applications en faible tension.
D'autres caractéristiques sont à vérifier, qui concernent les temps de fermeture ou d'ouverture de la liaison Source/Drain (td(on) , tr, tf et td(off)), tant qu'elles sont exprimées en nanosecondes, c'est bon.

Bonne recherche dans les datasheets !
 
Nous avons vu que le MOSFET canal N conduit lorsqu'on applique une tension positive sur la broche G et qu'il agit comme un interrupteur polarisé sur le 0 V. Cela convient pour la plupart des cas, mais, quelquefois, il est nécessaire que le transistor conduise lorsque la tension de commande est inférieure à + V, par exemple pour interrompre une alimentation du côté positif ou pour commander un montage de pont en H.

Le composant permettant cela est le MOSFET canal P, qu'on appelle complémentaire du canal N. Lorsqu'on regarde sa datasheet, on constate que les tensions (et les intensités) sont exprimées avec des valeurs négatives. Avec ce transistor, la tension de référence (0 V) est mesurée à partir du pôle positif de l'alimentation. Lorsque cette tension de référence est appliquée à la Gate, le transistor est bloqué, pour qu'il conduise, il faut lui appliquer une tension inférieure à sa caractéristique -VGS(th). Le composant à commander sera branché entre le pôle négatif de l'alimentation (- V) d'un côté et au Drain du transistor de l'autre côté.

J'en vois dans le fond qui ont l'air de n'avoir pas tout compris bien ! :*)

Faisons un parallèle avec un MOSFET canal N, utilisé pour commander un moteur, le schéma est le suivant :

schema_mosfet_n_motor.jpg

Lorsqu'on applique une tension positive sur la broche G, le transistor conduit et le moteur reçoit du 0 V sur la borne reliée à la broche D. Comme l'autre borne est reliée au + V, le moteur tourne.

Voyons maintenant le schéma pour commander ce moteur avec un MOSFET canal P :

schema_mosfet_p_motor-1.jpg

Comme on peut le voir, tout est inversé par rapport au canal N : la source est branchée côté +0 V et le drain côté -5 V (à travers le moteur).

(À noter que j'ai écrit +0 V pour bien marquer que cette ligne est reliée au pôle positif de l'alimentation et donc le -5 V est relié au pôle négatif.)

Le transistor conduit lorsque la broche G reçoit une tension négative par rapport à la référence +0 V. Le moteur va alors recevoir du +0 V sur la borne reliée à la broche D et du -5 V sur l'autre, il va donc tourner !

À part les inversions des signes de polarité, les deux schémas sont très proches.

Par contre, les choses vont se compliquer lorsqu'on utilise un MOSFET canal P dans un circuit ayant deux alimentations de tensions différentes et dont les masses (pôles négatifs de l'alimentation) sont communes. Dans ce cas, la tension de commande risque de ne pas être assez proche du +0 V pour bloquer le transistor. Il est alors nécessaire d'ajouter une résistance dite de "pullup" qui va forcer le blocage en l'absence de signal de commande et un interrupteur, activé par la tension de commande, servant à envoyer le -V sur la broche G :

schema_mosfet_p_motor-2.jpg

Lorsque l'interrupteur S est ouvert, la résistance de pullup de 10 K envoie du +0 V sur la broche G et le transistor est bloqué.
Lorsque l'interrupteur S est fermé, il envoie du -V sur la broche G et le transistor conduit.

Plutôt que d'employer un interrupteur mécanique commandé par une tension, nous allons utiliser un petit MOSFET canal N, qui est tout indiqué pour cet emploi :

schema_mosfet_p_motor-3.jpg
 
Merci ¨JP, c'est superbement expliqué je pense avoir compris (c'est dire que ton exposé est pédagogique).
Je vais essayer de mettre en pratique ce type de montage pour "l'aiguillage" des commandes que je souhaite mettre en oeuvre.
 
Avant d'entrer dans le vif du sujet, je reviens sur le dernier schéma du MOSFET canal P pour indiquer les tensions sous une forme plus conventionnelle :

schema_mosfet_p_motor-4.jpg


Dans ce schéma, le petit MOSFET et la résistance agissent comme un pilote de MOSFET inverseur (MOSFET inverting driver) :

schema_driver-1.jpg

Le montage est dit "inverseur" car lorsqu'on applique une tension de 0 V sur l'entrée "in", on obtient une tension positive, égale à la "haute" tension, sur la sortie "out", de même qu'une tension positive sur l'entrée produit une tension de 0 V sur la sortie.

Ce montage peut être repris tel quel pour piloter un gros MOSFET canal N, comme dans le schéma ci-dessous :

schema_mosfet_n_motor-1.jpg

Mais pourquoi utiliser un pilote sur un MOSFET canal N, alors qu'il fonctionne déjà très bien en appliquant une tension de +5 V sur la broche G ?

Il y a plusieurs bonnes raisons pour faire cela :

  • On peut vouloir isoler électriquement notre précieux MCU de la haute tension utilisée par le dispositif à commander. S'il y a un problème, c'est le pilote qui claquera.
  • Tous les MOSFETs n'ont pas une tension VGS(th) aussi faible que +5 V, certains nécessitent une tension plus élevée.
  • Un petit MOSFET donne des temps de montée et descente de la tension de sortie bien nets, de l'ordre de quelques nanosecondes.
  • On peut vouloir commander simultanément un MOSFET canal P et un MOSFET canal N avec le même signal.
Toutes ces raisons (et d'autres tout aussi bonnes) font qu'il y a, sur le marché, environ un millier de références de pilotes MOSFET en circuits intégrés. L'intégration permet de produire des composants de faible taille, d'excellentes caractéristiques et de plus faible coût (pour le fabricant, pas forcément pour le client :)) que les composants qu'il remplace.

Parmi cette multitude, j'ai choisi de vous parler de la série des TC4426, TC4427 et TC4428, fabriqués par Microchip. D'abord parce que j'en ai un sous les yeux sur mon bureau, ensuite parce qu'ils ont une architecture relativement plus récente que certains autres modèles.

Le diagramme fonctionnel, extrait de la datasheet, est le suivant :

schema_tc4426.jpg

Nous y trouvons le MOSFET canal N en entrée, la résistance est remplacée par un générateur de courant constant, tout un tas de composants (il faut bien que les concepteurs justifient leurs salaires :)) et une sortie de type CMOS.

Il y a deux pilotes par boîtier. Le TC4426 a deux pilotes inverseurs, le TC4427 deux pilotes non inverseurs et le TC4428 un pilote inverseur et un pilote non inverseur.

En utilisant la moitié d'un circuit TC4426, le schéma du circuit MOSFET canal P devient le suivant :

schema_mosfet_p_motor-5.jpg

L'entrée "in 1" est celle qui reçoit la commande. Si l'entrée "in 2" n'est pas utilisée, il faut la relier à la masse.
 
Les commandes par MOSFETs que nous avons vues jusqu'à présent ne laissent passer le courant que dans un sens, dans le cas d'un moteur électrique, par exemple, je ne peux le faire tourner que dans un sens ou l'arrêter. Le montage que je propose maintenant permet d'inverser la tension au bornes de la charge.

En électromécanique, cela se réalise avec deux interrupteurs inverseurs suivant ce schéma :

H-bridge-sw1.jpg


Quand I1 est en bas et I2 en haut, le moteur tourne dans un sens, I1 en haut et I2 en bas, le moteur tourne dans l'autre sens, quand I1 et I2 sont tous les deux en haut ou tous les deux en bas, le moteur ne tourne pas.

Ce montage s'appelle un pont en H et des tonnes de littérature ont été écrites à son sujet.

Comme je veux faire un montage avec des MOSFETS, qui ne savent pas inverser les tensions, je modifie ce schéma électromécanique en utilisant des interrupteurs couplés mécaniquement, comme ceci :

H-bridge-sw2.jpg


Pour obtenir ce genre de montage en électronique, nous allons utiliser, dans chaque branche du H, un MOSFET canal N et un MOSFET canal P. Leur entrées G seront reliées ensemble et leurs sorties D aussi, suivant ce schéma :

Half-bridge-sw.jpg


Lorsque l'interrupteur S est ouvert, la broche G du MOSFET canal P reçoit du +12 V (+0 V dans sa logique), via la résistance de 10 K et le transistor est bloqué (il ne conduit pas), la broche G du MOSFET canal N reçoit aussi du +12 V et le transistor conduit, nous trouvons donc du 0 V sur la sortie "out".
Lorsque l'interrupteur S est fermé, la broche G du MOSFET canal P reçoit du 0 V (-12 V dans sa logique) et le transistor conduit, la broche G du MOSFET canal N reçoit aussi du 0 V et le transistor est bloqué, nous trouvons donc du +12 V sur la sortie "out".

Bien évidemment, nous n'allons pas utiliser un interrupteur mécaniqe, mais un petit MOSFET, comme dans les exemples précédents :

Half-bridge-mosfet.jpg


Le schéma complet, avec les petits MOSFETs et les résistances est le suivant :

H-bridge-mosfet.jpg


Lorsque l'entrée "in 1" reçoit du +5 V et l'entrée "in 2" du 0 V, le moteur tourne dans un sens, quand on inverse ces tensions sur les deux entrées, le moteur tourne dans l'autre sens.

Lorsque les deux entrées reçoivent les même tensions, les deux bornes du moteur sont mises en court circuit et, s'il tournait, il est freiné.

Pour terminer, voici le schéma utilisant le pilote de MOSFETs TC4426, permettant de s'affranchir des petits MOSFETs et des résistances :

H-bridge-mosfet-tc4426.jpg


Avec un boîtier huit broches et quatre MOSFETs, il va être difficile de faire plus dépouillé !
 
Haut