DRV8825
Présentation
Ce breakout de contrôle moteur pas-à-pas DRV8825 est basé sur le DRV8825 de Texas Instrument pouvant piloter un moteur pas-à-pas en micro-stepping (micro pas). Le module dispose d'un brochage et interface presque identique à notre contrôleur de moteur pas-à-pas A4988. Il peut donc être directement utiliser en replacement sur les différentes cartes d'interface avec ce modèle haute performance.
Le DRV8825 intègre un limiteur de courant actif et réglable. Vous disposez également d'une protection contre les surcourant, la surchauffe avec 6 résolutions de micro-stepping (jusqu'au 1/32 de pas). Il fonctionne entre 8.2 et 45 V et sait délivrer approximativement 1.5 A par phase sans refroidissement (par refroidisseur ou air forcé - conçu pour 2.2A par bobine en utilisant un système de refroidissement efficace/adéquat).
Nous recommandons de lire attentivement la fiche technique du DRV8825 (1Mb pdf) et notre tutoriel avant d'utiliser le produit. Ce pilote est capable de contrôler un moteur pas-à-pas bipolaire avec un courant allant jusqu'à 2.2 Amp par bobine (voyez la section dévolue à la Dissipation de Chaleur pour plus d'information).
Détails techniques
Voici quelque-unes des caractéristiques clés:
- Interface de contrôle super-simple pour les pas et de la direction.
- 6 résolutions de pas: Pas complet (full-step), demi-pas, 1/4 de pas, 1/8 de pas, 1/16 de pas et 1/32 de pas
- Contrôle du courant ajustable vous permettant de fixer le courant maximum pouvant passer dans les bobine. Le réglage se fait à l'aide d'un potentiomètre. Vous pouvez donc utiliser votre moteur pas-à-pas avec une tension plus élevée... vous permettant ainsi d'atteindre des vitesses plus élevées.
- Electronique de contrôle de "coupure" intelligent sélectionnant automatiquement le mode de décroissance du courant (décroissance rapide ou lente)
- Intelligent chopping control that automatically selects the correct current decay mode
- Tension d'alimentation max: 45 V
- Régulateur de tension intégré (donc pas besoin d'une tension externe pour alimenter la logique de contrôle).
- Peut s'interfacer directement avec des systèmes 3.3 V et 5 V
- Coupure automatique en cas de surchauffe. Coupure en cas de surcourant.
- Blocage en sous-tension (pour éviter les fonctionnements erratiques/imprévisibles de l'électronique de commande)
- Protection de retour à la masse (short-to-ground) et de court-circuit de la charge (shorted-load).
- Carte 4 couches utilisant plus de cuivre pour améliorer la dissipation de chaleur.
- Pastille de masse soudable exposé sous le circuit intégré (sur la surface inférieure de la carte)
- La taille du module, le brochage et l'interface correspond au StepStick A4988 sous de nombreux aspects (voyez le tutoriel pour plus d'information)
- Fiche technique du DRV8825
Brochage
- Enable: Logique Inversée, permet d'activer ou désactivé le moteur. Etat Haut=High=Moteur actif... et axe bloqué entre les pas. Etat bas=Low=Axe totalement libre
- M0, M1, M2: permet de sélectionner la configuration Step/MicroStep. Ces broches disposent de résistances Pull-Down ramenant le potentiel à 0v lorsque rien n'est connecté sur ces broches. Voir la section ci-dessous pour plus d'information.
- Reset: Logique inversée. Permet de faire une réinitialisation du module. Généralement connecté sur la broche "sleep", voir le schéma ci-dessous.
- Sleep: Logique inversée. Généralement connecté sur la broche "Reset" du module.
- Step: Envoyer un signal d'horloge (Niveau Haut puis Niveau bas, High puis Low) pour avancer le moteur d'un pas.
- DIR: Permet d'indiquer la direction de rotation du moteur. Etat Haut=High pour tourner dans un sens, Etat bas=Low pour tourner dans l'autre sens.
- VMot: Tension d'alimentation pour les moteurs pas à pas. Tension entre 8.2 et 45v.
- GND: Sous "VMOT", masse pour l'alimentation moteur.
- A1 A2: Première bobine du moteur pas à pas bipolaire (voir exemple ci-dessous)
- B1 B2: Deuxième bobine du moteur pas à pas bipolaire (voir exemple ci-dessous)
Alimentation de la logique de contrôle::
Câblage minimal pour connecter un microcontroleur. Version alternative, compatibilité avec le pilote A4988
- Fault: Logique inversée. Branchez une tension entre 2.5 et 5.25v, celle qui alimente votre microcontrôleur.
- GND: sous FAULT. Masse commune avec votre microcontrôleur.
Brancher le DRV8825
Voici le diagramme de raccordement minimal (cfr Pololu) pour connecter le contrôleur de moteur pas-à-pas DRV8825/DRV8824 sur un microcontrôleur (en mode full-step/pas complet)
Connecter l'Alimentation
Le pilote nécessite une tension d'alimentation moteur entre 8.2 et 45 V devant être connecté entre VMOT et GND. Cette alimentation devrait idéalement disposer de capacités de découplahe appropriés près de la carte et doit être capable de délivrer le courant nécessaire au fonctionnement du moteur pas-à-pas.
Cette carte utilise des capacités céramiques à faible résistance série équivalente (low-ESR),ce qui la rend sensible aux destructions par les pointes de surtensions induites par les circuits LC (plus d'info ici), plus spécialement sur vous utilisez des câbles d'alimentations d'une longueur supérieure à quelques centimètres. Sous de mauvaises conditions, ces pointes de tension peuvent excéder les 45 V de tension maximale du DR8825 et endommager la carte de façon permanente (même pour une alimentation moteur à 12 V). Une façon de protéger les pilotes est de placer, au plus près de la carte, une capacité électrolytique importante (au moins 47 µF) entre VMOT et la masse. |
Connecter le moteur
Vous pouvez piloter des moteurs pas-à-pas à 4, 6 et 8 fils avec le DRV8825 si vous les branchez correctement; La Foire Aux Questions (FAQ) de Pololu explique comment réaliser ce montage en détail.
Connecter ou déconnecter le moteur pas-à-pas pendant que la carte est sous tension peut la détruire. D'une façon générale ce n'est jamais une bonne idée modifier les raccordements d'un montage si celui-ci est sous tension. |
Step et micro-Stepping
Les moteurs pas-à-pas documentent la taille du pas dans leur spécification (ex: 1.8° ou 200 pas par révolution), ce qui représente un pas complet. Il vous faudra donc 200 pas complet pour effectuer une rotation de l'axe.
Un pilote micro-Stepping (Micro Pas) tel que le DRV8825 permet d'atteindre une résolution plus élevée en autorisant le positionnement de l'axe sur plusieurs positions intermédiaires entre deux pas complet. Cela est rendu possible en contrôlant la puissance dans les bobinage du moteur avec plusieurs niveau de courant différent. A titre d'exemple, si vous pilotez un moteur 200 pas par révolution en 1/4 de pas, vous obtiendrez au final un moteur disposant de 800 micro-pas par révolution (le DRV8825 utilisera 4 niveaux de courant intermédiaire pour contrôler la position des micro-pas).
Les broches de sélection de la résolution (de la taille des pas) sont les entrées M0, M1 et M2 (MODE0, MODE1 et MODE2). Ces broches permettent de choisir une résolution de micro-stepping parmi les 6 disponibles (voir la table ci-dessous). Les 3 entrées disposent d'une résistance pull-down interne de 100kΩ par conséquent, si vous ne brancher pas ces 3 broches, elles sont toutes les 3 au niveau bas et le DRV8825 fonctionnera en mode full-step (pas complet).
Pour que le micro-stepping puisse fonctionner correctement, vous devez suffisamment limiter le courant (suffisamment bas) de façon à ce que le contrôle de limitation de courant puisse fonctionner correctement... sinon les niveaux de courants intermédiaires ne pourrons pas être maintenu et le moteur sautera des micro-step.
High est un signal haut (entre 2.5 et 5.25v) et Low un signal bas (0v)
Contrôle des entrées
Chaque impulsion sur l'entrée STEP correspond à un micro-pas du moteur dans la direction sélectionnée avec l'entrée DIR. Ces deux entrées disposent d'une résistance Pull-down interne de 100kΩ (sauf signal appliqué sur la broche, une résistance pull-down ramène toujours le potentiel au niveau bas). Si vous avez uniquement besoin de tourner dans un seul sans, vous pouvez laisser la broche DIR déconnectée.
Cette puce dispose de 3 entrées différentes pour contrôler ses états de puissance: RESET, SLEEP et ENBL (enable). Voyez la fiche technique pour plus de détails à propos de ces états de puissance (cherchez "power states"). Notez que le pilote tire le potentiel de la broche SLEEP au niveau bas à l'aide d'une résistance pull-down de 1MΩ et qu'il tire aussi le potentiel des broches RESET et ENBL au niveau bas via une résistance interne de 100kΩ (pull-down). Cet état par défaut des broches RESET et SLEEP empêche le pilote de fonctionner (pratique lors de la mise sous tension ;-) ); Ces deux broches doivent être au niveau haut (high) pour activer le pilote (elle peuvent être connectée directement au niveau logique haut via une tension située entre 2.2 et 5.25 V. Elles peuvent également être contrôler dynamiquement en utilisant des sorties digitales de votre microcontrôleur.
L'état par défaut de la broche ENBL active le pilote. Cette broche peut donc rester déconnectée. Vous pouvez également la brancher sur une sortie de votre microcontrôleur pour activer/désactiver dynamiquement le moteur. Placez la broche au niveau logique HAUT pour désactiver le contrôle moteur.
Schema des broches nSLEEP et nFAULT sur les pilotes DRV8824/DRV8825/DRV8834.
Le DRV8825 dispose également d'une option "FAULT", broche qui passe à l'état bas lorsque les FET du pont-H sont désactivés suite à l'activation de la protection sur-courant ou sur-chauffe. La carte du DRV8825 connecte cette broche sur la broche SLEEP par l'intermédiaire d'une résistance de 10k. La résistance de 10K agit comme une résistance pull-up pour Fault (lorsque la brochhe SLEEP est maintenue au niveau Haut de façon externe; par conséquent, pas besoin de résistance pull-up sur la broche FAULT).
Note: la carte inclus également une résistance de protection de 1.5k en série sur la broche FAULT ce qui permet de la connecter la broche directement sur l'alimentation de la logique de contrôle (ce qui sera le cas si vous utilisez une carte conçue pour être compatible avec un pilote A4988). Dans un tel système, la résistance de 10K entre SLEEP et FAULT agira comme un pull-up pour SLEEP --- cela permet d'utiliser cette carte DRV8825 comme un remplacement directe du A4988 (le A4988 dispose d'un pull-up interne sur sa broche SLEEP). Pour empêcher les erreurs/protection de ramener le potentiel de SLEEP au niveau bas, vous pouvez utiliser une résistance pull-up sur l'entrée SLEEP mais elle ne devrait pas excéder 4.7k.
Limitation de courant
Le contrôle actif du courant - Un avantage clé
Ce pilote de moteur pas-à-pas dispose d'un circuit actif de limitation de courant. C'est une caractéristique assez incroyable car elle permet de piloter des moteurs pas-à-pas avec une tension plus élevée sans griller le moteur. Admettons que vous avez un moteur prévu pour 2.8V à 1.7 ampère. S'il alimenté directement avec une tension de 5.6 Volts (le double à titre d'exemple) alors la bobine laisserait alors passer un courant de 3.4 Amp. Cependant, à 3.4 Amp, la bobine chauffe tellement que le moteur grille rapidement (l'échauffement augmente au carré du courant!).
Mais si vous disposez d'un circuit limitant activement le courant, vous pourriez régler celui-ci sur 1.7A max (ou 1.5A, le maximum du DRV8825). Par conséquent, même si vous alimentez le moteur en 5.6v, le courant ne pourra pas dépasser 1.7 Amp (1.5A pour le DRV8825) et le moteur ne grille pas.
Quel sont les avantages à utiliser une tension plus élevée?
- Le moteur est plus beaucoup plus réactif.
- Le passage d'un pas à l'autre plus rapide avec un tension plus élevée car le champ magnétique est plus puissant.
- Si le moteur est plus réactif alors vous pouvez également atteindre des vitesses plus élevées.
- Avec une tension plus élevée, vous pouvez utiliser un piloter nécessitant une tension minimale de fonctionnement plus importante (comme le DRV8825) même avec un moteur en assez basse tension. Du moment que le courant est limité activement, il n'y aura pas de dégât sur les bobines.
Concernant le moteur 2.8V 1.7Amp mentionné, vous pourriez le piloter avec une alimentation 9V (confirmé par Pololu) avec un DRV8825 en limitant activement le courant à 1.5Amp (le maximum toléré par le DRV8825 sans refroissement).
Réglage - comment faire
Afin d'atteindre des vitesses plus élevées (de plus hau-débit de pas), il faut typiquement utiliser une tension d'alimentation moteur plus élevée, ce qui ne serait pas possible sans électronique de limitation active de courant.
Prenons par exemple un moteur prévu pour supporter 1 Ampère avec une résistance de bobine de 5Ω, cela indiquant que la tension maximale de l'alimentation moteur est de 5 Volts (U=RxI; u=5 Ohms x 1 Amp). Utiliser un tel moteur avec un tension de 12 V permettrait d'atteindre une plus haut débit de pas mais le courant doit absolument être limité à 1Amp (de façon active) sinon le moteur sera rapidement endommagé.
Le DRV8825 supporte cette fonctionnalité de limitation active de courant et un petit potentiomètre (sur la carte) permet de fixer cette limite de courant. La limite de courant est typiquement fixé soit à la limite, soit un peu en dessous de la limite de courant du moteur (voir spécification du moteur). Une façon de mesurer la limite de courant est de bracnher le contrôleur en mode "full step" et de mesurer le courant passant dans une seule des bobines (sans envoyer de signal sur la broche STEP). Le courant mesuré représente 0.7x le courant limite (puisque les deux bobines son toujours limités à environ 70% du courant limite en mode "full-step").
Une autre façon de fixer le courant limite est de mesurer la tension sur la broche “ref” et de calculer le courant limite correspondant (La résistance permettant de mesurer le courant fait 0.100Ω). La tension de la broche "ref" est accessible un point de mesure entourer d'un petit cercle (sur la sérigraphie,de la carte). La relation entre le courant limite et la tension est la suivante:
Current Limit = VREF × 2
Donc, si vous avez un moteur prévu pour 1A, vous pouvez fixer la courant limite à 1 A en sélectionnant une tension "ref" de 0.5 V.
Le courant circulant dans une bobine peut être très différent de celui délivré par l'alimentation. Par conséquent, il ne faut mesurer le courant à la sortie de l'alimentation pour fixer le "courant limite". L'emplacement approprié pour mesurer le courant est en série avec une bobine de votre moteur pas-à-pa. |
Dissipation de chaleur - considérations
Le circuit intégré DRV8825 qui pilote la carte support un courant maximum de 2.5 A par bobine mais la résistance senseur de courant limite le courant à un maximum de 2.2A. Hormis ces considérations le courant que vous pourrez vraiment utiliser dépend de votre capacité à refroidir efficacement le circuit intégré. La carte est conçue pour évacuer la chaleur hors du circuit intégré mais si vous désirez utiliser un courant approchant ou supérieur à 1.5 A par bobine, vous devez utiliser un dissipateur de chaleur ou autre système de refroidissement.
Ce produit peut devenir suffisamment chaud pour vous brûler... même bien avant que la protection de surchauffe ne s'active. Soyez prudent en manipulant ce produit où autres composants qui y sont branchés. |
Notez que mesurer le courant à la sortie de l'alimentation n'est pas représentatif du courant que l'on peut mesurer sur une bobine du moteur. Etant donné que la tension de l'alimentation peut être significativement plus élevée que la tension sur un bobine du moteur, le courant mesuré sur l'alimentation peut être un peu inférieur à celui circulant dans la bobine du moteur (le pilote et les bobine agissent un peut comme une alimentation à découpage step-down [switching step-down power supply']). De même, si la tension d'alimentation est beaucoup plus élevée que les besoins du moteur, la limitation de courant imposera forcement un cycle utile très court (duty cycle will be very low), ce qui peut conduire à une différence entre le courant moyen et le courant efficace/RMS (Wikipedia.fr). D'autre part, le courant dans une bobine est fonction du courant limite sélectionné mais n'est pas forcément égale à cette limite étant donné que le courant sera différent pour chaque micro-step. Voyez la fiche technique du DRV8825 pour plus d'information.
Exemple Arduino
Vous trouverez ci-dessous deux montages types de moteurs pas-à-pas bipolaires à 4 fils. Ces exemples sont issus de notre tutoriel sur le pilote de moteur pas-à-pas A4988 (moins puissant) qui dispose d'un brochage compatible avec le DRV8825 :-)
Ces exemples du DRV8825 utilisent le second schéma de branchement proposé par Pololu. Ce qui permet d'utiliser soit un StepStick DRV8825, soit un Steptick A4988.
Codification rouge, bleu, vert, noir
Codification rouge, jaune, vert, gris
Cette codification est utilisé pour les moteurs pas-à-pas que nous proposons ici chez MC Hobby.
Le code
Le seul point a relever dans ce code est le comportement de la broche ENABLE branché sur la sortie 13 d'Arduino.
Enable fonctionne en logique inverse!
Cela signifie que:
- Le module est activé lorsque la sortie 13 est LOW (niveau bas) - L'axe du moteur est donc maintenu bloqué en attente du prochain pas.
- Le module est désactivé lorsque la sortie 13 est HIGH (niveau haut) - L'axe du moteur est donc totalement libre de tout mouvement puisque le moteur est désactivé.
// --- Commande d'un StepStick/Driver A4988 ---------------------- // DRV8825_Test.ino // // Commande d'un moteur pas-à-pas à l'aide d'un pilote DRV8825 avec // Arduino. // // Un projet www.mchobby.be (vente de kit et composant) // Meurisse D. - Licence CC-SA-BY // // Un tutoriel http://wiki.mchobby.be/index.php?title=DRV8825 // Ou Acheter un StepStick DRV8825 // http://shop.mchobby.be/product.php?id_product=454 // #define pinEnable 13 // Activation du driver/pilote #define pinStep 9 // Signal de PAS (avancement) #define pinDir 8 // Direction void setup(){ Serial.begin(9600); Serial.println("Test DRV8825"); pinMode( pinEnable, OUTPUT ); pinMode( pinDir , OUTPUT ); pinMode( pinStep , OUTPUT ); } void loop(){ int i = 0; digitalWrite( pinDir , HIGH); // Direction avant digitalWrite( pinStep , LOW); // Initialisation de la broche step // Avance de 200 pas for( i=0; i<200; i++){ Serial.println( i ); digitalWrite( pinStep, HIGH ); delay( 10 ); digitalWrite( pinStep, LOW ); delay( 10 ); } // Changer de direction digitalWrite( pinDir , LOW); // Direction avant // Refaire 200 pas dans l'autre sens for( i=0; i<200; i++){ Serial.println( i ); digitalWrite( pinStep, HIGH ); delay( 1 ); digitalWrite( pinStep, LOW ); delay( 1 ); } // Pas de step et pas d'ordre... // l'axe du moteur est donc bloqué Serial.println("Axe bloqué + attendre 5 sec"); delay( 5000 ); // déblocage de l'axe moteur Serial.println("Deblocage axe"); digitalWrite( pinEnable, HIGH ); // logique inversée // Fin et blocage du programme // Presser reset pour recommander Serial.println("Fin de programme"); while( true ); }
Diagramme
Les résistances senseurs de courant (R2 et R3) branchés sur le DRV8825 font 0.100 Ω. Le schéma est également disponible dans ce fichier pdf (196k pdf).
DRV8825 et A4988 - les différences clés
Le pilote DRV8825 a été conçu pour être similaire au pilote de moteur pas-à-pas A4988 (autant que possible), et peut être utilisé pour remplacer le A4988 dans de nombreuses applications puisque ils ont tout deux: la même taille, le même brochage et la même interface de contrôle. Il y cependant quelques différences entre les deux modules:
- La broche fournissant l'alimentation à l'étage logique du A4988 est aussi utilisé comme sortie FAULT sur le DRV8825. Le DRV8825 ne nécessite pas de tension d'alimentation pour l'étage logique (et que le A4988 n'a pas de signal FAULT). Sachez que vous pouvez connecter la broche FAULT directement sur l'alimentation de la logique en toute sécurité (il y a une résistance de protection de 1.5k entre la sortie du circuit intégré et la broche). Par conséquent le module DRV8825 peut être utilisé sur des systèmes conçu pour le A4988 et fournissant la tension d'alimentation de la logique sur cette broche.
- La broche SLEEP sur le DRV8825 ne dispose pas d'une résistance pull-up par défaut (comme sur le A4988) mais la carte de contrôle connecte SLEEP sur la broche FAULT par l'intermédiaire de la résistance de 10K. Par conséquent les systèmes prévus pour A4988 appliquerons la tension logique sur la broche FAULT qui activera alors un pull-up sur SLEEP par l'intermédiaire de la résistance de 10k. (Cette résistance de 10k n'était pas présente dans la version initiale md20a du pilote DRV8825.)
- Le potentiomètre de configuration du courant limite se trouve à une autre position.
- La relation entre le courant limite et la tension sur la broche de référence est différente.
- Le DRV8825 offre une résolution micro-stepping au 1/32 de pas; le A4988 est limité à 1/16 de pas.
- Les broches de sélection activée pour le mode 1/16 de pas sur le A4988 correspond à 1/32 de pas sur le DRV8825. A l'exception de ce cas, toutes les autres configurations M0-M1-M2 de résolutions micro-stepping sont identiques sur le DRV8825 et le A4988.
- Les contraintes de temps concernant la pulsation minimale sur la broche STEP (pas) est différent pour les deux pilotes. Avec un DRV8825, les impulsions STEP HAUT et BAS doivent avoir un temps d'au moins 1.9 µs; mais peut descendre jusqu'à 1 µs avec un A4988.
- Le DRV8825 supporte une tension maximale plus élevée qu'un A4988 (45 V contre 35 V), ce qui signifie que le DRV8825 peut être utilisation en toute sécurité à plus haute tension et est moins susceptible au dommages de sur-tension induite par les circuit LC.
- Sans système de refroidissement supplémentaire, le DRV8825 est capable de délivrer plus de courant que le A4988 (basé sur un test en full-step/pas-complet: 1.5 A par bobine pour le DRV8825 versus 1.2 A par bobine pour le A4988 Black Edition et 1 A par bobine pour le A4988 original).
- DRV8825 utilise un convention de nom différent pour les sorties moteur mais la fonctionnalité (et brochage) est identique au A4988. Par conséquent le même raccordement moteur sur les deux pilotes moteurs produit le même résultat sur le moteur pas-à-pas.
- Le contrôleur DRV8825 est pourpre (au cas ou cela pourrait être important pour votre application).
Câblage minimal pour connecter un microcontroleur. Version alternative, compatibilité avec le pilote A4988
Où Acheter
Vous trouverez également les produits suivants:
A voir aussi
Documentation réalisée par Meurisse. D pour MCHobby.be. En partie basé sur les informations disponible sur le site de Pololu
Traduit avec l'autorisation de Pololu - Translated with the permission from Pololu - www.pololu.com
Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : « Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.
L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.