原文:https://blog.csdn.net/zhanglifu3601881/article/details/103510145
前言
前面章节我们介绍了很多关于ST MotorControl Workbench的使用及实例 ,但是所有的实例均是基于ST的NUCLEO-F103RB和X-NUCLEO-IHM07M1 3SH开发板进行讲解与演示的,很多同学表示手头并没有相应的开发板,且在实际应用时经常会出现各种各样的问题,从本节开始,将给大家演示一下实际应用工程中怎么用ST MotorControl Workbench来配工程,调参数。在本节开始之前先给大家分享几个ST官方ST MotorControl Workbench的使用说明资料(位于ST MotorControl Workbench安装文件夹下的Documentation 文件夹中,如笔者的D:\Program Files (x86)\STMicroelectronics\MC_SDK_5.3.3\Documentation):
好了,下面我们进入实战环节,首选先简单看一下原理图:
电机控制部分电路基本就如上面的图片所示,接下来我们就按上面的原理图来构延ST MotorControl Workbench电机控制工程:
新建工程,如下图:
接下来我们按下图所标顺序依次配置各模块:
1.Bus Voltage sensing:
2.Temperature sensing,原理图中没有,跳过。
3.motor 根据自己实际电机参数去填写,如笔者所用电机如下:
本实例用绝对式磁编码器来检测电机位置,所以传感器这里可以都不选(先对无感FOC方式配好工程,然后到工程代码中手动加入绝对式编码器对应的功能代码即可):
4.current sensing :
5.Over current protection(过流保护) :
6.Speed Sensing (选用无感方式,保持默认即可) :
7.Power Stage – Power Switches(根据实际情况填) :
8.Power Stage – Driving signal …(根据实际情况填) :
9.Firmware Drive Management – start -up …(保持默认) :
Firmware Drive Management – Drive setting …(根据实际填) :
Firmware Drive Management – addition features …(保持默认) :
Firmware Drive Management – sensing Enabling …(根据实际填) :
10.MCU and Clock Freq :
11.Digital I/O :
12.DAC functionality :
13.ADC Input and Protection :
14.User Interface(保持默认即可) :
保存工程,生成代码即可:
生成完成后,MCU还不是stm32f103c8t6,这时可以到cube(.ioc)工程中修改MCU芯片,再更新代码即可,用文本编译器打开.ioc文件,用夫换工具将所有的STM103R替换成STM103C,然后将所有的STM103RBTx替换成STM103C8Tx,最后将LQFP64换成LQFP48:
修改前:
修改后:
当然因为本示例仅有一个普通ADC通道(总线电压),在.Ioc工程中ADC模块配置有点小问题,手动按下图修改即可:
最后在cube工具打开ioc工程,按原理图配置好LED引脚 ,SPI绝对磁编码器接口,CAN通信接口以及修改一下定时器1接口(实际原理图并没有用到BREAK引脚 ),以下操作仅供参考:
CAN:
SPI:
LED:
最后调整一下模块的初始化速度就可以直接生生工程代码了:
打开工程,编译工程,解决掉工程中的各个问题(最多问题就是工程中少包含某个文件,手动加入一下就可以了):
到此,基于ST MCLIB的stm32f13c8tx FOC工程创建工作就基本完成了,下一讲将给大家介绍如何将其无感方式变成绝对式磁编码位置检测方式。也欢迎大家留言!!最后喜欢这个公众号的同学们记得加关注了,每天都会有技术干货推出!!
文中源码及资料下载,关注十三公众号:
在公众号里给十三发送 “下载|STM32 电机教程 23” :