- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 + 关注
ST MC SDK5.x 电机库软件框架说明资料(共20页转载ST原厂)
资料下载见附件,电脑登入
技术群:124545085
ST MC SDK5.x 电机库软件框架说明
转载:AI电堂作者an(ST原厂安超)文章
前言
在使用 ST MC SDK5.x 库过程中,用户对软件整体全面了解后,开发设计才会得心应手、事半功倍。本文将从系统到软件架构,并对重要的三个任务环路进行细致说明,希望对需要了解 ST 电机库的用户有所帮助。本文默认使用 STM32F30x 产生的工程做文件说明。
内容概括:
1、总体软件架构
2、软件主要环路
3、整体软件框图
4、三大任务流程
5、附录
6、总结
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
楼主 | 回复于 2019-05-26 11#
5、1、附录
下面内容是就用户比较关心的电流,电压问题做必要说明。
5.1 三相电流获取
电流的采样在电机培训中提及,为硬件触发机制,TIM1 或者辅助 TIMER 触发 ADC 转换,转换结束后进入到 ADC 中断中,关于采样点选择,触发点请参看电机培训文档,这边不做过多描述;如果用户需要使用得到三相电流值,则可以通过几种方式获取,这边使用了基尔霍夫定理 Ia+Ib+Ic=0,因此取得 Ia,Ib 电流即可。
5.1.1 API 函数读取电流值
使用 API 函数 MC_GetIabMotor1(),返回值为 Curr_Components 这个结构体。
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
楼主 | 回复于 2019-05-26 12#
5.1.2 利用已有的全局变量获取
我们看到在 mc_task.c 中有全局变量 FOCVars 这个变量,而这个结构体变量的其中一员即我们需要得到的 Ia,Ib 数据。
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
楼主 | 回复于 2019-05-26 13#
值得说明的是有些关注于底层 ADC 采样的用户很可能想到的是直接从 ADC 外设获取,很遗憾,在 ST 的电机库中 Ia,Ib 的数据得到非固定方式存在,即使使用了 Inject 注入通道进行采样,因为算法的灵活性 JDR1,JDR2 寄存器中存入的数据的意义是根据控制在变动的,比如 JDR1 可能 Ia,也可能是 Ib,因此该方式无法直接获取电流数据。
5.2 母线电压的获取
在 API 函数中这个部分没有涉及获取函数,因此有必要在此做些说明。母线电压的读取部分在 TSK_SafetyTask()函数中执行,这边会得到一个平均值电压数据,这边简单介绍下获取过程,如果对这个部分不关心,可以忽略。
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
楼主 | 回复于 2019-05-26 14#
5.2.1 函数获取方式
在 bus_voltage_sensor.c 中给出了两种电压格式函数,VBS_GetAvBusVoltage_d()返回的是母线电压的数字量,VBS_GetAvBusVoltage_V()返回的是以伏特(V)为单位的母线电压。
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
楼主 | 回复于 2019-05-26 15#
具体使用如下操作:
5.2.2 全局变量取得母线电压
注意到在母线电压结构体定义过程,有直接的全局变量 RDivider_Handle_t,该结构体成员之一即为BusVoltageSensor_Handle_t _Super;这个我们所要的结构体。
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
楼主 | 回复于 2019-05-26 16#
上述为添加状态操作,删除操作或者是改变状态转移同样需要注意上下状态的切换,可以使用 STM_NextState()函数以及修改 state_machine.c 中修改状态跳转的判断灵活操作。
6、总结
▼简单概括 MC SDK 整体框图,大家可以很清晰的看到三重架构,从下往上分别是外设层,电机库层,电机应用层;一般应用用户只需要熟练掌握电机应用层的 API 即可使用,用户可以从 ST 电机控制培训文档进行详细了解;
▼软件框架角度,因为主体控制位于中断服务程序中,需要关注 ADC 采样完成中断以及 Systick 中断;
▼再深入研究,三大任务需要注意,高频任务,安全任务,中频任务;
▼高级应用则需要深入到电机底层库,详细掌握各个组件,进行相应的修改或者调用。
- 0000000000000000
-
1888 发帖7917 回复34980 积分
- 私信他 +关注
- 1021256354
-
2 发帖50 回复968 积分
- 私信他 +关注
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖