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

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

8 V  ^$ ]% _: s

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)免费的编译器编译时,出现了如下的链接错误:
6 s& o* \$ a8 ^3 _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)
8 ^1 Y, ~- s8 \* Kc:/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
2 z: f5 `, d: e' j3 \2 [collect2.exe: error: ld returned 1 exit status9 Y- f3 c% v8 Z- X1 a! @: q
".\NonameF3\NonameF3.elf" - 1 Error(s), 4 Warning(s).
6 j! Z: G* u2 ]8 Q- q) d( B8 Z因为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版本不一样,自然会出错了)3 x8 S, _# N. s
请问有高手能帮忙解决吗?共同学习!
mmuuss586 回答时间:2019-1-9 11:31:39
MC_ProgramSpeedRampMotor1(3000/6,2000); //设置为速度模式,设置速度指令) `; I& o5 t$ O) ?4 Q
调用此函数后hDurationms设置时间内当前速度变化到hFinalSpeed设置的目标速度
; F6 \* G% f! Z, Jvoid MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms )) I: f2 ~) E6 ~& J0 D* S/ X& z
{
$ L  G1 P' T5 ?9 Y3 O- k        MCI_ExecSpeedRamp( pMCI[M1], hFinalSpeed, hDurationms );3 O: F! W" x& d
}
; h; J7 i, b! N" `; O! C
) Y' S1 [9 ^! w5 Z' @4 }4 WMC_ProgramTorqueRampMotor1(2000,2000);         //设置为转矩模式,设置转矩指令
1 y( ]1 R" |' Z5 z& Y1 S调用此函数后hDurationms设置时间内当前转矩变化到hFinalTorque设置的目标转矩
3 i$ O$ Z% m& J" ]0 Z5 R+ p/ R" Mvoid MC_ProgramTorqueRampMotor1( int16_t hFinalTorque, uint16_t hDurationms )
8 Y% r: ]6 f9 b. A{
# v: D$ x" g4 z1 p6 p% I7 D        MCI_ExecTorqueRamp( pMCI[M1], hFinalTorque, hDurationms );
* ~2 N- y+ [" r+ A9 Q}
; n& V( h# @) r1 Q# s  U
mmuuss586 回答时间:2019-1-9 11:34:47
MC_AcknowledgeFaultMotor1();//清除电机故障错误7 T/ _0 j! U* P- O4 Q+ F4 T& z* q1 }+ J
调用此函数前,如果电机发生故障。电机停留在FAULT_OVER状态,并保留故障代码。调用后,状态机清除故障代码记录,并恢复到IDLE状态。  n  V8 D, Z0 W' ^6 d2 ~, r
bool MC_AcknowledgeFaultMotor1( void )7 S1 \6 l5 F$ U, s& b, q6 A
{' e0 B$ K$ A$ z& y2 U
        return MCI_FaultAcknowledged( pMCI[M1] );
" K' N4 N, ]& ^: h7 e}
! r) A# L+ o$ C
5 n" N' P- B1 M% V- F; I9 qMotor1Dir=MC_GetImposedDirectionMotor1();        //返回最后一个指令设置的电机方向,如果最终的速度或转矩指令为负数返回-1,否则返回1! B% b: `$ e' m- ^
int16_t MC_GetImposedDirectionMotor1(void)- e* W( P" ]- `; D, W0 J! e
{
/ Z+ G5 s2 W2 c3 L! i        return MCI_GetImposedMotorDirection( pMCI[M1] );8 [# ~, [/ T: P1 c
}
- F" G$ ~0 M- q5 j/ N6 Z1 x) y  k# x: i) Z4 q% D1 s1 v6 r

$ T. V$ l& w( j. `6 x
mmuuss586 回答时间:2019-1-9 11:06:59
FOC5.3和FOC5.0、FOC5.1、FOC5.2等区别:  J4 d* g" _: V
1、支持更多型号的芯片和板子,比如开始支持STM32G的芯片和对应板子;' I$ K; ?" H4 u! l" b+ \
2、软件界面上有些变化,更简洁。
9 ]0 m+ T. P: }+ _" E
7 C% Y2 b$ G5 F; FFULL库版本和普通版本的区别:" r1 z5 W* s, l5 x' w& w/ ~
full版本区别:开放了弱磁,mtpa及前馈的源代码。1 I- j/ ]9 g* }! l

% }) {% B1 M' w9 j# gFULL版本申请:
% F; F: [% J0 O" n4 h/ v到ST官网,用企业邮箱申请。
7 d/ k3 x" v# U6 p! B0 ~. s
mmuuss586 回答时间:2019-1-9 11:07:41
实验平台
; i' H: d& h9 R" P) y硬件: P-NUCLEO-IHM001或P-NUCLEO-IHM002开发套件 ;
! q: G, _5 U0 e' D7 U. W 1.png 7 ]5 {. t0 x$ T
请事先下载安装软件:
4 m5 [3 T' N) m; N$ S1) STM32 PMSM FOC Software Development Kit - MC library(5.3.2及以上版本);
* {3 I8 E1 Q5 o4 L8 t" v8 s2) STM32CubeMX 4.26及以上版本;: J# Y- @! `$ ?3 \  D5 u
3) KEIL MDK 5.0 及以上版本。
mmuuss586 回答时间:2019-1-9 11:08:08
按照图示接线:- {. f2 D; X+ Q8 i( ^% S2 M/ a. f9 S/ h
左边接插件接电源(左正右负),接电源之前最好将电源调整到12V左右;4 X3 L2 I& }8 ~5 L' F* v$ p
右边接插件:接电机线(电机线任意接,接错的话电机正反转方向可能是反的);
. I1 J3 E0 d- j! `# `5 _) R! x, h0 D7 l( Q, o/ q( z
首次拆开开发套件(板子已预装程序):上电后且接上USB线,按套件底板的蓝色按钮,电机会正常转,再按下电机停止运行(如果电机不能转,请先按下黑色复位按钮,再按蓝色运行按钮)。
- z0 t5 i" E3 w" I! r" l 2.jpg
4 m$ V5 R2 V: M* j. C& d$ Y* F1 L1 L4 ^$ V' x: J
mmuuss586 回答时间:2019-1-9 11:08:38
打开MotorControl Workbench软件6 K* _- N& k4 S  C3 F: Y
3.png
0 o. |2 `. o3 P4 a: t5 o: ]9 F& s- j1 a) g" L0 g; e1 A  _
mmuuss586 回答时间:2019-1-9 11:09:07
打开如下图所示
1 C( g* d) `0 V& W5 ?2 N- E8 m) r 4.png
! |7 W0 |4 C9 P8 K. l
# x/ C5 X. A3 h0 M$ ?( F
mmuuss586 回答时间:2019-1-9 11:09:36
MC SDK5.3电机参数识别
" i; y0 q3 t$ K0 A! u+ }! N使用ST MC Workbench GUI上的专用按钮(Motor  Profiler)或直接打开安装文件运行ST的电机参数测量工具。% l# \) ~4 q( I1 I" Q0 B4 R& }
5.png ! [8 ~1 q* a% ]2 }1 C& c
' z" A- f  }, j6 F( U! o/ j% g
mmuuss586 回答时间:2019-1-9 11:10:04
打开后如下图所示
. ~  f- _% j( Q* P) |. c( k 6.png   T# u8 T' b' v  A+ B. {: I
! d* X3 j7 f  p' S6 @( p
mmuuss586 回答时间:2019-1-9 11:10:35
点击SelectBoards选择相应的板子,选择:NUCLEO-F302R8+
  M" @% N, u; c7 X9 k: j1 w0 {X-NUCLEO-IHM07M1 3Sh
8 b0 Q- f7 ^6 u7 V2 }$ I- I2 T 7.png
$ b( S: M% ~8 [
! x0 v) e9 u$ K. \
mmuuss586 回答时间:2019-1-9 11:11:29
打开后如下图,请选择Connect先连接(如连接不上则按下板子的黑色复位按钮)
  ~9 S$ W+ y) \2 f% S4 [' i 8.png . j9 b% w1 G/ @
+ k' k0 o; U* E  Z
mmuuss586 回答时间:2019-1-9 11:12:04
点击连接后,出现如下图是否需要升级固件(可以选择升级)
7 V% `" F% h# f2 Q 9.png ) o( t8 N. T9 `, d0 {& T# v

# Q# d" ~6 e" \, |8 s) V
mmuuss586 回答时间:2019-1-9 11:12:27
点升级固件后,如下图并等待升级完成(升级完成后后自动关闭)
. k5 D  U! r6 K9 b2 Z8 ^+ j! j 10.png 4 m  T' ^2 y2 I
. {7 b5 m7 j; {# I
mmuuss586 回答时间:2019-1-9 11:13:03
升级完后如下图所示,将鼠标放到Disconnect上即可看到版本号,在Pole Pairs处输入电机极对数7,其它参数默认(也可修改)
' e* w  P! i: Z: u 11.png
- c3 e! @' a) z% o% N; L% W% V1 ^1 _% y3 i/ T# p  ]& @# a0 a8 U: g
mmuuss586 回答时间:2019-1-9 11:13:52
15.png
  l' q5 ?$ ^( {" ]
mmuuss586 回答时间:2019-1-9 11:15:25
输入电机极对数7后, Start Profile按钮有效点击即可测试
2 @/ x' f8 V* ^9 [- n: P0 r电机参数* l+ u1 d2 {4 }- f
12.png
3 p& t1 P, R% r
# X; T. x9 r7 F. I

所属标签

相似分享

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