Les makers et les étudiants d'aujourd'hui sont souvent pressés et n'ont pas les compétences nécessaires pour concevoir et souder des circuits électroniques. Ils sont plus intéressés par les shield et la manipulation d'un fer à souder est un défi. C'est pourquoi j'ai développé un circuit imprimé pour le pilote de moteur MP6619 de Monolithic Power Systems, qui peut être utilisé dans le cadre de projets basés sur des moteurs.

Cet article est un voyage à la découverte du MP6619 breakout board (BoB). Cette puce est un nouveau pont en H compact pour contrôler les moteurs électriques CC à balais bon marché et les solénoïdes. Ces moteurs CC sont les plus accessibles et les plus abordables pour les amateurs de petits robots, de modélisme et de projets créatifs. Ceci est une histoire sur le cheminement éducatif que j'ai dû parcourir pour développer et tester cette petite carte.

L'aventure commence

Un jour, j'ai reçu un courriel d'un distributeur de composants à propos d'un tout nouveau composant de pont en H : le MP6619. La Figure 1 montre son schéma fonctionnel interne. Ce minuscule « miracle » de seulement 3×3 mm avec des spécifications impressionnantes telles que 24 V et 5 A a attiré mon attention (voir le cadre Caractéristiques de la puce). Comment cela est-il possible ? Autant de courant, pas de dissipateur, et toutes les caractéristiques de protection dans un boîtier aussi minuscule ? Je me suis dit qu'il s'agissait d'un discours marketing. Les alternatives sont facilement dix fois plus grandes.

Motor driver functional block diagram
Figure 1. Schéma fonctionnel. (Source : Systèmes de puissance monolithiques)

Ma curiosité a été piquée, et j'ai voulu savoir si c'était vrai et si cela serait utile pour mes projets. J'en ai donc commandé quelques-uns. Deux jours plus tard, ils étaient sur mon bureau : wow, ils étaient si petits ! Seulement 3×3 mm avec 0,2 mm entre les contacts et pas de pattes. Dans quoi me suis-je fourré ?

Je plonge la tête la première dans le sujet. Malgré le faible prix d'environ 2,50 €, les petites dimensions et l'empreinte inhabituelle du MP6619 se sont avérées ne pas être directement applicables à mes projets. Il fallait une carte de liaison (break-out board ou BoB) qui rendrait le MP6619 plus maniable et adaptée aux tests et à l'intégration.

Mais il n'y avait pas de BoB disponible pour ce minuscule composant à 19 contacts logé dans un boitier QFN-19. J'ai donc dû développer moi-même une telle carte. Mon aventure avec le pont en H MP6619 a commencé !

Motor Driver Chip Features

Conçu avec KiCad

Pour développer une carte MP6619, j'ai commencé par étudier la fiche technique et dessiner le schéma dans KiCad. J'ai d'abord dessiné le symbole et l'empreinte (qui n'étaient pas disponibles dans la bibliothèque ou dans SnapEDA), puis j'ai attaqué la platine.

J'ai porté une attention particulière à l'emplacement de la résistance de shunt R(i-sense) et à la connexion des plots d'alimentation. Cette résistance shunt est utilisée pour mesurer le courant des pilotes MOSFET. Cette mesure est cruciale pour le bon fonctionnement de la carte. La chute de tension à travers les traces doit également être prise en compte, lors du routage du circuit imprimé.

La protection contre les surintensités (OCP, pour l’anglais Over-Current Protection) est réglable à l'aide d'une résistance externe. Sans cela, la puce s'éteint lorsque la tension à travers la résistance de shunt atteint 200 mV. La fiche technique suggère un shunt de 0,04 Ω, ce qui limite le courant maximal à 5 A (V = I × R). En ajoutant une R(i-set) de 80 kΩ, la limite est fixée à 100 mV, ce qui permet de réduire la limite de courant en utilisant la même résistance shunt. D'autres valeurs de résistance sont également possibles. J'ai choisi un shunt de 0,05 Ω pour mon premier test, car je l'avais dans mon tiroir. Il en résulte une limite de courant de sortie de 4 A.

J'ai rapidement réalisé la première version du circuit imprimé du BoB sans étude approfondie, parce que j'avais hâte de commencer les tests, mais je me suis réjoui trop tôt. Le premier BoB comprenait deux puces MP6619, des LED, des résistances, des condensateurs et des connecteurs. À cette époque, je pensais encore que des borniers PCB seraient utiles. Quatre couches de cuivre étaient nécessaires, j'ai placé de nombreux vias, un plan de masse, et j'ai utilisé les traces les plus larges possibles en raison des courants élevés. C'était le travail d'une journée. Une semaine après avoir envoyé les fichiers à un fabricant chinois, j'avais les cartes sur mon établi. La soudure des QFN a été le plus grand défi, car les puces étaient plus petites que tout ce à quoi j'étais habitué.

Pour mettre le QFN en place avec toutes les connexions correctes, il fallait un stéréomicroscope, un bon fer à souder à température contrôlée, un fer à souder à air chaud, beaucoup de flux et encore plus de patience. Une fois le QFN en place et la sueur essuyée du front, les autres composants CMS « normaux » sont devenus un jeu d'enfant, ils semblent gigantesques par rapport au QFN. La plage de soudure pour le bornier du circuit imprimé est plus grand que la puce QFN entière (Figure 2) ! J'ai posté cette première version sur le site d'Elektor Labs .

motor driver PCB
Figure 2. Modèle 3D du premier circuit imprimé.

Premiers essais

Les premiers essais ont été réalisés avec un petit moteur à courant continu qui se trouvait sur mon établi. Il s'agissait d'un modèle simple de 12 V avec un courant de décrochage inférieur à 5 A (Figure 3). 

Le MP6619 est constitué en interne de deux demi-ponts, chacun ayant une entrée (IN1, IN2). La puce elle-même assure la synchronisation correcte des MOSFET côté haut et côté bas afin qu'aucun court-circuit ne se produise entre les rails d'alimentation.

La puce est protégée contre tous les problèmes typiques. Ses fonctions intégrées UVLO (verrouillage en cas de sous-tension), OVP (protection contre les surtensions), OCP (protection contre les courants trop forts), et OTP (protection contre les températures trop élevées) devraient gérer en toute sécurité presque toutes les situations d'erreur, ce que nous allons voir !

The first tests with a DC planetary geared motor.
Figure 3. Les premiers tests ont été effectués avec un motoréducteur planétaire à courant continu. (Source: E-S Motor/RobotShop)

Connexion de IN1, IN2 et EN

Les entrées sont équipées de résistances de rappel vers le bas. Dès que l'entrée EN reçoit un haut niveau, la puce est activée, et le régulateur de tension interne commence à fonctionner. À ce moment, la sortie VCC du MP6619 fournit une tension de 5 V. J'ai utilisé un petit condensateur de découplage de 100 nF pour stabiliser cette tension. Si les 5 V sont présents, les MOSFET à canal N deviennent également actifs. En fonction des niveaux d'entrée à IN1 et IN2, les MOSFET côté haut ou côté bas sont commutés.

Les entrées supportent des niveaux logiques de 3,3 V à 5 V. Il n'y a donc pas de problème pour connecter le BoB à un ESP32 ou à un Arduino. Pour mes premiers tests, j'ai utilisé des interrupteurs pour appliquer 3,3 V aux entrées, et j'ai connecté le moteur aux sorties du BoB.

Succès partiel

Mon moteur ne voulait pas tourner, la sortie nFault est immédiatement passée au niveau bas (la LED d'indication d'erreur s'est allumée), mais je n'avais pas de court-circuit à la sortie. Une réduction significative de la tension d'entrée m'a finalement permis de faire tourner lentement le moteur dans les deux sens. Il est important de noter que je n'avais pas encore connecté un signal PWM pour contrôler la vitesse.

J'ai expérimenté en diminuant la résistance du shunt et en augmentant la résistance Rset pour faire tourner le moteur, ce qui a finalement abouti à une erreur humaine : 12 V sur IN1, avec un BoB brûlé en conséquence, et un profond soupir de frustration. Le circuit imprimé est parti en fumée, et j'ai dû garnir un nouveau BoB avec des composants.

Je m'abonne
Abonnez-vous à la balise thématique conception de circuits imprimés pour être averti dès qu'une information relative à ce sujet sera publiée par Elektor !

Un autre BoB et d'autres tests

Finalement, j'ai découvert que le moteur est équipé de condensateurs de suppression de bruit connectés en parallèle au collecteur. Par conséquent, le moteur se comporte de manière moins inductive et plus capacitive. L'OCP se déclenche donc immédiatement en cas de pic de courant dans le moteur. Cette « surcharge » provoque un délai de 1 ms avant que le MP6619 n'essaie à nouveau. Ce processus se répète encore et encore, ce qui entraîne un son faible et grinçant du moteur.

La suppression de ces condensateurs aide partiellement à contrôler le moteur à des tensions un peu plus élevées. Pendant ce temps, après avoir étudié la fiche technique plus attentivement, j'avais également des nouvelles pistes pour améliorer ma carte BoB et j'ai décidé de créer une nouvelle version.

The revised BoB’s schematics
Figure 4. Les schémas révisés du BoB.

Nouvelle conception et disposition

Pour ma deuxième version, la conception et la disposition ont dû être ajustées. J'ai apporté les modifications suivantes :

  • Une seule puce MP6619.
  • La position du shunt a été revue.
  • Un en-tête à broches de 0,1″ à la place des borniers ; pas de trous de fixation.
  • Une sérigraphie claire ; seulement le nombre minimal de composants.

Cela a donné un nouveau schéma (Figure 4) et par la suite aussi un nouveau PCB (Figures 5 et 6) avec quatre couches et des dimensions d'environ 25 mm × 25 mm, inseré dans un panneau de production avec une finition ENIG (nickel chimique immersion or). Après avoir câblé le BoB, j'ai obtenu un module vraiment compact, qui, je crois, peut être contrôlé par presque tous les microcontrôleurs.

motor driver fig5 bob-top
Figure 5. Modèle 3D du BoB de 25×25 mm (face supérieure) constitué de quatre couches et d'une finition ENIG.
motor driver Fig6 bob-bottom
Figure 6. Modèle 3D du BoB (face inférieure) avec des têtes de broches.

Autres tests et expériences

J'ai utilisé le même moteur que pour le premier test. L'OVP et l'ULVO se sont bien comportés. Maintenant, je l'ai essayé avec le contrôle PWM pour réaliser le contrôle de la vitesse. Les tests avec des fréquences de 1 kHz à 50 kHz ont donné le comportement attendu : le moteur était bien contrôlable. L'exemple de la fiche technique utilise 20 kHz, et cela a bien fonctionné à basse tension.

Mais, à des tensions plus élevées, l'OCP s'est à nouveau manifesté et le moteur s'est arrêté. En ajoutant une inductance supplémentaire de 220 µH (comme celle de la Figure 7) en série avec le moteur, le comportement du contrôle a été significativement amélioré, et la plage de vitesse a été augmentée.

En conséquence, le moteur a fourni plus de puissance et l'OCP s'est déclenché moins souvent. Avec ces inductances supplémentaires, la solution semble pouvoir être utilisée dans des projets.

A toroidal-core inductor
Figure 7. Une inductance à noyau toroïdal en série avec le moteur améliore le comportement du BoB.

Dans certaines conditions, le moteur restitue de l'énergie qui retourne dans le pont en H. Cette énergie est déversée sur le circuit de puissance. Elle est déversée sur les rails d'alimentation à travers les diodes des MOSFETs, car le moteur fonctionne également comme un générateur (EMF d'un moteur à courant continu). Dans mes tests, j'ai utilisé un condensateur électrolytique C8 à faible ESR en parallèle à la source d'alimentation. Avec cette dernière amélioration, le BoB était stable.

Optocoupleurs

La Figure 8 montre mon circuit de test. J'ai décidé d'utiliser des optocoupleurs pour fournir une isolation galvanique entre le côté commande et les pilotes de moteur, parce que l'alimentation d'un moteur comporte généralement des niveaux de bruit considérables. Les interférences électromagnétiques peuvent également poser des problèmes. L'isolation réduit le risque d'interférence dans les signaux basse tension et empêche les fortes impulsions générées par le moteur et son pilote d'atteindre le microprocesseur sensible et d'autres composants électroniques.

Circuit with optocouplers
Figure 8. Ce circuit avec des optocoupleurs placés entre le microcontrôleur et le BoB a été utilisé pour les tests.

Les LED d'entrée des optocoupleurs peuvent être pilotées directement à partir d'une broche du microprocesseur à l'aide d'une résistance de 470 Ω en série. Côté sortie, l'émetteur du phototransistor est connecté à l'IN1 du BoB, et donc à l'entrée du MP6619. Son collecteur est connecté à une tension logique fournie par un régulateur de tension LDO de 3,3 V alimenté par l'alimentation du moteur, dans mon cas, une batterie. C'est suffisant pour assurer un fonctionnement fiable et stable.

La Figure 8 montre également comment on peut amener le signal nFault du pont en H (sortie à drain ouvert) vers le microcontrôleur via un optocoupleur de la même manière que dans l'autre sens. Dans ce cas, le port du microcontrôleur connecté aura besoin d'une résistance de rappel vers le bas.

Boîtiers QFN

Les boîtiers FCQFN (Figure 9) peuvent avoir des pastilles de forme irrégulière, souvent disposées en bandes longues et étroites. Contrairement aux boîtiers QFN ordinaires, la chaleur est dissipée par plusieurs de ces pastilles au lieu d'un grand plot central. Cela pose quelques défis pour la conception des circuits imprimés, car il y a de nombreux contacts, tous avec des signaux différents, qui doivent être connectés avec des zones de cuivre.

 

De petits vias peuvent être placés à l'intérieur des zones de plots (via dans PAD). Sur les circuits imprimés multicouches dotés de plans d'alimentation et de masse, les vias peuvent directement relier ces pastilles aux plans. Dans d'autres cas, le cuivre doit être directement fixé aux plages pour dissiper la chaleur du circuit intégré vers de plus grandes surfaces de cuivre. Un guide d'implantation est disponible à l'adresse .

MP6619 QFN-19 package pinout
Figure 9. Brochage du boîtier QFN-19 du MP6619. (Source: Monolithic Power Systems)

Le plus grand obstacle que j'ai rencontré lors ce projet a été la soudure de la puce MP6619. Pour surmonter ce problème, j'ai expérimenté diverses techniques. J'ai finalement réussi avec beaucoup de flux, de soudure au plomb et d'air chaud, mais c'est resté un défi de placer la puce avec précision.

Une fois en place, la tension superficielle de la soudure fondue garantit que la puce est correctement alignée sur les plots. Beaucoup d'entraînement s'est avéré nécessaire. Ma conclusion est d'acheter une plaque chauffante pour simplifier le processus de soudure.
 

Motor driver components

Épilogue

Dans cet article, j'ai partagé mes expériences dans la conception et la construction d'une carte d'interface pour le pilote de moteur à pont en H MP6619. J'ai expliqué l'importance d'utiliser des optocoupleurs pour fournir une isolation électrique. J'ai aussi partagé mes idées sur le travail avec des boîtiers QFN à puce retournée et les défis impliqués dans le soudage de petits composants.

Le circuit imprimé MP6619 offre une solution très compacte pour piloter des moteurs CC à balais bon marché, ce qui en fait un excellent choix pour les amateurs et les makers qui construisent de petits robots et d'autres projets créatifs. Tous les fichiers de conception et de production sont open-source et peuvent être consultés sur ma page GitHub . Le MP6619 est largement disponible en petites quantités auprès de distributeurs tels que Farnell, Mouser, et directement auprès de Monolithic Power Systems.


Cet article (210657-01) paraît dans l'édition de Septembre/Octobre 2023 d´Elektor Mag

Questions ou commentaires ?

Si vous avez des questions techniques, vous pouvez contacter l'équipe éditoriale d'Elektor par e-mail à l'adresse editor@elektor.com.