APM32F035 是极海半导体针对电机控制推出的专用芯片。它基于Arm ® 32-bit Cortex ® -M0+@72MHz内核,内存达64kB,SRAM达10kB,集成 FOC 算法中常用的数学运算加速器(Cordic,Svpwm,硬件除法器等),并且集成了运放、比较器等模拟外设以及 CAN 控制器。极海基于 APM32F035 设计了一款开发板,如下图1-1所示。
一、调试准备
本次评测单板如下图所示,小巧玲珑但五脏俱全,对于日后产品小型化是非常好的参考:
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps12.png
图1-1 电机开发板
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps13.png
图1-2 开发板原理框图
24V通电之前,使用万用表测量板上重点部位是否存在短路问题:
24V-GND,测量正常。
3.3V-GND,测量正常。
U/V/W-GND,测量正常。
24V电源通电后,使用万用表测量5V/3.3V电源均在正常范围内。
二、开发环境KEIL
根据提示,本次评测使用Keil C (要求V5.23 版本及以上),实际使用版本V5.28:
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps14.png
图2 使用的Keil版本
Keil中安装APM32F035Series的DFP文件,具体可到极海官网下载安装。安装后如下图所示:
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps15.png
图3 KEIL中安装APM32F035库
三、例程确认
打开有感矢量控制方案的工程Demo(APM32F035_Lv_HallFOC_V2.2),初步了解程序的结构(项目整体代码架构主要划分为 4 层,用户层、外设驱动层、电机控制驱动层以及电机算法层;采用了主状态机嵌套子状态机的结构,四个主状态:INIT、STOP、FAULT、RUN):
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps16.png
图4 KEIL工程APM32F035_Lv_HallFOC_V2.2
设置Options中的调试工具为Jlink:
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps17.png
图5 选择使用的调试工具JLINK
确认使用SW模式,如下图所示:
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps18.png
图6 选择SWD调试方式
最后,对Demo工程进行重编译(Rebuild all target files)以确认程序无问题:
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps19.png
图7 重编译工程
四、电机适配调试
将一实际2对极无刷电机接到开发对应插件口上,此时,一定要注意接线顺序。
电机参数如下:
功率:10W
转速:2000rpm
极对数:2
相电阻:15瓯
相电感:13mH
反电动势10V/krpm
霍尔角度:120度
电机线:红U,白V,黑W
编码器线:棕5V,蓝GND,橙HA,紫HB,黄HC
在程序中进行相应修改:
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps20.png
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps21.png
图8 电机参数修改
然后,重编译工程并下载目标程序,重新上电,即可运行(空载测试运行)。
最后,通过旋钮改变速度,观察使用 PID 调节器来控制电机的响应速度(参数的修改都在 parameter.h 中修改)来优化电机的响应和稳定性。
file:///C:\Users\ADMINI~1\AppData\Local\Temp\ksohtml12716\wps22.png
图9 空载运行调试
五、总结
由于APM32F035集成了运放、比较器等模拟外设以及 CAN 控制器,所以可以节省很多外围器件,此外,它还集成了数学运算加速器,特别适合FOC的三相无刷机的控制。整个单板设计很简洁紧凑,可以做其他项目设计的参考。
开发板硬件图纸与实物不一致,导致在学习阶段要用万用表去核对,还要根据程序运行情况去观测。开发板工程例程方面,结构化比较清晰,状态机方式比较容易学习,但是,代码中注释不多,理解起来还是有点费劲,所以,本次测评性能方面待后续补充。
极海官网资料https://www.geehy.com/support/apm32