Dépannage des erreurs TMC
Contexte technique
Le pilote TMC (Trinamic) signale l'état et les erreurs via des registres dédiés. Comprendre ces registres aide à diagnostiquer rapidement les problèmes :
- Registre IFCNT : Compteur de trames de communication, utilisé pour vérifier la communication entre le contrôleur principal et le pilote.
- Registre GSTAT : Registre d'état global, contenant des informations d'état global comme la réinitialisation et les erreurs de pilote.
- Registre DRV_STATUS : Registre d'état du pilote, fournissant des détails sur l'état de fonctionnement du pilote, y compris les avertissements de température, les courts-circuits, les circuits ouverts, etc.
Lorsque Klipper signale une erreur TMC, il affiche généralement les valeurs spécifiques du registre et les indicateurs de défaut. Une erreur de pilote TMC signifie que la puce de pilotage a détecté un problème et s'est désactivée par protection, et Klipper entre dans un état d'arrêt après avoir détecté la désactivation du pilote.
Avant de vérifier les cavaliers, le module pilote, 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. Il est interdit de brancher ou débrancher le module pilote ou les câbles du moteur pas à pas sous tension. Le mode ohmmètre du multimètre ne doit être utilisé qu'à l'état hors tension.
Impossible de se connecter au 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é, rendant impossible la lecture de la valeur du registre IFCNT. Cela se produit souvent en raison d'un cavalier UART non installé, d'une alimentation anormale de la carte pilote ou d'une configuration incorrecte des broches UART/SPI.
Solutions :
- Après avoir coupé l'alimentation, vérifiez que le cavalier UART correspondant au pilote est correctement installé.
- Confirmez que la configuration
uart_pin(ouspi_bus/spi_software_*_pin) dansprinter.cfgcorrespond au câblage réel. - Vérifiez d'abord l'état de l'alimentation via le voyant d'alimentation et la direction d'installation du module pilote. Si le voyant est normal et la direction correcte mais que le problème persiste, utilisez un faisceau de câbles de rechange ou effectuez des tests croisés (déplacez le pilote vers un autre port pour vérification). 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 programmation de Klipper, mettez la machine hors tension pendant quelques secondes (débranchez à la fois l'USB et l'alimentation principale), puis remettez-la sous tension pour effacer l'état résiduel du pilote.
- Après avoir coupé l'alimentation, essayez de remplacer le module pilote ou de changer de port pilote pour tester.
- Si vous utilisez un pilote non FLY, confirmez sa définition de broche UART (la broche UART des pilotes FLY est généralement la quatrième broche en partant du haut à gauche).
Pour les cas particuliers où la broche UART du pilote acheté est la cinquième broche, vous pouvez résoudre le problème avec la méthode de cavalier ci-dessous :
- Vérifiez que
uart_addresscorrespond au cavalier matériel de la carte 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. Remarque : Il s'agit d'une surchauffe du pilote, pas du moteur !
OvertempWarning(otpw) : Température dépassant le seuil d'avertissement d'environ 120°C. Le pilote peut encore fonctionner, mais il est recommandé de vérifier.OvertempError(ot) : Température dépassant le seuil d'arrêt 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 configuré, vous pouvez le réduire ou le désactiver complètement. - Vérifiez que le dissipateur thermique du pilote est bien en contact et que la pâte thermique est suffisante.
- Ajoutez un ventilateur de refroidissement pour le pilote afin d'assurer la circulation de l'air.
- Confirmez que la valeur de la résistance de détection (sense resistor) de la carte 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 provoque une accumulation de chaleur. Évitez de faire fonctionner le pilote à haute température pendant de longues périodes.
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 isolation endommagée du bobinage du moteur, ou à une charge prédite inexacte en mode stealthChop conduisant à une surintensité.
Solutions :
- Mettez d'abord hors tension, puis procédez à l'opération. Vérifiez si le câble moteur correspondant est desserré ou endommagé. Utilisez un multimètre en mode ohmmètre pour mesurer la résistance de la bobine du moteur (normalement environ 1,5 à 3 Ω).
- Après avoir coupé l'alimentation, vérifiez que le connecteur du moteur est bien fixé.
- 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 le fil 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 probablement 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'un bobinage de phase du moteur n'a pas formé de charge efficace. Cela indique généralement un câble moteur débranché, une fiche desserrée, un bobinage mal connecté, ou une erreur de diagnostic à faible courant/en mode stealthChop.
Solutions :
- Après avoir coupé l'alimentation, rebranchez et débranchez le câble moteur pour confirmer que la connexion de la borne est solide.
- Mettez d'abord hors tension, puis procédez à l'opération. Utilisez un multimètre pour mesurer la résistance des deux groupes de bobines 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 fils du moteur, en vous assurant que les deux fils de la phase A sont dans le même groupe et les deux fils de la phase B dans l'autre groupe.
- Désactivez temporairement stealthChop : définissez
stealthchop_threshold : 0dans la configuration, puis testez. - Augmentez légèrement
run_currentpour tester. Si cela ne se produit qu'à un courant très faible, il peut s'agir d'une erreur de diagnostic. - 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 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 des problèmes matériels : s2vsa=1 signifie un court-circuit de la phase A à l'alimentation, ola=1 signifie un circuit ouvert de la phase A, olb=1 signifie un circuit ouvert de la phase B, et csactual=31 indique que la valeur de réglage du courant actuelle peut être trop élevée. Ces défauts apparaissent généralement ensemble et indiquent un problème matériel grave du moteur ou du pilote.
Solutions :
- Mettez d'abord hors tension, puis procédez à l'opération. Utilisez un multimètre pour mesurer la résistance des deux groupes de bobines AB du moteur pas à pas (elle doit être normalement de 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 détecter tout desserrage, court-circuit ou mauvais contact.
- Confirmez que le réglage du courant du pilote TMC est approprié. Un courant trop élevé peut provoquer 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 un court-circuit de la phase B à l'alimentation, ola=1 signifie un circuit ouvert de la phase A, et cs_actual=25 indique la valeur de réglage du courant actuelle. Cela est généralement dû à : une erreur de câblage du moteur (phase A/B inversée ou court-circuit), un défaut du moteur lui-même (bobinage en circuit ouvert) ou un problème matériel de la carte pilote.
Solutions :
- Mettez d'abord hors tension, puis procédez à l'opération. Utilisez un multimètre pour mesurer la résistance des deux groupes de bobines A et B du moteur pas à pas (elles doivent normalement être proches).
- Après avoir coupé l'alimentation, confirmez que l'ordre des fils du moteur est correct : généralement un groupe à gauche (phase A) et 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 pilote connu pour être bon pour tester.
Réinitialisation du pilote (Reset)
Message d'erreur : TMC 'stepper_x' reports error: GSTAT: 00000001 reset=1(Reset).
Cause de l'erreur : L'alimentation instable ou des interférences externes provoquent une réinitialisation automatique du pilote. Cela se produit souvent en raison de fluctuations de tension d'alimentation, de mauvais contacts de câblage ou d'interférences électromagnétiques.
Solutions :
- Après avoir complètement coupé l'alimentation, vérifiez que le câble d'alimentation 24 V, le module pilote et la prise de la carte mère ne sont pas desserrés, noircis ou brûlés.
- Remplacez l'alimentation, le module pilote ou le faisceau de câbles par un autre connu pour être bon pour effectuer un test croisé.
- Vérifiez le refroidissement du pilote et le ventilateur.
- Vérifiez si le câble moteur n'est pas 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.
- Mettez d'abord hors tension, puis procédez à l'opération. Vérifiez si le câble moteur présente une rupture, un brin interne cassé ou un mauvais contact de la borne entraînant une connexion intermittente. Les mouvements prolongés de la chaîne porte-câbles peuvent entraîner une fatigue et une rupture du câble. Concentrez-vous sur les points de pliage de la chaîne porte-câbles et les points de sertissage des bornes.
- Il n'est pas recommandé aux clients de modifier eux-mêmes la borne d'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 à des professionnels ou au service après-vente.
Protection contre la sous-tension (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 mauvais contact de câblage 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 des bornes 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 les 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/défaillance du pilote TMC.
Solutions :
- Après avoir coupé l'alimentation, vérifiez que l'ordre du câblage SPI (MOSI, MISO, SCK, CS) est correct.
- Si le bus SPI est partagé entre plusieurs périphériques, assurez-vous que chaque périphérique est entièrement configuré dans Klipper.
- Après avoir coupé l'alimentation, testez avec un seul pilote connecté à la carte mère pour exclure les interférences du bus partagé.
- Confirmez que l'alimentation du pilote est normale. Si nécessaire, mettez hors tension pendant quelques secondes, puis rebranchez.
- Si l'erreur est accompagnée de
reset=1,uv_cp=1ouffffffffaléatoire, vérifiez d'abord l'alimentation et le contact du pilote.
Test de pilote individuel : Pour isoler et vérifier si le pilote est normal, veuillez vous référer à la méthode de test de pilote SPI individuel dans Tests de périphériques et de pilotes.