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

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

# O+ I, l6 F# A7 `# i( U4 z' e7 }

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)免费的编译器编译时,出现了如下的链接错误:7 z* s' ]' ~1 n  Y) F
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)
3 l( q, y. w" j6 ~: h. ~$ vc:/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
  X% w" ^: h( Y  A+ ~5 Xcollect2.exe: error: ld returned 1 exit status
3 y" f7 P- D% ]; L' e".\NonameF3\NonameF3.elf" - 1 Error(s), 4 Warning(s).
; {# q. }" E# H( F" V* p- Y因为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版本不一样,自然会出错了)
% P. V0 c/ q3 h8 {$ S3 u5 ~请问有高手能帮忙解决吗?共同学习!
mmuuss586 回答时间:2019-1-9 11:31:39
MC_ProgramSpeedRampMotor1(3000/6,2000); //设置为速度模式,设置速度指令% M3 N% F. m! o" o8 T
调用此函数后hDurationms设置时间内当前速度变化到hFinalSpeed设置的目标速度
8 Y: s# j0 ~" W" Gvoid MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms )5 y& z- e; b9 ~4 V. O/ F* y
{
8 |* m: m7 ?: [        MCI_ExecSpeedRamp( pMCI[M1], hFinalSpeed, hDurationms );8 p" ?) |% Q1 b  h- o2 j+ }
}
( L. s' ~- g$ s/ T' F/ {
) N+ X: v' v3 g2 k+ \MC_ProgramTorqueRampMotor1(2000,2000);         //设置为转矩模式,设置转矩指令
, T0 f* S, @/ M+ f调用此函数后hDurationms设置时间内当前转矩变化到hFinalTorque设置的目标转矩
7 |. z- r) g0 d  \1 `- Vvoid MC_ProgramTorqueRampMotor1( int16_t hFinalTorque, uint16_t hDurationms )' _' _3 v, w1 C. d
{+ p4 b- G+ _8 U7 A
        MCI_ExecTorqueRamp( pMCI[M1], hFinalTorque, hDurationms );
5 K$ m7 w$ B& X* X. B# Q}  ~! _! F/ `# G$ r# D
mmuuss586 回答时间:2019-1-9 11:34:47
MC_AcknowledgeFaultMotor1();//清除电机故障错误
% ]; i, `2 E" N4 x# o调用此函数前,如果电机发生故障。电机停留在FAULT_OVER状态,并保留故障代码。调用后,状态机清除故障代码记录,并恢复到IDLE状态。
+ z# ^& v9 W3 f- t' nbool MC_AcknowledgeFaultMotor1( void )% V) _# f8 {5 z5 _& S6 s+ J
{% w) {' z$ b9 ~1 w1 x
        return MCI_FaultAcknowledged( pMCI[M1] );' S5 y3 Y5 H+ y8 o. [" Z# ]' b6 D* L
}( F' Q" Y: V) y, p+ D
; P( d' _4 |4 {# R6 `+ i9 R* B. E
Motor1Dir=MC_GetImposedDirectionMotor1();        //返回最后一个指令设置的电机方向,如果最终的速度或转矩指令为负数返回-1,否则返回1
! A* S  }9 K$ {3 S& \5 Lint16_t MC_GetImposedDirectionMotor1(void)# L- a% k8 v5 |
{& Y9 }/ L  ?3 c3 K: r& j4 k5 A
        return MCI_GetImposedMotorDirection( pMCI[M1] );
0 b; J2 H6 B  s  E}
" H2 }- S, `9 u6 J
, V! M+ b1 e' a1 j  v8 Z3 p* Z- Z& O& M
mmuuss586 回答时间:2019-1-9 11:06:59
FOC5.3和FOC5.0、FOC5.1、FOC5.2等区别:
7 u, t! q8 b, M1、支持更多型号的芯片和板子,比如开始支持STM32G的芯片和对应板子;3 m% @$ y1 ~' n' u$ ~6 q9 |2 H
2、软件界面上有些变化,更简洁。# L( Z8 e( {! j, x" N* A) t
& e9 A7 n( C/ O9 `8 G, @
FULL库版本和普通版本的区别:# ~% G  t+ ]8 `# G$ O
full版本区别:开放了弱磁,mtpa及前馈的源代码。8 d5 N& s! _3 S+ q6 x; G; n

( P: n2 e) X6 Z& gFULL版本申请:
; t6 z  Z  N& {% }) r到ST官网,用企业邮箱申请。, X1 J+ ?( V' p2 H( P& h
mmuuss586 回答时间:2019-1-9 11:07:41
实验平台
& |8 ]. d: [# F( i& r: h- X硬件: P-NUCLEO-IHM001或P-NUCLEO-IHM002开发套件 ;1 [' e# W0 M# L& F  L
1.png + ?, F3 `* R: N- @. Y) o3 Y
请事先下载安装软件:. I. b  K2 x) I- V8 v
1) STM32 PMSM FOC Software Development Kit - MC library(5.3.2及以上版本);1 W: r  S" A3 E3 [0 V$ E9 {+ V
2) STM32CubeMX 4.26及以上版本;
0 V; [2 a) d" ?; M3 U, z) \$ C3) KEIL MDK 5.0 及以上版本。
mmuuss586 回答时间:2019-1-9 11:08:08
按照图示接线:
  X$ x# x/ q- T( w$ a  O左边接插件接电源(左正右负),接电源之前最好将电源调整到12V左右;0 r- M7 @9 t0 x7 r- x
右边接插件:接电机线(电机线任意接,接错的话电机正反转方向可能是反的);
) w( b8 I% L  A3 c; u/ @: g0 \
: \) M! ~8 M8 i& f$ }5 c# ?- E7 b首次拆开开发套件(板子已预装程序):上电后且接上USB线,按套件底板的蓝色按钮,电机会正常转,再按下电机停止运行(如果电机不能转,请先按下黑色复位按钮,再按蓝色运行按钮)。
9 g6 q  `6 m0 I5 I7 z% _  a 2.jpg 5 I% a, K% k+ P- ^
' ?; j" P# F( p$ X5 v: _, k# l
mmuuss586 回答时间:2019-1-9 11:08:38
打开MotorControl Workbench软件$ t  \4 R0 h9 o. _
3.png
& a; D! S# R7 D, o
% R" y/ L9 M% X9 V! s" l' u1 X' E6 W. ^
mmuuss586 回答时间:2019-1-9 11:09:07
打开如下图所示
2 [/ f7 \9 q" Q# `; ^" Q1 ~ 4.png - d- }% F# a' x& R$ L7 @$ i& f' C
6 Z, X  q2 p0 s. t4 G
mmuuss586 回答时间:2019-1-9 11:09:36
MC SDK5.3电机参数识别& Y8 N) H! q! V% R! f
使用ST MC Workbench GUI上的专用按钮(Motor  Profiler)或直接打开安装文件运行ST的电机参数测量工具。
1 F! r1 ?8 F. f+ y0 Z 5.png
2 @  g0 d0 \3 P! A* G( q; m# n+ Y- q# T0 s# G
mmuuss586 回答时间:2019-1-9 11:10:04
打开后如下图所示4 C, G( X' I; e, J. `
6.png
' ^% c: s. z( Y* k
& x- K" W! i6 @0 c# b3 T* `/ _- O
mmuuss586 回答时间:2019-1-9 11:10:35
点击SelectBoards选择相应的板子,选择:NUCLEO-F302R8+. k/ Q6 O' K- y9 _! m5 E0 w+ }5 I
X-NUCLEO-IHM07M1 3Sh( p0 l; k- H$ \0 y) r0 ]
7.png 7 A6 t/ ~/ M5 P1 Q/ o7 T4 e0 ~1 {6 t+ ~8 i
0 n4 Z- t! W2 }5 c9 x. E
mmuuss586 回答时间:2019-1-9 11:11:29
打开后如下图,请选择Connect先连接(如连接不上则按下板子的黑色复位按钮)' O. V: Y6 a! l+ z# l
8.png
7 _# h5 C! R, K" d3 C+ s6 U
: T. G1 y4 n; I+ h- n$ W; Z1 P
mmuuss586 回答时间:2019-1-9 11:12:04
点击连接后,出现如下图是否需要升级固件(可以选择升级)
, a5 w! t- ?6 T& ?* \  S( k 9.png ; x' e  T3 V) X* j+ v8 x+ S. e
$ }/ e6 `- l' B" f, S
mmuuss586 回答时间:2019-1-9 11:12:27
点升级固件后,如下图并等待升级完成(升级完成后后自动关闭). o( {2 p! Z( f+ `/ D
10.png
3 r7 z3 j4 K3 T* \7 V8 {6 y7 T7 V( m% L6 L
mmuuss586 回答时间:2019-1-9 11:13:03
升级完后如下图所示,将鼠标放到Disconnect上即可看到版本号,在Pole Pairs处输入电机极对数7,其它参数默认(也可修改)
4 r& \4 S+ K/ ]# z; Q# a 11.png # M8 M, V- B( z" H$ X# p4 s$ k

, r7 G; }" l, |1 r. U2 N
mmuuss586 回答时间:2019-1-9 11:13:52
15.png ! _( D" m/ E8 y$ w1 p2 q) |
mmuuss586 回答时间:2019-1-9 11:15:25
输入电机极对数7后, Start Profile按钮有效点击即可测试
1 |& O1 _7 T# S& _, a0 o电机参数
8 V' j  _5 ~' a; k 12.png
8 \- ?* _3 S, k1 @+ A( V0 Y$ h4 w5 Z! A5 M3 `

所属标签

相似分享

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