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

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

: \  W( r7 x# |# F$ r: E

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)免费的编译器编译时,出现了如下的链接错误:" i! ?! C! Z% d3 a
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(sto_pll_speed_pos_fdbk.o): .symtab local symbol at index 474 (>= sh_info of 229)5 Z7 |8 E* _% j& c: j6 m8 Y/ v- g
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 value0 k3 p# j, j3 L% N# W, Q
collect2.exe: error: ld returned 1 exit status
  K" k) G( L* c5 V; L' Z8 ~# u% F".\NonameF3\NonameF3.elf" - 1 Error(s), 4 Warning(s).! m& w/ E) 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 }+ H9 I" n* c3 V; C, T
请问有高手能帮忙解决吗?共同学习!
mmuuss586 回答时间:2019-1-9 11:31:39
MC_ProgramSpeedRampMotor1(3000/6,2000); //设置为速度模式,设置速度指令
, a) J* D. I) a; M% x调用此函数后hDurationms设置时间内当前速度变化到hFinalSpeed设置的目标速度
* c/ b1 N! u2 z8 G0 k. z* M; nvoid MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms )
# ]4 J' Y2 v& H$ x6 `! h' `7 G{" ?- T0 X; R( K/ J: A
        MCI_ExecSpeedRamp( pMCI[M1], hFinalSpeed, hDurationms );
* ~! W& J2 ]' j' @3 M; F}
  L: G' w' G( |0 k& P4 G7 ~5 {: Z% d$ K8 r( B
MC_ProgramTorqueRampMotor1(2000,2000);         //设置为转矩模式,设置转矩指令7 U/ N: {5 W$ P- T
调用此函数后hDurationms设置时间内当前转矩变化到hFinalTorque设置的目标转矩
4 B+ ~' D1 b2 c0 `9 Q! U# q+ f% Tvoid MC_ProgramTorqueRampMotor1( int16_t hFinalTorque, uint16_t hDurationms )
* i* X# o, u  z" c9 i{
6 O) p% M) e8 d8 G& H, r0 b6 h% [        MCI_ExecTorqueRamp( pMCI[M1], hFinalTorque, hDurationms );
6 z; z- D$ ^- ~- }# l7 k7 }; h7 J}
$ F' e: L7 P6 t3 N3 p) a3 m; V1 i
mmuuss586 回答时间:2019-1-9 11:34:47
MC_AcknowledgeFaultMotor1();//清除电机故障错误
# g7 o& x! g! R1 ~- q' W% j; W调用此函数前,如果电机发生故障。电机停留在FAULT_OVER状态,并保留故障代码。调用后,状态机清除故障代码记录,并恢复到IDLE状态。
# [: Z2 U6 J. ~% ?) wbool MC_AcknowledgeFaultMotor1( void )
1 K) n2 y0 k1 S8 A5 [% H. b  I4 Y{
* z0 G# f! S7 a( T9 F( A/ {2 p        return MCI_FaultAcknowledged( pMCI[M1] );# G' ~# C% }; p5 u9 W8 }/ N
}+ t" m2 m3 t) F! ~

' j" W% P' O. t: x) VMotor1Dir=MC_GetImposedDirectionMotor1();        //返回最后一个指令设置的电机方向,如果最终的速度或转矩指令为负数返回-1,否则返回1
" F# \8 N! }, A  c7 z! Eint16_t MC_GetImposedDirectionMotor1(void)
' v* k9 @" p! z3 q{
6 V9 t3 \1 J0 h: o! O, X        return MCI_GetImposedMotorDirection( pMCI[M1] );2 p' Y8 ^: C; H* e8 z- k4 e
}0 ?" u7 z) v0 C) A0 J4 d
& A0 J* K; V- o7 ?. n# ^" t

4 _4 Z  d5 x. c& n
mmuuss586 回答时间:2019-1-9 11:06:59
FOC5.3和FOC5.0、FOC5.1、FOC5.2等区别:
( A  M6 }- H- G! s1 _  ?" W3 ~1、支持更多型号的芯片和板子,比如开始支持STM32G的芯片和对应板子;; C5 d" F% m6 q0 K" i1 U9 a
2、软件界面上有些变化,更简洁。$ L, d: l% y+ U: }( `& H$ K" I  a0 v
6 w0 z  k7 C" o
FULL库版本和普通版本的区别:/ H. N3 X' X: v4 X; O0 y2 Q5 _% S
full版本区别:开放了弱磁,mtpa及前馈的源代码。
* G+ F! t, c3 B! [
7 X& v, h9 R! tFULL版本申请:% ], U1 h! V+ |* }3 y/ c. Q( K
到ST官网,用企业邮箱申请。; ^7 g4 R8 O7 f& `9 S  Q9 b% Y
mmuuss586 回答时间:2019-1-9 11:07:41
实验平台/ u9 S9 c5 |. x4 R% F! g- p
硬件: P-NUCLEO-IHM001或P-NUCLEO-IHM002开发套件 ;
9 s% U2 M# z/ S$ ^5 e( T 1.png
7 P2 z% b9 h% Y8 d& f请事先下载安装软件:
6 K% G, `: N+ N5 c8 m8 Y' ^) t( f' `9 B1) STM32 PMSM FOC Software Development Kit - MC library(5.3.2及以上版本);
7 q0 m7 Q+ K" w2) STM32CubeMX 4.26及以上版本;
2 e5 b' {5 Q" J# h" k1 X1 x# u3) KEIL MDK 5.0 及以上版本。
mmuuss586 回答时间:2019-1-9 11:08:08
按照图示接线:
; o4 G& N8 a7 [* T左边接插件接电源(左正右负),接电源之前最好将电源调整到12V左右;) K/ b/ f' E! y% g0 P! y
右边接插件:接电机线(电机线任意接,接错的话电机正反转方向可能是反的);) m5 |6 x. q8 Q5 P# p* E
. l% i, y2 g9 s9 P: c
首次拆开开发套件(板子已预装程序):上电后且接上USB线,按套件底板的蓝色按钮,电机会正常转,再按下电机停止运行(如果电机不能转,请先按下黑色复位按钮,再按蓝色运行按钮)。
! S+ l8 ~* c% w" q0 E  t- W' P 2.jpg
0 t, s5 m/ b: P' l% Z: z! o2 E9 H, |
mmuuss586 回答时间:2019-1-9 11:08:38
打开MotorControl Workbench软件: e; R% V+ F; _$ W/ S
3.png
& ^/ n. r6 U! q) n  W$ Z# X1 b* p5 ^; d7 r
mmuuss586 回答时间:2019-1-9 11:09:07
打开如下图所示: B4 O2 r+ Z) g- z: B
4.png
$ H) x7 M3 @6 i! C( g: A2 p7 v+ o. o7 w/ e% T& B1 J: v( f
mmuuss586 回答时间:2019-1-9 11:09:36
MC SDK5.3电机参数识别
, A# w+ z. `/ N, Q8 Z& d/ s* W+ R使用ST MC Workbench GUI上的专用按钮(Motor  Profiler)或直接打开安装文件运行ST的电机参数测量工具。& ]0 i8 _4 G, v, I! E+ ?3 ?$ j+ M5 _( W
5.png + x* v" }3 q& m& G* r7 S8 ?+ C8 g

# X. C5 i; |5 a3 o) p$ o2 {+ X4 I3 D3 X
mmuuss586 回答时间:2019-1-9 11:10:04
打开后如下图所示
2 g2 K  i, a) u3 \; w* ]$ f 6.png ! i+ a! G6 ~# j/ v
- ?- O% m: z- \# `0 |7 l
mmuuss586 回答时间:2019-1-9 11:10:35
点击SelectBoards选择相应的板子,选择:NUCLEO-F302R8+
% I0 ^4 ?! U7 _+ a3 p2 xX-NUCLEO-IHM07M1 3Sh$ E  y$ I0 g0 t/ ]$ U+ W9 |
7.png 1 O$ @6 B: T8 t6 ]4 C
: P' x# y$ _9 R- _6 h- ~3 c
mmuuss586 回答时间:2019-1-9 11:11:29
打开后如下图,请选择Connect先连接(如连接不上则按下板子的黑色复位按钮)
& r' @  G5 j& m. o5 a/ o5 {+ X 8.png
$ p( R: n/ s- l7 R% B) [$ l* Q
6 z2 K8 q6 k; @0 G
mmuuss586 回答时间:2019-1-9 11:12:04
点击连接后,出现如下图是否需要升级固件(可以选择升级)2 a9 v4 P$ |9 i/ O" R
9.png & N( o: Q2 F; {3 r0 C; j

  X* [% u: K2 Q$ x
mmuuss586 回答时间:2019-1-9 11:12:27
点升级固件后,如下图并等待升级完成(升级完成后后自动关闭)) h% ?# z. Q' h1 R8 u( r/ J$ \# f
10.png
4 _6 z% ~" F# u
8 c+ _4 L; m3 S# k) T6 D+ w& [
mmuuss586 回答时间:2019-1-9 11:13:03
升级完后如下图所示,将鼠标放到Disconnect上即可看到版本号,在Pole Pairs处输入电机极对数7,其它参数默认(也可修改)- |1 y4 j; E- c9 n/ k2 \( T7 K3 Y
11.png 0 T5 I6 W: t% u9 o4 ^3 N; s

# D- n3 ^9 W+ y0 b- C. w! K' a# y2 Q
mmuuss586 回答时间:2019-1-9 11:13:52
15.png
, {- [! {- D9 [% T5 k8 a" s8 d
mmuuss586 回答时间:2019-1-9 11:15:25
输入电机极对数7后, Start Profile按钮有效点击即可测试
/ M8 i* U  M& o7 V0 W电机参数
0 t9 g- f' A" q7 P 12.png 2 `; b+ m# F/ ^* @2 w/ S( o

# m0 j5 K5 K  {& ]

所属标签

相似分享

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