Dépannage des erreurs TMC
Contexte technique
Les pilotes TMC (Trinamic) signalent l'état et les informations d'erreur via des registres dédiés. Comprendre ces registres permet de diagnostiquer rapidement les problèmes :
- Registre IFCNT : Compteur de trames de communication, utilisé pour vérifier si la communication entre le contrôleur principal et le pilote est normale.
- Registre GSTAT : Registre d'état global, contenant les informations d'état global telles que les réinitialisations, les erreurs de pilotage, etc.
- Registre DRV_STATUS : Registre d'état du pilote, fournissant des informations détaillées sur l'état de fonctionnement du pilote, y compris les avertissements de température, les courts-circuits, les circuits ouverts et autres défauts.
Lorsque Klipper signale une erreur TMC, la valeur spécifique du registre et le drapeau de défaut sont généralement affichés. Une erreur de pilote TMC indique que la puce du pilote a détecté un problème et s'est protégée en se désactivant. Klipper passe en état d'arrêt lorsqu'il détecte que le pilote est désactivé.
Avant de vérifier les cavaliers, les modules de pilotage, les câbles moteur, le câblage SPI/UART ou les bornes de connexion, veuillez éteindre complètement l'imprimante et débrancher l'alimentation électrique. Il est interdit de brancher ou débrancher les modules de pilotage ou les câbles moteur sous tension. Le mode résistance du multimètre ne peut être utilisé qu'à l'état hors tension.
Impossible de communiquer avec le pilote (échec de communication IFCNT)
Message d'erreur : Unable to read tmc uart 'stepper_x' register IFCNT ou Unable to read tmc spi 'stepper_x' register IFCNT.
Cause de l'erreur : La communication entre le pilote TMC (mode UART/SPI) et le contrôleur principal a échoué, ce qui rend impossible la lecture de la valeur du registre IFCNT. Cela se produit souvent en raison de l'absence de cavalier UART, d'une alimentation anormale de la carte de pilotage ou d'une configuration incorrecte des broches UART/SPI.
Solutions :
- Après avoir coupé l'alimentation, vérifiez si le cavalier UART du pilote correspondant est correctement installé.
- Confirmez que les configurations
uart_pin(ouspi_bus/spi_software_*_pin) dansprinter.cfgcorrespondent au câblage réel. - Vérifiez d'abord l'état de l'alimentation via le voyant d'alimentation et le sens d'installation du module de pilotage. Si le voyant est normal et que le module est correctement installé mais que le problème persiste, essayez de remplacer par un faisceau de câbles de rechange ou de faire un test croisé (déplacez le pilote vers un autre port pour vérifier). Pour les tests électriques sur les bornes 24V exposées, contactez le service après-vente ou un professionnel.
- Si l'erreur se produit immédiatement après la première mise à jour de Klipper, coupez complètement l'alimentation pendant quelques secondes (débranchez à la fois l'USB et l'alimentation principale), puis remettez sous tension pour effacer l'état résiduel du pilote.
- Après avoir coupé l'alimentation, essayez de remplacer la carte de pilote ou de changer de port de pilote pour tester.
- Si vous utilisez un pilote non-FLY, confirmez la définition de sa broche UART (la broche UART des pilotes FLY est généralement la quatrième broche en partant du haut sur le côté gauche).
Pour les cas particuliers, si la broche UART du pilote acheté se trouve sur la cinquième broche, vous pouvez résoudre le problème en utilisant la méthode de cavalier ci-dessous :
- Vérifiez si
uart_addresscorrespond au cavalier matériel de la carte de pilote. - Vérifiez que le câble de données est en bon état, sans rupture ni mauvais contact.
Surchauffe du pilote (OvertempError / OvertempWarning)
Message d'erreur : TMC 'stepper_x' reports error: DRV_STATUS: ... ot=1(OvertempError!) ou otpw=1(OvertempWarning!).
Cause de l'erreur : La température de la puce du pilote TMC a dépassé le seuil de sécurité, déclenchant la protection. Attention : Il s'agit d'une surchauffe du pilote, pas d'une surchauffe du moteur !
OvertempWarning(otpw) : Température dépassant le seuil d'avertissement d'environ 120°C, le pilote peut encore fonctionner mais il est conseillé de vérifier.OvertempError(ot) : Température dépassant le seuil de coupure d'environ 150°C, le pilote se désactive automatiquement.
Solutions :
- Réduisez le courant de fonctionnement du moteur (
run_current), il est recommandé de le réduire d'abord de 20 à 30 %. - Si un courant de maintien (
hold_current) est défini, vous pouvez le réduire ou le désactiver complètement. - Vérifiez que le dissipateur de chaleur du pilote est bien en contact et que la pâte thermique est suffisante.
- Ajoutez un ventilateur de refroidissement pour le pilote et assurez une bonne circulation d'air.
- Confirmez que la valeur de la résistance de mesure (sense resistor) de la carte de pilote est correctement configurée.
- Réduisez
stealthchop_thresholdou passez en mode spreadCycle. - Vérifiez si l'environnement d'installation du pilote est confiné, ce qui pourrait entraîner une accumulation de chaleur. Évitez une utilisation prolongée dans un environnement à haute température.
Défaut de court-circuit (ShortToGND / ShortToSupply)
Message d'erreur : TMC 'stepper_x' reports error: DRV_STATUS: ... s2vsa=1(ShortToSupply_A!) ou s2ga=1(ShortToGND_A!).
Cause de l'erreur : Le pilote a détecté un courant extrêmement élevé. Cela peut être dû à un desserrage ou un court-circuit du câble moteur, à une rupture de l'isolation du bobinage du moteur, ou à une charge prédite incorrecte en mode stealthChop entraînant une surintensité.
Solutions :
- Veuillez d'abord couper l'alimentation avant d'intervenir. Vérifiez si le câble moteur correspondant est desserré ou endommagé, et utilisez le mode résistance du multimètre pour mesurer la résistance des bobines du moteur (normalement environ 1,5 à 3 Ω).
- Après avoir coupé l'alimentation, vérifiez que le connecteur du moteur est bien fixe.
- Si vous devez traiter la mise à la terre du boîtier du moteur, utilisez le point de mise à la terre fourni par le fabricant ou contactez le service après-vente. Ne modifiez pas vous-même les fils de terre de l'alimentation ou les bornes exposées.
- Essayez de désactiver stealthChop pour tester :
SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadCycle VALUE=1 - Si l'erreur disparaît après le changement, il s'agit d'un problème de prédiction de stealthChop ; sinon, il pourrait s'agir d'un véritable court-circuit matériel.
Défaut de circuit ouvert (OpenLoad)
Message d'erreur : TMC 'stepper_x' reports error: DRV_STATUS: ... ola=1(OpenLoad_A!) ou olb=1(OpenLoad_B!).
Cause de l'erreur : Le pilote a détecté qu'une phase du bobinage du moteur ne forme pas une charge efficace, ce qui indique généralement une déconnexion du câble moteur, un branchement desserré, une erreur de connexion de la bobine, ou une erreur de jugement dans des conditions de faible courant/stealthChop.
Solutions :
- Après avoir coupé l'alimentation, rebranchez et débranchez le câble moteur pour confirmer que la connexion du terminal est bien serrée.
- Veuillez d'abord couper l'alimentation avant d'intervenir. Utilisez un multimètre pour mesurer la résistance des bobines des groupes A et B ; les deux groupes doivent être proches et ne doivent pas être en circuit ouvert.
- Après avoir coupé l'alimentation, vérifiez l'ordre des câbles du moteur pour confirmer que les deux fils de la phase A sont dans le même groupe et que les deux fils de la phase B sont dans l'autre groupe.
- Désactivez temporairement stealthChop : définissez
stealthchop_threshold: 0dans la configuration pour tester. - Augmentez légèrement
run_currentpour tester ; si l'erreur n'apparaît qu'à un courant très faible, il pourrait s'agir d'une erreur de jugement. - Après avoir coupé l'alimentation, remplacez le câble moteur ou le moteur pour un test croisé afin d'identifier si le problème vient du faisceau, du moteur ou du port de pilote.
Défaut combiné court-circuit + circuit ouvert (court-circuit phase A, circuit ouvert phase B)
Message d'erreur : TMC 'extruder' reports error: DRV_STATUS: ... s2vsa=1(ShortToSupply_A!) csactual=31 ola=1(OpenLoad_A!) olb=1(OpenLoad_B!).
Cause de l'erreur : Les bits de diagnostic de défaut du pilote TMC indiquent un problème matériel : s2vsa=1 signifie que la phase A est en court-circuit vers l'alimentation, ola=1 signifie que la phase A est en circuit ouvert, olb=1 signifie que la phase B est en circuit ouvert, csactual=31 signifie que la valeur de réglage du courant actuel est peut-être trop élevée. Ces défauts apparaissent généralement ensemble, indiquant un problème matériel grave au niveau du moteur ou du pilote.
Solutions :
- Veuillez d'abord couper l'alimentation avant d'intervenir. Utilisez un multimètre pour mesurer la résistance des deux bobines (A et B) du moteur pas à pas ; elles doivent être cohérentes (normalement 1-2 Ω et les deux valeurs doivent être proches).
- Après avoir coupé l'alimentation, vérifiez soigneusement le faisceau de câbles du moteur pas à pas et les connecteurs pour vous assurer qu'il n'y a pas de desserrage, de court-circuit ou de mauvais contact.
- Confirmez que le réglage du courant du pilote TMC est approprié ; un courant trop élevé peut entraîner ces problèmes.
- Essayez de désactiver le mode stealthChop pour tester : définissez
stealthchop_threshold: 0dans la configuration.
Défaut combiné court-circuit + circuit ouvert (court-circuit phase B, circuit ouvert phase A)
Message d'erreur : TMC 'extruder' reports error: DRV_STATUS: ... s2vsb=1(ShortToSupply_B!) ola=1(OpenLoad_A!) cs_actual=25.
Cause de l'erreur : Les bits de diagnostic de défaut du pilote TMC indiquent : s2vsb=1 signifie que la phase B est en court-circuit vers l'alimentation, ola=1 signifie que la phase A est en circuit ouvert, cs_actual=25 signifie la valeur de réglage du courant actuel. Cela est généralement dû aux raisons suivantes : erreur de câblage du moteur (phases A/B inversées ou court-circuit), défaut du moteur lui-même (bobinage en circuit ouvert) ou problème matériel de la carte de pilote.
Solutions :
- Veuillez d'abord couper l'alimentation avant d'intervenir. Utilisez un multimètre pour mesurer la résistance des bobines A et B du moteur pas à pas ; elles doivent être cohérentes (normalement proches l'une de l'autre).
- Après avoir coupé l'alimentation, confirmez que l'ordre des câbles du moteur est correct. Il doit généralement s'agir d'un groupe à gauche (phase A) et d'un groupe à droite (phase B).
- Après avoir coupé l'alimentation, vérifiez que toutes les bornes de connexion sont bien fixées, sans desserrage ni mauvais contact.
- Si possible, après avoir coupé l'alimentation, connectez le moteur à un autre port de pilote connu pour être bon afin de tester.
Réinitialisation du pilote (Reset)
Message d'erreur : TMC 'stepper_x' reports error: GSTAT: 00000001 reset=1(Reset).
Cause de l'erreur : Alimentation instable ou interférence externe entraînant une réinitialisation automatique du pilote. Cela se produit souvent en raison de fluctuations de la tension d'alimentation, d'un mauvais contact de câblage ou d'interférences électromagnétiques.
Solutions :
- Après avoir complètement coupé l'alimentation, vérifiez si le câble d'alimentation 24V, le module de pilote et la prise de la carte mère sont desserrés, noircis ou brûlés.
- Remplacez par une alimentation, un module de pilote ou un faisceau de câbles connu pour être bon pour effectuer un test croisé.
- Vérifiez si le refroidissement du pilote et le ventilateur fonctionnent correctement.
- Vérifiez si le câble moteur est parallèle sur une longue distance avec les câbles du chauffage ou du lit chauffant. Si nécessaire, réorganisez le cheminement des câbles après avoir coupé l'alimentation.
- Veuillez d'abord couper l'alimentation avant d'intervenir. Vérifiez si le câble moteur présente des ruptures, des brins internes cassés ou un mauvais contact au niveau du terminal entraînant une connexion intermittente. Un mouvement prolongé dans une chaîne porte-câbles peut entraîner une fatigue et une rupture du câble ; vérifiez particulièrement les points de pliage de la chaîne et les points de sertissage des terminaux.
- Il est déconseillé au client de modifier lui-même l'entrée d'alimentation du pilote, d'ajouter des composants électroniques ou de modifier la mise à la terre ; ces opérations doivent être confiées à un professionnel ou au service après-vente.
Protection contre les sous-tensions (Undervoltage)
Message d'erreur : TMC 'stepper_x' reports error: DRV_STATUS: ... uv_cp=1(Undervoltage!).
Cause de l'erreur : Le pilote a détecté un événement de tension d'alimentation trop basse. Cela est généralement dû à une panne d'alimentation, à un câblage desserré ou à une puissance d'alimentation insuffisante.
Solutions :
- Après avoir complètement coupé l'alimentation, vérifiez l'apparence du câble d'alimentation, de la prise d'alimentation de la carte mère et du terminal pour détecter tout desserrage, noircissement ou brûlure.
- Confirmez que les spécifications de l'alimentation répondent aux besoins de puissance totale du pilote et des chauffages.
- Utilisez une alimentation ou un faisceau de câbles connu pour être bon pour un test de remplacement.
- Pour les tests électriques sur les bornes 24V exposées, contactez le service après-vente ou un professionnel. Ne traitez pas vous-même.
Erreur de communication SPI (DRV_STATUS: ffffffff)
Message d'erreur : Unable to write tmc spi 'stepper_x' register ..., TMC reports error: DRV_STATUS: ffffffff ... ou READRSP@RDSEL2: 00000000 ....
Cause de l'erreur : Impossible de communiquer avec le pilote TMC en mode SPI (tmc2130/tmc5160/tmc2660). Cela est généralement dû à une erreur de câblage SPI, à la présence d'un périphérique non configuré sur le bus SPI, ou à une réinitialisation/panne du pilote TMC.
Solutions :
- Après avoir coupé l'alimentation, vérifiez que l'ordre des câbles SPI (MOSI, MISO, SCK, CS) est correct.
- Si le bus SPI est partagé par plusieurs périphériques, assurez-vous que chaque périphérique est entièrement configuré dans Klipper.
- Après avoir coupé l'alimentation, testez la carte mère avec un seul pilote connecté pour éliminer les interférences mutuelles sur le bus partagé.
- Confirmez que l'alimentation du pilote est normale. Si nécessaire, coupez l'alimentation pendant quelques secondes, puis remettez sous tension.
- Si l'erreur est accompagnée de
reset=1,uv_cp=1ou deffffffffaléatoire, vérifiez d'abord l'alimentation et le contact du pilote.
Test de pilote individuel : Si vous devez isoler et vérifier si le pilote fonctionne correctement, veuillez vous référer à la méthode de test de pilote SPI individuel dans Tests de périphériques et de pilotes.
Erreur de configuration de la chaîne SPI TMC
Message d'erreur : TMC SPI chain must have same length、TMC SPI chain can not have duplicate position.
Cause de l'erreur : Lors de l'utilisation de pilotes TMC en chaîne SPI série, les configurations chain_position, chain_length ou de sélection de puce de plusieurs pilotes sont incohérentes, ce qui empêche Klipper de déterminer la position de chaque pilote dans la chaîne SPI.
Solutions :
- Si la carte mère n'est pas conçue avec une chaîne SPI série, n'ajoutez pas
chain_positionetchain_lengthau hasard. - Référez-vous au modèle de configuration du fabricant de la carte mère ou de la carte de pilote pour confirmer que le
chain_lengthde chaque pilote TMC est exactement le même. - Confirmez que le
chain_positionde chaque pilote est unique et ne peut pas être dupliqué. - S'il s'agit simplement d'une structure de bus SPI avec plusieurs sélections de puce CS, vous devez configurer le
cs_pinde chaque pilote séparément, sans utiliser la syntaxe de chaîne SPI. - Après avoir sauvegardé, exécutez
RESTART, puis utilisezDUMP_TMC STEPPER=<stepper>pour confirmer la communication un par un.
Timeout sur l'attente de 'tmcuart_response'
Message d'erreur : Timeout on wait for 'tmcuart_response' response, le journal peut également contenir Unable to read tmc uart 'stepper_x' register DRV_STATUS.
Causes courantes :
- Soudure froide, rupture ou mauvais contact du câblage UART TMC, en particulier une rupture interne après des pliages répétés du fil dans la chaîne porte-câbles.
- Configuration incorrecte de
uart_pin, ou cavalier UART mal installé sur la carte mère. - Alimentation insuffisante du pilote ou fluctuation de l'alimentation, entraînant une réinitialisation de la puce TMC au moment de la communication.
- Conflit d'adresses ou charge excessive du bus lorsque plusieurs pilotes partagent le même bus UART.
- Broche UART de la carte mère utilisée par une autre fonction (comme Bluetooth, débogage série).
Solutions :
Avant de vérifier la carte de pilote, le câblage UART ou les cavaliers, veuillez éteindre complètement l'imprimante et débrancher l'alimentation électrique.
- Après avoir coupé l'alimentation, vérifiez que le câblage UART du pilote en erreur est bien fixe et que le fil ne présente pas de pliure, de dommage ou de soudure froide évidente.
- Confirmez que
uart_pincorrespond au câblage réel de la carte mère et vérifiez que le cavalier UART sur la carte mère est bien installé. - Si plusieurs pilotes partagent le même bus UART, confirmez que
uart_addressde chaque pilote n'est pas en double. - Vérifiez que l'alimentation du pilote est normale, en particulier les modules de conversion 12V/24V et les fusibles.
- Essayez d'échanger la position du pilote en erreur avec un pilote d'axe adjacent pour déterminer s'il s'agit d'un problème de pilote, de fente de carte mère ou de faisceau de câbles.
- Si l'erreur ne se produit que pendant l'impression et non au repos, vérifiez si le faisceau de câbles est tiré pendant le mouvement.
Relation avec l'erreur IFCNT :
Timeout on wait for 'tmcuart_response'etUnable to read tmc uart register IFCNTsont essentiellement les mêmes, tous deux étant des délais d'attente de communication UART. Le premier apparaît plutôt pendant le processus d'impression, le second plutôt lors de la phase d'initialisation du démarrage. Les méthodes de dépannage sont les mêmes, voir Échec de communication IFCNT.