任务介绍
本次任务为第二期任务五,旨在设计一款步进电机驱动模块。设计一款步进电机驱动模块,使用集成驱动IC,支持STEP/DIR标准接口控制。基本要求:
- 使用集成步进驱动IC
- 支持双极步进电机
- STEP(脉冲)+ DIR(方向)标准控制接口
- 支持微步细分(至少1/16)
- 工作电压≥8V
- 散热设计合理
设计方案介绍
本次设计的模块主要是对步进电机的驱动,我们可以再得捷上搜索电机驱动,然后通过筛选直接选择步进电机驱动,然后进行设计,我们选择了一个外设比较全面的驱动芯片,硬件连接如下:
模块介绍
本次设计的电机驱动模块基于TMC2226为核心构建,主要实现的功能对两箱四线步进电机的驱动。TMC2226-SA-T是TRINAMIC公司推出的一款高性能两相步进电机驱动芯片,适用于线圈电流峰值高达2.8A(RMS 2A)的电机应用。其采用StealthChop2静音斩波技术,通过控制相电压而非直接斩断电流,实现电机低速运行和待机时的近乎无噪表现,同时保证最大效率和最佳扭矩输出。芯片支持SpreadCycle高动态斩波模式,可在高速运行时兼顾动力与稳定性。通过MicroPlyer插值技术,可将8、16、32或64微步指令插补至256微步,显著提升运动平滑度。此外,TMC2226-SA-T集成StallGuard4无传感器负载检测功能,支持无传感器回零;CoolStep电流控制技术可基于实时负载动态调节电流,最高节能75%。芯片提供STEP/DIR和UART双接口,支持OTP存储配置,具备过温、短路、欠压等全面保护功能,采用热优化HTSSOP封装,工作温度范围-40℃至+125℃,适用于3D打印机、安防云台、纺织设备等对静音、节能和可靠性要求严苛的场景。
原理图和PCB模块介绍

原理图
PCB
我们本次设计的PCB实际上是个功能验证型的PCB,主要用于步进电机驱动的验证,本次使用的芯片相对来说外设还是很简单的,但是功能依然很全面,基本配置除了初始化状态的确定,也加上了控制引脚的引出。
3D效果图
实物图
调试记录
我们设计的这款步进电机驱动板主要需要的信号,一个是驱动信号,也就是每来一个脉冲就会移动移动角度,这和分频数都有关系,还有是能引脚和方向,不过我们通过外部上拉或者下拉都给了初始状态,所以我们本次只要输入脉冲和方向就能进行基本控制。
我们本次使用的控制平台是带屏十二指神探,通过板载的按键可以控制对应的引脚旋转方向,实际连接如下:
部分控制代码如下:
def stepper_enable(enable):
"""Enable or disable stepper motor."""
global step_enabled
en_pin.value(0 if enable else 1)
step_enabled = enable
def stepper_set_direction(dir):
"""Set stepper motor direction."""
global step_direction
admt.set_dir(dir)
step_direction = dir
def stepper_set_speed(speed):
"""Set stepper motor speed (0-100)."""
global step_speed
step_speed = max(0, min(100, speed))
duty = int(step_speed * 65535 // 100)
step_pwm.duty_u16(duty)
while True:
# UP button: Rotate CW (forward)
if up_btn.value() == 0:
# Cannot move CW if high edge is locked
if not high_locked:
if low_locked:
low_locked = False # Clear low lock when moving CW
stepper_set_direction(0) # CW
stepper_enable(True)
stepper_set_speed(50)
# DOWN button: Rotate CCW (reverse)
if down_btn.value() == 0:
# Cannot move CCW if low edge is locked
if not low_locked:
if high_locked:
high_locked = False # Clear high lock when moving CCW
stepper_set_direction(1) # CCW
stepper_enable(True)
stepper_set_speed(50)
time.sleep(0.05)
实际控制效果如下:

心得体会
我们本次选择的是TMC2226进行步进电机驱动模块设计,本次本着进行使用外部接口的方式进行控制,对外部接口进行了初始化的设计,供电和电机接口都是对电流要求比较严格的,所以也为了防止接错,使用了不同的连接座,整体来说接口并不复杂,很多外设都是集成的,本次的调试也相对比较便捷,直接有过类似的控制经历,这次主要也是验证一下模块能不能正常控制步进电机,功能正常。