本项目为4线步进电机控制器,总线通信CAN和RS485,工作电压9-24V,峰值输出电流 2A,体积小巧,可应用于小型机械控制。
一、产品简介
本项目使用STM32F103作为主控,TMC2209作为电机驱动控制,通信使用485和CAN,工作电压9-24V,体积小巧,可应用于各种小型运动设备。
二、应用场景
1,医疗设备
2,工业运动控制
3,移动机器人
4,小型机械臂
5,3D打印机DIY
三、产品概述
本项目使用STM32F103作为主控,可使用CAN和485进行控制,电机细分最大可设置为1/256,3路外部5V信号输入,1个增量式编码器接口。
当前项目代码已实现电机力矩控制,速度控制,方向控制,细分配置,梯形加减速,往返运动,自动移动指定信号点,正反极限和原点信号功能,TMC芯片寄存器配置。项目代码开源在附件“源代码.zip”文件中。
四、产品参数
外形尺寸:45mm*35mm
电气参数
工作电压:9-24V
峰值电流:2A
适用电机:2相4线,电流2A以内,建议持续电流不要超过1.5A
接口参数
电机接口:2相4线电机,电压9-24V,电流2A以内
外部信号接口:电压输出5V/500ma,信号10K电阻上拉,低电平有效,IN-1正转极限,IN-2反转极限,IN-3原点
编码器接口:电压输出5V,支持ABZ三相增量式编码器(没有编写相关代码,需要自行编写)
电源通信接口:电源9-24V输入,CAN-485通信
示意图:
五、使用说明
电源输入接口接入直流电源,电机接口接入电机。通信接口连接485或CAN。
电机长时间或大负载工作时,建议给电机驱动芯片加装散热片。
驱动芯片只做了细分设置,其他功能可参考芯片手册的寄存器说明进行设置。
芯片手册在“驱动芯片手册.zip”,包含中英文手册
RS485参数:9600,8,N,1
CAN参数:500Khz,正常模式
发送数据说明:
485和CAN可同时使用
485串口协议
波特率9600 8 N 1
帧头:AA 55
RX_data[0]:控制板地址
RX_data[1]:寄存器指令
RX_data[2]:读写控制位,0读取,1写入
RX_data[3]:保留位
RX_data[4]:数据0
RX_data[5]:数据1
RX_data[6]:数据2
RX_data[7]:数据3
CRC校验:2位字节,只对RX_data数组进行校验,帧头不参与校验
在main.h第60行开关CRC校验,默认关闭CRC校验,方便串口调试
CAN协议
波特率500K 正常模式
RX_data[0]:控制板地址
RX_data[1]:寄存器指令
RX_data[2]:读写控制位,0读取,1写入
RX_data[3]:保留位
RX_data[4]:数据0
RX_data[5]:数据1
RX_data[6]:数据2
RX_data[7]:数据3
寄存器指令说明
TMC2209芯片寄存器地址,寄存器具体说明参考数据手册
const uint8_t TMC22xx_REGAD[24] = {
0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x10,0x11,0x12,0x13,0x14,
0x22,0x40,0x41,0x42,0x6A,0x6B,0x6C,0x6F,0x70,0x71,0x72
};
控制板寄存器
RX_data[1]=0x30
数据1:电机轴使能,写0时电机轴自由状态,写0时电机轴锁止
数据2:电机静音模式
数据3:电机运行标志位,写0时电机急停
RX_data[1]=0x31
数据1:电机细分
数据2:运行方向
数据3:运行力矩
RX_data[1]=0x32
设置运行步数启动电机,4位数据
RX_data[1]=0x33
数据0:电机最高速度1-240
数据1:电机最低速度1-240
数据2:电机加速度1-100
数据3:电机减速度 1-100
RX_data[1]=0x34
电机运行时间,单位ms,4位数据
RX_data[1]=0x35
数据3:电机移动模式 1顺时针极限,2逆时针极限,3进入原点,4离开原点,0x10往返运动
RX_data[1]=0x36
数据0:电机堵转力矩阈值
数据1:电机堵转速度阈值,高16位
数据2:电机堵转速度阈值,高8位
数据3:电机堵转速度阈值,低8位
RX_data[1]=0x3F
数据3:电机报警值,写0清除寄存器
六、备注
本项目软硬件全部开源 ,PCB工程文件请在附件中查看“硬件工程AD20.zip”,源码文件请在附件中查看“源代码.zip”
驱动芯片手册请在附件中查看“驱动芯片手册.zip”
仿真编程使用ST-LINK ,接口连接请查看附件‘仿真烧录接口说明.zip’
元器件成本在90元左右,主要是目前32贵
2022.6.1软件更新
七、演示视频
使用RS485和CAN控制电机运动
点赞