SCI论文(www.lunwensci.com):
摘 要:本文介绍了一款基于 TMC5130A 驱动芯片的二相步进电机驱动控制板的设计。控制芯片选择 stm32F103CBT6。 综合考虑到应用场合与资源限制,一颗控制芯片搭配三颗驱动芯片,也就是一块驱动控制板可以同时控制 XYZ 三轴。 TMC5130A 与 stm32F103CBT6 都支持 CAN 总线,如果需要更多电机配合,可以通过 CAN 总线将三轴驱动控制板连接。
关键词:TMC5130A;二相步进电机;STM32F103;CAN 总线
Design of Three-axis Drive Control Board Based on TMC5130A
SU Yajuan, ZHU Min
(Wuxi South Ocean College, Wuxi Jiangsu 214080)
【Abstract】:This paper introduces the design of a two-phase stepping motor drive control board based on TMC5130a drive chip. The control chip selects stm32F103CBT6 . Considering the application and resource constraints, one control chip with three driver chips, that is a drive control board can control XYZ three axes at the same time. Both TMC5130A and stm32F103CBT6 support CAN bus, if more motor coordination is required, the three-axis drive control board can be connected via CAN bus.
【Key words】:TMC5130A;two phase stepping motor;STM32F103;CAN bus
1 TMC5130A 芯片介绍
TMC5130 芯片是一款集成式步进电机驱动器和运 动控制器(定位控制)解决方案,适用于医疗、3D 打 印机、云台或其他自动化设备对性能有较高的场合应用 和静音控制。该芯片具有集成的 SixPoint 斜坡控制器、 微步进分度器、无传感器失速检测技术 StallGuard2 和 完全无噪声的电流控制模式 StealthChop,旨在驱动 双极步进电机。输出驱动器模块由低 RDSon N 沟道功 率 MOSFET 组成,配置为全 H 桥,以驱动电机绕组。 TMC5130 能够从每个输出驱动高达 2.5A 的电流(具 有适当的散热)。TMC5130 的供电电压为 5 ~ 46V。该 器件提供 SPI 接口,用于配置和诊断以及步进和方向接 口。TMC5130A 的功能框图如图 1 所示。

图 1 TMC5130A 功能框图
Fig.1 TMC5130A function block diagram
2 STM32 芯片
驱动控制板的主控芯片用的是 STM32 芯片。STM32F 系列属于中低端的 32 位 ARM 微控制器,该系列芯片是意法半导体(ST)公司出品, 其内核是 Cortex-M3。该系 列芯片按片内 Flash 的大小可分为三大类:小容量(16K 和 32K)、中容量(64K 和 128K)、大容量(256K、384K 和 512K)。芯片集成定时器 Timer、CAN、ADC、SPI、 I2C、USB、UART 等多种外设功能。我们选用 STM32 F103CBT6,它是 ST 旗下的一款常用的增强型系列微 控制器,适用于: 电力电子系统方面的应用、电机驱动、应用控制、医疗等。
3 CAN 协议介绍
CAN 是 Controller Area Network( 控 制 器 局 域 网 络 ) 的缩写,是 ISO 国际标准化组织的串行通信协议。 由德国电气商博世公司在 1986 年率先提出。此后, CAN 通过 ISO11898 及 ISO11519 进行了标准化。现在在欧洲 已是汽车网络的标准协议。CAN 协议经过 ISO 标准化后 有两个标准:ISO11898 标准和 ISO11519-2 标准。其中 ISO11898 是针对通信速率为 125Kbps ~ 1Mbps 的高速 通信标准, 而 ISO11519-2 是针对通信速率为 125Kbps 以下的低速通信标准。CAN 具有很高的可靠性和良好 的错误检测能力,广泛应用于汽车计算机控制系统和环 境温度恶劣 / 电磁辐射强及振动大的工业环境。CAN 主 要用在两个设备之间的通讯。
4 驱动与控制板的实现
4.1 硬件实现
硬件实现主要部分有控制器单元、驱动单元、CAN 芯片单元等。控制器单元原理图如图 2 所示。驱动芯片 原理图如图 3 所示,仅画了一个 TMC5130A 的连接图, 另外两个类似。CAN 芯片连接原理图如图 4 所示。

图 2 控制芯片外围电路原理图
Fig.2 Schematic diagram of peripheral circuit of control chip
4.2 软件实现
4.2.1 主程序实现
主函数流程如下:
(1)基本外设初始化:HAL_Init( );
(2)配置系统时钟:SystemClock_Config( );
(3)初始化系统配置的外设:
MX_GPIO_Init( );
MX_CAN_Init( );
MX_SPI2_Init( );
MX TIM1_Init( );
MX TIM2_Init( );
(4)初始化中断控制器:
MX_NVIC_Init( );
(5)初始化 CAN:

图 3 驱动芯片外围电路连接原理图
Fig.3 Schematic diagram of peripheral circuit connection of driver chip
图 4 CAN 芯片外围电路连接原理图
Fig.4 CAN chip peripheral circuit connection schematic diagram
CAN_User_Init(&hcan);
(6)全局变量初始化:
G Val_Init( );
(7)驱动芯片初始化:
TMC5130_Init(Id_x);
TMC5130_Init(Id_y);
TMC5130_Init(Id_z);
(8)主程序循环:
while (1)
{
#Home 位检测
Org_monitor( );
# 中断信号处理
Int_IdAll_Process( );
#CAN 命令解析
ParseRcvCmd_Can( );
# 电机状态监控
Motor_Status_monitor( );
}
4.2.2 CAN 通信程序实现
CAN 通信程序是根据上位机传进来的命令进行应 答,主要实现在 ParseRcvCmd_Can() 函数中。
……
switch(CMD)
{……
case REG_MOTOR:
Reg_Motor_Process();
break;
case ENABLE_MOTOR:
Enable_Motor_Process();
break;
case STARTRUN:
Start_Run_Process();
break;
case ENDRUN:
End_Run_Process();
break;
case EMERGENCYSTOP:
Emergercy_Stop_Process();
break;
case STATUSRUN:
Status_Run_Process();
break;
Reg_Main_Process();
break;
……
4.2.3 驱动程序实现
驱动实现由读写芯片、芯片初始化等,这里简单写 一下初始化程序。
void TMC5130_Init(uint8_t id)
{
reg_cur=Tmc5130_Read(id,TMC5130_GSTAT); if(reg_cur==0x01)
{
Reg_Tmc5130_id_cur[id-1].Cur Status_Motor.Status_ Run=status_reset;
Main_Set_IDALL.Number.driver_err=1; if(id==1)
{
Status_Drv Err IDALL.Number.status_drv reset_ id1=1;
}
else if(id==2)
{
Status_Drv Err IDALL.Number.status_drv reset_ id2=1;
}
else if(id==3)
{
Status_Drv Err IDALL.Number.status_drv reset_ id3=1;
}
Tmc5130 Write(id,TMC5130_GSTAT,0x00000001);
reg_cur=Tmc5130_Read(id,0x01);
}
reg_cur=Tmc5130_Read(id,TMC5130_RAMP_STAT);
if(reg_cur)
{
Tmc5130_Write(id,TMC5130_ RAMP_STAT, 0x000010cc); //R+C 的五个寄存器清零
}
Tmc5130 _Write(id,TMC5130 _CHOPCONF, 0x000101d5); //CHOPCONF: TOFF=3, HSTRT=4, HEND=1, TBL=2, CHM=0 (spreadcycle) 16
Tmc5130_Write(id,TMC5130_IHOLD_IRUN, 0x00050503); // 初 始 化 最 小 电 流, 防 止 开 机 烧 电 机 : IHOLD_IRUN: IHOLD=03, IRUN=05(31
max.current), IHOLDDELAY=6
Tmc5130_Write(id,TMC5130_TPOWERDOWN, 0x00000008); //PAGE33:TPOWERDOWN=10: 电机静 止到电流减小之间的延时
Tmc5130 Write(id,TMC5130_GCONF,0x00000014); //PAGE27:EN_PWM_MODE=1,使能
Tmc5130_Write(id,0x13,0x000001F4); // PAGE33:TPWM_THRS=500, 对应切换速度 35000=ca. 30RPM
Tmc5130 _Write(id,TMC5130 _ PWMCONF, 0x000504C8); //PAGE43:PWMCONF
// 初始化一个速度,后面会根据参数赋值
Tmc5130 Write(id,TMC5130_XACTUAL,0x00000000); // writing value 0xFFCC12F0 = 0 = 0.0 to address 14 = 0x21(XACTUAL)
Tmc5130_Write(id,TMC5130_A1,1400); //A1= 1000 第一阶段加速度
Tmc5130_Write(id,TMC5130_V1,50000); //
V1=50000 加速度阀值速度 V
Tmc5130_Write(id,TMC5130_AMAX,700); AMAX=5000 大于 V1 的加速度 //
Tmc5130_Write(id,TMC5130_VMAX,50000); VMAX=200000 //
Tmc5130_Write(id,TMC5130_DMAX,700); DMAX=700 大于 V1 的减速度 //
Tmc5130_Write(id,TMC5130_D1,1400); D1=1400 小于 V1 的减速度 //
Tmc5130_Write(id,TMC5130_VSTOP,10); VSTOP=10 停止速度,接近于 0 //
Tmc5130_Write(id,TMC5130_TZEROWAIT, 0x00000000); // writing value 0x00000000 = 0 = 0.0 to address 23 = 0x2C(TZEROWAIT)
Tmc5130 _Write(id,TMC5130 _ X TA RG ET, 0x00000000); // writing value 0xFFCC12F0 = 0 = 0.0 to add
4.3 CAN 协议设计
4.3.1 驱动 CAN 协议设计
CAN 通信数据由主站发送,从站接受后返回相应 的响应数据帧。本系统常用 CAN 帧报文格式采用 CAN 2.0B( 带扩展位的 29 位 ID) 数据格式。数据帧由仲裁 区、控制区与数据区三个区域组成,其中主要需要进行 配置的包括 SID、EID、DLC 与 DATA,如图 5 所示。
图 5 CAN 协议数据帧报文格式设计
Fig.5 CAN protocol data frame message format design
其中:SOF:帧起始(SOF)仅由一显位(0)构成。 所有站都必须同步于首先发送的那个帧起始前沿;SRR: SRR 是隐性位(1),它用于替代标准格式的 RTR 位;
IDE: IDE 是隐性位(1), 代表扩展格式(29 位 ID);RTR:0: 非远程帧 1:远程帧,本系统默认为 0;r1,r0:保留位 r1 和 r0 必须为 0。
数据区是有效载荷, DLC 是数据区的载荷长度,以 字节为单位。下面重点描述仲裁区的 SID 与 EID 的设 计,具体如表 1 所示。
4.3.2 CAN 命令
CAN 命令如表 2 所示。
表 1 标识 SID 与扩展标识 EID 的设计
Tab.1 Design of identification SID and extended identification EID

表 2 CAN 命令定义
Tab.2 CAN command definition
5 结语
本文总结了用 TMC5130A 驱动芯片,在 STM32F103 CBT6 作为主控芯片的选型下,开发的一款三轴二相步 进电机驱动板,该驱动板支持 CAN 总线,以便更多的 电机控制需求。不足之处,适用于驱动 42 二相步进电 机,如果驱动更大的电机,如 57 电机可能会出现丟步现 象,此时需要选用 TMC5160 驱动芯片,支持高达 20A 的线圈电流,强大的外部 MOSFET 驱动。
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/49057.html