任务介绍
这是一款安装在42步进电机背面的FOC驱动器,与电机相同尺寸,支持电流环、速度环、位置环三环FOC控制,支持多种通讯接口,包括CAN,MODBUS,RS485,UART,I2C以及常见的EN、DIR、STP控制,以及基于WIF的MQTT。
我曾在一年前制作过一个FOC步进电机驱动,当时使用的驱动芯片是TI的DRV8962。后续使用中发现一系列问题。主要的几个问题如下:
1,DRV8962使用并不广泛,器件昂贵且难以购买。
2,DRV8962内置电流镜检测的是高端电流,但高端电流检测目前并没有受到大多数开源电机控制库的支持。
3,板载UART-USB接口虽然在调试阶段增加便利性,但是却让日后添加UART外设传感器变得非常不便。
4,5V稳压二极管虽然能对接口带来保护,但在RS485, CAN等差模信号遇到较高的共模干扰时,稳压二极管反而会造成通信异常。
因此在本次活动中我更换方案,重新设计了这款驱动器。
设计的模块介绍
本项目使用的核心模块有两个,其中主控使用ESP32-S3,电机驱动使用的是两片DRV8874 H桥驱动器,支持6A电流驱动。
ESP32-S3-WROOM-1-N16R8: https://www.digikey.hk/zh/products/detail/espressif-systems/ESP32-S3-WROOM-1-N16R8/16162642
DRV8874: https://www.digikey.hk/zh/products/detail/texas-instruments/drv8874pwpr/11502339
DRV8874的集成度非常高,上面已经集成了低边电流测量功能,板载再加一个编码器识别电机角度即可。我选择的是AS5047P非接触式磁编码器。
其他的模块是为了一些通信和调试功能服务。
原理图和PCB模块设计介绍
先看一下原理图全貌,每个功能区域都单独用框框了起来。MCU引脚分配也都使用标签桥接单独列出,方便查询及修改。
下面每一个部分讲一下设计需要特别注意的地方:
ESP32-S3-WROOM模块要特别注意strapping引脚的电平配置。虽然默认内置了弱上/下拉,但我实际使用中发现内置弱上/下拉力度太弱,非常容易被干扰导致启动或者刷血异常,因此还是最好通过外置电阻进行配置。同时,在使用这些strapping管脚时要特别注意,最好不要用做输入功能,以免被其他设备上电默认输出电平影响启动,另外在作为输出引脚使用时也要注意相关设备引脚的默认上/下拉配置。
电机驱动模式尽可能不要用电阻配置死,而是直接连接单片机,靠单片机来进行配置。这里两个PMODE引脚使用了ESP32-S3上的strapping管脚,通过查询规格书可以看到这个管脚没有上下拉配置,可以放心使用。
电源设计注意输出电容要选一个大容值的钽电容或者固态电容。不能直接用陶瓷电容,否则ESR不满足要求,需要修改反馈回路。其他原理图上没什么讲究,更多的讲就是在PCB Layout上。
AS5047P使用SPI进行通信,效率比较高。连接ESP32-S3时尽量使用硬件VSPI,以获得最好的效果。
RS485和CAN通信部分添加了可选的终端电阻接入跳线帽,方便使用。
板子接口设计的比较多样化,调试和烧录固件可以试用USB或者UART,板载了RST和BOOT按钮可以方便快速进入烧写模式。另外使用2.54双排针引出GPIO,可以方便使用一些ADC, SPI, I2C, UART等传感器或者额外的执行部件例如继电器,LED等。主要的通信端口,电源端口和电机端口使用的KF128螺栓端子,工业领域较为常见且通用度高,非常灵活。
最后再看一下PCB,设计的比较小巧,又要满足部分线路的大电流和抗干扰,layout上讲究还是比较多的,大家直接看图,我就不过多赘述了。
eZ-PLM上新建物料和项目的截图
在物料页面可以添加对应的物料,方便在设计过程中对成本进行控制。
项目页面可以方便的添加多个版本的PCB。
心得体会
时隔一年再次参加电子森林的活动,活动依旧创意十足,诚意满满!