Contrôleur pas à pas Toshiba TB6560 et pilotage micropas: Pertes de pas et problèmes de fréquence d'horloge

Après avoir travaillé sur une première correction d'un contrôleur pas à pas chinois acheté sur Ebay, j'ai acheté un autre contrôleur pour une autre machine, qui ne m'a pas entièrement donné satisfaction. En effet, bien qu'il ne rate pas de pas en basse vitesse, ses performances ne permettaient pas d'aller aussi vite que celui que j'avais modifié. J'ai donc creusé la question et trouvé l'origine du problème, qui touche la plupart des contrôleurs du marché... Voyons comment, après une lecture attentive de la documentation du composant TB6560, on apprend comment - en changeant un simple condensateur - multiplier les performances par 4... voir plus.

INTRO

Le précédent article sur le sujet visait à corriger des défauts de conception sur un contrôleur chinois. Pour la machine suivante j'ai acheté un contrôleur supposé bien mieux fonctionner.

tb6560.jpg Celui-ci corrige effectivement bien des défauts de l'autre :

  • 4 axes intégrés
  • Connecteur pour l'extension à un 5e axe, ou pour disposer des 2 sorties et de l'enable pour un autre usage (ex: commande de broche VFD);
  • Connecteur pour 4 entrées fin de course, optocouplées;
  • Large dissipateur, pour un refroidissement totalement passif;
  • Opto isolation du port parallèle complète et fonctionnelle
  • Régulateur 5V à découpage : ne chauffe pas;
  • Commande de broche sur relais, avec diode d'anti-retour et relais 220V 6A;
  • Leds de témoin d'alimentation et d'activité sur chaque axe;

Voici le synoptique de la carte : tb6560-diagram.jpg

Le fabriquant de la carte annonce d'ailleurs avoir corrigé bien des défauts de l'autre carte et se permet même une petite publicité comparative : tb6560-comparison.jpg

LE PROBLÈME ET THÉORIE

La carte dispose de 3 réglages par moteur :

  • Le courant de pilotage du moteur, qui est une donnée constructeur. Il ne sert à rien de piloter un moteur 3A à 4A, cat il est conçu pour fonctionner à 3A. Les ciruits magnétiques seront saturés, ce qui aura pour effet de chauffer. Mettre donc la valeur s'approchant le plus du moteur sans la dépasser.
  • Le mode de pilotage (pas pleins, demi pas, etc..). C'est un compromis entre la précision espérée, et la vitesse max espérée. Plus on met de micro pas et moins on va vite... Il faut donc partir de la précision souhaitée, afin de déterminer le nombre de micro pas souhaité. Voir ci dessous les calculs.
  • Le réglage de decay (ou décroissement du courant après le pic d'attaque). En décroissant rapidement le courant, on limite le bruit, mais on a moins de couple. Compromis.

Lors des séances d'essais, et alimentée sous 24V, cette carte s'est révélée bien fonctionner à de faibles vitesses, et sans faire de micro pas. Mais dès que l'on essaye d'aller soit vite, soit en pilotage micro-pas, les moteurs font un grognement annonciateur de perte de pas bien avant avoir quitté le domaine de fonctionnement du moteur.

Il est possible de repousser un peu les limites de l'apparition de ce grognement en jouant avec le réglage de decay, mais alors les moteurs deviennent très bruyants (sifflement) à basse vitesse ce qui est très désagréable. On a donc le choix entre un pilotage favorisant les hautes vitesses, mais qui siffle à basse vitesse (en forçant sur le decay), et un qui ne siffle pas à basse vitesse, mais grigne à haute vitesse et perd des pas...

Les 2 bruits distincts, sont une très bonne indication de ce qui se passe :

  • Grognement: annonce un glissement de pas, c'est à dire une perte de pas. Pas bon .
  • Sifflement : Annonce que les bobines des moteurs entrent en résonance à cause d'un courant trop fort, ou d'un pilotage incorrect. Ca marche, mais c'est très désagréable.

Le même test effectué avec la carte 'bleue', montre un fonctionnement plus fluide, et rentre un peu plus dans le domaine de fonctionnement, sans pour autant que cela soit parfait. Apparemment, ce serait lié aux disparités de valeurs sur les condensateurs, dont la tolérance est de 20 % (oui, c'est énorme...).

La lecture du datasheet du composant TB6560 s'est révélée des plus instructives. En effet, on voit notamment que le composant dispose d'une horloge interne qui sert à générer les timings de micro-pas. Plus on demande de micro-pas par tour, et plus il faut de coups d'horloge pour les générer.

Ainsi, en 16e de pas, il ne faut pas moins de 64 coups d'horloge pour générer un tour complet, comme le témoigne la figure suivante : 16e-pas.png

Un autre chapitre du datasheet concerne cette génération d'horloge justement. Il y est dit que la fréquence d'horloge est fixée par un condensateur connecté entre la broche 'OSC' (3) et la masse. Un petit tableau nous indique les valeurs possibles : horloge.png

Et c'est justement là que le bas blesse. En effet, dans beaucoup d'implémentations du schéma de référence sur des cartes commerciales, la note 2 (voir tableau ci dessus) a conduit les designers à choisir la valeur médiane (330 Pf) du tableau, qui donne 130 kHz comme fréquence d’horloge. Or, à 130 kHz justement, et en 1/16e de pas, la fréquence de pas ne pourrait dépasser 130/64= 2.03 kHz. Avec un moteur à 200 pas par tour et toujours en 16e de pas, ceci nous ferait donc 1 tour = 200x16= 3200 pas. La vitesse maximum du moteur serait donc de 2030/3200=0.635 tour / seconde, soit 38 tours / minute... Sur ma machine de CNC qui dispose d'une vis avec un pas de 5mm par tour, la vitesse max serait donc de 190mm / minute en 16e de pas. Cette vitesse augmente en 1/4 de pas, augmente encore en 1/2 pas et encore en plein pas, mais au détriment de la précision. En effet, sur ma machine, toujours en 5mm/tour de vis, la précision serait donc de 5/3200= 0.0015mm (1.5 millièmes de mm), alors qu'elle descend à 0.00625mm en 1/4 de pas (six millièmes). Bien qu'une précision d el'ordre du centième soit déjà très excessive, je vais rester en 16e de pas.

La note 1 donne la piste de solution : Si on veut une fréquence de pas plus importante, il faut augmenter la fréquence de l'oscillateur interne. En passant le condensateur à 100pF, la fréquence interne augmente et passe à 400 kHz. En refaisant les calculs ci dessus, la fréquence de pas augmente à 6.25 Khz. Toujours à 200 pas par tout en 16e de pas, la vitesse max passe à 6025/3200=1.95tour /seconde, soit 117 tour / minute. Avec une vis au pas de 5mm / tour, c'est donc une vitesse théorique max de 585 mm / minute, c'est à dire plus de trois fois la vitesse max atteignable par défaut....

Toujours avec un condensateur à 100pF, mais en 1/4 de pas, la vitesse théorique de déplacement doublerait, soit 1170 mm / minutes.

EN PRATIQUE

Il est clair que d'après ce calculs (et si ils sont justes... si vous voyez une erreur, n'hésitez pas à me corriger), il est illusoire d'atteindre des vitesses de Jog de 2500 millimètres par minute, en 16e de pas, et avec une vis mère de 5 avec ce type de contrôleur...

Nous allons donc modifier la fréquence d'horloge de la carte en changeant les 4 condensateurs. Il nous faut donc 4 condos de 100pF cms (chez votre détaillant électronique...).

Pour modifier la carte rouge, il faut démonter le radiateur de refroidissement, car les condensateurs qui règlent la fréquence d'horloge sont juste en dessous.

IMG_0156.JPG

Sur ma carte (référencée 6B6560-4V3 sur la sérigraphie), les condensateurs sont nommés C39, C40, C41 et C40 (un par axe). Ils font 330 pF par défaut, ce qui confirme la thèse évoquée dans le paragraphe "Théorie". Leur dessoudage ne pose pas de problème car il y a la place. Idem pour la mise en place des nouveaux condensateurs. Il faut quand même de bon yeux, et ne pas trembler..

Edit : Sur le contrôleur 3 axes, grâce à SETH qui a eu la gentillesse de publier une photo sur usinages , on voit que la disposition est la même. Les 3 condensateurs sont sérigraphies C39, C40 et C41.

Vue d'ensemble de plusieurs étages :

IMG_0155.JPG

Le condensateur à dessouder est celui de gauche dans le groupe de 3 composants à droite sous le circuit (ici, C42) :

IMG_0157.JPG

TESTS

Après avoir modifié la carte en changeant les 4 condensateurs (un par axe), c'est le jour et la nuit. Les moteurs ne grognent plus, et il n'est plus nécessaire de booster le decay pour garder du couple. En gardant le réglage minimum, c'est parfait. Les moteurs sont silencieux, coupleux, et les déplacements sont fluides. Il faut bien sur rester dans le domaine de fonctionnement qui a été calculé ci dessus. Je suis même passé un peu au dessus en passant à 1100 mm / minute, sans problème. A cette vitesse, je n'ai pas mis de decay, ce qui fait un pilotage moteur très sliencieux (pas de sifflement) à toute vitesse. On a bien sur le phénomène de résonance en vitesse médiane, mais c'est un phénomène normal et inhérent aux moteurs eux même. Il est impossible de le corriger avec ce type de carte.

Bien sur, on ne peut pas faire fonctionner les moteurs à n'importe quelle vitesse. Il faut se référer aux courbes des documentations techniques. graphe_de_couple.png

Sur ce graphe, on voit que le couple maximum est atteint à 250 à 300 pas par secondes (Hz). PSi cela se maintient à peu près jusqu'à 2000 pas par secondes, à 7000 pas par seconde le couple n'est plus que de la moitié, et du quart à 10000 pas par secondes.

Sur ce moteur, en partant du principe que 2/3 du couple max seraient acceptables, il ne faudrait pas dépasser les 4kHz en fréquence de pas... Autre phénomène, c'est que plus on va vite avec une charge (les vis, les chariots, tout ca...) plus la résistance augmente à cause des différents frottements. Et ce facteur ne va pas non plus dans le bon sens...

A méditer, donc avant de décider que la carte n'est pas bonne après modification, car on ne pourra pas atteindre de grandes vitesses en charge... Et ne pas prendre ces valeurs comme paroles d'évangile, il vous faut vos graphes moteur et refaire les calculs...

Conclusion

J'ai également travaillé en montant un peu le decay, et cela m'a permis d'accélérer jusqu'à 1800 mm / minutes, sans perte de pas. J'ai pu pousser les vitesses jusqu'à 3500 millimètres par minute à vide (c'est à dire le moteur sur table d'essais mais non relié à la CNC) sans perte de pas apparente avec une carte modifiée, c'est à dire 6 fois la vitesse max calculée...

Il faut par contre mettre le decay à fond pour avoir ces résultats (sinon grognement = perte de pas), et cela redevient bruyant à l'arrêt ou à basse vitesse (sifflements). Cela ne fonctionne bien sur pas en charge sur la machine, car la vitesse atteinte par le moteur est telle qu'il n'a plus de couple. C'est normal, car c'est une caractéristique physique du moteur (et qui dépend de votre moteur...). On peut néanmoins atteindre des 1800 à 2000 mm / minute en charge sur la machine dans les mêmes conditions de test (c'est à dire avec decay).

Mais alors pourquoi, après tous ces calculs, ca marche encore à plus de 6 fois la vitesse calculée??? En haute vitesse, le moteur se comporterait comme si seuls les 'pas pleins' (200 pas / tour) étaient importants, Physiquement, le moteur travaille en pas pleins. Les micro-pas ne sont que des états intermédiaires générés par l'électronique de commande en faisant varier le courant sur les 2 bobines. La puissance sur ces pas intermédiaires n'est que de 70 % (1/racine de 2) de la puissance sur les pas pleins.

En pas plein, les 2 bobines sont alimentées à 100 %, ce qui permet une attraction suffisante pour attirer le rotor vers cet état. Le 'ratage' de micro-pas en haute vitesse n'est donc pas grave et n’empêche pas le moteur de ne pas perdre de pas pleins, ce qui nous intéresse pour le pilotage de CNC (perte de pas = pièce foirée!). Ceci explique pourquoi on peut dépasser la fréquence de pilotage théorique imposée par le contrôleur, mais cela se fait au détriment de la précision (car les micro pas deviennent 'approximatifs'). Ce n'est pas nécessairement dérangeant pour du Jog, et même pour de l'usinage à grande vitesse, puisque lors d'un arrêt il y aura une décélération qui passera nécessairement par le point que nous avons calculé et qui redonnera toute sa précision en micropas au moteur... lors de son arrêt et son redémarrage.

Par contre, le point de non retour est la perte de pas pleins. Si on tire trop sur le moteur, l'alliance des frottements sur la machine et de l'abaissement du couple moteur à haute vitesse suffit à rendre la chose inutilisable; Il convient donc de déterminer des vitesses max par expérimentation, et de prendre un coefficient de sécurité dessus avant de paramétrer le logiciel. Car sur notre machine d'usinage, ce qui nous intéresse reste quand même d'usiner et non pas de faire des concours de vitesse de déplacement de broche :).

Bien utilisée, cette carte permet donc de faire des choses, et à 50 USD pour 4 axes, c'est une aubaine. Mais n'espérez pas piloter une grosse CNC très vite... Il faudra passer sur des solutions plus sérieuses, ou 50 USD n'est même pas le prix du contrôle d'un axe.

Je m'interroge notamment sur les drivers chinois de type '2M542' qui annoncent une fréquence de pas à 200 Khz. Dans les mêmes conditions, cela voudrait dire qu'il serait possible d’atteindre ( 200 000 / 3200 pas par tour * 60 secondes) = 3750 tours minutes. Pas mal.

A essayer....

Edit: La doc de la carte : MANUAL_OF_IFS-6560T4-N.doc