注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题

annysky2012的个人空间 http://home.eeworld.com.cn/space-uid-402938.html [收藏] [复制] [分享] [RSS]

日志

【基于NUCLEO-F746ZG电机开发应用】6.程序框架

热度 1已有 119 次阅读2021-9-14 09:56 |个人分类:STM32电机应用

从今天开始,正式进入程序的学习,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中断主要执行高频任务。后续我们详细展开学习。

本文来自论坛,点击查看完整帖子内容。

发表评论 评论 (1 个评论)

回复 rsxrb 2021-9-15 05:31
非常好的资料

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册