搭建环境 手上正好有一个带霍尔传感器的BLDC-DC24V的电机,结合LKS_EVB_MCU081_V2.0核心板和LKS_EVB_MVPOWPRE_V4.0电机驱动板,我们来尝试让电机转动起来……除了准备电机和开发板之外,我们还准备了一个稳压输出电源,最大输可出30V直流电压和5A的电流,完全满足了当前的使用要求;此外还需要一个J-LINK工具,它除了用来下载/调试程序之外,我们在本章节还需要借住SEGGER的J-Scope软件搭配J-LINK工具用来监测系统运行的数据曲线。
LKS_EVB_MVPOWPRE_V4.0电机驱动板的输入电压范围为DC20V~60V,需要注意的是当输入电压达到DC60V时,功率需要控制在500W以下。根据板载MCU内的程序,可以实现无感方波、有感或无感FOC控制,支持按键启停、和模拟电位器调速功能。底板功能示意图如下所示:
底板上有3个跳帽选择,它们是用来选择电流采样模式的,跳左端为MOS内阻采样方式,跳右端为三电阻采样方式;开发板默认是跳在右端采用的三电阻采样的方式来进行电流采样的,使用三电阻采样方式需要根据实际采样增益修改匹配电阻值哦。
接下来我们进行硬件连接:将J-LINK通过SWD接口连接到LKS_EVB_MCU081_V2.0核心板上,需要注意连接仿真器的正负极、CLK和DIO是否对应、将LKS_EVB_MCU081_V2.0核心板插入到LKS_EVB_MVPOWPRE_V4.0电机驱动板上,将电机的UVW三相线连接到LKS_EVB_MVPOWPRE_V4.0电机驱动板的UVW三个连接端子上,将电机的HALL接口连接到LKS_EVB_MVPOWPRE_V4.0电机驱动板的HALL端子上,将稳压电源的输出连接到LKS_EVB_MVPOWPRE_V4.0电机驱动板对应的VCC和GND端子上;硬件连接图如下所示:
在硬件连接完成后,我们就可以上电烧录程序,转动电机啦……
官方例程 官方提供了LKS08x_FOC_SensorLessV4.24示例程序,在我们打开软件工程将程序下载到开发板之前需要先确认一下下载工具等配置:点击KEIL MDK工具栏上的Options for Target...按钮,在弹出对话框窗口的Debug选项卡下,我们这边选择右侧栏的Use J-LINK/J-TRACE Cortex选项配置;接着点击Settings按键,在弹出窗口中的Debug选项卡中,将Port选择为SW模式,此时如果J-LINK正连接着开发板的话,在SW Device窗口中会显示检测到了芯片的信;在Flash Download选项卡中将Download Function中设置项修改为Erase Sectors,这样在下载程序时进行芯片擦除FLASH操作的时候会按照下载文件的大小进行按需擦除,相对于Erase Full Chip选项来说会节省些下载的整体时间,然后勾选上Reset and Run选项,这样在程序下载完成后,芯片就会自动复位然后运行,不必再手动的让芯片运行,再说了这个板子上也没找到RESET按键,所以这个勾选项还是有必要的;最后就是确认一下Programming Algorithm程序下载算法是否选择正确,在我解压后打开软件工程查看这个选项配置时可是空的哦,这样就会导致在我们下载程序的时候就提示错误,所以这边我们需要根据相应的芯片选择相符的下载算法;在这些配置检查完成后,我们就可以编译工程,下载程序到开发板啦……如下图所示:
对于KEIL工程中的程序,官方还是以LIB的形式提供的;在KEIL工程划分了5个GROUP分组,分别是AppFunction、Kernel_Code、Periph_Driver、RTT_Debug和Include;其中在Kernel_Code中包含了LKS08x_FluxOBS_Hall_V4p2.lib封装库文件,包含了电机控制算法实现的核心代码;我们可以通过Include中的function_config.h、hardware_config.h和MC_Parameter.h这3个文件来配置功能、硬件和电机运行参数……通过对参数的调节,来使电机平稳运行起来。
SEGGER J-Scope监测数据 在程序中我们看到使用了SEGGER_RTT功能进行监控调试,当前使用的是6.30b版本,而我电脑上安装的驱动程序是SEGGER-J-LINK V7.66b版本,所以为了可以正常使用/兼容这个功能,我们需要将C:\Program Files\SEGGER\JLink\Samples\RTT\SEGGER_RTT_V766b.zip文件解进行压来,将工程目录中RTT文件夹下的6.30b版本程序替换成7.66b版本的程序;在替换完成后,我们还需要将原先实现的功能或者定义的变量给移植过来:在SEGGER_RTT.c文件中定义bRttBuf数组变量、在SEGGER_RTT.h文件中做变量外部调用声明,这样就完成了,我们就可以通过JScope来监测运行时的变量值了……当然我们直接使用高版本的软件来打开低版本的工程也是兼容的,这边看个人习惯吧……
我们打开SEGGER J-Scope V7.66b软件,点击菜单栏File->Open Project...在弹出的窗口中,我们选择工程目录中RTT文件下的LKS08x_FOC_SensorLessV3.6.jscope工程文件,点击打开……有红绿蓝3个监控数值,通过程序中的注释得知,这3项目分别为开环角度、观察器角度和U相电流角度,如下图所示:
电机转动视频连接 https://www.bilibili.com/video/BV19a411s7mu/?vd_source=c2d3413b74687345dfc8205a8d735598
测试运行、问题反馈 我们使用官方提供的示例程序下载下载到开发板,使用默认的电机配置参数,在实际转动电机的过程中,并不顺利;存在电机无法启动就已经触发限流的情况、在通讯模拟电位器调节电机转速时,会出现失速的现象;还好多尝试几次后,也有能够正常运转起来的……但在启动的时候,通过波形也可以看出,会存在不小的振动/抖动的情况,所以接下来需要好好研究一下控制、配置参数,争取让电平运行得平稳些……现在是在电机运行过程中使用J-Scope软件抓取的数据曲线波形,看看哪位大神可以帮忙分析一下,电机启动不成功时问题现象缘由,感谢!!!
正常启动监测数据波形
正常运行监测数据波形
启动异常监测数据波形
附件
|
连接着开发板的话,在SW Device窗口中会显示检测到了芯片 --------------------- 作者:GrandLine 链接:https://bbs.21ic.com/icview-3232976-1-1.html 来源:21ic.com 请问为啥连着开发板SW Device窗口却检测不到芯片
可以看我们后续更新FOC调试教学视频中第8讲:预定位与开环强拖调试章节。