跳到主要内容

外设与驱动测试

本文用于验证步进驱动、CAN 工具板等外设模块是否正常工作。测试思路与基础 I/O 测试一致,使用最小化 Klipper 配置隔离单个硬件。

若需测试 MCU 连接、温度传感器、风扇输出或输入口,请先参考 硬件测试方法

驱动测试

测试目的

用最简单的 Klipper 配置验证单个 TMC 驱动(UART 或 SPI 模式)能否与主板正常通信,并确认电机可以受控运行。

前置条件

断电操作

请先完全关闭打印机并断开电源供应,再进行以下操作。禁止带电插拔驱动模块或步进电机线。

  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:替换为主板实际串口 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.0750.0330.022 或其他值;TMC2240 等驱动的采样参数也可能不同。若厂家资料未标明,请优先咨询厂家或使用其官方配置示例。
  • 配置中不含任何加热器、风扇,仅用于驱动通信验证。

多驱动测试方法

如果需要逐个验证一块主板上的多个驱动口,可参考测试配置的命名方式,把每个驱动口写成独立的 Drive0Drive1Drive2

[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

预期结果

测试项正常结果异常表现
手动移动电机按命令正反向移动不动、抖动、卡顿或方向异常
TMC 通信DUMP_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 connectConnect errorSerial connection closedserial / canbus_uuid、固件、USB/CAN 连接常见报错总览
温度显示异常ADC out of rangetemperaturenot heatingsensor_typesensor_pin、热敏插头温度、加热与挤出报错
加热器或热床 shutdownVerify heaternot heating at expected rate热敏接触、PID、加热器功率、SSR温度、加热与挤出报错
风扇不转无报错(输出口不产生日志)pin、风扇电压规格、PWM 兼容性换风扇或换端口交叉测试
输入状态不变无报错(输入口不产生日志)上拉 ^、线序、开关类型断电后检查插头和端口
加速度计无数据Invalid adxl345 idInvalid lis2dw idtimeoutcs_pinspi_bus、线束、模块型号加速度计测试与校准
共振测试失败No dataInsufficient axis dataFrequency range传感器固定、皮带张力、风扇振动加速度计测试与校准
电机不动Unable to read tmc uartUnable to write tmc spistep_pindir_pinenable_pin、TMC 配置TMC 报错排查
TMC 无法读取寄存器DRV_STATUSread registerGSTATUART/SPI 引脚、跳线帽、驱动供电、驱动型号TMC 报错排查
CAN 工具板离线bytes_invalidNetwork is downNo buffer spaceTimer too closeCAN 线序、终端电阻、供电、UUIDCAN 网络配置与 ID 搜索
打印中随机卡顿/丢失Stepper too far in pastRescheduled timerLost communication上位机负载、通信线干扰、速度加速度系统、性能与服务报错
配置无法保存Unable to writeOption conflictCRC does not match文件权限、自动保存区冲突、FIRMWARE_RESTART配置类报错

参考配置片段

维护测试配置时,可按硬件类型从对应主板/工具板模板中提取片段:

  • 主板测试:temperature_sensormanual_stepper DriveNtmcXXXX manual_stepper DriveNoutput_pin FANxgcode_button IOx
  • 工具板测试:temperature_sensoradxl345 / lis2dwmanual_stepper Drive0output_pin FANxgcode_button
  • 多驱动测试:保持 Drive0Drive1Drive2 这种命名,测试命令中的 STEPPER= 与配置段名称保持一致。
  • 低压输出测试:优先选择风扇、RGB、蜂鸣器等低压负载,不把加热棒或热床当作普通 output_pin 测试。

若某个模块无法通过上述最小测试,请先恢复原配置,再结合具体报错到对应 FAQ 页面继续排查。

Loading...