【DigiKey得捷好物畅享】ADI TMC2209 SilentStepStick模组 简单开箱和初步测试

这次测试的是 ADI / Trinamic 的 TMC2209 SilentStepStick 步进电机驱动模组。TMC2209 是一颗常见的两相步进电机驱动芯片,支持 STEP/DIR 控制,也支持通过单线 UART 做参数配置、状态读取和简单的速度控制。本文主要记录一次从开箱、查阅资料到使用 USB-To-UART 做初步通信测试的过程。

一、TMC2209 SlientStepStick产品开箱

打开快递包装:

模组使用红色半透明防静电袋包装,包装内包含 TMC2209 SilentStepStick 模组和两排排针。模组本体尺寸很小,适合直接插到面包板或 3D 打印机控制板的 StepStick 插座上使用。

这类 SilentStepStick 模组的引脚排列和常见 A4988、DRV8825 模块相近,但 TMC2209 多了 UART 配置能力。实际使用前需要特别注意不同模块版本的丝印和引脚定义,尤其是 PDN/UARTMS1MS2ENVIOVM 这些引脚。

二、TMC2209官方资料

本次参考了两份资料:

  1. TMC2209_Datasheet.pdf:TMC2209 芯片数据手册。
  2. TMC2209_SilentStepStick_datasheet_Rev1.20.pdf:SilentStepStick 模组硬件资料。

芯片手册适合查寄存器、UART 帧格式和控制模式;模组手册适合查排针定义、原理图和 PCB 引脚位置。

2.1 TMC2209功能总结

根据 TMC2209 数据手册,这颗芯片主要特性包括:

  • 两相步进电机驱动,适合小型步进电机控制。
  • 支持 STEP/DIR 接口,兼容常见运动控制方式。
  • 支持单线 UART 接口,可读写寄存器,实现配置和诊断。
  • 支持 StealthChop2 静音驱动。
  • 支持 SpreadCycle 斩波模式。
  • 支持 StallGuard4 无传感器堵转检测。
  • 支持 CoolStep 动态电流调节。
  • 支持通过内部步进脉冲发生器由 UART 写入速度值实现简单运动。

对入门测试来说,最关键的是两点:第一,STEP/DIR 可以像普通驱动板一样控制电机;第二,PDN/UART 可以作为单线串口,用来读写内部寄存器。

2.3 两种控制模式总结

TMC2209 常见有两种使用方式。

第一种是普通 STEP/DIR 模式。控制器输出 STEP 脉冲决定步进速度和步数,DIR 决定方向,TMC2209 只负责电流驱动和细分。这种方式最常见,也最适合需要精确位置控制的场景。

第二种是 UART 配置或 UART 控制模式。UART 可以只用于配置,例如设置电流、细分、驱动模式和读取诊断状态;也可以进一步写 VACTUAL 寄存器,使用芯片内部的步进脉冲发生器让电机按指定速度转动。需要注意的是,TMC2209 内部速度控制没有自动加减速规划,速度斜坡要由上位机或 MCU 自己实现。

本次初步测试只做 UART 读寄存器,不涉及电机运动。

2.4 原理图和PCB解读

SilentStepStick 模组资料给出了排针定义:

  • VIO:逻辑电源,接 3.3V 或 5V,需与串口逻辑电平匹配。
  • GND:地。
  • VM:电机电源,范围参考模组手册,不能和逻辑电源混淆。
  • PDN/UART:TMC2209 的 PDN_UART 引脚,可作为单线 UART。
  • MS1 / MS2:在 UART 模式下也作为地址位,MS1 是 bit0,MS2 是 bit1。
  • EN:低电平使能驱动器。

结合模组 PDF 右下角 PCB 图,当前实物图旋转后更容易对应:一侧排针从上到下可以识别为 DirStepPDN/UARTSPREADMS2MS1En;另一侧上方是 GNDVIO,下方还有电机线圈、GNDVM 等引脚。

三、TMC2209串口初步测试

3.1 电路搭建

初步尝试使用 PC 通过 USB-To-UART 连接到 TMC2209 的 PDN/UART,实现发送命令和接收回复,测试能否读取 TMC2209 内部寄存器状态。

当前测试连接关系如下:

  • USB-To-UART VCCIO 接 TMC2209 VIO
  • USB-To-UART GND 接 TMC2209 GND
  • USB-To-UART TXD 直接接 TMC2209 PDN/UART
  • USB-To-UART RXD 也直接接 TMC2209 PDN/UART
  • TMC2209 MS1GND
  • TMC2209 MS2GND
  • TMC2209 ENGND

这里 MS1=0MS2=0,因此 UART 从机地址为 0EN 接地表示使能驱动器。测试时主要关注 UART 通信,电机电源和电机可以先不作为重点。

需要强调的是,这次测试连接中 TXDPDN/UART 没有串联 1k 电阻,这是后面通信失败的重要原因。

3.2 串口测试

TMC2209 UART 使用 8N1 格式,芯片会根据同步字节自动适应波特率。测试时可以先使用 115200 波特率。

按 TMC2209 手册,读寄存器请求帧为 4 字节:

sync + reserved, slave address, register address, CRC

MS1=0MS2=0,从机地址为 0 的情况下,可以尝试读取几个寄存器:

读取 IOIN

05 00 06 6F

读取 GSTAT

05 00 01 C1

读取 IFCNT

05 00 02 8F

其中 IOIN 比较适合作为第一条测试命令,因为它包含输入引脚状态和芯片版本字段。正常情况下,TMC2209 的 IOIN.VERSION 应该能读到 0x21

实际串口测试中,发送了一些命令,但没有得到预期回复:

从结果看,PC 端收到的数据和发出的数据一致。这说明串口 RX 端看到了自己 TX 发出去的内容,也就是单线 UART 接线产生的本地回显,但没有看到 TMC2209 正常返回的数据帧。

正常读回时,除了看到发送的 4 字节请求外,还应该能看到 TMC2209 返回的 8 字节响应,响应的第二个字节通常为 FF,后面包含寄存器地址、32 位数据和 CRC。

四、参考资料

  1. TMC2209 芯片手册:https://www.analog.com/media/en/technical-documentation/data-sheets/TMC2209_datasheet_rev1.09.pdf
  2. TMC2209 SilentStepStick 模组数据手册:https://www.analog.com/media/en/technical-documentation/data-sheets/TMC2209_datasheet_rev1.09.pdf