如何用ST MC SDK生成自身不包含芯片的工程。
- 1.工程创建
- 2.参数设置
-
- 2.1电机参数设置
- 2.2电流检测
- 2.3转子位置检测
- 2.4过流保护
- 2.5开光管的最小死区时间和开关频率
- 2.6上下管驱动PWM的有效极性设置
- 2.7驱动控制管理
-
- 2.7.1启动参数管理
- 2.7.2驱动设置
- 2.8欠压检测及保护
- 2.9电压、电流、温度采样
- 2.10IO口配置
- 2.11DAC功能
- 2.12IO口冲突检查
- 2.13生成工程
- 3.更改MCU型号
我用的是STM32F407ZGT6,但是 SDK支持的MCU里并不包含这款,如下图所示,本文就来记录如何创建一个工程以及将工程更改成适合自己MCU的文件。
1.工程创建
双击打开SDK后,因为控制板和功率板都是自己的,并不是ST的套件,所以此处选择应该如下图所示。
选择MCU 的时候尽量选择与自己所用MCU型号相近的,首先基于相同系列,其次基于相同管脚数。所以这里选择STM32F407IGT6,稍后需要做进一步的修改。
频率的话只能选择外部频率,就要根据自己手里的硬件进行选择,我手里的最小系统是25MHz外部晶振。如下图所示。
进来以后如下图所示。
2.参数设置
实验室有直流电源,所以AC INPUT那里不用管,首先设置BUS VOLTAGE。功率板电路原理图(母线电压采样)如下图所示:
相应的工程设置如下图所示:
2.1电机参数设置
电机用的是外转子无位置无刷直流电机。需要知道自己电机的极对数、最大转速、额定电流、额定电压、相电阻、电感、反电势常数。所以设置参数如下图所示:
因为是无位置检测,所以这两项都不选。
2.2电流检测
电流检测参数设置如下图所示,可以选择单电阻、三电阻、ICS采样方式,这几个参数根据自己的功率板电路原理图进行填写,:
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210116101344438.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0phY2hpbl9MaQ==,size_16,color_FFFFFF,t_70#pic_center)
同时这个软件提供了计算功能来计算放大倍数,点击后边的calculate,后如下图所示:
2.3转子位置检测
一般情况下下边的参数无需修改,保持默认即可。
2.4过流保护
2.5开光管的最小死区时间和开关频率
2.6上下管驱动PWM的有效极性设置
2.7驱动控制管理
2.7.1启动参数管理
2.7.2驱动设置
这里的PWM频率是16000Hz,然而根据程序里的设置,求出来PWM的频率是32000Hz,但是因为波形是中心对称波形,所以32000应该除以2.。
2.8欠压检测及保护
2.9电压、电流、温度采样
电流:
电压&温度:
2.10IO口配置
2.11DAC功能
到这里一些基本的参数就设置完成了,接下来进行一下IO口的检查,就可以生成工程了。
2.12IO口冲突检查
可以看到有两个冲突,一个是温度采样和DAC冲突,一个是TIM1的BKIN引脚和电流采样的ADC12_IN6冲突,我们只需要回到设置的地方更改IO口即可。
2.13生成工程
在上方工具栏先保存文件,可以新建一个英文名的文件夹。然后点击下载按钮进行生成。如下图所示:
点击“生成”图标后会有下图弹出,因为用KEIL进行编程,所以选择Keil MDK-ARM V5。
然后点击“GENERATE",可能会弹出警告,这个不用管,点击“YES"就好,如下图:
3.更改MCU型号
在新建的文件夹里找到.ioc文件,并用记事本打开:
然后在记事本里对这两项进行更改替换,一个是MCU的型号,一个是MCU的封装。
替换后如下图所示:
保存后在把.ioc文件用Cube-MX打开:
进入Cube-MX后然后对ADC进行使能,这个操作就是消除开始用ST SDK生成工程的那个警告,如下图所示:
然后生成代码,如下图所示:
至此,工程基本计算生成完成了,编译以后也是零警告、零错误。
当然,应用到实际工程中还有许多的路要走,对程序也需要做相应的修改,目前我也在摸索。如有错误之处,还望不吝赐教。