Поиск неисправностей 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.
Причина ошибки: Связь между драйвером TMC (режим UART/SPI) и главным контроллером нарушена, невозможно прочитать значение регистра IFCNT. Часто встречается при отсутствии установленной перемычки UART, аномальном питании платы драйвера или неправильной конфигурации выводов UART/SPI.
Методы решения:
- После выключения питания проверьте правильность установки перемычки UART для соответствующего драйвера.
- Убедитесь, что
uart_pin(илиspi_bus/spi_software_*_pin) в конфигурации TMC вprinter.cfgсоответствует фактическому подключению. - Сначала оцените состояние питания по индикатору питания и направлению установки модуля драйвера. Если индикатор в норме, модуль установлен правильно, но проблема сохраняется, замените готовым жгутом проводов или выполните перекрестную проверку (переставьте драйвер на другой порт для проверки). Электрические проверки оголенных клемм 24V следует доверить специалистам послепродажного обслуживания.
- Если ошибка возникает сразу после первой прошивки Klipper, отключите питание принтера на несколько секунд (одновременно вытащите USB и основное питание), затем снова включите, чтобы очистить остаточное состояние драйвера.
- После выключения питания попробуйте заменить плату драйвера или переключить порт драйвера для проверки.
- При использовании драйвера не от FLY убедитесь в правильности определения вывода UART (у драйверов FLY вывод UART обычно является четвертым выводом слева сверху вниз).
Для особых случаев, если вывод UART приобретенного драйвера находится на пятом выводе, можно использовать следующий метод перемычки:
- Проверьте соответствие
uart_addressи аппаратных перемычек платы драйвера. - Проверьте целостность кабеля передачи данных, отсутствие обрывов или плохого контакта.
Перегрев драйвера (OvertempError / OvertempWarning)
Сообщение об ошибке: TMC 'stepper_x' reports error: DRV_STATUS: ... ot=1(OvertempError!) или otpw=1(OvertempWarning!).
Причина ошибки: Температура микросхемы драйвера TMC превысила безопасный порог, сработала защита. Обратите внимание: это перегрев драйвера, а не двигателя!
OvertempWarning(otpw): температура превысила порог предупреждения около 120°C, драйвер все еще может работать, но рекомендуется провести диагностику.OvertempError(ot): температура превысила порог отключения около 150°C, драйвер автоматически отключился.
Методы решения:
- Уменьшите рабочий ток двигателя (
run_current), рекомендуется сначала снизить на 20-30%. - Если установлен ток удержания (
hold_current), его можно немного уменьшить или полностью отключить. - Проверьте, хорошо ли прилегает радиатор драйвера и достаточно ли термопасты.
- Установите вентилятор для охлаждения драйвера, обеспечьте циркуляцию воздуха.
- Убедитесь, что значение токоизмерительного резистора (sense resistor) платы драйвера настроено правильно.
- Уменьшите
stealthchop_thresholdили переключитесь в режим spreadCycle. - Проверьте, не герметично ли окружение установки драйвера, что приводит к накоплению тепла; избегайте длительной работы в условиях высокой температуры.
Ошибка короткого замыкания (ShortToGND / ShortToSupply)
Сообщение об ошибке: TMC 'stepper_x' reports error: DRV_STATUS: ... s2vsa=1(ShortToSupply_A!) или s2ga=1(ShortToGND_A!).
Причина ошибки: Драйвер обнаружил чрезвычайно высокий ток. Возможные причины: ослабление или короткое замыкание провода двигателя, повреждение изоляции обмотки двигателя или перегрузка по току из-за неточного прогнозирования нагрузки в режиме stealthChop.
Методы решения:
- Сначала отключите питание, затем выполняйте операции. Проверьте, не ослаблены ли и не повреждены ли провода соответствующего двигателя, измерьте сопротивление обмоток двигателя мультиметром (нормальное значение около 1,5~3 Ом).
- После выключения питания проверьте надежность разъема двигателя.
- Если необходимо подключить корпус двигателя к земле, используйте точку заземления, предоставленную производителем, или обратитесь в службу поддержки. Не изменяйте самостоятельно линию заземления питания или оголенные клеммы.
- Попробуйте отключить stealthChop для проверки:
SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadCycle VALUE=1 - Если после переключения ошибка исчезает, это проблема прогнозирования stealthChop; в противном случае может быть реальное аппаратное короткое замыкание.
Ошибка обрыва (OpenLoad)
Сообщение об ошибке: TMC 'stepper_x' reports error: DRV_STATUS: ... ola=1(OpenLoad_A!) или olb=1(OpenLoad_B!).
Причина ошибки: Драйвер обнаружил, что в одной из фаз обмотки двигателя нет эффективной нагрузки, что обычно указывает на обрыв провода двигателя, ослабление разъема, неправильное подключение обмотки или ложное срабатывание при низком токе/в режиме stealthChop.
Методы решения:
- После выключения питания повторно подключите и отключите провода двигателя, убедитесь в надежности обжима клемм.
- Сначала отключите питание, затем выполняйте операции. Измерьте сопротивление обмоток групп A и B мультиметром. Значения двух групп должны быть близки и не должны показывать обрыв.
- После выключения питания проверьте порядок проводов двигателя, убедитесь, что два провода фазы A находятся в одной группе, а два провода фазы B — в другой.
- Временно отключите stealthChop: установите
stealthchop_threshold: 0в конфигурации и проверьте. - Соответственно увеличьте
run_currentдля проверки. Если ошибка возникает только при очень низком токе, это может быть ложное срабатывание. - После выключения питания замените провода двигателя или сам двигатель для перекрестной проверки, чтобы определить, в жгуте, двигателе или порте драйвера проблема.
Комбинированная ошибка короткого замыкания и обрыва (КЗ фазы 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 означает, что текущее установленное значение тока может быть слишком высоким. Эти неисправности обычно появляются одновременно, что указывает на серьезные аппаратные проблемы с двигателем или драйвером.
Методы решения:
- Сначала отключите питание, затем выполняйте операции. Измерьте сопротивление обмоток групп A и B шагового двигателя мультиметром (обычно должно быть 1-2 Ом, и значения двух групп должны быть близки).
- После выключения питания тщательно проверьте жгут проводов шагового двигателя и разъемы на предмет ослабления, короткого замыкания или плохого контакта.
- Убедитесь, что настройка тока драйвера TMC подходит; слишком высокий ток может вызвать эти проблемы.
- Попробуйте отключить режим stealthChop для проверки: установите
stealthchop_threshold: 0в конфигурации.
Комбинированная ошибка короткого замыкания и обрыва (КЗ фазы B, обрыв фазы A)
Сообщение об ошибке: TMC 'extruder' reports error: DRV_STATUS: ... s2vsb=1(ShortToSupply_B!) ola=1(OpenLoad_A!) cs_actual=25.
Причина ошибки: Биты диагностики неисправности драйвера TMC указывают: s2vsb=1 означает короткое замыкание фазы B на питание, ola=1 означает обрыв фазы A, cs_actual=25 означает текущее установленное значение тока. Обычно это вызвано следующими причинами: неправильное подключение двигателя (перепутаны или замкнуты фазы A/B), неисправность самого двигателя (обрыв обмотки) или аппаратная проблема платы драйвера.
Методы решения:
- Сначала отключите питание, затем выполняйте операции. Измерьте сопротивление обмоток групп A и B шагового двигателя мультиметром (нормальные значения должны быть близки).
- После выключения питания убедитесь в правильности распиновки двигателя: обычно левая группа (фаза A), правая группа (фаза B).
- После выключения питания проверьте, все ли клеммы закреплены надежно, без ослабления или плохого контакта.
- Если есть возможность, подключите двигатель к другому заведомо исправному порту драйвера для проверки после выключения питания.
Сброс драйвера (Reset)
Сообщение об ошибке: TMC 'stepper_x' reports error: GSTAT: 00000001 reset=1(Reset).
Причина ошибки: Нестабильное питание или внешние помехи вызвали автоматический сброс драйвера. Часто встречается при колебаниях напряжения питания, плохом контакте в соединениях или электромагнитных помехах.
Методы решения:
- После полного отключения питания проверьте провода питания 24 В, модули драйверов и разъемы материнской платы на предмет ослабления, потемнения или подгорания.
- Замените заведомо исправные блок питания, модули драйверов или жгуты проводов для перекрестной проверки.
- Проверьте охлаждение драйвера и нормальную работу вентилятора.
- Проверьте, не проложены ли провода двигателя параллельно с проводами нагревателя или стола на большом расстоянии; при необходимости переложите их после выключения питания.
- Сначала отключите питание, затем выполняйте операции. Проверьте провода двигателя на наличие обрывов, внутренних изломов жил или плохого контакта в клеммах, вызывающих прерывистое соединение. Длительное движение в кабель-канале может привести к усталостному разрушению кабеля; особое внимание уделите местам изгиба кабель-канала и обжима клемм.
- Не рекомендуется самостоятельно изменять вход питания драйвера, добавлять электронные компоненты или изменять заземление; такие операции должны выполняться специалистами или службой поддержки.
Защита от пониженного напряжения (Undervoltage)
Сообщение об ошибке: TMC 'stepper_x' reports error: DRV_STATUS: ... uv_cp=1(Undervoltage!).
Причина ошибки: Драйвер обнаружил событие пониженного напряжения питания. Обычно вызвано неисправностью блока питания, ослаблением соединений или недостаточной мощностью питания.
Методы решения:
- После полного отключения питания проверьте внешний вид кабелей питания, разъемов питания материнской платы и клемм на предмет ослабления, потемнения или подгорания.
- Убедитесь, что спецификации блока питания удовлетворяют суммарным требованиям по мощности драйверов и нагревателей.
- Выполните замену на заведомо исправный блок питания или жгут проводов для проверки.
- Электрические проверки оголенных клемм 24 В следует доверить специалистам послепродажного обслуживания, не выполняйте их самостоятельно.
Ошибка связи SPI (DRV_STATUS: ffffffff)
Сообщение об ошибке: Unable to write tmc spi 'stepper_x' register ..., TMC reports error: DRV_STATUS: ffffffff ... или READRSP@RDSEL2: 00000000 ....
Причина ошибки: Невозможность связи с драйвером TMC в режиме SPI (tmc2130/tmc5160/tmc2660). Обычно вызвано неправильным подключением SPI, наличием нескомфигурированного устройства на шине SPI или самосбросом/неисправностью драйвера TMC.
Методы решения:
- После выключения питания проверьте правильность порядка подключения SPI (MOSI, MISO, SCK, CS).
- Если шиной SPI совместно пользуются несколько устройств, убедитесь, что каждое устройство полностью сконфигурировано в Klipper.
- После выключения питания подключите к материнской плате только один драйвер для отдельного тестирования, чтобы исключить взаимные помехи на общей шине.
- Убедитесь в нормальном питании драйвера, при необходимости отключите питание на несколько секунд и снова включите.
- Если ошибка сопровождается
reset=1,uv_cp=1или случайнымffffffff, в первую очередь проверяйте питание и контакт драйвера.
Отдельное тестирование драйвера: Если требуется изолированно проверить исправность драйвера, обратитесь к методу отдельного тестирования SPI-драйвера в разделе Тестирование периферии и драйверов.
Ошибка конфигурации цепочки TMC SPI
Сообщение об ошибке: TMC SPI chain must have same length или TMC SPI chain can not have duplicate position.
Причина ошибки: При использовании драйверов TMC, соединенных последовательной цепочкой SPI, chain_position, chain_length или конфигурация выбора микросхемы для нескольких драйверов несовместимы, из-за чего Klipper не может определить положение каждого драйвера в цепочке SPI.
Методы решения:
- Если материнская плата не имеет конструкции последовательной цепочки SPI, не добавляйте произвольно
chain_positionиchain_length. - Сверьтесь с шаблоном конфигурации производителя материнской платы или платы драйвера, убедитесь, что
chain_lengthдля каждого TMC-драйвера абсолютно идентичен. - Убедитесь, что
chain_positionкаждого драйвера уникален и не повторяется. - Если это обычная структура общей шины SPI с несколькими выводами CS, следует настроить
cs_pinдля каждого драйвера отдельно, не используйте формат записи цепочки SPI. - После сохранения выполните
RESTART, затем используйтеDUMP_TMC STEPPER=<stepper>для поочередного подтверждения связи.