carte

Nous avons vu précédemment que pour contrôler un moteur pas à pas il est nécessaire de changer la polarité des bobines pour chaque pas. De plus si on souhaite contrôler en divisant les pas (microstepping) il est nécessaire de contrôler le courant circulant. Ce qui devient une tâche bien difficile. Heureusement il existe des puces qui rendent ce travail complètement transparent, il restera uniquement à placer derrière un microcontroleur qui envoie des impulsions à la vitesse de rotation souhaitée.

La puce A3979 d'AllegroMicro est un composant intégré dans lequel on trouve deux ponts en H pour controler un moteur pas à pas (étage de puissance).Mais également toutes les fonctions permettant de traduire les impulsions, de calculer les courants qui circulent dans le moteur et réguler ce dernier, ... .Un composant comme ce dernier intègre toutes les fonctions nécessaires pour faire tourner un moteur pas à pas. Il ne reste qu'à placer derrière un signal envoyant des impulsions pour commander les pas et un autre indiquant le sens de rotation pour faire tourner le moteur.

schemafonct

Cette puce peut commander des moteurs jusqu'à des courants de +/- 2.5A pour une tension d'alimentation maximum de 35V. Elle peut diviser les pas des moteurs par 2, 4ou 16 fois. Nous aurons vite compris que cette petite puce peut s'interfacer directement avec un microcontroleur et que ce dernier peut alors contrôler très simplement un moteur pas à pas. Néanmoins faut-il encore monter la puce correctement.

Schéma

schema

Les paramètres

Comme conseillé dans le datasheet, nous placerons une capacité C1 de 220nF entre CP1 et CP2 pour générer les tensions nécessaires au fonctionnement de la puce. La capacité C7 de 220nF permet d'amortirla commutation des portes de sorties.

L'entrée Ref permet de paramétrer le courant max qui circulera dans le moteur, le calcul n'est pour ça pas compliqué:

formcurrent

Dans notre cas, RS vaut 0.15Ohm. De manière à éviter d'envoyer par erreur un courant trop important, nous avons bridé la tension maximale qui peut être présente au point milieu du potentiometre R6 (10k) au travers de la résistance R5 (8.2k). De cette manière, Vref ne peut excéder 2.75V. Soit Itrip ne peut être plus important que 2.3A qui est inférieur à 2.5A. La capacité C8 (220nF) permet de filtrer la tension continue présente sur Vref.

Les paramètres RC1/RC2 gèrent la constante de temps. Plus elle est faible, plus la régulation du courant sera précise mais au détriment des pertes dans la commutation des mosfets. Dans notre cas, nous avons placé 1nF pour C4 et C5 et 12Kohms pour R3 et R4.

Le paramètre PFD est certainement le point le plus compliqué de ce montage. Nous allons tenter de l'expliquer simplement. Lors de la commutation des mofsets du H Bridge qui permettent de controler le moteur, l'énergie accumulée dans la bobine par le courant (représenté en bleu dans la figure ci-dessus) doit se vider. Ceci peut se faire de deux manières: soit au travers des diodes schottky (en rouge), manière qui représente le mode Fast Decay (décroissance rapide du courant) soit par le chemin représenté en vert, qui est le mode slow decay en décalant la fermeture d'un des mosfets. Quel est le meilleur mode? On choisit le mode que l'on souhaite en fonction de l'application, si le moteur doit tourner lentement (slow decay), ou rapidement (Fast Decay).

pfdcolor

La puce A3979 est dotée d'un système mixte qui permet d'utiliser le mode "fast decay" pendant un temps (à partir du moment où le courant max est atteint) dépendant de la constante RC et de la tension appliquée sur PFD. Pendant l'autre partie du temps, le mode "slow decay" est utilisé. Ceci a pour but d'essayer de fournir un courant le plus sinusoïdal possible pour le contrôle du moteur (et éviter des résonances). Idéalement le paramètre PFD doit être ajustable. Dans notre cas, nous avons fixé ce paramètre car jouer avec ce dernier est compliqué. la valeur choisie (de 2 Volt) semble convenir à notre application (R7: 3.3KOhms et R8: 2.2KOhms).

Le réglage fin du PFD permet de diminuer le bruit du moteur, mais aussi d'accroitre la précision des pas et de diminuer les pertes d'énergie.

Le paramètre MS1/2 permet de sélectionner la division des pas:

ms

En plaçant les entrées à +5V ou à la masse au travers d'un jumper, on configure la résolution. Attention, il est conseillé de changer la résolution à froid (couper l'alimentation de la carte).

Les résistances R1/b et R2/b sont les résistances qui permettent à la puce d'avoir un feedback sur le courant qui circule dans le moteur. Sans ces résistances il serait impossible de contrôler le courant, et encore moins de diviser les pas. Nos calculs nous ont amené à placer une résistance de 0.15Ohms, comme nous avons eu quelques difficultés à trouver cette valeur, nous avons placé deux résistances de 0.15Ohms.

Les fonctions sleep, home, enable et reset ne sont pas utilisées dans notre application. Rien n'empêche le lecteur attentif de refaire son schéma en intégrant ces fonctions.

 

Le PCB et le montage

La carte que l'on propose fait 45*36mm, elle peut s'intégrer facilement dans de nombreuses structures. La connectique est principalement réalisée au travers de borniers vissables.

cartealtium

Le pcb est en double couche, il faudra faire attention de garantir la connectivité électrique entre les couches. Le dessin, ainsi que le schéma et la BOM se trouvent dans le pdf disponible en téléchargement.

Le composant A3979 est pin to pin compatible avec l'A3977, néanmoins nous avons préféré travailler avec le 79 plus récent et qui permet une division des pas plus importante.

La puce possède un pad thermique. Pour cette raison nous avons placé sous le composant une surface de cuivre reliée à la masse. Il est important de placer de la pâte thermique sur ce pad thermique avant de la souder. On remarque un ensemble de vias qui sont des vias thermiques qui permettent de communiquer la chaleur vers le plan de masse au bottom pour accroitre la dissipation de la chaleur.

A l'exception des connecteurs, la carte est faite entièrement de composants montés en surface. Cela peut faire peur à certains, mais avec l'habitude on comprend que ce mode de montage est plus agréable et plus solide. Nous ne donnerons pas d'explication dans cet article sur la façon de souder la carte.

Il est conseillé de monter tous les composants à l'exception du A3979. Avant de souder ce dernier, reportez-vous au mode d'emploi ci-dessous.

Nous retiendrons l'attention du lecteur sur les capacités C14 et C13. Il y a deux capacités mais une seule est nécessaire. Si l'utilisateur préfère avoir les composants "connecteur" au top ou au bottom, il soudera la capacité du coté voulu (comme elle est plus volumineuse que les autres composants).

Sur la puce A3979, nous conseillons de placer un petit dissipateur tel que celui-ci: Ref Farnell 4302175.

4302175

Mode d'emploi

mdedemploi

La première chose à faire, avant de souder la puce A3979, est de vérifier toutes les tensions. Pour cela, vérfiez premièrement que vous avez bien 5V sur la capacité C10. Attention, ne pas négliger la valeur de C10 et C11, il est vraiment important pour le regulateur 5V qu'elles fassent au moins 10uF. Personellement, j'ai branché une alimentation 24V. Sur certains moteurs pas à pas on parle d'une tension par phase. Ce n'est pas utile, le moteur est ici contrôlé en courant. Il est conseillé de placer une tension supérieure à la valeur nominale par phase du moteur. Le drive s'occupera du reste. Si vous n'avez pour votre moteur que l'indication de la tension et la résistance de la bobine, la loi d'ohm est votre ami U=R*I.

Vérifiez également la tension sur le point de mesure VRef. Il est conseillé de placer le niveau souhaité sur la résistance ajustable pour avoir le courant voulu sur votre moteur: I = Vref / 1.2 .

Coupez l'alimentation et soudez la puce A3979 et cablez le moteur comme indiqué sur le schéma.

Pour la configuration de la division des pas, toujours l'effectuer hors tension. P3=MS1 et P4=MS2. Placez les jumpers de manière à respecter le tableau présenté plus haut (Vers le bord de la carte pour High et vers l'intérieur pour Low).

L'entrée Pas est l'entrée TTL où les impulsions doivent être entrées. Pour réaliser un premier test placez 100Hz carré, 0-5V. L'entrée Direction, placez 0V ou 5V en fonction du sens de rotation souhaité.

Tout devrait bien fonctionner.

Liste des composants

Sans vouloir faire de publicité pour le revendeur de composants, nous avons placé les références vers le site Farnell, de telle manière le lecteur pourra trouver facilement toutes les informations nécessaires à chaque composants.

composants

Téléchargement et lien

Telecharger l'archive avec le schéma, le pcb, la liste des composants ici

Le site du fabricant de la puce : AllegroMicro

Acheter tous les composants nécessaires (à titre informatif): Farnell