Étude de cas Rose 2010 PWM ET PONTS EN H Romain Bichet, Julie Estivie, Etienne Molto et Flavia Tovo 1 Rose 2010 PWM et ponts en H Table des matières 1 PWM 1.1 Principe général . . . . . . . . . . 1.1.1 Intérêt . . . . . . . . . . . . 1.1.2 Application . . . . . . . . . 1.1.3 Principe de fonctionnement 1.2 Application aux STM32 . . . . . . 2 Les 2.1 2.2 2.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 3 3 5 ponts en H Pour quoi l’utiliser ? . . . . . . . . . . . Comment le pont en H fonctionne-t-il ? . Fonctionnalités additionnelles . . . . . . 2.3.1 Ajout de diodes de roue libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6 6 7 7 la PWM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 8 9 9 3 Pilotage d’un pont en H à l’aide 3.1 Locked antiphase . . . . . . . . 3.2 Introduction de dead-time . . . 3.3 Sign magnitude . . . . . . . . . 3.4 Phase correct . . . . . . . . . . Le 30 mars 2010 de . . . . . . . . . . . . . . . . . . 2 Rose 2010 1 PWM et ponts en H PWM La modulation de largeur d’impulsion (Pulse Width Modulation en anglais) est une méthode permettant de générer des signaux analogiques continus à l’aide de systèmes en fonctionnement tout ou rien. 1.1 1.1.1 Principe général Intérêt L’intérêt du PWM est de pouvoir générer un signal continu à partir d’un système fonctionnant en tout ou rien. Le principe est d’utiliser le filtre passebas naturel des systèmes (par exemple la persistance rétinienne de l’oeil humain, l’inertie d’un moteur). Ainsi, à partir d’une succession d’états discrets pendant un temps T, on peut obtenir une valeur continue moyenne pendant ce temps T. 1.1.2 Application 1er exemple : la led On veut modifier la luminosité d’une led. Sur une période T, on la branche 50% du temps à VCC et 50% du temps à la masse. Si la période T est suffisamment petite (ici, on doit avoir T h50ms ), l’observateur n’aura pas l’impression que le led s’allume et s’éteint, mais que globalement, elle éclaire moins que si elle était tout le temps branchée à VCC. Ainsi, avec une led tricolore rouge-vert-bleu on pourra générer n’importe quelle couleur en jouant sur l’intensité de chaque led. Figure 1 – Schéma électrique d’une led 2ème exemple : le moteur Pour contrôler la vitesse de rotation d’un moteur, on peut utiliser un PWM. 1.1.3 Principe de fonctionnement Deux données sont importantes lorsqu’on veut faire du PWM : la période T et le duty cycle d. Le duty cycle est le rapport du temps t pendant lequel le système est à l’état haut sur la période. On a : d = Tt . Ainsi, si l’on a un système qui peut générer un signal à 0 et un signal à VCC, pour générer un signal continu constant à V CC 5 , on prendra un duty cycle égal à 0,20. Il faut bien sûr veiller à prendre une période suffisamment courte pour que la fréquence Le 30 mars 2010 3 Rose 2010 PWM et ponts en H de fonctionnement du PWM soit supérieure à la fréquence de coupure du filtre passe-bas naturel du système utilisé. Il est aussi possible de générer un signal variable, en faisant varier le duty cycle au cours du temps, comme le montre la figure ci-dessous : Figure 2 – Un signal et son PWM En rose, on peut voir le signal effectivement généré par le système. En vert, on peut voir le signal perçu. On voit bien que lorsque la valeur du signal vert est proche de VCC, le duty cycle est presque égal à 1, et il est presque égal à 0 lorsque la valeur du signal perçu est proche de 0. Inversement, on veut pouvoir obtenir le signal vert à partir d’un PWM. Pour trouver comment générer le PWM adéquat, on peut utiliser un comparateur simple rampe. La tension à générer est comparée à une rampe de période T (la période du PWM) variant de 0 à VCC. Lorsque la rampe est en-dessous du signal à générer, la tension en sortie du PWM doit être à VCC et lorsque le rampe est au-dessus du PWM, la tension en sortie du PWM doit être à 0. C’est ce que résume la figure ci-dessous : Figure 3 – Un signal et son PWM Il existe deux modes de PWM : – le mode edge-aligned A chaque début de période, on est dans l’état haut. Le signal est donc asymétrique par rapport au début de la période. – le mode center-aligned Au contraire au début d’une période on est une fois dans l’état haut et la Le 30 mars 2010 4 Rose 2010 PWM et ponts en H Figure 4 – Le mode edge-aligned fois d’après dans l’état bas. Le signal a donc l’avantage d’être symétrique par rapport au début de la période. Figure 5 – Le mode center-aligned 1.2 Application aux STM32 Certains micro-contrôleurs STM32 possèdent des timers avec une fonctionnalité PWM. Pour la mettre en place il suffit de configurer certains registres. Par exemple, si l’on veut configurer le channel Y du timer X (broche Z) en PWM, il faut (pour le STM32RCT6) : – activer l’horloge des fonctions alternatives (bit 1 du registre APB2ENR) – activer l’horloge du timer X (un bit du registre APB1ENR ou APB2ENR) – configurer la broche Z en output alternate function (registre GPIOZ→ CRLouGP IOZ → CRH) – rentrer le prescaler du timer X (registre TIMX→ P SC) – rentrer la période en nombre de cycles (registre TIMX→ ARR) – rentrer le duty cycle en nombre de cycles (registre TIMX→ CCRY ) – choisir le mode 1 ou 2 du PWM (registre TIMX→ CCM R1ouT IM X → CCM R2) – choisir le mode edge-aligned, center-aligned (registre TIMX→ CR1) Le 30 mars 2010 5 Rose 2010 2 PWM et ponts en H Les ponts en H Un Pont en H est un circuit électronique qui permet d’appliquer un voltage à une charge dans 2 directions différentes. Ce circuit est couramment utilisé en robotique et d’autres applications pour permettre aux moteurs DC de tourner dans deux sens. Le nom pont en H est vient de la position des éléments de commutation dans le circuit, placés dans les quatre branches d’un H. Figure 6 – Schéma d’un pont en H 2.1 Pour quoi l’utiliser ? Les moteurs électriques ont besoin de courants importants par rapport à la sortie maximale d’un microcontrôleur. Un moteur ne marcherait pas si on le branchait directement à la sortie d’un microcontrôleur. La première fonction du pont en H est fournir de forts courants aux moteurs en permettant leur contrôle par le microcontrôleur. Une autre fonction est de pouvoir inverser la tension aux bornes du moteur pour inverser le sens de rotation. Inverser le sens d’un courant est une tache simple dans les circuits électriques, il suffit de bien placer quelques interrupteurs. On utilise des transistors à la place d’interrupteurs parce qu’un transistor peut aussi amplifier un courant et est plus facile à contrôler par des signaux numériques ou analogiques. 2.2 Comment le pont en H fonctionne-t-il ? Voici un tableau qui résume les conclusions : A 1 0 0 0 1 B 0 1 0 1 0 C 0 1 0 0 1 D 1 0 0 1 0 le moteur tourne à droite le moteur tourne à gauche le moteur tourne librement le moteur freine le moteur freine Les autres configurations sont interdites. Le 30 mars 2010 6 Rose 2010 PWM et ponts en H Figure 7 – Le moteur tourne à droite Figure 8 – Le moteur tourne à gauche 2.3 2.3.1 Fonctionnalités additionnelles Ajout de diodes de roue libre Selon le sens de polarisation, si l’on coupe brutalement l’alimentation du moteur une surtension va apparaı̂tre du fait que le courant, selon la loi de Lenz, va produire une tension V = Ldi dt aux bornes du commutateur. La diode va permettre à ce courant de circuler car elle sera passante dès que sa tension directe sera atteinte. Sans cette précaution la tension va largement dépasser la tension maximale admissible par le commutateur et le détruire. C’est le même phénomène que sur une bobine de relais commandée par un transistor. Le 30 mars 2010 7 Rose 2010 3 3.1 PWM et ponts en H Pilotage d’un pont en H à l’aide de la PWM Locked antiphase Nous allons, dans cette partie présenter une application conjointe des deux mécanismes présentés ci-dessus, ainsi que des adaptions nécessaires à son bon fonctionnement. Comme nous l’avons vu ci-dessus, la PWM et les ponts en H sont très adaptés au pilotage de moteurs à courants continus, notamment parce qu’ils permettent une réponse proportionnelle en fonction du rapport cyclique (très pratique pour contrôler la vitesse d’un moteur). Cependant, des particularités obligent à adapter les mécanismes. Nous allons donc passer en revue trois façons de piloter un pont en H alimentant un moteur à l’aide de PWM. La première manière de piloter un pont en H en PWM se nomme ”locked antiphase”. Elle consiste simplement à piloter les deux demi-ponts de manière inversée. Ainsi, soit le moteur est stimulé en marche avant, soit en marche arrière, et ce en alternance. Avec un rapport cyclique de 100%, on obtient la commande maximale en marche avant, 0% pour l’autre sens, et 50% pour l’immobilité. Le principal défaut de ce mode de pilotage est qu’il peut potentiellement créer des courts-circuits de l’alimentation lors des phases commutations : le temps nécessaire à un transistor pour passer bloquant n’étant pas le même que celui nécessaire pour devenir passant, il se peut que les deux transistors du même demi-pont se retrouvent simultanément fermés. 3.2 Introduction de dead-time Pour résoudre ce problème, on insère des temps morts lors des commutations : a chaque changement d’état, on passe par une courte phase où le moteur est déconnecté de la masse et de l’alimentation. Ceci étant, on s’assure que le transistor précédemment passant est maintenant bloquant avant de commuter l’autre. Contrairement à la méthode précédente, celle-ci nécessite la génération de deux signaux de PWM possédant des rapports cycliques différents tout en gardant une synchronisation. Pour obtenir les signaux de chaque demi-pont, on utilise un compteur capable de contrôler deux signaux et réglé en ”dualslope” (afin de générer des signaux de ”center-aligned PWM”). Les valeurs de comparaison au compteur des deux sorties sont réglées de manière à obtenir les deux signaux à l’état bas (transistors bloquants) pendant un court instant à chaque fois qu’un signal descend et que l’autre remonte. Il est en outre indispensable de mettre à jour les deux valeurs de comparaison au compteur en même temps lorsque le rapport cyclique change, afin de s’assurer que les deux signaux ne puissent jamais être en même temps dans l’état haut (ce qui crée le court-circuit). Le 30 mars 2010 8 Rose 2010 PWM et ponts en H Figure 9 – Introduction d’un dead-time 3.3 Sign magnitude Une seconde possibilité de pilotage du pont en H est la ”sign magnitude” : Dans ce mode de pilotage, un seul demi-pont passe d’un état à l’autre tandis que l’autre reste figé. Ainsi, le moteur n’est plus piloté à l’aide d’une alternance de tension positive et négative mais positive et nulle, ou négative et nulle (le moteur est court-circuité) selon le sens de fonctionnement du moteur voulu. Pour changer ce sens, il suffit de rentre actif le demi-pont qui était figé et inversement. La principale qualité de ce mode de fonctionnement est sa simplicité : il suffit d’un seul signal en PWM pour piloter le pont tout entier (et de deux si l’on inclut des temps morts). De plus, lorsque le moteur est à l’arrêt, la tension à ces bornes est nulle, et il n’y a aucune perte par effet Joule, contrairement au mode ”locked antiphase” dans lequel, pour le moteur à l’arrêt, la tension est la moitié du temps positive et l’autre moitié négative. Malheureusement, le fait qu’il y ait une dissymétrie entre les deux transistors du demi-pont figé d’une part et entre les deux demi-ponts d’autre part peut impliquer un chauffage inégal des composants et donc une altération des caractéristiques de ceux-ci. Figure 10 – Les différentes phases de la Le 30 mars 2010 sign magnitude PWM 9 Rose 2010 3.4 PWM et ponts en H Phase correct Afin de résoudre ce problème d’asymétrie du cycle tout en gardant la possibilité de laisser des intervalles de temps durant lesquels le moteur est courtcircuité, il est possible d’utiliser la ”phase correct PWM”. Ici, les deux demiponts sont pilotés de manière à ce que lors d’une période, on passe par les quatre états suivants : le courant passe dans le moteur dans un sens (A), puis on court-circuite le moteur (B), puis le courant le traverse dans l’autre sens (C) et enfin on le court-circuite à nouveau (D). On obtient donc à nouveau un cycle symétrique. Figure 11 – Les différentes phases de la Le 30 mars 2010 phase correct PWM 10 Rose 2010 PWM et ponts en H Bibliographie – – – – – – – – – – – – http ://www.cours.polymtl.ca/inf1995/materiel/pontH/ http ://en.wikipedia.org/wiki/H-bridge http ://www.4qdtec.com/bridge.html http ://www.mcmanis.com/chuck/robotics/tutorial/h-bridge/index.html http ://www.mcmanis.com/chuck/robotics/tutorial/h-bridge/index.html http ://fribotte.free.fr/bdtech/Drivers/DrivesPontH.html http ://fribotte.free.fr/bdtech/variateur/variateur.html http ://www.fourwalledcubicle.com/files/freaks/timerstutorial/Waves.png http ://www.netrino.com/images/glossary/PWMFigure1.gif http ://scripts.mit.edu/ orca/wiki/index.php ?title=MotorC ontrollers http ://www.atmel.com/dyn/resources/prodd ocuments/doc8010.pdf http ://www.netrino.com/Embedded-Systems/How-To/PWM-Pulse-WidthModulation Le 30 mars 2010 11