メインコンテンツにスキップ

TMC エラー調査

技術背景

TMC(Trinamic)ドライバは専用レジスタを介してステータスとエラー情報を報告します。これらのレジスタを理解することで、問題の迅速な診断に役立ちます。

  • IFCNT レジスタ:通信フレームカウンタ。メインコントローラとドライバ間の通信が正常かどうかを検証します。
  • GSTAT レジスタ:グローバルステータスレジスタ。リセット、ドライバエラーなどのグローバルステータス情報を含みます。
  • DRV_STATUS レジスタ:ドライバステータスレジスタ。温度警告、短絡、開放などの障害情報を含む、詳細なドライバ動作ステータスを提供します。

Klipper が TMC エラーを報告する場合、通常は具体的なレジスタ値と障害フラグが表示されます。TMC ドライバエラーは、ドライバチップが問題を検出して自己保護により無効化されたことを示し、Klipper はドライバが無効化されたことを検出するとシャットダウン状態になります。

電源オフ操作

ジャンパピン、ドライバモジュール、モーターケーブル、SPI/UART の配線順序や端子台を確認する前に、プリンターの電源を完全に切り、電源ケーブルを抜いてください。ドライバモジュールやステッピングモータケーブルの活線抜挿は禁止です。マルチメータの抵抗レンジは電源オフ状態でのみ使用可能です。

ドライバに接続できない(IFCNT 通信失敗)

エラーメッセージUnable to read tmc uart 'stepper_x' register IFCNT または Unable to read tmc spi 'stepper_x' register IFCNT

Loading...

エラー原因:TMC ドライバ(UART/SPI モード)とメインコントローラ間の通信が失敗し、IFCNT レジスタの値を読み取れません。UART ジャンパピンが未実装、ドライバボードへの電源供給異常、UART/SPI ピン設定の誤りなどが一般的な原因です。

解決方法

  1. 電源を切り、対象ドライバの UART ジャンパピンが正しく実装されているか確認します。
  2. printer.cfg の TMC 設定における uart_pin(または spi_bus / spi_software_*_pin)が実際の配線と一致していることを確認します。
  3. まず電源インジケータとドライバモジュールの取り付け方向から電源供給状態を大まかに判断します。インジケータが正常でモジュールの向きが正しいにもかかわらず問題が解決しない場合は、既製のケーブルハーネスを使用して交換するか、クロステスト(ドライバを別のポートに交換)を試みてください。露出した 24V 端子の電気的テストは、サポートまたは専門家にご依頼ください。
  4. Klipper を初めて書き込んだ直後にエラーが発生した場合は、数秒間完全に電源を切り(USB とメイン電源の両方を抜く)、その後再度通電してドライバの残留状態をクリアします。
  5. 電源を切り、ドライバボードを交換するか、ドライバポートを変更してテストします。
  6. FLY 製以外のドライバを使用している場合は、その UART ピン定義を確認してください(FLY ドライバの UART ピンは通常、左側上から4番目のピンです)。
Loading...

特殊なケースで、購入したドライバの UART ピンが5番目のピンにある場合は、以下のジャンパ方法で解決できます。

Loading...
  1. uart_address がドライバボードのハードウェアジャンパ設定と一致しているか確認します。
  2. データケーブルに断線や接触不良がないか確認します。

ドライバ過熱(OvertempError / OvertempWarning)

エラーメッセージTMC 'stepper_x' reports error: DRV_STATUS: ... ot=1(OvertempError!) または otpw=1(OvertempWarning!)

Loading...

エラー原因:TMC ドライバチップの温度が安全しきい値を超え、保護が作動しました。注意:これはドライバの過熱であり、モーターの過熱ではありません。

  • OvertempWarning(otpw):温度が約 120°C の警告しきい値を超えました。ドライバはまだ動作可能ですが、調査を推奨します。
  • OvertempError(ot):温度が約 150°C の遮断しきい値を超えました。ドライバは自動的に無効化されます。

解決方法

  1. モーターの動作電流(run_current)を低減します。まずは 20-30% 低減することを推奨します。
  2. 保持電流(hold_current)が設定されている場合は、適切に低減するか、完全に無効にします。
  3. ドライバのヒートシンクが適切に密着しているか、熱伝導シリコングリスが十分にあるか確認します。
  4. ドライバ冷却ファンを追加し、空気の流れを確保します。
  5. ドライバボードのセンス抵抗値の設定が正しいか確認します。
  6. stealthchop_threshold を低減するか、spreadCycle モードに切り替えます。
  7. ドライバの取り付け環境が密閉されて熱がこもっていないか確認し、高温環境での長時間運転を避けます。

短絡障害(ShortToGND / ShortToSupply)

エラーメッセージTMC 'stepper_x' reports error: DRV_STATUS: ... s2vsa=1(ShortToSupply_A!) または s2ga=1(ShortToGND_A!)

エラー原因:ドライバが非常に高い電流を検出しました。モーターケーブルの緩みや短絡、モーター巻線の絶縁破壊、または stealthChop モードでの負荷予測の不正確さによる過電流が原因である可能性があります。

解決方法

  1. 先に電源を切ってから操作してください。該当するモーターケーブルに緩みや損傷がないか確認し、マルチメータの抵抗レンジでモーターコイルの抵抗を測定します(通常約 1.5〜3Ω)。
  2. 電源を切り、モーターコネクタがしっかり固定されているか確認します。
  3. モーター筐体の接地処理が必要な場合は、メーカー指定の接地ポイントを使用するかサポートにご連絡ください。電源アース線や露出端子を自分で変更しないでください。
  4. stealthChop を無効にしてテストしてみます:SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadCycle VALUE=1
  5. 切り替え後にエラーが消えた場合は、stealthChop の予測問題です。消えない場合は、実際のハードウェア短絡の可能性があります。

開放障害(OpenLoad)

エラーメッセージTMC 'stepper_x' reports error: DRV_STATUS: ... ola=1(OpenLoad_A!) または olb=1(OpenLoad_B!)

エラー原因:ドライバが特定の相のモーター巻線に有効な負荷が形成されていないことを検出しました。通常、モーターケーブルの断線、プラグの緩み、コイルの誤配線、または低電流/stealthChop 状態での誤判定を示します。

解決方法

  1. 電源を切り、モーターケーブルを抜き差しし、端子の圧着が確実であることを確認します。
  2. 先に電源を切ってから操作してください。マルチメータで A/B 2組のコイルの抵抗値を測定します。2組は近い値であり、断線していない必要があります。
  3. 電源を切り、モーターケーブルの配線順序を確認し、A 相の2本が同じグループ、B 相の2本が別のグループであることを確認します。
  4. 一時的に stealthChop を無効にします:設定で stealthchop_threshold: 0 を設定してテストします。
  5. run_current を適切に上げてテストします。ごく低い電流でのみ発生する場合は、誤判定の可能性があります。
  6. 電源を切り、モーターケーブルまたはモーターを交換してクロステストし、問題がケーブルハーネス、モーター、またはドライバポートのいずれにあるかを特定します。

短絡+開放の複合障害(A相短絡B相開放)

エラーメッセージTMC 'extruder' reports error: DRV_STATUS: ... s2vsa=1(ShortToSupply_A!) csactual=31 ola=1(OpenLoad_A!) olb=1(OpenLoad_B!)

エラー原因:TMC ドライバ障害診断ビットがハードウェア問題を示しています:s2vsa=1 は A 相の電源への短絡、ola=1 は A 相の開放、olb=1 は B 相の開放、csactual=31 は現在の電流設定値が高すぎる可能性を示します。これらの障害は通常同時に発生し、モーターまたはドライバに深刻なハードウェア問題があることを示します。

解決方法

  1. 先に電源を切ってから操作してください。マルチメータでステッピングモータの AB 2組のコイルの抵抗値が一致しているか測定します(通常 1-2Ω で2組の値は近い必要があります)。
  2. 電源を切り、ステッピングモータのケーブルハーネスとコネクタに緩み、短絡、接触不良がないか注意深く確認します。
  3. TMC ドライバの電流設定が適切か確認します。高すぎる電流はこれらの問題を引き起こす可能性があります。
  4. stealthChop モードを無効にしてテストしてみます:設定で stealthchop_threshold: 0 を設定します。

短絡+開放の複合障害(B相短絡A相開放)

エラーメッセージTMC 'extruder' reports error: DRV_STATUS: ... s2vsb=1(ShortToSupply_B!) ola=1(OpenLoad_A!) cs_actual=25

Loading...

エラー原因:TMC ドライバ障害診断ビットが示す内容:s2vsb=1 は B 相の電源への短絡、ola=1 は A 相の開放、cs_actual=25 は現在の電流設定値を示します。通常、以下の原因が考えられます:モーターの配線ミス(A/B 相の逆接続や短絡)、モーター自体の故障(巻線開放)、またはドライバボードのハードウェア問題。

解決方法

  1. 先に電源を切ってから操作してください。マルチメータでステッピングモータの A、B 2組のコイルの抵抗値が一致しているか測定します(正常時は近い値)。
  2. 電源を切り、モーターの配線順序が正しいことを確認します。通常は左側のグループ(A 相)、右側のグループ(B 相)です。
  3. 電源を切り、すべての端子台がしっかり固定されており、緩みや接触不良がないか確認します。
  4. 可能であれば、電源を切った状態でモーターを別の正常動作が確認されているドライバポートに接続してテストします。

ドライバリセット(Reset)

エラーメッセージTMC 'stepper_x' reports error: GSTAT: 00000001 reset=1(Reset)

Loading...

エラー原因:電源の不安定や外部干渉によりドライバが自動リセットされました。電源電圧の変動、配線の接触不良、電磁妨害などが一般的な原因です。

解決方法

  1. 完全に電源を切り、24V 電源ケーブル、ドライバモジュール、マザーボードのソケットに緩み、黒ずみ、焼損がないか確認します。
  2. 正常動作が確認されている電源、ドライバモジュール、ケーブルハーネスと交換してクロステストします。
  3. ドライバの冷却とファンが正常に動作しているか確認します。
  4. モーターケーブルがヒーターやヒートベッドのケーブルと長距離にわたって平行配線されていないか確認します。必要に応じて電源を切り、配線を整理し直します。
  5. 先に電源を切ってから操作してください。モーターケーブルに断線、内部断線、端子接触不良による断続的な接続がないか確認します。ケーブルキャリアの長期動作はケーブルの疲労断線を引き起こす可能性があるため、ケーブルキャリアの屈曲部や端子圧着部を重点的に確認してください。
  6. お客様ご自身でドライバ電源入力部を変更したり、電子部品を追加したり、接地を変更したりすることは推奨しません。これらの作業は専門家またはサポートにご依頼ください。

低電圧保護(Undervoltage)

エラーメッセージTMC 'stepper_x' reports error: DRV_STATUS: ... uv_cp=1(Undervoltage!)

エラー原因:ドライバが電源電圧の低下イベントを検出しました。通常、電源障害、配線の緩み、電源容量不足が原因です。

解決方法

  1. 完全に電源を切り、電源ケーブル、マザーボードの電源コネクタ、端子の外観に緩み、黒ずみ、焼損がないか確認します。
  2. 電源の仕様がドライバとヒーターの合計消費電力を満たしているか確認します。
  3. 正常動作が確認されている電源やケーブルハーネスと交換してテストします。
  4. 露出した 24V 端子の電気的テストはサポートまたは専門家にご依頼ください。ご自身で処理しないでください。

SPI 通信エラー(DRV_STATUS: ffffffff)

エラーメッセージUnable to write tmc spi 'stepper_x' register ...TMC reports error: DRV_STATUS: ffffffff ...、または READRSP@RDSEL2: 00000000 ...

エラー原因:SPI モードで TMC ドライバ(tmc2130/tmc5160/tmc2660)と通信できません。通常は SPI 配線ミス、SPI バス上の未設定デバイス、または TMC ドライバの自己リセット/障害が原因です。

解決方法

  1. 電源を切り、SPI 配線(MOSI、MISO、SCK、CS)の順序が正しいか確認します。
  2. SPI バスを複数のデバイスで共有している場合は、各デバイスが Klipper で完全に設定されていることを確認します。
  3. 電源を切り、マザーボードにドライバを1つだけ接続して単独テストし、共有バスによる相互干渉を排除します。
  4. ドライバへの電源供給が正常であることを確認し、必要に応じて数秒間電源を切ってから再通電します。
  5. エラーに reset=1uv_cp=1、またはランダムな ffffffff が伴う場合は、電源供給とドライバの接触を優先的に確認します。

単独ドライバテスト:ドライバが正常かどうかを切り分けて検証する必要がある場合は、周辺機器とドライバのテスト にある SPI ドライバの単独テスト方法を参照してください。

TMC SPI chain 設定エラー

エラーメッセージTMC SPI chain must have same lengthTMC SPI chain can not have duplicate position

エラー原因:SPI 直列チェーンを使用する TMC ドライバにおいて、複数のドライバの chain_positionchain_length、またはチップセレクト設定が一致せず、Klipper が SPI チェーン内の各ドライバの位置を判断できません。

解決方法

  1. マザーボードが SPI 直列チェーン設計でない場合は、chain_positionchain_length を勝手に追加しないでください。
  2. マザーボードまたはドライバボードメーカーの設定テンプレートを参照し、各 TMC ドライバの chain_length が完全に一致していることを確認します。
  3. 各ドライバの chain_position が一意であり、重複していないことを確認します。
  4. 通常の SPI バスで複数の CS チップセレクト構造の場合、各ドライバの cs_pin を個別に設定し、SPI chain の記法では設定しないでください。
  5. 保存後 RESTART を実行し、DUMP_TMC STEPPER=<stepper> で一つずつ通信を確認します。
Loading...