连接器
电机驱动器配备两个在正常运行时使用的连接器:一个用于供电的XT30接口,以及一个用于CAN总线通信的Harwin Datamate L-Tek高可靠性接口。在电路板顶部设有JST-SH接口,包含编程引脚和用于配置驱动器的串口。
CAN接口的型号为M80-8420342,匹配接口型号为M80-8990305。可购买预压接导线(型号M80-9110099)用于连接。
CAN和XT30接口的引脚定义如下图所示。XT30引脚为标准配置,应与任何配套XT30接口的模塑标记匹配。
电机端子需焊接至电路板上标有"U"、"V"、"W"的三个焊点。电机线序无严格要求,校准过程中驱动器会自动调整相序,确保正向扭矩/速度指令对应相同旋转方向。
电源要求
驱动器工作电压为10-35V直流。所有内部元件耐压均达50V以上,因此35V并非严格上限,但仍需保留安全裕量。当扭矩限制设为最大值时,峰值电流可达40A。
重要安全警告
-
再生能量处理
若电机需执行大量负功(如制动),必须连接能吸收能量的电源(如蓄电池)。此时电机将向电源回馈能量(再生制动)。若电源不具备吸收能力,能量将涌入电源和驱动器的电容组,导致直流母线电压骤升(可能达到2倍输入电压),可能损坏设备。解决方案:- 使用分流稳压器(示例)吸收再生能量
- 采用电池等可吸收能量的电源
-
预充电电路强制要求
禁止直接连接电池/电源上电!电容充电时线缆电感存储的能量会导致电压尖峰。必须使用预充电电路(推荐阻值10-100Ω),或通过可调电源缓慢升压。预充电时应有LED指示灯亮起。同时:- 尽量缩短电源线长度
- 双绞电源线以降低电感
接线与接地
- 电源线规格:14-18AWG(根据功率需求),14对应直径1.6,18对应直径1mm,建议使用耐高温特氟龙或硅胶绝缘线材
- 接地回路禁止:
绝对禁止在多个驱动器间连接CAN接口的地引脚!驱动器内部已连接电源地和逻辑地,CAN差分信号无需额外参考地。多设备级联时:- 仅连接CAN_H和CAN_L
- 末端设备需在CAN_H/L间并联120Ω终端电阻
- 地引脚仅用于连接与电源地隔离的系统(建议控制计算机与驱动器间采用隔离设计)
配置说明
通过921600波特率(8数据位,1停止位,无校验)的串口终端进行配置。上电时驱动器将输出调试信息并提供功能菜单,通过输入字符选择模式:
模式 | 功能描述 |
---|---|
m | 电机模式:接收CAN位置/速度/扭矩指令,反馈实际状态 |
c | 编码器校准:安装后必须执行,补偿传感器非线性。校准过程不可中断(需断电终止) |
s | 系统设置:修改关键参数(需断电生效) |
e | 显示编码器:输出机械角度(弧度)和原始计数值 |
z | 零点设置:将当前位置设为机械零点 |
参数配置项:
- 电流控制带宽:影响响应速度与噪声(推荐1000Hz)
- CAN ID:设备总线地址(各驱动器需唯一)
- CAN Master:主控制器ID(需与上位机匹配)
- 电流限制:最大相电流(安培)
- 弱磁电流限制:高速运行时的去磁电流(需低于电机持续电流)
- CAN超时:指令丢失后的安全停转周期(基于40kHz循环计数)
CAN通信协议
工作模式:标准帧格式(11位标识符),1Mbps波特率
指令包结构(8字节):
- 位置指令(16bit,P_MIN~P_MAX缩放)
- 速度指令(12bit,V_MIN~V_MAX缩放)
- Kp增益(12bit)
- Kd增益(12bit)
- 前馈电流(12bit)
反馈包结构(6字节):
- 设备ID(8bit)
- 实际位置(16bit,同指令缩放)
- 实际速度(12bit,0-4095对应V_MIN~V_MAX)
- 实际电流(12bit,0-4095对应-40~40A)
特殊指令:
- 进入电机模式:
[0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC]
- 退出电机模式:
[0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFD]
- 零点复位:
[0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF]
时序特性:
- 单次收发耗时约220μs
- 驱动器响应延迟15μs
- 建议通信间隔300μs
MTI整体开发资源:
- 电机控制器硬件
- 电机控制器固件mbed版本
- 电机控制器固件cubeIDE版本
- SPIne硬件(驱动板上级)
- SPIne固件
- 执行器数据和分析工具
- USB-CAN硬件+API上位机https://github.com/bgkatz/USBtoCAN
- USB-CAN固件https://os.mbed.com/users/benkatz/code/CanMaster/
- 微控制器控制电机控制器例程https://os.mbed.com/users/benkatz/code/MotorModuleExample/