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

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

& U; `2 N7 h$ ~* l  D

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)免费的编译器编译时,出现了如下的链接错误:
& ~8 Q, z8 o- i7 i2 @2 }, B+ qc:/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)# u) W" L' {  S' V
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) X2 C/ n( n# ?2 l* K% s
collect2.exe: error: ld returned 1 exit status+ W' Y0 _3 C) N1 w; p* K2 w
".\NonameF3\NonameF3.elf" - 1 Error(s), 4 Warning(s).
' e& V6 B2 w' U5 j9 w因为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版本不一样,自然会出错了)
# N2 I/ p  A- W! E4 K2 [请问有高手能帮忙解决吗?共同学习!
mmuuss586 回答时间:2019-1-9 11:31:39
MC_ProgramSpeedRampMotor1(3000/6,2000); //设置为速度模式,设置速度指令
5 q6 @9 B: M, q6 U. |7 {1 ^6 U  z* ^调用此函数后hDurationms设置时间内当前速度变化到hFinalSpeed设置的目标速度
3 E0 ?& `4 ^* T3 C/ y# u# ?8 uvoid MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms )5 t* g" k  ?9 u$ ?4 L
{
0 t4 G2 u( |+ I1 O$ V& A7 g/ c        MCI_ExecSpeedRamp( pMCI[M1], hFinalSpeed, hDurationms );! H$ y8 v' I. v) R* s2 G
}) ~" k5 ~& ]9 J* L& O6 e

" a6 @- L* V$ H" E1 BMC_ProgramTorqueRampMotor1(2000,2000);         //设置为转矩模式,设置转矩指令2 a, {% H; d  D& ?4 {' _# T+ r; X
调用此函数后hDurationms设置时间内当前转矩变化到hFinalTorque设置的目标转矩
+ \( Z: X- E+ k" H8 [) Rvoid MC_ProgramTorqueRampMotor1( int16_t hFinalTorque, uint16_t hDurationms ). S( J, z: V& d- h) ^
{9 S. T7 T' ^( l' C' M# N
        MCI_ExecTorqueRamp( pMCI[M1], hFinalTorque, hDurationms );' d9 G8 o  C: i( q0 O
}
: X: G- B2 T4 L% o% Y% `4 u" H
mmuuss586 回答时间:2019-1-9 11:34:47
MC_AcknowledgeFaultMotor1();//清除电机故障错误
6 \) |) Y; l! V- B6 ^9 m# ]调用此函数前,如果电机发生故障。电机停留在FAULT_OVER状态,并保留故障代码。调用后,状态机清除故障代码记录,并恢复到IDLE状态。) |8 F1 _$ T6 ?. X' [- z
bool MC_AcknowledgeFaultMotor1( void )
& n6 y1 M3 ?; x/ F& n9 Q: r% V! t{
, j; h$ {& }! i( z/ t* H+ C        return MCI_FaultAcknowledged( pMCI[M1] );$ C) Z6 w/ f) s) K- r$ u
}& w" ?$ s& {; `& s$ g# P1 ?. N

8 v0 R8 Q' {, w) a; zMotor1Dir=MC_GetImposedDirectionMotor1();        //返回最后一个指令设置的电机方向,如果最终的速度或转矩指令为负数返回-1,否则返回1
# X$ p7 l8 r; Xint16_t MC_GetImposedDirectionMotor1(void)
- p4 J  u" @, D/ n{" O, n+ r4 G1 m6 f( v1 B( ~
        return MCI_GetImposedMotorDirection( pMCI[M1] );) w+ N. E3 B) J  L; m- e9 n" @
}
/ k- J% h! Y4 v; S3 U. {" ~& l% w+ P" g2 E8 B
. |' ?. A8 e2 Y2 z
mmuuss586 回答时间:2019-1-9 11:06:59
FOC5.3和FOC5.0、FOC5.1、FOC5.2等区别:
% k/ G1 g4 W# V% |  x1、支持更多型号的芯片和板子,比如开始支持STM32G的芯片和对应板子;/ @" R* r# `' j$ K7 U) P! q& |
2、软件界面上有些变化,更简洁。
8 N0 k# h" G! w0 a: W* \6 X* x- W7 j* w  E. Q- s
FULL库版本和普通版本的区别:
3 k8 E. v" z/ F7 J; Q: n8 Mfull版本区别:开放了弱磁,mtpa及前馈的源代码。
* |- j' H9 N' L+ Q. |1 Q6 Q& \! }! E/ n2 A
FULL版本申请:- B( A$ h* ^/ F" k
到ST官网,用企业邮箱申请。
# G- f9 d, r' q4 h- \7 ]
mmuuss586 回答时间:2019-1-9 11:07:41
实验平台; T) y4 E1 L" T' X- P* }
硬件: P-NUCLEO-IHM001或P-NUCLEO-IHM002开发套件 ;
( ?3 k, L5 L' ]  y0 A3 @; \ 1.png
' G9 K- ?# r$ I请事先下载安装软件:; e4 E0 W% i0 c8 W7 b# F
1) STM32 PMSM FOC Software Development Kit - MC library(5.3.2及以上版本);8 P% V# ?& p  t
2) STM32CubeMX 4.26及以上版本;
/ ?2 O+ ~& P0 `- E: j! @* n- w4 g3) KEIL MDK 5.0 及以上版本。
mmuuss586 回答时间:2019-1-9 11:08:08
按照图示接线:; _+ ?$ S+ x# D' Z9 j8 ^6 W" p; `
左边接插件接电源(左正右负),接电源之前最好将电源调整到12V左右;
3 @; s1 y" r; }+ ]3 B右边接插件:接电机线(电机线任意接,接错的话电机正反转方向可能是反的);
  q. f, j2 q8 O* z+ b% y9 U6 r# a- Y# ^7 Q. M9 I
首次拆开开发套件(板子已预装程序):上电后且接上USB线,按套件底板的蓝色按钮,电机会正常转,再按下电机停止运行(如果电机不能转,请先按下黑色复位按钮,再按蓝色运行按钮)。+ V6 N9 z: h7 n/ v1 ~4 ~1 ^6 j
2.jpg
8 H5 x* B2 |1 b: O5 m& A4 U+ F" ~, w! G' u4 h
mmuuss586 回答时间:2019-1-9 11:08:38
打开MotorControl Workbench软件
3 j2 }& G7 s8 ?* P; G# \6 f 3.png 6 L( L$ Z6 g, N+ l, J5 N
/ B- `: }4 O/ J( ]; N! B6 v7 T
mmuuss586 回答时间:2019-1-9 11:09:07
打开如下图所示
0 P. ?  v6 c7 d+ n  L/ d% g( L, b 4.png
, P1 w: o0 i5 d  y9 N, j9 {& f6 }+ a  a* B6 R
mmuuss586 回答时间:2019-1-9 11:09:36
MC SDK5.3电机参数识别9 c5 T% o6 w: q- d, L* }
使用ST MC Workbench GUI上的专用按钮(Motor  Profiler)或直接打开安装文件运行ST的电机参数测量工具。$ w  ?9 g- N" {; d# h$ y' K, c
5.png
  u, T9 c* v% C
1 z; u/ {( K8 w9 T5 W' Q
mmuuss586 回答时间:2019-1-9 11:10:04
打开后如下图所示
1 H/ z1 Z9 @) c/ d 6.png
4 \0 I+ ^$ M  R% V
& m% e$ `9 W/ F9 g; T1 v
mmuuss586 回答时间:2019-1-9 11:10:35
点击SelectBoards选择相应的板子,选择:NUCLEO-F302R8+. |3 z  r' r& E  ^- K0 C8 X2 e
X-NUCLEO-IHM07M1 3Sh
& P1 L8 d# @9 `2 N9 Q6 Q1 r 7.png : p& Q, U1 y3 ?" f7 l

6 \2 N: a5 h2 m
mmuuss586 回答时间:2019-1-9 11:11:29
打开后如下图,请选择Connect先连接(如连接不上则按下板子的黑色复位按钮)
6 S9 G+ t" ?% b2 s# ~, m 8.png
+ s' R5 B. W0 Z  j2 d
0 @7 t0 h/ e' J% ?& ?+ o
mmuuss586 回答时间:2019-1-9 11:12:04
点击连接后,出现如下图是否需要升级固件(可以选择升级)5 ~$ u9 q* Y8 B+ Z
9.png
0 C& {2 W7 Y6 j2 k$ k) u& q0 @& M6 L& {( R" ]% f' \: k# h, g* h+ c7 b+ @
mmuuss586 回答时间:2019-1-9 11:12:27
点升级固件后,如下图并等待升级完成(升级完成后后自动关闭)1 m/ d/ [& w7 E" R
10.png
& q( T5 ?! `! H! Y1 Q. r( N/ c* H  D: P; B
mmuuss586 回答时间:2019-1-9 11:13:03
升级完后如下图所示,将鼠标放到Disconnect上即可看到版本号,在Pole Pairs处输入电机极对数7,其它参数默认(也可修改)/ M( b( x5 W7 p7 s( d
11.png 8 b1 k  {# F3 {& \* y

4 P2 r3 t' t3 G" m. s* Z2 r
mmuuss586 回答时间:2019-1-9 11:13:52
15.png
/ Q9 U$ _7 o5 F+ Q' U; l
mmuuss586 回答时间:2019-1-9 11:15:25
输入电机极对数7后, Start Profile按钮有效点击即可测试
% |+ M7 \/ r& X! `$ M0 f0 s电机参数
& z, S, i9 b' o. f 12.png
4 J, _8 r* E* H% O. |' G. e
, o! _5 s3 {( D4 C& C# d/ Y

所属标签

相似分享

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