从今天开始,正式进入程序的学习,ST的主要程序都开源了,先一步一步的把程序弄明白,在学习其他的。
1.软件工具
使用ST的程序进行电机程序的开发,要学会使用三个软件:ST MotorControl Workbench,STM32CubeMX,keil或其他编程软件。
首先使用ST MotorControl Workbench进行电机参数和使用参数的设置,并且生成STM32CubeMX和部分驱动代码,再由STM32CubeMX进行芯片的硬件配置,生成代码。软件关系流程图如下:
特别注意:第一次使用ST MotorControl Workbench生成STM32CubeMX后,当再次在ST MotorControl Workbench中修改电机参数会,一定要点击“UPDATE”更新就可以,不能点击生成,否则STM32CubeMX配置的内容全部被覆盖了。
2.软件库组成
软件库主要由三部分组成,(1)用户界面库 UI Library ,(2)电机驾驶舱 Motor Control Cockpit ,(3) 电机控制库 Motor Control Library,主要框图如下:
(1)用户界面库 UI Library
用户界面库包含负责通讯的组件。电机控制代码通过这些组件 控制串口和 DAC 与外界通讯。通过这个库我们可以连接 MCU 和 Workbench 。在 Workbench 中实现对电机运行状态的监控。
有兴趣的可以使用串口监测开发板与Workbench的通讯数据,然后自己做电机控制的界面,这个硬石科技的已经做出来了,有兴趣的可以看看。
(2)电机驾驶舱 Motor Control Cockpit
电机驾驶舱主要对电机进行配置和动态控制,是电机控制的核心内容。主要包括电机控制接口,电机控制配置,电机动态控制。其中电机动态控制是核心的核心,会经常用到。
(3) 电机控制库 Motor Control Library
电机控制库是诸多组件的集合。每一个组件实现电机控制的一个功能例如,速度和位 置检测, 电流检测, PID算法等等。在电机控制库中X-CUBE-MCSDK_5.x 中下列组件均以库的形式提供。用户无法看到源码,但可以根据提供的头文件从库里调 用相应的函数。
组件名称 |
描述 |
feed_forward_ctrl.c |
前馈控制 |
flux_weakening_ctrl.c |
弱磁控制 |
max_torque_per_ampere.c |
最大转矩控制 |
sto_cordic_speed_pos_fdbk.c |
速度和位置反馈 |
cordic sto_pll_speed_pos_fdbk.c |
速度和位置反馈 |
PLL revup_ctrl.c |
启动控制 |
在X-CUBE-MCSDK_5.x_FUL中全部都是开源的,有兴趣的可以申请下载看看。其实区别不大,不开源的基本已经够用。
3.程序流程图
系统在初始化完成后,进入到主循环中,主函数中没有任何任务执行,所有的任务都在中断中。主要在两个中断中:Systick中断和ADC中断。Systick中断执行安全任务和中频任务,ADC中断主要执行高频任务。后续我们详细展开学习。