2026 Make Blocks #2阶段2 - 基于TMC2226的电机驱动模块设计
该项目使用了TMC2226,实现了电机驱动模块的设计,它的主要功能为:步进电机驱动。
标签
电机驱动
Make Blocks
TMC2226
焊接小能手
更新2026-06-01
12

任务介绍

本次任务为第二期任务五,旨在设计一款步进电机驱动模块。设计一款步进电机驱动模块,使用集成驱动IC,支持STEP/DIR标准接口控制。基本要求:

  1. 使用集成步进驱动IC
  2. 支持双极步进电机
  3. STEP(脉冲)+ DIR(方向)标准控制接口
  4. 支持微步细分(至少1/16)
  5. 工作电压≥8V
  6. 散热设计合理

设计方案介绍

本次设计的模块主要是对步进电机的驱动,我们可以再得捷上搜索电机驱动,然后通过筛选直接选择步进电机驱动,然后进行设计,我们选择了一个外设比较全面的驱动芯片,硬件连接如下:
0

模块介绍

本次设计的电机驱动模块基于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模块介绍
0

原理图
0

PCB

我们本次设计的PCB实际上是个功能验证型的PCB,主要用于步进电机驱动的验证,本次使用的芯片相对来说外设还是很简单的,但是功能依然很全面,基本配置除了初始化状态的确定,也加上了控制引脚的引出。
0

3D效果图
0

实物图

调试记录

我们设计的这款步进电机驱动板主要需要的信号,一个是驱动信号,也就是每来一个脉冲就会移动移动角度,这和分频数都有关系,还有是能引脚和方向,不过我们通过外部上拉或者下拉都给了初始状态,所以我们本次只要输入脉冲和方向就能进行基本控制。

我们本次使用的控制平台是带屏十二指神探,通过板载的按键可以控制对应的引脚旋转方向,实际连接如下:
0

部分控制代码如下:

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

附件下载
step.zip
StepMotor.zip
团队介绍
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号