【Let'sdo|2026年第1期】【成果帖】静音步进电机控制实践 - 成果总结
很荣幸参加本次的"Let's do活动",非常感谢digikey和EEPW对本次活动的大力支持,本期的活动主题是:静音步进电机控制。

在本章中,对本次活动进行一个成果的总结。
本次使用到的物料有ADI的步进驱动模块TMC2209SILENTSTEPSTICK和ESP32P4开发板,以及TB上买的2相4线步进电机滑台



系统框图
整体所需要连接的由三大部分:驱动器、步进电机、主控。整体系统的硬件连接方式如下,

按照框图将硬件连接完成后,后面只需要注入灵魂就可以运行了。在编写代码之前看看硬件的相关介绍和使用方法:
TMC2209是个超静音电机驱动器 IC,具有以下特性和优势:
用于高达 2 ARMS 和 4.75 V 至 29 V 的 2 相步进电机的驱动器
Step/Dir 和单线 UART 接口
同时使用 StealthChop 和 StallGuard
低功耗待机,可适应 EUP 或电池供电
低 RDS(ON)、低发热:LS170mΩ 和 HS170mΩ(+25°C 时的典型值)



1、GND
2、VIO - 数字接口逻辑电源引脚。只给“数字接口电平”供电, 不给内部电机驱动核心供电。
3、OB2 - 电机线圈B输出2
4、OB1 - 电机线圈B输出1
5、OA1 - 电机线圈A输出1
6、OA2 - 电机线圈A输出2
7、GND
8、VM - 电机供电电压
9、DIR - 控制电机转动方向(正转或者反转),内部有下拉电阻
10、SETP:控制电机转动,一个脉冲走一个微步
11、PDN:省电待机,低电平有效(PDN和UART是复用同一个引脚)
12、UART:串口通信(PDN和UART是复用同一个引脚)
13、SPREAD:斩波器模式选择:低=StealthChop,高=SpreadCycle(可以保持未连接状态)
14、MS2:微步分辨率配置(内部下拉电阻),MS2, MS1: 00: 1/8, 01: 1/32, 10: 1/64 11: 1/16
15、MS1:微步分辨率配置(内部下拉电阻),MS2, MS1: 00: 1/8, 01: 1/32, 10: 1/64 11: 1/16
16、EN:模块内有上拉,0: 使能,1: 禁用
17、INDEX:同步输出,用于位置参考
18、GIAG:如果发生错误,DIAG 会保持报警(高电平)
软件介绍
在软件开发中,从最简的方式进行验证,让电机转起来,所以在代码中设置使能、方向引脚后,让STEP不断的翻转看看电机是否运动起来了,如此就可以验证硬件有无连接错误了。
在主函数中很简单,初始化相关IO,并创建一个串口解析线程
void app_main(void)
{
GPIO_Init();
UART0_Test_Init();
xTaskCreate(UART0_Test_Task, "uart0_test", UART_TEST_TASK_STACK, NULL, 10, NULL);
vTaskDelete(NULL);
}在串口线程中就定时解析和发送数据
static void UART0_Test_Task(void *arg)
{
uint8_t rx_data[UART_TEST_RX_BUF_SIZE];
UART0_Send_Command_List();
while (1) {
const int rx_len = UART0_Read_All(rx_data, sizeof(rx_data));
if (rx_len > 0) {
UART0_Process_Rx_Data(rx_data, rx_len);
}
uart_wait_tx_done(UART_TEST_PORT, pdMS_TO_TICKS(100));
vTaskDelay(pdMS_TO_TICKS(10));
}
}这是定义的相关命令表
static const uart_command_t uart_command_table[] = {
{"Moter Start", NULL, Moter_Start},
{"Moter Stop", NULL, Moter_Stop},
{"Moter Reversal", NULL, Moter_Reversal},
{"Moter Period", "<us>", Moter_Period},
};大致流程就是解析串口命令,执行对应动作。
完成的代码如下:
下面是相关的文章介绍
【Let'sdo|2026年第1期】【开箱帖】静音步进电机控制实践 - 开箱及芯片介绍
【Let'sdo|2026年第1期】【过程帖】静音步进电机控制实践 - MCU环境搭建
【Let'sdo|2026年第1期】【过程帖】静音步进电机控制实践 - TMC2209驱动板基础使用
【Let'sdo|2026年第1期】【过程帖】静音步进电机控制实践 - 基础步进电机运动控制系统
【Let'sdo|2026年第1期】【过程帖】静音步进电机控制实践 - TMC2209的UART/PDN引脚使用
视频介绍
【Let'sdo|2026年第1期】【成果帖】静音步进电机控制实践 - 成果总结-项目演示-电子产品世界
我要赚赏金
