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

Тестирование периферии и драйверов

Данная статья предназначена для проверки работоспособности таких периферийных модулей, как шаговые драйверы, платы CAN-инструментов и т.д. Методика тестирования аналогична базовому тестированию ввода/вывода: используется минимальная конфигурация Klipper для изоляции отдельного аппаратного компонента.

Если требуется проверить подключение MCU, датчики температуры, выходы вентиляторов или входные порты, сначала обратитесь к Методам аппаратного тестирования.

Тестирование драйвера

Цель тестирования

Проверить с помощью простейшей конфигурации Klipper, может ли отдельный TMC-драйвер (в режиме UART или SPI) нормально обмениваться данными с материнской платой, и подтвердить, что двигатель управляется корректно.

Предварительные условия

Отключение питания

Перед выполнением следующих операций полностью выключите принтер и отключите его от источника питания. Запрещается подключать или отключать модули драйверов или провода шаговых двигателей под напряжением.

  1. Принтер полностью обесточен.
  2. Тестируемый TMC-драйвер правильно вставлен в соответствующий разъем материнской платы, ориентация верна.
  3. Для драйверов в режиме UART (например, TMC2209) убедитесь, что перемычка UART на соответствующем порте драйвера установлена.
  4. Подключите только один шаговый двигатель к тестируемому порту драйвера, остальные порты драйверов пока оставьте пустыми.
  5. Сделайте резервную копию исходного полного конфигурационного файла и подготовьте временный printer.cfg, содержащий только базовую минимальную конфигурацию и фрагмент для тестируемого драйвера.

Минимальная конфигурация для одного драйвера

Сначала запишите базовую минимальную конфигурацию, затем добавьте к ней тестовый фрагмент, соответствующий текущему режиму драйвера. [manual_stepper] все еще требует простейшего раздела [printer] (kinematics: none), что проще, чем конфигурация кинематики, и подходит для чисто аппаратной проверки.

Базовая минимальная конфигурация

[printer]
kinematics: none
max_velocity: 200.00
max_accel: 40000.00

[mcu]
serial: /dev/serial/by-id/usb-Klipper_xxxxxxxxxxx

Фрагмент конфигурации для тестирования драйвера

Ниже показан только добавляемый фрагмент для тестирования драйвера. Не добавляйте второй раздел [printer] или [mcu].

[manual_stepper Drive0]
# Измените следующие три пункта в соответствии с реальными выводами материнской платы
step_pin: PE2
dir_pin: PC5
enable_pin: !PF11
# Следующие параметры изменять не нужно
microsteps: 16
rotation_distance: 40
velocity: 500
accel: 10000
position_min: 0
position_max: 1000

[tmc2209 manual_stepper Drive0]
# Измените uart_pin в соответствии с реальным выводом материнской платы
# Измените sense_resistor в соответствии с документацией производителя драйвера
uart_pin: PC4
interpolate: False
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0
Пояснение к конфигурации
  • serial: Замените на фактический ID последовательного порта материнской платы (можно посмотреть с помощью ls /dev/serial/by-id/). Указывается только один раз в базовой минимальной конфигурации.
  • step_pin / dir_pin / enable_pin: Замените на выводы материнской платы, соответствующие тестируемому порту драйвера.
  • uart_pin (режим UART) / cs_pin + spi_bus (режим SPI): Замените на фактические выводы и номер шины SPI.
  • sense_resistor: Обязательно укажите значение согласно документации производителя драйвера, не угадывайте только по модели чипа. Для разных плат TMC5160 это может быть 0.075, 0.033, 0.022 или другое значение; параметры измерения тока для TMC2240 и других драйверов также могут отличаться. Если в документации производителя значение не указано, сначала обратитесь к нему или используйте его официальный пример конфигурации.
  • Конфигурация не содержит нагревателей или вентиляторов, предназначена только для проверки связи с драйвером.

Метод тестирования нескольких драйверов

Если необходимо последовательно проверить несколько портов драйверов на одной плате, используйте в конфигурации имена Drive0, Drive1, Drive2:

[manual_stepper Drive1]
step_pin: PE3
dir_pin: PF13
enable_pin: !PF14
microsteps: 16
rotation_distance: 40
velocity: 500
accel: 10000
position_min: 0
position_max: 1000

[tmc2209 manual_stepper Drive1]
uart_pin: PF12
interpolate: False
run_current: 0.8
sense_resistor: <driver_sense_resistor>
stealthchop_threshold: 0

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

Этапы тестирования

  1. Сохраните базовую минимальную конфигурацию и текущий фрагмент для тестирования драйвера как printer.cfg.

  2. Убедившись, что двигатель и драйвер подключены правильно, включите питание и запустите Klipper.

  3. В консоли Mainsail / Fluidd введите следующие команды, чтобы включить двигатель и установить текущую позицию в 0:

    MANUAL_STEPPER STEPPER=Drive0 ENABLE=1
    MANUAL_STEPPER STEPPER=Drive0 SET_POSITION=0
    • Если после включения на валу двигателя появился удерживающий момент, значит enable_pin в основном работает.
    • Если двигатель по-прежнему свободно вращается, после отключения питания проверьте enable_pin, направление драйвера, перемычки и питание.
  4. Выполните тест ручного перемещения:

    MANUAL_STEPPER STEPPER=Drive0 MOVE=100 SPEED=100
    MANUAL_STEPPER STEPPER=Drive0 MOVE=0 SPEED=100
    • MOVE= — это целевая позиция, а не относительное смещение. После выполнения MOVE=100 выполните MOVE=0, двигатель вернется в исходную точку.
    • Если двигатель все еще подключен к механизму перемещения станка, при первом тесте рекомендуется изменить команду на MOVE=10 SPEED=5, чтобы убедиться в безопасности направления и хода, после чего увеличить скорость.
    • Если двигатель вращается плавно, без рывков, значит драйвер, двигатель и выводы импульсов/направления в основном исправны.
    • Если двигатель не реагирует, только вибрирует или направление вращения неверное, после отключения питания проверьте конфигурацию выводов, порядок подключения обмоток двигателя, направление драйвера и перемычки.
  5. Проверьте состояние связи TMC:

    DUMP_TMC STEPPER=Drive0

    Если информация о регистрах возвращается нормально, связь UART/SPI в основном исправна. Если появляется сообщение о невозможности чтения регистров, обратитесь к разделу Поиск и устранение ошибок TMC.

  6. После завершения теста отключите питание драйвера:

    MANUAL_STEPPER STEPPER=Drive0 ENABLE=0

Ожидаемые результаты

ТестНормальный результатАномальное проявление
Ручное перемещениеДвигатель движется вперед и назад по командеНе движется, вибрирует, заедает или направление неверное
Связь TMCDUMP_TMC возвращает информацию о регистрахНевозможно прочитать регистры UART/SPI
Удерживающий моментВал двигателя невозможно свободно вращать при ENABLE=1Вал легко вращается (не включен)

Если все три пункта в норме, значит, связь драйвера с материнской платой и подключение двигателя исправны. Можно восстановить исходный printer.cfg и продолжить диагностику других аппаратных компонентов.


Минимальное тестирование CAN-платы инструмента

Цель тестирования

Убедиться, что CAN-плата инструмента распознана Klipper, и проверить работу датчика температуры, вентилятора, акселерометра или входных портов на ней.

Минимальная конфигурация

Сначала сохраните базовую минимальную конфигурацию, затем добавьте к ней следующий фрагмент для тестирования CAN-платы инструмента. Если тестируется только CAN-плата, также оставьте раздел [mcu] для материнской платы, чтобы Klipper мог нормально запуститься и отобразить состояние подключения материнской платы.

[mcu tool]
canbus_uuid: xxxxxxxxxxxx

[temperature_sensor ToolBoard]
sensor_type: temperature_mcu
sensor_mcu: tool

[output_pin tool_FAN0]
pin: tool:gpio13
pwm: True
cycle_time: 0.010
value: 0
shutdown_value: 0

Этапы тестирования

  1. Следуя инструкции Настройка CAN-сети и поиск ID, найдите и укажите canbus_uuid.
  2. После перезапуска Klipper проверьте, нормально ли отображается температура ToolBoard.
  3. Используйте команду SET_PIN PIN=tool_FAN0 VALUE=1 для проверки работы низковольтного вентилятора на плате инструмента. После теста выполните SET_PIN PIN=tool_FAN0 VALUE=0.
  4. Для тестирования акселерометра или входных портов на плате инструмента добавьте соответствующую конфигурацию, как описано в соответствующих разделах выше.
Примечание по диагностике CAN

Все операции с линиями CANH/CANL, оконечными резисторами, перемычками и жгутами проводов должны выполняться только при выключенном питании. Не подключайте и не отключайте CAN-линии и не изменяйте оконечные резисторы под напряжением.


Распространенные неисправности и дальнейшие действия

Аномальное проявлениеКлючевые слова в klippy.logПриоритетная проверкаДальнейшие действия
Klipper не может подключиться к MCUUnable to connect, Connect error, Serial connection closedserial / canbus_uuid, прошивка, USB/CAN-подключениеОбщий обзор ошибок
Аномальное отображение температурыADC out of range, temperature, not heatingsensor_type, sensor_pin, разъем термистораОшибки температуры, нагрева и экструзии
Аварийное отключение нагревателя или столаVerify heater, not heating at expected rateКонтакт термистора, PID, мощность нагревателя, SSRОшибки температуры, нагрева и экструзии
Вентилятор не вращаетсяОшибок нет (выходные порты не генерируют логи)pin, спецификация напряжения вентилятора, совместимость PWMЗамена вентилятора или порта для перекрестной проверки
Состояние входа не меняетсяОшибок нет (входные порты не генерируют логи)Подтяжка ^, порядок проводов, тип переключателяПроверка разъема и порта при выключенном питании
Нет данных с акселерометраInvalid adxl345 id, Invalid lis2dw id, timeoutcs_pin, spi_bus, жгут проводов, модель модуляТестирование и калибровка акселерометра
Ошибка теста резонансаNo data, Insufficient axis data, Frequency rangeКрепление датчика, натяжение ремня, вибрация вентилятораТестирование и калибровка акселерометра
Двигатель не движетсяUnable to read tmc uart, Unable to write tmc spistep_pin, dir_pin, enable_pin, конфигурация TMCПоиск и устранение ошибок TMC
Невозможно прочитать регистры TMCDRV_STATUS, read register, GSTATВыводы UART/SPI, перемычки, питание драйвера, модель драйвераПоиск и устранение ошибок TMC
CAN-плата инструмента офлайнbytes_invalid, Network is down, No buffer space, Timer too closeПорядок проводов CAN, оконечный резистор, питание, UUIDНастройка CAN-сети и поиск ID
Случайные задержки/потери во время печатиStepper too far in past, Rescheduled timer, Lost communicationНагрузка на хост, помехи в линии связи, скорость/ускорениеОшибки системы, производительности и служб
Невозможно сохранить конфигурациюUnable to write, Option conflict, CRC does not matchПрава доступа к файлу, конфликт в зоне автосохранения, FIRMWARE_RESTARTОшибки конфигурации

Справочные фрагменты конфигурации

При составлении тестовой конфигурации можно извлекать фрагменты из соответствующих шаблонов для материнских плат/плат инструментов в зависимости от типа аппаратного обеспечения:

  • Тестирование материнской платы: temperature_sensor, manual_stepper DriveN, tmcXXXX manual_stepper DriveN, output_pin FANx, gcode_button IOx.
  • Тестирование платы инструмента: temperature_sensor, adxl345 / lis2dw, manual_stepper Drive0, output_pin FANx, gcode_button.
  • Тестирование нескольких драйверов: используйте имена Drive0, Drive1, Drive2. STEPPER= в командах тестирования должен соответствовать имени раздела конфигурации.
  • Тестирование низковольтного выхода: предпочтительно выбирать низковольтные нагрузки, такие как вентиляторы, RGB-светодиоды, зуммеры. Не используйте нагревательные стержни или столы в качестве обычного output_pin для тестирования.

Если какой-либо модуль не проходит вышеуказанное минимальное тестирование, сначала восстановите исходную конфигурацию, а затем обратитесь к соответствующей странице FAQ с учетом конкретной ошибки для дальнейшей диагностики.

Loading...