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

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

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

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

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

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

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

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

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

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

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

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

Замените printer.cfg на следующую минимальную конфигурацию, оставив только разделы [printer], [mcu], [manual_stepper Drive0] для проверяемого драйвера и соответствующий раздел [tmcXXXX manual_stepper Drive0]. Раздел [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

[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: Замените на фактический идентификатор последовательного порта материнской платы (можно посмотреть через 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, и проверить работу датчика температуры, вентилятора, акселерометра или входов на инструментальной плате.

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

[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...