Aller au contenu principal

Résolution des erreurs TMC

Contexte technique

Les pilotes Trinamic (TMC) 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 que la communication entre le contrôleur principal et le pilote est normale.
  • Registre GSTAT : Registre d'état global, contenant des informations d'état global telles que la réinitialisation, 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 l'indicateur de défaut sont généralement affichés. Une erreur de pilote TMC signifie que la puce du pilote a détecté un problème et s'est auto-désactivée par mesure de protection, puis Klipper entre dans un état d'arrêt.

Mise hors tension

Avant de vérifier les cavaliers, les modules de 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/débrancher les modules de pilote ou les câbles du moteur pas à pas sous tension. Le test de résistance du multimètre ne doit être utilisé qu'à l'état hors tension.

Échec de la connexion au pilote (Échec de communication IFCNT)

Message d'erreur : Impossible de lire le registre tmc uart 'stepper_x' IFCNT ou Impossible de lire le registre tmc spi 'stepper_x' IFCNT.

Loading...

Cause de l'erreur : La communication entre le pilote TMC (mode UART/SPI) et le contrôleur principal a échoué, ce qui empêche la lecture de la valeur du registre IFCNT. Cela se produit souvent lorsque le cavalier UART n'est pas installé, l'alimentation de la carte pilote est anormale ou la configuration des broches UART/SPI est incorrecte.

Solutions :

  1. Après avoir mis hors tension, vérifiez que le cavalier UART correspondant au pilote est correctement installé.
  2. Confirmez que uart_pin (ou spi_bus / spi_software_*_pin) dans la configuration TMC du printer.cfg correspond au câblage réel.
  3. Vérifiez d'abord l'état de l'alimentation à l'aide du voyant lumineux et du sens d'installation du module pilote. Si le voyant est normal et l'installation du module est correcte mais que le problème persiste, utilisez un faisceau de câbles de rechange pour un test croisé (déplacez le pilote sur un autre port pour vérifier). Pour la détection électrique des bornes 24V exposées, veuillez contacter le service après-vente ou un professionnel.
  4. Si l'erreur se produit immédiatement après le premier flash de Klipper, mettez l'ensemble hors tension pendant quelques secondes (débranchez également le câble USB et l'alimentation principale) avant de remettre sous tension pour effacer l'état résiduel du pilote.
  5. Essayez de remplacer la carte pilote ou de changer de port de pilote après la mise hors tension.
  6. Si vous utilisez un pilote non-FLY, vérifiez la définition de sa broche UART (sur les pilotes FLY, la broche UART est généralement la quatrième broche en partant du haut sur la gauche).
Loading...

Pour les cas particuliers, si la broche UART du pilote acheté est la cinquième broche, vous pouvez utiliser la méthode de cavalier suivante :

Loading...
  1. Vérifiez si uart_address correspond au cavalier matériel de la carte pilote.
  2. 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' signale une erreur : DRV_STATUS: ... ot=1(OvertempError!) ou otpw=1(OvertempWarning!).

Loading...

Cause de l'erreur : La température de la puce du pilote TMC a dépassé le seuil de sécurité, ce qui a déclenché la protection. Remarque : Il s'agit d'une surchauffe du pilote, pas d'une surchauffe du moteur !

  • OvertempWarning (otpw) : La température a dépassé le seuil d'avertissement d'environ 120°C, le pilote peut encore fonctionner mais il est recommandé de vérifier.
  • OvertempError (ot) : La température a dépassé le seuil de coupure d'environ 150°C, le pilote est automatiquement désactivé.

Solutions :

  1. Réduisez le courant de fonctionnement du moteur (run_current), il est recommandé de le réduire de 20 à 30 % dans un premier temps.
  2. Si un courant de maintien (hold_current) est défini, vous pouvez le réduire ou le désactiver complètement.
  3. Vérifiez que le dissipateur thermique du pilote est bien en contact et que la pâte thermique est suffisante.
  4. Ajoutez un ventilateur de refroidissement pour le pilote et assurez une bonne circulation d'air.
  5. Confirmez que la valeur de la résistance de détection (sense resistor) de la carte pilote est correctement configurée.
  6. Réduisez la valeur de stealthchop_threshold ou passez en mode spreadCycle.
  7. Vérifiez si l'environnement d'installation du pilote est scellé, ce qui entraîne une accumulation de chaleur, et évitez une utilisation prolongée dans un environnement à haute température.

Défaut de court-circuit (ShortToGND / ShortToSupply)

Message d'erreur : TMC 'stepper_x' signale une erreur : 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 câble moteur desserré ou en court-circuit, à une isolation de bobinage du moteur endommagée, ou à une charge de prédiction inexacte en mode stealthChop entraînant une surintensité.

Solutions :

  1. Mettez d'abord hors tension avant d'opérer. Vérifiez si le câble moteur correspondant est desserré ou endommagé, et mesurez la résistance de la bobine du moteur avec le multimètre en mode résistance (normalement environ 1,5~3Ω).
  2. Après la mise hors tension, vérifiez que le connecteur du moteur est bien fixé.
  3. 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 câble de terre de l'alimentation ou les bornes exposées.
  4. Essayez de désactiver stealthChop pour tester : SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadCycle VALUE=1.
  5. Si l'erreur disparaît après la commutation, il s'agit d'un problème de prédiction du mode stealthChop ; sinon, il peut s'agir d'un véritable court-circuit matériel.

Défaut de circuit ouvert (OpenLoad)

Message d'erreur : TMC 'stepper_x' signale une erreur : 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. Cela indique généralement un câble moteur déconnecté, une fiche desserrée, une erreur de connexion de la bobine, ou une erreur de jugement dans un état de faible courant ou en mode stealthChop.

Solutions :

  1. Après la mise hors tension, rebranchez le câble moteur et assurez-vous que le sertissage de la borne est solide.
  2. Mettez d'abord hors tension avant d'opérer. Mesurez la résistance des deux groupes de bobines A et B avec le multimètre ; les deux doivent être proches et ne pas être en circuit ouvert.
  3. Après la mise hors tension, vérifiez le câblage 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.
  4. Désactivez temporairement stealthChop : définissez stealthchop_threshold: 0 dans la configuration et testez.
  5. Augmentez légèrement run_current pour tester. Si l'erreur ne se produit qu'à un courant très faible, il s'agit probablement d'une erreur de jugement.
  6. Après la mise hors tension, 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 du pilote.

Défaut combiné court-circuit + circuit ouvert (Court-circuit phase A, circuit ouvert phase B)

Message d'erreur : TMC 'extruder' signale une erreur : DRV_STATUS: ... s2vsa=1(ShortToSupply_A!) csactual=31 ola=1(OpenLoad_A!) olb=1(OpenLoad_B!).

Cause de l'erreur : Le bit de diagnostic de défaut du pilote TMC indique un problème matériel : 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, csactual=31 indique 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 :

  1. Mettez d'abord hors tension avant d'opérer. Mesurez la résistance des deux groupes de bobines AB du moteur pas à pas pour voir si elles sont identiques (normalement 1-2Ω et les deux valeurs sont proches).
  2. Après la mise hors tension, vérifiez soigneusement le faisceau de câbles et les connecteurs du moteur pas à pas pour voir s'ils sont desserrés, en court-circuit ou avec un mauvais contact.
  3. Confirmez que le réglage du courant du pilote TMC est approprié ; un courant trop élevé peut entraîner ces problèmes.
  4. Essayez de désactiver le mode stealthChop pour tester : définissez stealthchop_threshold: 0 dans la configuration.

Défaut combiné court-circuit + circuit ouvert (Court-circuit phase B, circuit ouvert phase A)

Message d'erreur : TMC 'extruder' signale une erreur : DRV_STATUS: ... s2vsb=1(ShortToSupply_B!) ola=1(OpenLoad_A!) cs_actual=25.

Loading...

Cause de l'erreur : Le bit de diagnostic de défaut du pilote TMC indique : s2vsb=1 signifie un court-circuit de la phase B à l'alimentation, ola=1 signifie un circuit ouvert de la phase A, cs_actual=25 indique la valeur de réglage du courant actuel. Cela est généralement dû à l'une des raisons suivantes : erreur de câblage du moteur (inversion ou court-circuit des phases A/B), défaut du moteur lui-même (bobinage en circuit ouvert) ou problème matériel de la carte pilote.

Solutions :

  1. Mettez d'abord hors tension avant d'opérer. Mesurez la résistance des deux groupes de bobines A et B du moteur pas à pas pour voir si elles sont identiques (elles doivent normalement être proches).
  2. Après la mise hors tension, confirmez que le câblage du moteur est correct, normalement le groupe de gauche (phase A) et le groupe de droite (phase B).
  3. Après la mise hors tension, vérifiez que toutes les bornes de connexion sont bien fixées, sans desserrage ni mauvais contact.
  4. Si possible, après la mise hors tension, connectez le moteur à un autre port de pilote connu pour être normal pour un test.

Réinitialisation du pilote (Reset)

Message d'erreur : TMC 'stepper_x' signale une erreur : GSTAT: 00000001 reset=1(Reset).

Loading...

Cause de l'erreur : Alimentation instable ou interférence externe entraînant une réinitialisation automatique du pilote. Cela se produit souvent en cas de fluctuations de la tension d'alimentation, de mauvais contact de câblage ou d'interférences électromagnétiques.

Solutions :

  1. Après une coupure de courant complète, vérifiez si le câble d'alimentation 24V, le module pilote et la prise de la carte mère sont desserrés, noircis ou brûlés.
  2. Remplacez par une alimentation, un module pilote ou un faisceau de câbles connu pour être normal pour un test croisé.
  3. Vérifiez le refroidissement du pilote et le fonctionnement du ventilateur.
  4. Vérifiez si le câble moteur est parallèle sur une longue distance avec les câbles du chauffage et du lit chauffant. Si nécessaire, réorganisez le câblage après la mise hors tension.
  5. Mettez d'abord hors tension avant d'opérer. Vérifiez si le câble moteur présente des ruptures, des brins internes cassés ou un mauvais contact de borne entraînant une connexion intermittente. Les mouvements prolongés des chaînes porte-câbles peuvent entraîner une fatigue et une rupture des câbles ; vérifiez particulièrement les points de pliage des chaînes porte-câbles et les sertissages des bornes.
  6. Il n'est pas recommandé aux clients de modifier eux-mêmes 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 à des professionnels ou au service après-vente.

Protection contre les sous-tensions (Undervoltage)

Message d'erreur : TMC 'stepper_x' signale une erreur : 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 :

  1. Après une coupure de courant complète, vérifiez l'apparence du câble d'alimentation, de la prise d'alimentation de la carte mère et des bornes pour voir si elles sont desserrées, noircies ou brûlées.
  2. Confirmez que les spécifications de l'alimentation répondent aux besoins de puissance totale du pilote et du chauffage.
  3. Utilisez une alimentation ou un faisceau de câbles connu pour être normal pour un test de remplacement.
  4. Pour la détection électrique des bornes 24V exposées, veuillez contacter le service après-vente ou un professionnel, ne le faites pas vous-même.

Erreur de communication SPI (DRV_STATUS: ffffffff)

Message d'erreur : Impossible d'écrire le registre tmc spi 'stepper_x' ..., TMC signale une erreur : 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, à un périphérique non configuré sur le bus SPI, ou à une réinitialisation/défaut du pilote TMC.

Solutions :

  1. Après la mise hors tension, vérifiez que l'ordre du câblage SPI (MOSI, MISO, SCK, CS) est correct.
  2. Si le bus SPI est partagé entre plusieurs périphériques, assurez-vous que chaque périphérique est entièrement configuré dans Klipper.
  3. Après la mise hors tension, testez la carte mère avec un seul pilote branché pour exclure les interférences mutuelles sur le bus partagé.
  4. Confirmez que l'alimentation du pilote est normale. Si nécessaire, mettez hors tension pendant quelques secondes, puis remettez sous tension.
  5. Si l'erreur est accompagnée de reset=1, uv_cp=1 ou ffffffff aléatoire, vérifiez d'abord l'alimentation et le contact du pilote.

Test de pilote individuel : Pour isoler et vérifier si le pilote fonctionne normalement, veuillez vous référer à la méthode de test du pilote SPI dans Test des périphériques et des pilotes.

Erreur de configuration de la chaîne SPI TMC

Message d'erreur : La chaîne SPI TMC doit avoir la même longueur, La chaîne SPI TMC ne peut pas avoir de position en double.

Cause de l'erreur : Lors de l'utilisation d'un pilote TMC en chaîne SPI, les chain_position, chain_length ou les configurations 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 :

  1. Si la carte mère n'est pas conçue avec une chaîne SPI, n'ajoutez pas chain_position et chain_length au hasard.
  2. Comparez avec le modèle de configuration du fabricant de la carte mère ou de la carte pilote pour confirmer que le chain_length de chaque pilote TMC est exactement le même.
  3. Confirmez que le chain_position de chaque pilote est unique et non dupliqué.
  4. S'il s'agit simplement d'une structure de bus SPI standard avec plusieurs sélections de puce CS, chaque pilote doit être configuré individuellement avec son cs_pin, et non selon la méthode d'écriture de la chaîne SPI.
  5. Après avoir enregistré, exécutez RESTART, puis utilisez DUMP_TMC STEPPER=<stepper> pour confirmer la communication un par un.
Loading...