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

基于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

1 `8 o" _# ?0 W

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)免费的编译器编译时,出现了如下的链接错误:
" @, B  S) c1 z0 e0 ^7 S5 Lc:/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)
* f$ ]/ @" }$ f+ v" P6 `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/ t4 e* `0 Z+ P. [( n! \
collect2.exe: error: ld returned 1 exit status& _) z" w( T/ Y' f) f
".\NonameF3\NonameF3.elf" - 1 Error(s), 4 Warning(s).9 M5 i, i, O# y( d# M( t  u
因为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版本不一样,自然会出错了)5 P. e: Q, J+ w# @: u
请问有高手能帮忙解决吗?共同学习!
mmuuss586 回答时间:2019-1-9 11:31:39
MC_ProgramSpeedRampMotor1(3000/6,2000); //设置为速度模式,设置速度指令0 A: a) ~  b7 k. ]$ |+ [
调用此函数后hDurationms设置时间内当前速度变化到hFinalSpeed设置的目标速度
% q  b# u/ _2 [* h5 ~  u, f, kvoid MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms )) L, @7 T0 a4 W; C
{
" U, D" Z! H0 K6 O        MCI_ExecSpeedRamp( pMCI[M1], hFinalSpeed, hDurationms );
: Z; E5 g6 n3 C/ w5 e}
- }. r$ U. z7 U. I# s# {1 @- l
9 V4 I8 m% n- w- uMC_ProgramTorqueRampMotor1(2000,2000);         //设置为转矩模式,设置转矩指令
& E  K: r6 ]8 ]* m4 p4 Y; O调用此函数后hDurationms设置时间内当前转矩变化到hFinalTorque设置的目标转矩
" B6 N! E/ F& L* o1 I# H3 f( h" Z$ dvoid MC_ProgramTorqueRampMotor1( int16_t hFinalTorque, uint16_t hDurationms )
2 x/ Q' y) O+ T$ ^{( R3 N" `+ n$ y" g0 @
        MCI_ExecTorqueRamp( pMCI[M1], hFinalTorque, hDurationms );
6 C9 {( H; J9 G$ D( F- _- U+ }* t}0 a& I% y* R8 @2 b  A1 E. |
mmuuss586 回答时间:2019-1-9 11:34:47
MC_AcknowledgeFaultMotor1();//清除电机故障错误- M" L' t. a+ \/ Z9 o3 ^5 X
调用此函数前,如果电机发生故障。电机停留在FAULT_OVER状态,并保留故障代码。调用后,状态机清除故障代码记录,并恢复到IDLE状态。
5 h) J5 O! m9 D7 Ebool MC_AcknowledgeFaultMotor1( void )
3 f; X$ v" p; p  T{( N' W9 {* d& P/ C
        return MCI_FaultAcknowledged( pMCI[M1] );
$ m* f6 N; R" ]7 w}. y- U6 v6 k3 d0 m. R0 |

, K: z. m* k- s" S. ?2 v- mMotor1Dir=MC_GetImposedDirectionMotor1();        //返回最后一个指令设置的电机方向,如果最终的速度或转矩指令为负数返回-1,否则返回1$ L$ ~9 x% ?, d" P/ D0 C) \
int16_t MC_GetImposedDirectionMotor1(void)
) d# G" i1 g3 q, B. S{
" N# B1 }9 R$ ]! v8 U        return MCI_GetImposedMotorDirection( pMCI[M1] );# i/ d& n" R+ W: Y3 D
}
1 j( _8 U. U2 y* x# a" z4 R% N8 _1 Y, `' h' b. j$ w
9 u* F# p) U) F5 q/ f
mmuuss586 回答时间:2019-1-9 11:06:59
FOC5.3和FOC5.0、FOC5.1、FOC5.2等区别:/ g) q8 A% f" x: B. w1 O
1、支持更多型号的芯片和板子,比如开始支持STM32G的芯片和对应板子;- y' G4 `$ y# _9 c# N7 e
2、软件界面上有些变化,更简洁。8 F7 U/ L, v1 s8 I4 e
7 l# g  c. D) ]+ e5 V7 A8 f% p6 i
FULL库版本和普通版本的区别:# C$ W6 E) ?9 r# T
full版本区别:开放了弱磁,mtpa及前馈的源代码。
9 b) K. p8 Z$ M3 E8 q' [# e5 Y) a, F( s, X+ B/ \. Q# f
FULL版本申请:
  T$ h( L( e4 r" A" M4 W! _到ST官网,用企业邮箱申请。
4 i( x! V  N  |
mmuuss586 回答时间:2019-1-9 11:07:41
实验平台/ \8 B  e; y  R& v" |
硬件: P-NUCLEO-IHM001或P-NUCLEO-IHM002开发套件 ;
" t2 E- S5 }9 y" f 1.png , x5 v/ Q1 S/ D0 G% w& Z
请事先下载安装软件:2 V8 r. l4 m& P: J* P" N
1) STM32 PMSM FOC Software Development Kit - MC library(5.3.2及以上版本);
" D5 e, s' M2 K* |, Z$ M2) STM32CubeMX 4.26及以上版本;, l6 T; H) j% T9 Z
3) KEIL MDK 5.0 及以上版本。
mmuuss586 回答时间:2019-1-9 11:08:08
按照图示接线:
0 l+ I4 L; Y3 Q+ Q6 n! F左边接插件接电源(左正右负),接电源之前最好将电源调整到12V左右;
, r3 f+ }7 u4 D/ n3 R$ r# Q7 [; O右边接插件:接电机线(电机线任意接,接错的话电机正反转方向可能是反的);
7 g3 `6 {7 U* H1 u! z) t# t+ Z/ \6 p- e9 s8 q" T( m
首次拆开开发套件(板子已预装程序):上电后且接上USB线,按套件底板的蓝色按钮,电机会正常转,再按下电机停止运行(如果电机不能转,请先按下黑色复位按钮,再按蓝色运行按钮)。
1 E, T$ |- g9 Q. d, d0 ~7 X; x 2.jpg * K+ e: b2 x" i* q+ o. Y5 X- A' u9 s
, V$ o  r2 L' z# y8 K0 V2 g
mmuuss586 回答时间:2019-1-9 11:08:38
打开MotorControl Workbench软件( e3 R3 P+ O4 E6 @/ V
3.png
, g' J  @" u3 v/ |; x- V
/ l7 h" ~- {0 w1 E4 Z" Y! H& ^
mmuuss586 回答时间:2019-1-9 11:09:07
打开如下图所示
& a4 n) E& o+ b# E/ i 4.png . ?/ ?6 f6 V! P( F5 j4 L1 {
, Z, A( N) ~% F8 G5 ?0 S$ A/ ~
mmuuss586 回答时间:2019-1-9 11:09:36
MC SDK5.3电机参数识别) n% q2 w$ W9 ^
使用ST MC Workbench GUI上的专用按钮(Motor  Profiler)或直接打开安装文件运行ST的电机参数测量工具。9 E& m' h8 s, p4 I
5.png
' }% ~3 b! k; Q9 _5 }6 ~
& V  {" Z. F8 J: O3 ^
mmuuss586 回答时间:2019-1-9 11:10:04
打开后如下图所示% Q% }2 d) C4 @% c3 L4 L# q( e
6.png , _( w5 \) x+ O' Y1 e
5 w% M6 s7 f  W4 b  ~
mmuuss586 回答时间:2019-1-9 11:10:35
点击SelectBoards选择相应的板子,选择:NUCLEO-F302R8+% C, ~2 i. ]( d. S& V
X-NUCLEO-IHM07M1 3Sh
  ~/ r# @' k7 b6 m 7.png
- R# c0 Z7 H5 S7 X. U+ @- l  _9 B( v0 f& k( j% ?6 R& N: y
mmuuss586 回答时间:2019-1-9 11:11:29
打开后如下图,请选择Connect先连接(如连接不上则按下板子的黑色复位按钮); k+ {! I. u: _& g( w
8.png
! r' S. t! U/ B2 D5 ]) G$ K. }! f) _7 [2 A# X. a/ B7 L7 z, Z
mmuuss586 回答时间:2019-1-9 11:12:04
点击连接后,出现如下图是否需要升级固件(可以选择升级)
# x3 w( D$ S' Z- O6 K% Q$ F 9.png " Z8 e% V. t6 ~( L! O! c, M

& f" L! d; V8 C9 C) Q# F3 b5 O/ K( v
mmuuss586 回答时间:2019-1-9 11:12:27
点升级固件后,如下图并等待升级完成(升级完成后后自动关闭)8 m" A% A* J% ~2 j! c! h9 T; o+ ?
10.png
% @" w& S/ ?0 X7 \2 m! N. A! n/ n/ f% G3 P" u6 g: k
mmuuss586 回答时间:2019-1-9 11:13:03
升级完后如下图所示,将鼠标放到Disconnect上即可看到版本号,在Pole Pairs处输入电机极对数7,其它参数默认(也可修改)
/ L7 k5 O4 c! \ 11.png . z$ H3 Q: c8 C+ H+ r, f/ }

5 Z# t3 v7 I% z3 I! d! ~8 \1 o5 }
mmuuss586 回答时间:2019-1-9 11:13:52
15.png ; d5 d; z1 k- q1 p
mmuuss586 回答时间:2019-1-9 11:15:25
输入电机极对数7后, Start Profile按钮有效点击即可测试
2 Q" t: y+ q9 ]5 h: X电机参数3 E2 d6 k1 f6 F; H0 a+ J
12.png / F$ d0 b2 k) ^1 ]) i- F) E
4 {' I5 N* K( o. N' I2 ?* d2 ?

所属标签

相似分享

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