2026 Make Blocks #2阶段2 - 基于TMC2209的步进电机驱动模块
基于TMC2209-LA-T集成驱动IC的两相双极步进电机驱动模块。模块参考TMC2209 SilentStepStick官方开发板设计,保持引脚定义完全兼容,在PCB布局上做适当调整,部分外围器件封装形式进行优化替换。
标签
ADI
模块
步进电机
电机驱动
3D打印
Make Blocks
CNC
TMC2209
鲜de芒果
更新2026-06-25
25

任务介绍

设计一款步进电机驱动模块,使用集成驱动IC,支持STEP/DIR标准接口控制。

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


方案介绍

本项目旨在设计一款基于TMC2209-LA-T集成驱动IC的两相双极步进电机驱动模块。模块参考TMC2209 SilentStepStick官方开发板设计,保持引脚定义完全兼容,在PCB布局上做适当调整,部分外围器件封装形式进行优化替换。模块支持标准STEP/DIR控制接口,可用于3D打印机、桌面CNC、办公自动化及精密运动控制等应用场景。


资源框图

模块以TMC2209-LA-T为核心,配合电源滤波与去耦电路、电流检测电路、VREF参考电压调节电路、信号接口端子及保护电路构成完整驱动系统。核心资源组成如下:


系统架构

系统采用“主控制器 + TMC2209驱动模块 + 两相步进电机”三层架构。主控制器(如STM32、Arduino等MCU)通过STEP/DIR标准接口发送脉冲和方向信号,驱动模块内部完成电流斩波、微步细分运算及功率驱动,最终将运动指令转化为两相线圈的电流驱动信号,驱动步进电机旋转。系统同时预留UART接口用于高级参数配置。

TMC2209在STEP/DIR独立模式下,STEP引脚每接收一个脉冲,电机移动一个微步;DIR引脚控制旋转方向;MS1/MS2引脚通过逻辑电平组合选择1/8、1/32、1/64或1/16四档细分,最高原生支持1/16微步,并通过MicroPlyer™硬件插值算法实现256微步的平滑运行。SPREAD引脚用于斩波模式切换——低电平或悬空为StealthChop2静音模式,高电平为SpreadCycle高速模式。


原理图和PCB模块介绍

原理图

PCB

PCB预览图


硬件设计亮点

与标准SilentStepStick相比,本模块在保持引脚定义完全兼容的基础上进行了以下设计优化:

  1. 器件封装优化:部分外围器件封装进行合理替换(如电流检测电阻由0603调整为1206封装),在不影响性能的前提下提升可制造性与功率裕量。
  2. 引脚定义完整兼容:模块引脚排布与SilentStepStick完全一致,可直接替代原版模块用于各类3D打印机控制板(如RAMPS、MKS系列等),无需修改主控板硬件和固件配置。
  3. 双斩波模式灵活切换:StealthChop2在低速时实现静音运行,SpreadCycle在高速时保证动态响应,两种模式通过SPREAD引脚一键切换。
  4. 无传感器归零:利用StallGuard4技术实现无传感器堵转检测和自动归零,DIAG引脚输出脉冲信号可由MCU外部中断捕获,省去限位开关及其安装空间和布线成本。
  5. 小型化散热设计:芯片采用QFN-28封装(5×5mm)自带大型散热焊盘,结合双层板的导热过孔阵列和紧凑PCB内的大面积GND铜皮实现高效散热。
  6. 单线UART控制:支持单线UART接口和OTP存储器,实现高级参数在线配置,并将调优数据一次性写入OTP后永久生效。
  7. 集成脉冲发生器:内置独立运动的脉冲发生器,支持独立模式下的自主运动控制。


功能实现

为了测试该模块的功能,我设计了一个双模控制系统,通过串口指令,在 UART 速度模式(连续匀速转动)和 STEP/DIR 脉冲位置模式(精确角度控制)之间灵活切换。 这样既能利用 UART 配置电流、细分和静音驱动的优势,又能获得脉冲控制的绝对定位精度。

软件流程图

实现过程

硬件连接(两套信号并存)

模块引脚

MCU (RP2040)

说明

PDN_UART

TX (GPIO3) 经 1kΩ 电阻, RX (GPIO4) 直连

单线半双工,一定要加电阻和上拉

STEP

GPIO 13

脉冲信号

DIR

GPIO 12

方向信号

EN

GND 或 GPIO14 (低电平使能)

可固定使能,简化控制

MS1, MS2

GND 或悬空(内部下拉)

地址 0,微步由软件设置

软件环境

  • PlatformIO
  • Arduino
  • TMC2209 @ ^10.1.1
  • AccelStepper @ ^1.64


关键设计说明

  • 微步统一:通过 stepper.setMicrostepsPerStep(8)  UART 配置微步,无需改动硬件跳线。此时所有脉冲数都以微步为单位。
  • 模式切换安全:进入位置模式前先执行 stepper.moveAtVelocity(0) 确保 TMC2209 不再主动输出速度,避免干扰。
  • 断电保持:位置零点和目标由 MCU 记忆,断电后丢失,上电默认位置为 0。
  • 电流与细分UART 模式配置的参数(电流、细分、CoolStep)在脉冲模式下依然生效,电机运行更安静。


功能展示

  1. 通过串口监视器(波特率 115200)发送指令(每条以换行结束):
    • V 20000 —— 以 20000 微步/秒的速度连续正转
    • V -15000 —— 以 15000 微步/秒的速度反转
    • V 0 —— 停止
    • P 800 —— 绝对移动到 800 脉冲位置(例如 1/8 微步下半圈)
    • P 0 —— 回到原点
    • P -800 —— 绝对移动到 -800 脉冲位置(反向半圈)
    • STOP —— 紧急停止并清除所有运动
    • ZERO —— 将当前位置设为 0(坐标系归零)
  2. 切换模式时,系统会自动处理状态冲突(停止速度/停止脉冲)。 {% asset_img 2026-06-23-17-21-44.png 2026-Make-Blocks-2-阶段2-基于TMC2209的步进电机驱动模块 %}


速度模式

速度模式,使用单线UART控制,可精确控制步进电机微步细分。使用串口通信加一些简单的指令来展示该功能。上位机使用一个旋钮来进行速度控制。旋钮的数值表示步进电机运行的速度,值越大速度越快。通过调整可看到切换十分顺畅丝滑。


位置模式

位置模式,在该模式下可精确控制步进电机的运行角度和圈数。上位机使用一个拖动条来模块滑台控制电机转动位置,一个停止按钮用于随时停止步进电机转动。一个归零按钮用于控制步进回到原点。一个位置清零按钮用于将当前位置设置为原点。


总结

本项目基于TMC2209-LA-T芯片,参考TMC2209 SilentStepStick官方开发板设计了一款性能优异的两相双极步进电机驱动模块。模块保持与SilentStepStick完全兼容的引脚定义,在PCB布局上做适当优化调整,部分外围器件封装进行了合理替换,全面满足各项设计指标要求。

附件下载
MakeBlocks2-2.zip
模块功能测试源码,基于PlatformIO创建工程
团队介绍
业余电子爱好者
团队成员
鲜de芒果
评论
0 / 100
查看更多
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号