你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于ST官方电机开发套件:FOC5.3库-正反转加减速代码及调...  

[复制链接]
mmuuss586 发布时间:2019-1-9 11:05
基于ST官方电机开发套件:FOC5.3库-正反转加减速代码及调试经验文档资料分享
板子:官方X-NUCLEO-IHM07M1
主芯片:STM32F032R8
驱动芯片:L6230PD
电机:BR2804-1700KV(最高12V输入,7对极)
资料下载见附件,电脑登入,要是解压不了就换360或其它软件试下
参考代码:KEIL MDK打开(5.0以上版本)
原创:mmuuss586-游名
1.png
0.png
00.png

- D/ R8 o) h/ m1 B

ST FOC5.3(pmsm驱动正反转加减速KEIL参考测试例程).part01.rar

下载

9.54 MB, 下载次数: 2189

ST FOC5.3(pmsm驱动正反转加减速KEIL参考测试例程).part02.rar

下载

9.54 MB, 下载次数: 1773

ST FOC5.3(pmsm驱动正反转加减速KEIL参考测试例程).part03.rar

下载

7.94 MB, 下载次数: 1788

基于ST官方电机开发套件FOC5.3库调试经验分享.pdf

下载

2.46 MB, 下载次数: 680

评分

参与人数 2 ST金币 0 收起 理由
a754577093 -1
weiyi1990 + 1

查看全部评分

5 收藏 9 评论193 发布时间:2019-1-9 11:05

举报

193个回答
limq96d3d3 回答时间:2020-3-14 15:13:19
有个问题想大家请教一下,目前正在使用楼主的“ST FOC5.3(pmsm驱动正反转加减速KEIL参考测试例程) ”来学习,由于KEIL5的开发环境的ARMCC编译器编译受到限制,所以改用了GCC(9 2019-q4-major)版本的免费编译器(已正确配置,因为编译文件较小的其他源程序时可以正常生成可烧写文件),但因为ST的MCSDK_v5.3.2或v5.4.3的部份源程序仍不对外公开,已封装好(见工程文件下MCSDK_v5.3.2\MotorControl\lib\libmc-keil_M4.lib里的feed_forward_ctrl.o、flux_weakening_ctrl.o等),使用GCC(9 2019-q4-major)免费的编译器编译时,出现了如下的链接错误:
* j6 d1 x, G- X, p! d. Mc:/program files (x86)/gnu tools arm embedded/9 2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: ../MCSDK_v5.3.2/MotorControl/lib/libmc-keil_M4.lib(sto_pll_speed_pos_fdbk.o): .symtab local symbol at index 474 (>= sh_info of 229)( r4 h' a! B0 }
c:/program files (x86)/gnu tools arm embedded/9 2019-q4-major/bin/../lib/gcc/arm-none-eabi/9.2.1/../../../../arm-none-eabi/bin/ld.exe: ../MCSDK_v5.3.2/MotorControl/lib/libmc-keil_M4.lib: error adding symbols: bad value' l' j5 O0 Y, \! l1 q
collect2.exe: error: ld returned 1 exit status
: E" X. l; m' B. [; H3 V" j7 h".\NonameF3\NonameF3.elf" - 1 Error(s), 4 Warning(s).0 N7 g$ j6 d( u& c3 T2 I" a+ m5 b
因为MCSDK_v5.3.2\MotorControl\lib下没有libmc-gcc_M4.lib文件,只能使用了libmc-keil_M4.lib(应该是ARMCC编译器使用的文件吧),导致编译出现了上述的链接错误?。也尝试用STMCWB安装目录下MCSDK_v5.4.3\MotorControl\lib下的libmc-gcc_M4.lib文件,链接错误更多(当然MCSDK版本不一样,自然会出错了)# @9 p/ U% S; g8 H' S9 N
请问有高手能帮忙解决吗?共同学习!
mmuuss586 回答时间:2019-1-9 11:31:39
MC_ProgramSpeedRampMotor1(3000/6,2000); //设置为速度模式,设置速度指令
# p$ ]; X0 [3 I, }: d' P调用此函数后hDurationms设置时间内当前速度变化到hFinalSpeed设置的目标速度
1 p9 ~5 y: Q; C" z7 Z- t0 f, f' s) ]void MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms )% C- ~9 i$ u/ S7 L0 y
{5 Y5 ~' c) ~' T" v1 g8 B. a7 L2 h5 ^
        MCI_ExecSpeedRamp( pMCI[M1], hFinalSpeed, hDurationms );
# e" @/ T) o+ z  p}
$ [9 |- W" U5 U
/ @$ d. g0 t( o( ]3 @# t- u! E( K' CMC_ProgramTorqueRampMotor1(2000,2000);         //设置为转矩模式,设置转矩指令/ Q# b# Q9 [5 W) ]4 \6 Q
调用此函数后hDurationms设置时间内当前转矩变化到hFinalTorque设置的目标转矩
: T: x1 h* w& b+ [0 i  Pvoid MC_ProgramTorqueRampMotor1( int16_t hFinalTorque, uint16_t hDurationms )& v$ C; U* I0 E* }, j: \1 _. ]! d
{
9 `5 Q. A$ L6 u' f" F* e4 R# h        MCI_ExecTorqueRamp( pMCI[M1], hFinalTorque, hDurationms );, X* i! k; q5 o6 g
}2 P3 J2 K( e8 r4 L
mmuuss586 回答时间:2019-1-9 11:34:47
MC_AcknowledgeFaultMotor1();//清除电机故障错误
3 S9 E+ l% c0 y/ R6 M* M+ v, ]0 l8 G调用此函数前,如果电机发生故障。电机停留在FAULT_OVER状态,并保留故障代码。调用后,状态机清除故障代码记录,并恢复到IDLE状态。, D7 k: F3 `+ @, r; A8 _# y9 x
bool MC_AcknowledgeFaultMotor1( void ). H( ~8 Y1 z; g/ ?- `. e
{1 y" G5 v/ d4 N
        return MCI_FaultAcknowledged( pMCI[M1] );
6 T9 M. M0 h6 u( c3 @}( _1 T& S, O6 o4 H0 M

- P" [9 P+ M; M; x' k9 NMotor1Dir=MC_GetImposedDirectionMotor1();        //返回最后一个指令设置的电机方向,如果最终的速度或转矩指令为负数返回-1,否则返回17 U/ \, n4 z* K# F( G; @& V0 p7 {
int16_t MC_GetImposedDirectionMotor1(void)9 r3 J! N6 Q0 b. a" l. f
{
! T2 v$ [9 R9 d# I( m2 r* Y2 U! L0 u        return MCI_GetImposedMotorDirection( pMCI[M1] );2 e, K! X7 o. P0 J
}
9 ]) h& t1 U! M. N- r/ X: a4 ?6 o1 B% x/ N6 O2 f: d% L/ g  w& `

. }9 t8 M9 o, q3 G+ a5 i3 Q  E
mmuuss586 回答时间:2019-1-9 11:06:59
FOC5.3和FOC5.0、FOC5.1、FOC5.2等区别:
3 Y1 G  F8 z2 {* C0 R" Q4 s' ^1、支持更多型号的芯片和板子,比如开始支持STM32G的芯片和对应板子;
% e9 h0 Y7 S3 q) T/ g8 M2、软件界面上有些变化,更简洁。
8 v, q" s. i* G* S0 z6 o. m; w9 a! ^1 B' v; x  f% L
FULL库版本和普通版本的区别:' j# N6 d( U* C$ }7 D7 Q( Q. K
full版本区别:开放了弱磁,mtpa及前馈的源代码。
: d3 n' a8 @0 P% @3 A0 @. Q+ z% m* I. m+ S3 g1 s
FULL版本申请:4 A7 H# |& Y9 H1 N& O9 W8 e; Z( {
到ST官网,用企业邮箱申请。6 R, c+ d* v) F; [8 d1 c1 ?. ~" B) z
mmuuss586 回答时间:2019-1-9 11:07:41
实验平台$ p" |( t& M) @9 S
硬件: P-NUCLEO-IHM001或P-NUCLEO-IHM002开发套件 ;
) Z2 [5 K; c4 N3 n. v+ o 1.png
( T; \# L- K: H" u8 Y" L( h请事先下载安装软件:
# Z' a+ m# N8 [# V/ P+ v1) STM32 PMSM FOC Software Development Kit - MC library(5.3.2及以上版本);$ H# i7 g+ J* S! g3 M
2) STM32CubeMX 4.26及以上版本;1 F3 e* D' q3 |/ |7 d
3) KEIL MDK 5.0 及以上版本。
mmuuss586 回答时间:2019-1-9 11:08:08
按照图示接线:7 d0 S9 R& C3 L' K! z9 y* D, N* N& V
左边接插件接电源(左正右负),接电源之前最好将电源调整到12V左右;
5 J9 U6 X. p& J1 G右边接插件:接电机线(电机线任意接,接错的话电机正反转方向可能是反的);- n; E/ o5 ~+ Z! @/ E

' n/ D6 l! x0 _首次拆开开发套件(板子已预装程序):上电后且接上USB线,按套件底板的蓝色按钮,电机会正常转,再按下电机停止运行(如果电机不能转,请先按下黑色复位按钮,再按蓝色运行按钮)。
1 v$ h- p+ B4 t# _, S0 r4 W) [$ ^( a 2.jpg 9 D0 }# M% u" m! V) x
4 m2 G1 H) p6 E$ B) a! u
mmuuss586 回答时间:2019-1-9 11:08:38
打开MotorControl Workbench软件
: B) a" o3 X6 e5 E$ {  O 3.png
" m2 z) i# y& m8 [$ ]# U
* Q, y- X: [  i" ]% P6 a2 a
mmuuss586 回答时间:2019-1-9 11:09:07
打开如下图所示$ \9 [3 g( W# `( I2 j, _
4.png % ~" P7 n. D, o2 D, J
) b6 [) `( N0 ^) t& y
mmuuss586 回答时间:2019-1-9 11:09:36
MC SDK5.3电机参数识别( l! E$ e& Z3 g' i
使用ST MC Workbench GUI上的专用按钮(Motor  Profiler)或直接打开安装文件运行ST的电机参数测量工具。
0 t$ q5 M$ e1 D; P/ K) g" o 5.png
( x6 V. l7 p* L! y* ?- E4 B' B2 j0 [/ x4 w; Q& m4 A- E) M
mmuuss586 回答时间:2019-1-9 11:10:04
打开后如下图所示
  T% N9 S7 o' Q4 N 6.png
( A5 z5 V  j3 U8 b) r0 V
4 {( _0 d  x2 U3 S) W3 H
mmuuss586 回答时间:2019-1-9 11:10:35
点击SelectBoards选择相应的板子,选择:NUCLEO-F302R8+* ?7 v8 o6 q/ y0 A3 l* {
X-NUCLEO-IHM07M1 3Sh( N7 u. T# X$ _6 e9 x/ l
7.png
9 V/ x. y4 V2 n, n( _( p+ F% G. ^' \8 d$ X& ?4 F4 [4 s. u
mmuuss586 回答时间:2019-1-9 11:11:29
打开后如下图,请选择Connect先连接(如连接不上则按下板子的黑色复位按钮)% |# _9 b# U7 I
8.png
4 [( B) V( p. [( l) N5 c8 Y( V/ e# S& ]7 y1 m) r/ z) Y) P# ^, k
mmuuss586 回答时间:2019-1-9 11:12:04
点击连接后,出现如下图是否需要升级固件(可以选择升级)
8 R$ X$ }3 u7 O 9.png & s$ e7 z& K1 S5 y: {5 P

( |# h) q1 Y3 [- V/ `- t. h
mmuuss586 回答时间:2019-1-9 11:12:27
点升级固件后,如下图并等待升级完成(升级完成后后自动关闭)
3 j  h, Y5 B4 f 10.png ( U( _- j5 s# x: K: u8 K

7 H7 H$ l+ c$ {, a3 v+ q- }+ K/ f
mmuuss586 回答时间:2019-1-9 11:13:03
升级完后如下图所示,将鼠标放到Disconnect上即可看到版本号,在Pole Pairs处输入电机极对数7,其它参数默认(也可修改)
# b4 U+ w0 x3 E% S$ w3 X8 D 11.png
$ o  s: {, v+ B9 C6 K* i& E$ H/ T3 A1 T$ w# v* G: H, ]* Q& E+ L" {
mmuuss586 回答时间:2019-1-9 11:13:52
15.png
$ J6 c, w& B- V
mmuuss586 回答时间:2019-1-9 11:15:25
输入电机极对数7后, Start Profile按钮有效点击即可测试, X* s* t: u2 ~3 U# G9 L& u3 E
电机参数# H! ^5 i  J( t8 T# b% F. p9 N
12.png
1 ~+ e) Q' j6 y0 D$ o, U: T7 @9 z8 x& s: H% i! L! p

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版