新旧版本电机驱动库的对比
原来STM32的开发以标准外设库为主,所以以前的FOC4.3是基于标准外设库的,而现在STM32以STM32CubeMX和HAL/LL库为核心,所以现在的SDK5是基于STM32CubeMX和HAL/LL库的。基于这一点,很多变化就很好解释:
1、FOC4.3在生成代码时采用条件编译的方式来兼容不同系列的控制板,这样读源代码时很费力,而且不容易维护。而SDK5.0则利用成熟的STM32CubeMX加各系列MCU的HAL/LL库来生成需要的代码,不需要的部分不添加进来,这样维护量就小了许多,而且读起来很顺溜了。
2、现在SDK5.0生成代码时直接生成了整个项目,而FOC4.3需要手工把MotorWorkbench生成的文件和库拷贝到相应的目录下。顺便说一下,SDK5.0支持的软件开发环境(IDE)更多了。
3、ST越来越开放了,FOC4.3有很多代码是以库的形式提供的,现在SDK5.0更多的代码以源代码的形式提供。
4、代码的组织形式变了,FOC4.3是基于类的,而现在SDK5.0是基于组件的。
经过这么长时间的评估,ST的电机驱动SDK5.0还是非常给力的,是开发电机驱动的利器
电机控制软件库SDK5.0评测分析
嵌入式软件的开发离不开PC端软件的支持。功能齐全、好用的PC端软件是MCU推广的一大助力。除了MCU开发工具外,ST为还为P-NUCLEO-IHM001电机控制套件提供了非常丰富的开发工具。下面就分析一下ST为无刷电机软件开发提供的相关软件。
一、电机参数测量
首先是X_CUBE_MCSDK,STM32MotorControlSoftwareDevelopmentKit(MCSDK),安装这个软件后,PC桌面会出现两个软件的图标:
MotorProfiler5.1.1是一个便利的“MotorProfiler”工具,通过简单的设置来检测接入的电机参数,自动配置电机控制算法库,让你的电机很容易转起来。获取电机参数是调试电机的第一步,所以必须要保证得到正确的电机参数。通常情况下电机厂商会公布电机参数,但是很多情况下电机的参数不会很容易的获取到,再以前的话,就需要手动测量了。(通过直流电桥测电机线圈电阻,然后通过电源和示波器测相电感,然后计算反电动势常数.....)是不是很麻烦?不过现在不用这样麻烦了,MotorProfiler5.1.1会帮你测出相关参数。
二、代码生成
在自动生成代码之前,还有几个软件是必须安装的:
•首先是软件开发环境(IDE),这里笔者使用IAREWARM
•其次是STM32CubeMX,玩ST的MCU,这个是必须的
•接下来是ST的HAL库和LL库,这次评估用的是Nucleo-F302R8,所以记得要安装F3的。
•当然还要包括X-CUBE-MCSDK,这个软件除了安装MotorWorkbench和MotorProfile工具外,也会安装一些电机控制库。(注意软件安装目录都不要有中文字符)
这些都安装好之后,就可以自动生成代码了。
自动生成代码是在MotorWorkbench中进行的。在MotorWorkbench中把参数设置好并验证MCU引脚分配后,接下来点击界面中蓝色向下的箭头按钮就启动生成代码的过程。
点击按钮之后会弹出一个对话框,让你选择STM32CubeMX的版本(至少4.25.0以上),选择你使用的软件开发环境(IDE),选择使用HAL库还是LL库。
下来点击"Generate"开始启动自动生成代码。完成后会给出相关信息。后续就是加入自己的代码和调测了。
三、代码编译及调试
代码生成后,MotorWorkbench会根据开始选择的软件开发环境(IDE)在相应的目录下生成项目文件,找到这个目录,双击打开就可以了。
打开后启动编译。如果编译通过,再下载到MCU里,电机就可以转起来了!
电机调试要用到的两个软件:MotorControlWorkbench,STMStudio.
先说MotorControlWorkbench。还是在MotorControlWorkbench界面里,选择下面菜单按钮中的像汽车仪表盘的按钮。
下图很好的说明了MotorWorkbench在ST的电机驱动开发中的作用。
除了MotorWorkbench,ST还有个更广泛应用的调试软件---STM-STUDIO-STM32。STM-STUDIO在运行时可以直接查看程序变量,它通过分析固件,提取所有变量供你选择,然后在运行时,通过ST-link连接到MCU,配合里面的固件读取变量值,你也可以改变变量值。STM-STUDIO使用起来很简单,功能却十分强大。
首先,我们打开STM-STUDIO软件后,点击文件菜单里的“importvariables",
选择导入和准备调试的MCU版本一致的内含代码调试信息的ELF文件(后缀elfoutaxf)。选择你想要监视和调试的变量导入,并关闭对话框。
在视图里加入你想观察的变量。然后就可以直观的查看你想观察的变量的变化,有折线图,有柱状图,也有表格: