Aller au contenu

GO Print

TRINAMIC, histoire, fonctionnement et autres joyeusetés des TMC2xxx


stef_ladefense

Messages recommandés

Bonjour à toutes et tous,

Puisque ces questions reviennent régulièrement, je vais essayer d’expliquer comment utiliser les modules équipé de puce Trinamic de type TMC2xxx et comment les régler en fonction du courant consommé par le moteur.

 

Petit historique :

Faire tourner un moteur pas à pas n’est pas bien compliqué, quelques transistors et quelques lignes de code suffisent, par contre c’est du pur binaire avec pleins d’inconvénients, des accélérations brutale, vibrations et bruits d’ondes carrées caractéristiques.

Dans les années 2000 Texas Instruments étudie un système de chip tout en un, qui regroupe, les générateurs de rampe PWM pour permette des micros pas, les étages de puissances, la régulation de courant, mais surtout une gestion logique interfaçable sur tous types de microcontrôleurs.
Sorti en 2010 le DRV8825 comprends donc une intégration poussée tout en un et les bases du pilotage moderne avec 3 signaux logiques DIR, STEP et ENABLE.

En 2012 Allegro sort sa propre version qui fonctionne sur des bases équivalentes, l’A4988.

Depuis les années 90, Trinamic s’intéresse au contrôle du mouvement piloté et conçoivent une technologie de contrôle matériel et non plus logiciel, ce qui est essentiel pour avoir un fonctionnent des moteurs de manière efficace, fiable, fluide et silencieux.

Peu à peu l’industrie plébiscite la précision de fonctionnement de leurs produits.

Alors que l’explosion de l’impression 3D personnel est déjà bien débutée, Trinamic annonce mi 2015 son dernier circuit intégré de commande et de pilote de moteur pas à pas à un axe. Le TMC2100.

Rapidement apparait sur le marché grand public un module équipé avec le TMC2100.
D’une conception différente de ce qui existe alors, il apporte un pilotage bien plus optimisé et surtout silencieux, et sera suivi rapidement par des améliorations avec les TMC2208, TMC2209… etc.

La forme actuelle des modules enfichable de 2 x 8 boches est certainement dû à la société Pololu qui à développer depuis les années 2000 pléthores de modules spécialisés robotique, faciles à changer en cas d’upgrade ou de destructions.

 

Compatibilités et particularités des modèles Trinamic :

Quand on regarde un module, la première chose qui saute aux yeux est l’absence de composant sur sa face supérieure, il n’est peuplé qu’au recto !
Pourquoi ? Parce que celui qui a dessiné le PCB a lu les notes technique du fabriquant ! Merci à lui !

Les puces Trinamic possède un pad thermique sous son boitier et est donc brasé en dessous du circuit imprimé ce qui a le mérite de laisser toute la place au verso pour le dissipateur thermique.
La liaison thermique avec le dissipateur se fait via un double plan de masse percé d’une multitude de via traversant le circuit imprimé pour un échange thermique optimal, de loin beaucoup mieux qu’à travers l’époxy du boitier du composant.

ATTENTION on trouve des modules qui utilisent des puces TMC22xx avec la puce sur le DESSUS ! N’achetez pas ça ! Elles sont instables !

Cette conception est de loin la meilleure approche en industrie et on en use et abuse presque pour tous composant qui chauffe, il est d’ailleurs dommage que l’A4988 n’en profitent pas,  son pad thermique étant placé aussi sous son boitier…
Encore un qui n’a pas lu les notes de conceptions, c’est dommage car on trouve toujours le meilleur dans les notes d’application, même le dessin optimisé du PCB pour tests.

Sa deuxième particularité est qu’ils ont les sorties des enroulements moteur inversées.
Rien d’insurmontable et nous avons au moins deux façons pour le gérer :
Agir directement dans la source (Marlin,…) par la déclaration logique de l’inversion du sens de rotation de chaque moteurs, ou inverser le sens du connecteur du moteur, coté carte de contrôle ou coté moteur.

 

Gestion de l’énergie ou les fameux modes StealthChop et SpreadCycle :

StealthChop est le mode par défaut de fonctionnement silencieux du pilote, aussi bien à l'arrêt qu’à des vitesses faibles à modérées. C’est le mode préféré pour les axes X, Y et Z.

SpreadCycle est le mode standard hautement amélioré par rapport aux DRV8825 et A4988, préférable pour le moteur de l’exdrudeur quand le mode Linear Advence est utilisé ou quand de très hautes vitesses sont nécessaires, ces dernières sont rare sur nos machines à la maison.

Leurs mises en place dépendent du pilote :

TMC2100 est dit Standalone (autonome) et n’est pas pilotable, sa configuration est confiée aux signaux CFG1 et CFG2.

TMC2130 est utilisable en Standalone mais c’est surtout qui soit pilotable par bus SPI qui le caractérise, en mode standalone c’est qu’un équivalent TMC2100 avec configuration via CFG1 et CFG2. L’utiliser seulement si la carte de l’imprimante le supporte.

TMC2208 est utilisable en Standalone, avec ou sans une configuration avancé via l’écriture dans sa mémoire OTP, ou par UART (RS232).
Il utilise le mode StealthChop par défaut, pour le passer en mode SpreadCycle il faut soit, écrire dans sa mémoire OTP (Programmable qu’une fois, aucun retour en arrière possible), soit le piloter en mode UART.

TMC2209 est utilisable en Standalone,  par UART chainable (par 4) et/ou OTP.
Il possède en outre une broche SPREAD de configuration hardware qui permet de le faire travailler en mode StealthChop (LOW) ou SpreadCycle (HIGH).

 

Upgrade ?

Changer de pilotes vers des TMC vont donc apporter une gestion des moteurs optimisée par rapport aux pilotes de base, même en standalone et aussi jouer sur le bruit, ou plutôt le silence, généré par les moteurs, la contrepartie c’est que l’on s’aperçoit vite que les ventilateurs sont bruyants… très bruyants, trop ?

A l’heure actuelle, autant utiliser le TMC2209 qui est le mieux optimisé, plus souple à utiliser et permet des pointes de courant jusqu’à 2.8A.

Mais si vous avez un lot de 2208, voire de 2100 utilisez les !

Si vous utiliser le mode Linear Advence, il est préférable de configurer le pilote de l’extrudeur en mode SpreadCycle. L’optimisation StealthChop génère alors trop de problème de régularité.

Si vous êtes équipé en TMC2100, une patte à couper, un bout de fil et une brasure va solutionner le problème pour l’extrudeur.

Avec un TMC2208, on trouve des modules pour programmer sa mémoire OTP, c’est une usine à gaz car il faut souvent relier un pont de soudure sous le 2208 pour pouvoir communiquer avec ! C’est expliqué sur le site de Watterott.
Attention écrite dans sa mémoire OTP est définitif, aucun retour en arrière possible ! 
image.png.6560a7d3ff74049c26a25a8afbc85c02.png

Avec une TMC2209, c’est prévu via une broche ou un pont de brasure.

Une autre solution c’est de simplement utiliser le pilote d’origine (A4988 ou DRV8825 avec sa Vref réglée correctement là aussi).

 

La Vref :

Allez donc faire un tour sur mon post dédier dans un premier temps.

 

La Vref, ou tension de référence, sert au pilote à générer en interne le courant maximum qui passe dans le moteur, il est important de la régler correctement.
Trop faible, le moteur va perdre des pas, trop fort il va vibrer et beaucoup chauffer.

Pour mesurer ce courant, le pilote utilise des résistances de faible valeur, incluses dans la boucle de contre réaction de l’alimentation du moteur, la tension a ses bornes est égale à sa valeur multipliée par le courant la traversant (U=R*I), ce sont les fameuse Rsense.
Pour les pilotes équipés des puce Trinamic TMC2xxx, ces résistances font généralement 110mΩ (notée R110 sur leur boitier) et ce n’est pas complètement par hasard, nous le verrons plus bas. Mais il arrive (chez Creality entre autre) qu’elle fasse 150mΩ (R150), chacun est libre !

Trinamic fourni (tout comme ces homologues) la formule de calcul dans les appnotes de ses puces.
 

Cette formule est : image.png.8c5ca631eabb5a107d401b5006fa3d2c.png

Le courant est exprimé en RMS (de l'anglais root mean square), c’est la valeur efficace d'un signal périodique, correspondant en électricité et en mode sinusoïdal à Irms = Imax / Racine(2).

Nous pouvons donc écrire :
Vref = Irms * (Rsense+20)/325 *2.5 * Racine(2)

 

Prenons le cas où Rsense est égal à 110mΩ
(110+20)/325 = 0.4 et 0.4 * 2.5 = 1
Avec Rsense à 110
mΩ ça simplifie le calcul, on comprend ce choix de valeur maintenant ?
donc

Vref = Irms * Racine(2)
hors en mode sinusoïdal : Irms = Imax / Racine(2), donc  on remplace :
Vref = Imax * Racine(2) / Racine(2)
ce qui donne
Vref = Imax

Imax c’est le courant max du moteur (peak).

En électronique on n’utilise jamais le max, ça chauffe voir ça brule, des fois ça explose, par compromis on utilise souvent une fourchette entre 70% et 80%.
Puisque nous somme en mode sinusoïdale autant utiliser 1 / Racine(2) qui est proche de 71%.

On règle Vref à la valeur de Imax / Racine(2),
exemple pour un courant de 1.5A, Vref = 1.5 * 0.707 = 1.06V.

ATTENTION cette simplification du calcul n’est valable qu’avec Rsense = 110mΩ

 

Prenons maintenant une valeur de Rsense = 150mΩ

Irms = 325 / (Rsense+20) * 1 / Racine(2) * Vref / 2.5
Vref = Irms * (Rsense+20) / 325 *2.5 * Racine(2)
Comme précédemment on remplace Irms par Imax / Racine(2) et on vire Racine(2) / Racine(2)
Vref = Imax * (Rsense+20) / 325 *2.5 on peut écrire * 2.5/325 -> / 325/2.5 -> / 130
Vref = Imax * (Rsense+20) / 130

Prenons par exemple Imax = 1.5A
Vref = 1.5 * (Rsense+20) / 130
Vref = 1.5 * 170 / 130 = 1.96

Régler donc Vref à 1.96 / Racine(2) = 1.39V

Simple non ?

On peut bien sûr régler Vref dans la fourchette jusqu’à la valeur de Imax.
Plus on s’en approche, plus le couple sera important et plus le moteur va chauffer,
En cas de masse lourde à déplacer, augmentez Vref, mais faites-le en commençant de la valeur calculée et en augmentant par palier de 0.1V sans dépasser Vref max.
Ce n’est jamais une bonne idée d’augmenter Vref à cause d’une mauvaise mécanique qui force.

Feuille Excel pour calculer Vref, renseignez la valeur de Rsense et le courant Imax du moteur et hop !

TMC_Vref_V2.xlsx

 

Réglage du Vref au multimètre :

Un petit tournevis plat adapté (parfois livré avec les pilotes)
un multimètre en calibre 2V
un bout de fil fin et souple.

En premier lieu, éteindre la machine avec son interrupteur.
Trouvez une masse (sur un bornier d’alim par exemple) et y fixer la pointe de touche négative (noire) dessus.
Dénudez 5cm de chaque côté du fil fin, l’enroulez d’un côté sur la pointe de touche positive (rouge) et de l’autre sur la partie métallique du tournevis. Un bout de scotch aiderait à tenir certainement.
Déconnectez un par un en les repérant les connecteurs qui vont aux moteurs.
Allumez la machine.
Réglez chaque potentiomètre à la valeur Vref calculée, attention à la position des dissipateurs thermique, les coller en fonction d’où se trouve le trou de réglage pour ne pas être gêné par la suite.
Éteindre la machine avec son interrupteur.
Remettre les connecteurs moteurs à leurs emplacements d’origine et dans le bon sens.
Déconnectez la pointe de touche du multimètre et resserrez éventuellement le bornier qui l’a accueilli.

ATTENTION
Si le moteur est relié au pilote lors du réglage, vous risquez fortement de détruire le pilote, la carte peut aussi être détruite.

 

 

Note sur le mode UART :

Pour l’instant ce mode n’est véritablement pas encore utilisable avec Marlin.
Ce n’est pas suffisamment mûr dans le code pour piloter les moteurs en temps réel via UART ou SPI et quand ça sera possible, ça le sera seulement sur des cartes 32 bits à cause de la puissance de calcul requise.
La seule chose qui ne fonctionne pas trop mal c’est de configurer les pilotes via le soft.

On les initialise au démarrage avec leur Vref et leur mode de fonctionnement, mais c’est assez compliqué à mettre en œuvre, en mode UART, il faut obligatoirement utiliser des ports supportants les interruptions pour que SoftSerial fonctionne, mais ces ports non utilisés sont limités.
Avec des TMC2208, c’est un port par module (on peut utiliser la même pin pour TX et RX), avec un TMC2209, on peut chainer 4 module en parallèle sur le même port).

Personnellement je testerais certainement un jour le pilotage de TMC2209, avec le chainage c'est intéressant niveau port libre, ce qui simplifiera la mise en œuvre.

Par contre quand je vois le nombre de problèmes ouverts sur le Githup Marlin je suis presque sûr d’essuyer les plâtres, donc à voir quand ça sera stabilisé.
De plus il est rare de revenir sur ces réglages, à moins d’un changement de pilotes ou de moteurs.

Modifié (le) par stef_ladefense
  • J'aime 9
  • +1 1
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Quelques exemples d’intégrations :

Je vais prendre la carte que je connais le mieux, l’Anycubic Trigorilla 8 bits
de plus elle est basé sur RAMPS 1.4, donc c’est applicable au base Atmega2560 facilement.

Sur les cartes RAMPS se trouve 3 cavaliers pour régler les pilotes via les pins 2, 3 et 4.

image.png.be8c31832e947acd1f4aa7d78f24a4f5.png

Sur la carte Trigorilla, pas de cavalier, les pins 2, 3 et 4 sont forcés a +5V.
Ce qui va suivre est donc spécifique à cette carte, si votre carte a des cavaliers, pas besoin de couper les pattes des pilotes, réglez les en fonctions.

En l’occurrence pour le A4988, les pins MS1, MS2 et MS3 à +5V, le configurant en mode 16 microspas.

Pour les TMC, ce n’est pas si simple, ça va dépendre énormément du fabricant du module et de son brochage. De plus ils ont tendance à modifier le brochage lors de révisions matérielles, ce qui ne nous facilite pas la tâche.

Il y a des pilotes où les pins 2, 3 et 4 sont reliées directement au chip, d’autres qui ont des mini plots de brasure pour configurer, avec ou sans contact sur les pins du modules…

Donc cherchez le brochage chez le fabricant et en cas de doute tester avec un multimètre calibre test de conduction pour comprendre où va quoi.

 

Pour le TMC2100, en 16 micros pas, il existe 2 configurations :

CFG1 = open et CFG2 = 0V : mode SpreadCycle

CFG1 = open et CFG2 = open : mode StealthChop
La pin CFG3 est souvent Non connectée, des fois elle indique la source externe de courant en open

Pour la Trigorilla, ces pins sont a +5V, donc faut donc couper les 3 a ras sur le pilote.
Le pilote est donc en mode StealthChop.
Pour le configurer en mode SpreadCycle, il suffit de braser un petit fil entre la masse (15) et la broche CFG2 (3)

 

Pour le TMC2208, toujours en 16 microspas, une seule configuration :

MS1 = +5V et MS2 = +5V
Pour la Trigorilla on laisse en place les pins 2 et 3.
La pin 4 est souvent NC, si c’est pas le cas, voir à quoi elle sert, et la couper si nécessaire.

 

Pour le TMC2209, toujours en 16 microspas, c’est plus alambiqué !

MS1 = +5V et MS2 = +5V
Pour la Trigorilla on laisse en place les pins 2 et 3.

La pin 4 c’est au cas par cas, en fonction de fabricant et de la révision de son pilote.

Chez FYSETC d’après leur wiki, la pin 4 est NC sur la révision 1.0, elle peut rester en place.
Elle correspond à TX sur les révisions 2.1 et 3.1, elle peut rester en place.
Elle correspond à SPREAD sur la révision 3.0, donc la laisser en place pour le mode SpreadCycle ou la couper et la relier à la masse pour le mode  StealthChop.

Chez BIGTREETECH, pour les révisions 1.1 et 1.2, la pin 4 par défaut est sur PDN_UART, donc pour la Trigorilla elle est au +5V, elle peut rester en place.
Pour SPREAD ça se passe sous la carte, 3 petits ilots…
par défauts c’est en mode StealthChop, si vous voulez le mode SpreadCycle un coup de fer à braser sous une loupe pour virer la petite résistance et faire un pont de soudure.

image.png.08872e2078357e1dd24b6a76aab8e185.pngimage.png.f827a3cc0e9356b6b1e68c8108fbcc15.png

 

Il se peut qu’il y ait des pins qui dépassent sur le dessus (utilisées en mode UART), si vous n’utilisez pas ce mode, couper les pins a ras. Idem sur le petit côté en dessous, si votre carte ne possède pas de connecteur femelle pour les accueillir, coupez-les.

image.png.1919d38af9f22684871807b634c76dea.pngimage.png.b88c5cbda3625cba2968017e48b334f5.png

Quelques cartes 32bits les utilisent, donc adaptez en fonction.

 

N’oubliez pas que ça chauffe, si les pilotes chauffent trop, vous allez perdre des pas, donc un réglage Vref correct, n’oubliez pas de coller un dissipateur thermique dessus et d’assurer une bonne ventilation forcé dessus.

 

Photo d’une Trigorilla peuplé :

image.png.824978baf353dcf40a5bfbf9c97aa75b.png

ATTENTION AUX ERREURS faciles :

Le premier pilote est décalé d’un pas vers la gauche ! Il ne survivra pas !
Les 4 pilotes sont dans le bon sens, le dernier non ! Il partira instantanément en fumé !
Le potentiomètre est à droite sur un A4988 et à gauche sur un TMC2xxx.
lors d’un upgrade de A4988 vers des TMC, Ne vous fiez pas à l’emplacement du potentiomètre, c’est le meilleur moyen pour mettre le pilote a l’envers et de plus la carte risque aussi de griller.


image.png.145e8a56a738a8818ac50cc466288dc4.pngimage.png.9ef52b005ee36f30df8a373fcef2aa0c.png

Modifié (le) par stef_ladefense
  • J'aime 5
  • Merci ! 4
Lien vers le commentaire
Partager sur d’autres sites

  • Yo' pinned this topic

FYSETC TMC2209 V3.1

20210226_171254.thumb.jpg.e75d9573be7b2d9dd3ad0aa3c5fd55d4.jpg20210226_171310.jpg

Documenté sur ce site: https://wiki.fysetc.com/Silent2209/

Comme on peut le voir sur le schéma en bas de page de ce site, la pin SPREAD n'est pas relié au connecteur, et elle est en l'air. il ya sur le schéma deux résistances de prévus mais pas soudées pour polariser cette entrée. Voici ce que j'ai bipé 😉

Du coup, théoriquement car je n'ai pas encore testé, il faudrait remettre un court-circtuit en lieu et place de cette R6 pour valider le mode SpreadCycle et du coup optimiser le fonctionnement du Linear advance de Marlin.

image.png

Modifié (le) par Jonathan06
  • J'aime 2
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

@stef_ladefense

Bonjour,

Excellent sujet 😉

J'ai une question pour laquelle je n'ai trouvé de réponse sûre et certaine.

Le réglage matériel du potentiomètre sur le pilote a-t'il une incidence sur le réglage logiciel ? Autrement dit, si je règle le potard au minimum, le logiciel sera-t'il capable de l'outrepasser ?

Si tu as besoin d'éditer tes premiers posts, n'hésite pas à demander aux modérateurs (la durée pour édition sinon est de 12 heures après première parution).

🙂

Lien vers le commentaire
Partager sur d’autres sites

Il y a 2 heures, fran6p a dit :

@stef_ladefense

Bonjour,

Excellent sujet 😉

Bonjour, je te remercie

Il y a 2 heures, fran6p a dit :

J'ai une question pour laquelle je n'ai trouvé de réponse sûre et certaine.

Le réglage matériel du potentiomètre sur le pilote a-t'il une incidence sur le réglage logiciel ? Autrement dit, si je règle le potard au minimum, le logiciel sera-t'il capable de l'outrepasser ?

alors, si le pilote est en mode comm, UART pour les 2208/2209 ou SPI pour le 2130, et correctement reconnu pas l'hôte (c'est vérifiable sous Marlin avec la commande M122), alors oui la config software outrepasse le réglage externe de la Vref.

pour Marlin, il y a une bonne base de mise en oeuvre sur https://marlinfw.org/docs/hardware/tmc_drivers.html

Il y a 2 heures, fran6p a dit :

Si tu as besoin d'éditer tes premiers posts, n'hésite pas à demander aux modérateurs (la durée pour édition sinon est de 12 heures après première parution).

🙂

oui je veux bien pouvoir le faire, j'ai encore vu quelques fautes 😉

merci

Lien vers le commentaire
Partager sur d’autres sites

il y a 17 minutes, stef_ladefense a dit :

oui je veux bien pouvoir le faire, j'ai encore vu quelques fautes

J'en ai aussi vu mais par rapport à certains posts, ça reste correct 😉

Tu as normalement maintenant les droits pour éditer tes propos dans ce sujet. Teste et dis moi si c'est bon.

il y a 19 minutes, stef_ladefense a dit :

alors oui la config software outrepasse le réglage externe de la Vref.

Donc comme le dit souvent @Jean-Claude Garnier, il ne faut pas croire tout ce qu'on trouve sur le ternet. Exemple, extrait de ce blog (anglais / espagnol):

tmc-potards-vs-uart-spi.jpg.8dd663e9783cbb21186dd958afefc69b.jpg

Franchement, j'ai plus confiance dans tes écrits et connaissances qui plus est fournis en français. Continue de nous éclairer et de nous proposer de bons tutoriels.

🙂

Lien vers le commentaire
Partager sur d’autres sites

Il y a 1 heure, fran6p a dit :

J'en ai aussi vu mais par rapport à certains posts, ça reste correct 😉

Tu as normalement maintenant les droits pour éditer tes propos dans ce sujet. Teste et dis moi si c'est bon.

ça marche ! merci

Citation

Donc comme le dit souvent @Jean-Claude Garnier, il ne faut pas croire tout ce qu'on trouve sur le ternet. Exemple, extrait de ce blog (anglais / espagnol):

tmc-potards-vs-uart-spi.jpg.8dd663e9783cbb21186dd958afefc69b.jpg

je sais, c'est bien pour ça que j'ai écris les deux tutos sur le réglage Vref ...

Citation

Franchement, j'ai plus confiance dans tes écrits et connaissances qui plus est fournis en français. Continue de nous éclairer et de nous proposer de bons tutoriels.

🙂

j'ai relus le datasheet et effectivement j'avais bien intégré ça :

Citation

OPTION 3: Pilote STEP / DIR avec diagnostic et contrôle complets
Similaire à l'option 2, mais la broche PDN_UART est connectée à l'interface UART de la CPU.
Options supplémentaires (étiquette UART):
+ Diagnostics détaillés et gestion thermique
+ Freinage passif et roue libre pour des modes d'arrêt flexibles à faible puissance
+ Plus d'options pour le réglage de la résolution micropas (pas complet à 256 micropas)
+ Réglage du courant du moteur contrôlé par logiciel et plus d'options de hacheur
+ Utilisez StallGuard pour la prise d'origine sans capteur et CoolStep pour le courant moteur adaptatif et refroidir le moteur
Ce mode permet de remplacer toutes les lignes de contrôle comme ENN, DIAG, INDEX, MS1, MS2 et le courant analogique
réglage VREF par une seule ligne d'interface
. De cette façon, seuls trois signaux sont nécessaires pour un contrôle total: STEP,
DIR et PDN_UART. Même le mouvement sans impulsions STEP externes est assuré par un
générateur d'impulsions pas à pas programmable: il suffit de régler la vitesse du moteur souhaitée. Cependant, aucune rampe n'est
fourni par le TMC2209.

Moralité : Lisez les datasheets 🙂 ( @fran6p je ne dit pas ça pour toi)

Modifié (le) par stef_ladefense
  • J'aime 1
  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

Merci pour cette lecture du soir, j’y ai appris pas mal de choses.

Je regrette maintenant que ce sujet n’ait pas existé plus tôt, il m’aurait évité quelques mal de têtes ! 😅

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Bonjour,

 

Merci pour ce superbe tuto bien documenté, j'ai trouvé des informations très intéressante, mais il va falloir que je le relise peut être plusieurs fois afin de m'approprier la méthode de calcul, c'est n'est pas beau de vieillir, lol.
Quoi qu'il en soit j'avais un doute sur la date de création de ce tutoriel, car il n'y a que le jour et le mois, mais ont voie bien que c'est 2021 dans les messages cités. Donc c'est vraiment tout frais et la petite note de fin indique que le mode UART est encore balbutiant.
Et comme j'ai un souci avec mes moteurs qui sont vraiment très bruyants malgré ces TMC2209 j'ai donc un doute que cela fonctionne pas bien.

Je suis sur une Hypercube donc Core XY et j'ai une MKS SGEN_L V2 accouplé donc a des TMC2209 de MKS aussi, Stepperonline pour les moteurs 17HS19-2004S1. J'ai déclaré le mode UART dans marlin et j'ai la possibilité de les réglés dans l'écran MKS TFT35.
Par défaut il y avait 800mV dans marlin. Aillant un doute sur le réglage des Vref j'ai monté uniquement à 900mV, les moteurs chauffent pas, mais font énormément de bruit et vibre même en maintient.

J'ai baissé par palier jusqu'à 300mV ou il décroche, mais même à 400mV ils sont encore très bruyant.

Demain je vais faire l'essaie à vide sans les axes en mouvement, mais j'ai des doutes puisque même moteur à l'arrêt (mais sollicité électriquement) cela vibre fort.
Au point que j'ai arrêté un print en cours de nuit, car trop insupportable pourtant à 2 pièces de ma chambre et fermé.

Est-ce que les mettre en standalone pourrait remédier à ce genre de souci si ce n'est pas encore bien gérer par marlin, surtout qu'au final, il est vrai qu'une fois réglé on a plus besoin d'y toucher.
Ou est-ce qu'en mode Core XY il y a d'autre paramètres à vérifier? D'après ce que j'ai compris le linear advance n'est pas activé, apparemment il pourrait aussi provoqué des bruits.

J'ai aussi une Ender3 modifié avec un SKR Mini E3 donc TMC2209 en Uart et j'ai pas de souci de leur coté, même si pendant les cercles ont les entends quand même par mal, mais pour le reste c'est les ventilo que j'entend.

 


Stepper Hypercube pour X et Y:

  • Manufacturer Part Number: 17HS19-2004S1
  • Motor Type: Bipolar Stepper
  • Step Angle: 1.8 deg
  • Holding Torque: 59Ncm(84oz.in)
  • Rated Current/phase: 2.0A
  • Voltage: 2.8V
  • Phase Resistance: 1.4ohms
  • Inductance: 3.0mH ± 20%(1KHz)
Modifié (le) par Chris SV
Lien vers le commentaire
Partager sur d’autres sites

  • 3 months later...
Le 19/03/2021 at 21:43, Chris SV a dit :

Bonjour,

 

Merci pour ce superbe tuto bien documenté, j'ai trouvé des informations très intéressante, mais il va falloir que je le relise peut être plusieurs fois afin de m'approprier la méthode de calcul, c'est n'est pas beau de vieillir, lol.
Quoi qu'il en soit j'avais un doute sur la date de création de ce tutoriel, car il n'y a que le jour et le mois, mais ont voie bien que c'est 2021 dans les messages cités. Donc c'est vraiment tout frais et la petite note de fin indique que le mode UART est encore balbutiant.
Et comme j'ai un souci avec mes moteurs qui sont vraiment très bruyants malgré ces TMC2209 j'ai donc un doute que cela fonctionne pas bien.

Je suis sur une Hypercube donc Core XY et j'ai une MKS SGEN_L V2 accouplé donc a des TMC2209 de MKS aussi, Stepperonline pour les moteurs 17HS19-2004S1. J'ai déclaré le mode UART dans marlin et j'ai la possibilité de les réglés dans l'écran MKS TFT35.
Par défaut il y avait 800mV dans marlin. Aillant un doute sur le réglage des Vref j'ai monté uniquement à 900mV, les moteurs chauffent pas, mais font énormément de bruit et vibre même en maintient.

J'ai baissé par palier jusqu'à 300mV ou il décroche, mais même à 400mV ils sont encore très bruyant.

Demain je vais faire l'essaie à vide sans les axes en mouvement, mais j'ai des doutes puisque même moteur à l'arrêt (mais sollicité électriquement) cela vibre fort.
Au point que j'ai arrêté un print en cours de nuit, car trop insupportable pourtant à 2 pièces de ma chambre et fermé.

Est-ce que les mettre en standalone pourrait remédier à ce genre de souci si ce n'est pas encore bien gérer par marlin, surtout qu'au final, il est vrai qu'une fois réglé on a plus besoin d'y toucher.
Ou est-ce qu'en mode Core XY il y a d'autre paramètres à vérifier? D'après ce que j'ai compris le linear advance n'est pas activé, apparemment il pourrait aussi provoqué des bruits.

J'ai aussi une Ender3 modifié avec un SKR Mini E3 donc TMC2209 en Uart et j'ai pas de souci de leur coté, même si pendant les cercles ont les entends quand même par mal, mais pour le reste c'est les ventilo que j'entend.

 


Stepper Hypercube pour X et Y:

  • Manufacturer Part Number: 17HS19-2004S1
  • Motor Type: Bipolar Stepper
  • Step Angle: 1.8 deg
  • Holding Torque: 59Ncm(84oz.in)
  • Rated Current/phase: 2.0A
  • Voltage: 2.8V
  • Phase Resistance: 1.4ohms
  • Inductance: 3.0mH ± 20%(1KHz)

Tu as trouvé des réponses à tes questions? Ça m’intéresse😅

Lien vers le commentaire
Partager sur d’autres sites

  • 2 months later...

Bonjour @stef_ladefense

Merci pour cette mine d'information

J'ai une BIGTREETECH SKR E3 Turbo sur laquelle je ne vois pas de potentiomètre, si je comprend bien tout se fait dans Marlin ? c'est ca le mode UART ?

  #if AXIS_IS_TMC(X)
    #define X_CURRENT       800        // (mA) RMS current. Multiply by 1.414 for peak current.
    #define X_CURRENT_HOME  X_CURRENT  // (mA) RMS current for sensorless homing
    #define X_MICROSTEPS     16        // 0..256
    #define X_RSENSE          0.11
    #define X_CHAIN_POS      -1        // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ...
    //#define X_INTERPOLATE  true      // Enable to override 'INTERPOLATE' for the X axis
  #endif

Je ne dois pas mettre de vref alors? 

Rsense, RMS current ... je suis vraiment largué là 🤨

Lien vers le commentaire
Partager sur d’autres sites

Il y a 19 heures, David590 a dit :

Bonjour @stef_ladefense

Merci pour cette mine d'information

J'ai une BIGTREETECH SKR E3 Turbo sur laquelle je ne vois pas de potentiomètre, si je comprend bien tout se fait dans Marlin ? c'est ca le mode UART ?

  #if AXIS_IS_TMC(X)
    #define X_CURRENT       800        // (mA) RMS current. Multiply by 1.414 for peak current.
    #define X_CURRENT_HOME  X_CURRENT  // (mA) RMS current for sensorless homing
    #define X_MICROSTEPS     16        // 0..256
    #define X_RSENSE          0.11
    #define X_CHAIN_POS      -1        // -1..0: Not chained. 1: MCU MOSI connected. 2: Next in chain, ...
    //#define X_INTERPOLATE  true      // Enable to override 'INTERPOLATE' for the X axis
  #endif

Je ne dois pas mettre de vref alors? 

Rsense, RMS current ... je suis vraiment largué là 🤨

 

Le schéma de câblage du TMC2209 de l'axe X sur ta carte mère SKR E3 Turbo :
Source : GitHub

tmc2209.JPG.3b0863f3c0b3017b46d7769fac0581a8.JPG

Oui tu as bien compris la limitation de courant est gérée par UART sur ta carte mère, donc pas de VREF à régler, VREF n'est même pas connecté à ta carte mère (PIN 17 schéma ci-dessus).

Rsense est déjà bien renseigné (0.11), ce sont les résistances R41 (PIN 23) et R43 (PIN 27) de valeur 0R11 = 0.11Ω

Tu as juste besoin de paramétrer la première ligne ici appelée X_CURRENT, cela correspond au Courant RMS (Irms), il se calcule à partir du Courant Max (Imax) admissible par ton moteur qui est généralement visible sur son étiquette ou sur son datasheet.
--->
Irms = Imax / √2

Je ne connais pas tes moteurs mais en prenant dans les configurations exemples de Marlin pour la Creality CR-10 S, j’obtiens :
#define X_CURRENT       650
#define Y_CURRENT       650
#define Z_CURRENT       580
#define E0_CURRENT      650

Modifié (le) par Tekila63
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Ok @Tekila63

Je commence à comprendre

Par contre les valeurs de configuration exemple m'étonne  

Mes moteurs sont ceux d'origine à part un pancake pour le Bondtech

Si je ne me trompe pas les moteurs d'origine de la cr10 sont tous à 1.5A

Imax / √2 = Irms
1.5 /  √2 = 1.06

Ne devrais-je donc pas avoir : #define X_CURRENT       1060
plutôt que :                                #define X_CURRENT       650

Lien vers le commentaire
Partager sur d’autres sites

Il y a 13 heures, David590 a dit :

Ok @Tekila63

Je commence à comprendre

Par contre les valeurs de configuration exemple m'étonne  

Mes moteurs sont ceux d'origine à part un pancake pour le Bondtech

Si je ne me trompe pas les moteurs d'origine de la cr10 sont tous à 1.5A

Imax / √2 = Irms
1.5 /  √2 = 1.06

Ne devrais-je donc pas avoir : #define X_CURRENT       1060
plutôt que :                                #define X_CURRENT       650

Si tu es sûr des 1.5A c'est bien dans cette logique, je me suis peut-être trompé j'ai pris le fichier CR10 S en exemple, il diffère peut-être de la CR10-S5.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 2 heures, Tekila63 a dit :

il diffère peut-être de la CR10-S5

Oui. Le modèle S5 (500x500x500) utilise des moteurs plus gros (60 mm) au moins sur l'axe Y.

@miserovitchqui en possède une également pourra confirmer 😉

🙂

Modifié (le) par fran6p
  • J'aime 1
Lien vers le commentaire
Partager sur d’autres sites

Salut,

Je confirme que sur la S5 le moteur du Y est plus gros (60mm) ainsi que la courroie (9mm au lieu de 6mm).

Pour l'intensite, au risque de me faire huer, je le fais au doigt mouille. Moteur pas trop chaud et pas de perte de pas et ca me va, elle tourne comme ca depuis 4 ans.

TMC2209

Pour X : 700

Pour Y: 800

Cdt

SoM

  • Merci ! 1
Lien vers le commentaire
Partager sur d’autres sites

je ne hue perrsonne ! 🙂😉

si ça marche comme ça, laisse le ! c'est un peu bas et en plus tu ne dois avoir aucun points durs niveau mécanique pour ne pas perdre de pas

et puis tu n'est qu'a une trentaine de % du nominal, c'est pas énorme non plus, c'est meme pas la tolérance de certain condos

Lien vers le commentaire
Partager sur d’autres sites

Oui c'est bien un 60 sur l'axe Y mais apparemment 1.5A comme les autres

Brand: Creality 3D
Item name: RepRap 42 Stepper Motor 
Item number: 42-60
Size: 42*42*60mm
Step angle: 1.8 degrees
Nominal Voltage: 4.83V
Current Rating: 1.5 (A)
Rated speed: 1-1000 (rpm)
Rated torque: 0.4 (NM)

Pour ma part je perdait des pas en Y avec la valeur par défaut à 800mA 

j'ai mis X Y et Z sur 1060mA, plus du tout de perte de pas en Y

le X chauffe un peu tout de même, je vais certainement baisser un peu mais la théorie est bonne

Pour le cas de 2 moteurs sur un driver pour le Z, ne doit-on pas doubler la valeur théoriquement ?@stef_ladefense 

Lien vers le commentaire
Partager sur d’autres sites

il y a 7 minutes, David590 a dit :

ne doit-on pas doubler la valeur théoriquement ?

En théorie, oui. En pratique ajouter 30-50% est bien suffisant (en tout cas c'est ce que j'ai fait sur mes imprimantes à double Z sur un seul pilote) 😉

Ce n'est «exact» que si les moteurs sont branchés en parallèle, s'ils sont en série, faire comme s'il n'y avait qu'un seul moteur.

🙂

Lien vers le commentaire
Partager sur d’autres sites

Oui

🙂

Lien vers le commentaire
Partager sur d’autres sites

  • 8 months later...

Bonjour, merci pour toutes les réponses ci dessus. 

Je dispose d'une carte skr2 avec des pilotes TMC2209 v1.2. j'ai paramétré cela en mode Uart sous marlin et quand je branche les pilotes mon écran tft m'indique all low et TMC error connection. 

Quand je regarde sur github le manuel des TMC2209 v1.2 il parle d'une soudure. Pourtant quand je regarde des tutos il branche sans soudure et cela fonctionne. Si quelqu'un peut m'éclairer sur le branchement svp ? Pour la configuration j'ai suivi les recommandations normalement. Merci pour votre aide.

IMG20220616161105.jpg

Modifié (le) par anto56
Lien vers le commentaire
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...