1 因为评测过凌鸥创芯的电机控制评测开发板,因此对这次的方案非常感兴趣,到底怎么能搞得这么精致。

LKS32MC34DOF6Q8B(C)_MCU 为 BLDC 电机类吸尘器应用设计评估板,系统工作电源(电压范围 18V~25.2V)用 LDO-78L12 降压,内部集成 5VLDO,电机驱动模块采用分立 MOSFET,两路单电阻采样,一路母线峰值电流采样,一路母线平均电流采样,评估板集成化程度高。

所以这个芯片还少了一个5V的LDO芯片,看起来BOM更少了。

这个功率驱动部分的核心是三相H桥MOSFET驱动三相BLDC的UVW三相回路。

Capture.PNG

这个还是设计得比较NB的,直接选择了LKS045N012HS,按照这个原理图,可以直接由MCU的GPIO输出驱动,通常方案,这个驱动是一个驱动芯片来实现的,因为多数MOSFET的都需要5V以上的驱动电压,这样实现的方案,省了一个环节,BOM省了不少。而且,其中的死区控制,在MCU的逻辑里控制,也不用考虑来自驱动电路的残压,控制逻辑上又清爽了不少。不过,这个就要求mcu比较抗造,耐压高,驱动电流足够大,否则,这个驱动就转不起来。


2. 因为这个是工业应用开发板,所以,有关的测点和下载接口都没有引出,显然,这个是用工业夹具批量下载预留的接口,输出的串口只是用来测试的。所以,也使用了这个夹子(2.54mm间距),因为这个是8引脚的架子,所以也不是很稳。

1366503074.jpg


连接的图如下,

Capture.PNG

不过应该是有一个小坑,就是那个方形的焊盘应该是接Vcc的,通常这个方形的接GND的比较多,接错了,应该就找不到芯片的。



3 连接电机和参数

使用一个12VBLDC三相带Hall编码器的电机连接,通过Jlink仿真器连接并下载。

2026433148.jpg


启动Keil导入范例代码

Capture.PNG

这个范例代码按照控制层分别创建不同的目录,展示了整个控制的逻辑。电机的控制是用状态机state machine来控制,这样的逻辑比较清楚,只需要对电机状态进行置位就可以实现逻辑控制,具体的实现,通过任务调度器TaskScheduler来实现,

void Task_Scheduler(void)
  • {
  •     volatile u32 t_data;

  •     if (gS_TaskScheduler.bTimeCnt1ms >= TASK_SCHEDU_1MS)
  •     {   
  •         gS_TaskScheduler.bTimeCnt1ms = 0;

  •                 MDtaskHandleIn1msLoop();                        // MD ÂýËÙÈÎÎñ£¬Ê±¼äÑϸñʱÐèÔÚÖжϴ¦Àí
  •                 UACtrlObjTask();                                        /* UA״̬»úµ÷¶È¼°ÈÎÎñ´¦Àí */
  •                 MACtrlObjTask();                                        /* MA״̬»úµ÷¶È¼°ÈÎÎñ´¦Àí */

  •                 #ifdef _TIME_TEST_DEFINED                                // ʱ¼ä²âÁ¿
  •                 Debug1MsTimesRecord = Debug1MsTimes;
  •                 Debug1MsTimes                = 0;
  •                 #endif
  •     }

  •     if (gS_TaskScheduler.nTimeCnt10ms >= TASK_SCHEDU_10MS)
  •     {   
  •         gS_TaskScheduler.nTimeCnt10ms = 0;

  •     }

  •     if (gS_TaskScheduler.nTimeCnt500ms >= TASK_SCHEDU_500MS)
  •     {  
  •         gS_TaskScheduler.nTimeCnt500ms = 0;
  •     }

  •     if(gS_TaskScheduler.bPWM_UpdateFlg)
  •     {  
  •         gS_TaskScheduler.bPWM_UpdateFlg = 0;
  •     }

  • }
  • 复制代码

    不过,这个代码库只支持Arm Compile5.06,最新的Arm Compiler 6还不能支持,使用最新版本的Keil还需要再安装降低版本的ArmCompiler5.06才能编译通过。

    另外,下载需要使用5V的驱动电压,因此,开发板还需要提供一个5V的驱动电压才能正常下载。


    4 小结

    这个开发板显然是一个工业解决方案,能精简的地方都从设计上考虑到了,对于控制成本的设计方案,绝对是一个首选。

    后面还需要连接好元件,上电测试,看运行效果怎么样。