声明:参考B站UP銀河旅人。这是第一版软硬件,仅作学习交流,仅验证基本功能,程序尚不完善。软件为9月份编写,有些细节记忆不是很清晰,文档中描述可能会有错误。
效果见B站:步进电机FOC闭环,进度更新,加入上位机_哔哩哔哩_bilibili
FOC闭环步进,基础速度位置环,站在大佬的肩膀上的大佬的肩膀上_哔哩哔哩_bilibili
銀河旅人: https://space.bilibili.com/279542681?spm_id_from=333.337.0.0
- 当前进度
- FOC速度位置闭环
- 上位机控制
- OLED基本信息显示
- 硬件介绍
使用CW32F030C8T6作为控制芯片
1、全桥驱动使用TB64H750,通过对PWM进行二阶RC低通滤波实现DAC恒流驱动
2、电源部分:12v->5v->3v3,输入部分接入TVS和防反接电路,注意选用的步进电机内阻,防止母线电流过大烧毁MOS。
3、设计步进电机可串接,通过RS485通讯,理论可行未实际验证
4、通过sh1.0接口引出UART,SWD,I2C接口,这里I2C接入了OLED显示基本信息,使用上位机控制OLED使用与否。注意OLED刷新会加长软件执行时间,影响FOC运行带宽,电机运转会有周期性卡顿。
5、板载NTC,电压检测、BUZZER、拨码开关、2xLED,实际作用根据大家需求设计。
6、磁编码器选择:程序中使用14BIT编码器,这里具体型号为MT6701。使用其他编码器,例如AS5600需要自行调整程序。这里FOC的实现方式为校准时旋转一圈,记录4X50步每一步的绝对角度范围。使用12BIT编码器会涉及到个问题:4096/200 =20.48 ;14BIT:16380/200=81.9;使用12BIT在实际旋转时有些小问题,具体看代码吧,记得不是很清楚了,在查找扇区那块。
- 软件介绍
详见源码,关键部分有注释解释,为个人理解,可能会有些错误。