之前也用过灵动微的MM32F003/MM32F103/MM32L07X都还不错,灵动微的系列也蛮多的,尤其是MM32L0xx系列在某宝返现后1元
到手的胸牌上挺多的,拆来用过几个芯片很不错还带USB。这次有幸申请到了电机驱动demo板,非常感谢面包板社区和灵动微。
MM32SPIN160C的介绍
芯片简介.png 芯片简介2.png
规格.png
MM32SPIN160C Demo板原理图
开发板原理图.png
FOC无感跳线帽
跳线帽.png
趁这几天有时间把MM32SPIN160C驱动无刷电机研究了一下,第一次玩刷电机有点迷茫资料和教程有点少160C的例程是有感的,手头没有有感电机翻箱倒柜找出来一个航模电机和两个光驱电机。好在有大佬已经出了移植MM32SPIN05的无感FOC的说明,参照大佬的说明我也移植到了我的板子上,先测试了银燕 EMAX BL2215/20 1260KV无刷外转子马达,一通折腾后还是启动不了电机线圈有启动脉冲嗒嗒嗒嗒的那种最后换光驱电机可以启动。修改SPIN05和SPIN160C的IO不同的地方后配置电机参数在\USER\Whole_Motor_Parameters.h文件修改
  1. #define PWM_FREQUENCY                    22000           //unit:HZ     第一次玩无刷PWM频率不知道多少合适就用默认吧
  2. #define POLE_NUMBER                      12//8    这里好像是单级数,网上查资料核实测得出的结果大概意思是电机定子线圈个数,光驱电机9个线圈POLE_NUMBER 9
37d12f2eb9389b50cfe92fd38f35e5dde7116e19.jpg 这四种电机的POLE_NUMBER我没弄错的话应该是3/6/9/12。
这里是调节电位器对应八个档位(0档时停止)的转速设置
  1. //-----Close loop parameters------------------------------------------------------------------------------------------------
  2. //-----Close loop parameters------------------------------------------------------------------------------------------------
  3. #define TARGET_SPEED_1                2000 //unit: RPM, define the user's lowest  target speed
  4. #define TARGET_SPEED_2                4000 //unit: RPM, define the user's second  target speed
  5. #define TARGET_SPEED_3                6000 //unit: RPM, define the user's Third   target speed
  6. #define TARGET_SPEED_4                8000 //unit: RPM, define the user's 4th     target speed
  7. #define TARGET_SPEED_5                10000 //unit: RPM, define the user's 5th     target speed
  8. #define TARGET_SPEED_6                12000 //unit: RPM, define the user's 6th     target speed
  9. #define TARGET_SPEED_7                14000 //unit: RPM, define the user's highest target speed
这几说是和启动有关,如果无法启动就改这里试试,但是我的航模电机最终无法启动,后面换成了光驱单机成功启动。
  1. #define SMO_Kslf_MAX_VALUE      27000//27000//4200 //recommended value (300~6000), range (1~32767)
  2. #define SMO_Kslf_MIN_VALUE      5200//5200//1600 //recommended value (100~2000), range (1~32767)
这里设置你的电机供电输入电压
  1. #define DC_BUS_VOLTAGE                      120     //unit: 0.1V, define the dc bus voltage, 100 means 10V. it will be used if not define "USE_MEASURED_DC_BUS_VOLTAGE_TO_GET_POWER"
电机的电流限制和保护,航模电机我把电流改大依然无法启动,还没找到哪里没设置对
  1. //----for MAX DCBUS CURRENT LIMIT //20190626--------------------------------------------------------------------------------------------------------------
  2. #define MAX_DCBUS_CURRENT_PROTECTION        2000 //unit:1mA, define the dc bus max current protection,2000 means 2.0A, if over it, motor will be stopped and show error
  3. #define MAX_DCBUS_CURRENT_LIMIT             1500 //unit:1mA, define the dc bus max current limitation,1500 means 1.5A //20190626
  4. #define MIN_CURRENT_LIMIT_RESOLUTION        40   //10 means 10mA as minimum current limitation resolution,if over max.current 20mA,it means 20mA/10mA =2RPM Speed CMD Decrease every 50ms//20190606
主要要设置的基本这几个,两个光驱电机已经可以启动和调速了,但是还有一个问题,我把光驱电机速度调到10000RPM以上会失控电机停了,然后会尖叫,把电位器关最小还是会啸叫,只有重启电源才能恢复。不知道是电机速度上不去了还是其他哪里没设置好你们碰到过这种现象吗?10000RPM内还是正常的。
我把视频做成了gif,图片大小有限制压缩成ppt了????将就看吧。
动画.gif
还买了好几个小无刷电机在路上,后续在拍几个成功驱动的电机????
MM32SPIN160C FOC无感无刷驱动光驱电机.zip (834.84 KB, 下载次数: 26)