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

基于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 B; _( y! C; {: c' N0 i

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)免费的编译器编译时,出现了如下的链接错误:
/ L0 T& r6 q/ s( y, m# j6 h. mc:/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)4 X; u3 e' ?  y7 S7 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 value5 D- O! J1 f0 N' _$ h
collect2.exe: error: ld returned 1 exit status
2 Q: W! n" E' A! k" o* _: F".\NonameF3\NonameF3.elf" - 1 Error(s), 4 Warning(s).  H. ^8 b. [7 x0 D  ?2 g: S
因为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版本不一样,自然会出错了)
6 `) A0 f* t3 H4 R" w# e请问有高手能帮忙解决吗?共同学习!
mmuuss586 回答时间:2019-1-9 11:31:39
MC_ProgramSpeedRampMotor1(3000/6,2000); //设置为速度模式,设置速度指令
! A. d+ B' N3 f调用此函数后hDurationms设置时间内当前速度变化到hFinalSpeed设置的目标速度. r' Q: f$ R4 o3 k8 P. y' r* [; b
void MC_ProgramSpeedRampMotor1( int16_t hFinalSpeed, uint16_t hDurationms )
7 y( G/ s5 T% I- t7 e{
9 w* H' n. ^1 P6 ~2 C- x1 Z  c2 m( Z        MCI_ExecSpeedRamp( pMCI[M1], hFinalSpeed, hDurationms );
& L( e# v* o& B}
' \! y! v5 A# g6 g4 s5 p& P! z/ I( ?8 J
MC_ProgramTorqueRampMotor1(2000,2000);         //设置为转矩模式,设置转矩指令
  w) B% s3 n2 x调用此函数后hDurationms设置时间内当前转矩变化到hFinalTorque设置的目标转矩" n# @; ]5 N/ b; J2 D6 K- p
void MC_ProgramTorqueRampMotor1( int16_t hFinalTorque, uint16_t hDurationms )
4 [' @0 v2 v6 A9 {- q& @# `2 p( [{( g) p$ E/ v. p3 k7 g  ]6 f
        MCI_ExecTorqueRamp( pMCI[M1], hFinalTorque, hDurationms );
8 x4 h! A: v& S9 m6 C7 ^( L5 H* i}
8 ~7 k5 R. k% d6 R% t9 ?. d
mmuuss586 回答时间:2019-1-9 11:34:47
MC_AcknowledgeFaultMotor1();//清除电机故障错误
; z2 j, q; ]( U; p调用此函数前,如果电机发生故障。电机停留在FAULT_OVER状态,并保留故障代码。调用后,状态机清除故障代码记录,并恢复到IDLE状态。1 U$ y/ ?9 U" s+ c6 @8 N1 a' ^
bool MC_AcknowledgeFaultMotor1( void )4 V) ^6 d3 \" R# N3 @% t, r
{6 S7 P. h3 P' I% A& Y/ \* b6 g" D
        return MCI_FaultAcknowledged( pMCI[M1] );
# W. L! y1 A! ?}
8 s; K3 n1 u! P8 G/ F6 n2 q2 Z/ ^% b8 q8 h# m& @( U& k% o
Motor1Dir=MC_GetImposedDirectionMotor1();        //返回最后一个指令设置的电机方向,如果最终的速度或转矩指令为负数返回-1,否则返回1/ W1 n9 w5 }, d+ Z' T4 A6 S
int16_t MC_GetImposedDirectionMotor1(void)+ E$ ~2 R0 U8 b; I
{
9 f/ w( B+ e7 |        return MCI_GetImposedMotorDirection( pMCI[M1] );5 h4 ?. D% K# W/ N( p7 l
}
& Z& g3 x# f% i( r+ `6 ^. T* z* V6 [; k

, a( ]5 D( j, d
mmuuss586 回答时间:2019-1-9 11:06:59
FOC5.3和FOC5.0、FOC5.1、FOC5.2等区别:( X) I5 }$ o: X2 G* i: _
1、支持更多型号的芯片和板子,比如开始支持STM32G的芯片和对应板子;2 ~7 _' X9 U* a; V
2、软件界面上有些变化,更简洁。
+ `4 l% t* P; R! c
+ U8 M* u% |) H1 sFULL库版本和普通版本的区别:
* x( p' w* o+ q4 m4 tfull版本区别:开放了弱磁,mtpa及前馈的源代码。
4 K4 g+ m. a$ _$ u& z3 K2 V
# s" E/ u# C0 ?: k0 j) UFULL版本申请:
2 B% K) h1 p# h( i+ c' D# M0 o到ST官网,用企业邮箱申请。
0 T, I/ A+ c6 H
mmuuss586 回答时间:2019-1-9 11:07:41
实验平台, f  J/ o- p7 X6 f( P. i* f. E2 x
硬件: P-NUCLEO-IHM001或P-NUCLEO-IHM002开发套件 ;5 u) o; e. u2 H6 v7 e' W
1.png
' U, F) G* ~' L3 e: w$ C. F: p请事先下载安装软件:
4 P! U8 s& ~8 V% I& n- n' Q1 _$ V1) STM32 PMSM FOC Software Development Kit - MC library(5.3.2及以上版本);$ l1 o+ i" ^" y- A5 U% H" v- z
2) STM32CubeMX 4.26及以上版本;( L4 r, M& m0 Z; j: c9 z
3) KEIL MDK 5.0 及以上版本。
mmuuss586 回答时间:2019-1-9 11:08:08
按照图示接线:
- a* N( r4 L; S# j) R/ W! F& l左边接插件接电源(左正右负),接电源之前最好将电源调整到12V左右;2 d# s% z5 X5 }2 P
右边接插件:接电机线(电机线任意接,接错的话电机正反转方向可能是反的);/ j7 K0 Y0 F( {; K6 p

$ e8 s: R* M7 p1 {* r9 Q& `" j+ s3 ?4 K首次拆开开发套件(板子已预装程序):上电后且接上USB线,按套件底板的蓝色按钮,电机会正常转,再按下电机停止运行(如果电机不能转,请先按下黑色复位按钮,再按蓝色运行按钮)。
3 r1 O" ?! }) X. j4 o- Q) S 2.jpg ) F. T+ F( ~, p" ]! U
* j; t! W% |! m
mmuuss586 回答时间:2019-1-9 11:08:38
打开MotorControl Workbench软件
% t! j& w  y* t' s. |+ G 3.png
$ E3 |2 A' s) c! A4 ]
9 D4 H. q- t  D
mmuuss586 回答时间:2019-1-9 11:09:07
打开如下图所示0 F0 w% J) n, p* q
4.png
4 q; H! E2 D; d! J; L7 ?, w6 w6 y" I2 v% K& A/ k/ a( s
mmuuss586 回答时间:2019-1-9 11:09:36
MC SDK5.3电机参数识别2 }& u& x* C. z5 Z6 `7 M: |
使用ST MC Workbench GUI上的专用按钮(Motor  Profiler)或直接打开安装文件运行ST的电机参数测量工具。
% g6 O; I+ ^$ u! o6 L8 E 5.png # c2 d( X( L8 M9 Y4 p

- y( M6 y/ ?1 r2 \2 Q9 ^
mmuuss586 回答时间:2019-1-9 11:10:04
打开后如下图所示
( o. h# ^7 y. t- _8 r8 s 6.png ! N! ~! S+ n/ E3 S7 O1 Q( Z. s
# W% h1 A1 R+ }  }" Y
mmuuss586 回答时间:2019-1-9 11:10:35
点击SelectBoards选择相应的板子,选择:NUCLEO-F302R8+
" h1 V: _2 v4 L9 K9 J7 W$ x# qX-NUCLEO-IHM07M1 3Sh
  B1 A( u  s8 N* Z+ `3 K 7.png
) p! X5 L3 W& H
. A( @- S. P: g. R7 C3 ~& M
mmuuss586 回答时间:2019-1-9 11:11:29
打开后如下图,请选择Connect先连接(如连接不上则按下板子的黑色复位按钮)
9 Z1 S# @+ m# p) P$ P, C2 @ 8.png ' f& _5 p( L2 ]; @# |6 {# _

" e. f: R. Y/ m6 Y  r7 N
mmuuss586 回答时间:2019-1-9 11:12:04
点击连接后,出现如下图是否需要升级固件(可以选择升级)( O  x& i, A% t. ~
9.png
$ S' R  e0 m. ?7 f% ?+ M: v$ Q: ]' t8 @  M% U# g! V: j" V# l
mmuuss586 回答时间:2019-1-9 11:12:27
点升级固件后,如下图并等待升级完成(升级完成后后自动关闭)
" {: g# V" M6 Y. N 10.png   q  H. S6 C4 a7 G5 `7 o$ Q4 l/ J

0 _" u$ A/ q, G" P  P. {) V5 T
mmuuss586 回答时间:2019-1-9 11:13:03
升级完后如下图所示,将鼠标放到Disconnect上即可看到版本号,在Pole Pairs处输入电机极对数7,其它参数默认(也可修改)
+ [" b* {8 B2 ~ 11.png
1 G( C- O( r" s6 h* b  u" [
. A- B" B) q7 ]# n% l
mmuuss586 回答时间:2019-1-9 11:13:52
15.png 3 _& D& R* M$ f- o) v' f) @
mmuuss586 回答时间:2019-1-9 11:15:25
输入电机极对数7后, Start Profile按钮有效点击即可测试
% s6 Y2 {2 {9 M. E. M, I: L电机参数
& Q& i" u5 w6 W/ v 12.png
3 z, s/ m$ j' y& \/ \7 }3 i4 ~+ h' [6 ^: ?2 j/ @* _  p

所属标签

相似分享

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