Перейти к основному содержанию

Устранение ошибок TMC

Технические основы

Драйверы TMC (Trinamic) сообщают о состоянии и ошибках через специализированные регистры. Понимание этих регистров помогает быстро диагностировать проблемы:

  • Регистр IFCNT: Счетчик кадров связи, используется для проверки нормальной связи между главным контроллером и драйвером.
  • Регистр GSTAT: Глобальный регистр состояния, содержит информацию о глобальном состоянии, такую как сброс, ошибки драйвера и т.д.
  • Регистр DRV_STATUS: Регистр состояния драйвера, предоставляет подробную информацию о рабочем состоянии драйвера, включая предупреждения о температуре, короткое замыкание, обрыв цепи и другие неисправности.

Когда Klipper сообщает об ошибке TMC, обычно отображаются конкретные значения регистров и флаги неисправностей. Ошибка драйвера TMC указывает на то, что микросхема драйвера обнаружила проблему и отключилась для самозащиты. Klipper переходит в состояние shutdown после обнаружения отключения драйвера.

Работа при отключенном питании

Перед проверкой перемычек, модулей драйвера, проводов двигателя, распиновки 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. Убедитесь, что uart_pin (или spi_bus / spi_software_*_pin) в конфигурации TMC в printer.cfg соответствует фактическому подключению.
  3. Сначала оцените состояние питания по индикатору питания и направлению установки модуля драйвера. Если индикатор в норме, модуль установлен правильно, но проблема сохраняется, попробуйте заменить готовым жгутом проводов или провести перекрестное тестирование (переместите драйвер на другой порт). Электрические проверки оголенных клемм 24В доверьте специалистам послепродажного обслуживания или профессионалам.
  4. Если ошибка возникает сразу после первой прошивки Klipper, выключите принтер на несколько секунд (одновременно отключите USB и основное питание), затем снова включите, чтобы очистить остаточное состояние драйвера.
  5. После отключения питания попробуйте заменить плату драйвера или переключить порт драйвера для тестирования.
  6. Если используется драйвер не от FLY, проверьте определение вывода UART (вывод UART драйверов FLY обычно является четвертым контактом сверху слева).
Loading...

В особых случаях, если вывод UART приобретенного драйвера находится на пятом контакте, можно решить проблему с помощью следующего метода перемычек:

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. Убедитесь, что значение резистора измерения тока (sense resistor) на плате драйвера настроено правильно.
  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 мультиметром. Значения двух групп должны быть близки и не должны показывать обрыв.
  3. После отключения питания проверьте порядок подключения проводов двигателя, убедитесь, что два провода фазы A находятся в одной группе, а два провода фазы B - в другой.
  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. Сначала отключите питание, затем выполняйте операции. Измерьте сопротивление обмоток A и B шагового двигателя мультиметром. Оно должно быть одинаковым (обычно 1-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. После отключения питания убедитесь, что порядок подключения проводов двигателя правильный. Обычно левая группа - фаза A, правая группа - фаза B.
  3. После отключения питания проверьте, все ли клеммы надежно закреплены, нет ли ослабления или плохого контакта.
  4. Если есть возможность, после отключения питания подключите двигатель к другому заведомо исправному порту драйвера для тестирования.

Сброс драйвера (Reset)

Сообщение об ошибке: TMC 'stepper_x' reports error: GSTAT: 00000001 reset=1(Reset).

Loading...

Причина ошибки: Нестабильность питания или внешние помехи вызывают автоматический сброс драйвера. Обычно это происходит из-за колебаний напряжения питания, плохого контакта в соединениях или электромагнитных помех.

Методы решения:

  1. Полностью отключите питание и проверьте, не ослаблены ли, не почернели ли или не обгорели ли кабель питания 24В, модуль драйвера и розетка материнской платы.
  2. Замените заведомо исправным блоком питания, модулем драйвера или жгутом проводов для перекрестного тестирования.
  3. Проверьте охлаждение драйвера и работу вентилятора.
  4. Проверьте, не проложены ли провода двигателя параллельно проводам нагревателя или нагревательного стола на большом расстоянии. При необходимости после отключения питания переложите трассу.
  5. Сначала отключите питание, затем выполняйте операции. Проверьте провода двигателя на наличие разрывов, внутреннего обрыва жил или плохого контакта в клеммах, вызывающих прерывистое соединение. Длительное движение в кабель-канале может привести к усталостному разрушению кабеля; особое внимание уделите местам изгиба кабель-канала и обжима клемм.
  6. Не рекомендуется самостоятельно изменять вход питания драйвера, добавлять электронные компоненты или изменять заземление; такие операции следует доверить профессионалам или службе поддержки.

Защита от пониженного напряжения (Undervoltage)

Сообщение об ошибке: TMC 'stepper_x' reports error: DRV_STATUS: ... uv_cp=1(Undervoltage!).

Причина ошибки: Драйвер обнаружил событие слишком низкого напряжения питания. Обычно это вызвано неисправностью источника питания, ослаблением соединений или недостаточной мощностью питания.

Методы решения:

  1. Полностью отключите питание и проверьте внешний вид кабеля питания, разъема питания материнской платы и клемм на наличие ослабления, почернения или обгорания.
  2. Убедитесь, что характеристики источника питания удовлетворяют общей потребляемой мощности драйвера и нагревателей.
  3. Проведите замену заведомо исправным источником питания или жгутом проводов для тестирования.
  4. Электрические проверки оголенных клемм 24В доверьте специалистам послепродажного обслуживания или профессионалам, не выполняйте их самостоятельно.

Ошибка связи 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. После отключения питания оставьте на материнской плате только один драйвер для отдельного тестирования, чтобы исключить взаимные помехи на общей шине.
  4. Убедитесь, что питание драйвера в норме. При необходимости выключите питание на несколько секунд, затем снова включите.
  5. Если ошибка сопровождается reset=1, uv_cp=1 или случайным ffffffff, в первую очередь проверьте питание и контакт драйвера.

Отдельное тестирование драйвера: Для изолированной проверки работоспособности драйвера обратитесь к методу отдельного тестирования драйвера SPI в разделе Тестирование периферии и драйверов.

Loading...