不得不说ST配套的生态还是不错的。$ j% S" h" _5 v6 S3 _
- S( m9 d( O5 @0 y3 V) [
随电机评估板一同推出的两个工具,一个是MOTOR PROFILE, 一个CONTROL WORKBENCH工具,能帮助我等菜鸟更快的入门。
6 t5 r. }$ x6 f" q: Z" {4 l' _2 N0 q+ O5 _0 L7 B+ h
MOTOR PROFILE工具提供了快速检测电机参数的功能,可以在ST的套件中选择相应的硬件,然后检测电机的硬件参数,不过也只能从已有的型号中选择,如图是IHM002套件的硬件组合
- h' r w( I& A- _
8 n% b" [. z+ t; S9 x' [$ O
+ a3 |: y7 m8 d, ]: H
D% T" D6 k0 t* [7 i( A只可惜我的底板换成了F303,不知道可不可以检测出来,姑且一试, 连上PC端后,先选择硬件类型,咱就选F302来试,先CONNECT,幸运的是连接上了,然后点击START PROFILE,电机也开始转了,下面是检测到的参数
* r4 g Y2 @8 ]4 F
- y0 E! \9 X9 J: U
6 E" Q. w$ E0 o# ~, O
. k1 \) K# s' o9 `/ z) @
- z: K0 e4 F, @! c! ?1 @% V2 ^没有问题。
N2 l# Y/ [3 I& }
- x5 ?$ I, _2 ^ m7 g5 e一点猜想:不管是MOTOR PROFILE也好,WORKBENCH也好,都是使用的UART与设备通信,只要设备的固件跑起来了,这些工具才不管你是303还是302,他们只负责把命令发送过去,然后啥命令就执行啥动作,下面是截取的一些通信命令控制码,如下
9 g) U+ S, Y0 k7 T
) f8 u2 v: h( k% B: m1 F6 u9 t" i# w- #define MC_PROTOCOL_CODE_SET_REVUP_DATA 0x09
# |- p _( c! u! @' c$ V W3 _4 _ - #define MC_PROTOCOL_CODE_SET_CURRENT_REF 0x0A
! ~9 X6 b8 M8 G - #define MC_PROTOCOL_CODE_GET_MP_INFO 0x0B
# V/ e$ r% a4 k9 x' f2 l. B
' y! U8 a& O, S6 z9 }+ Z: G- #define MC_PROTOCOL_CMD_START_MOTOR 0x01, C! @1 D( L6 M9 ]0 u
- #define MC_PROTOCOL_CMD_STOP_MOTOR 0x02# n0 V: q$ k' T1 K- t, k7 _
- #define MC_PROTOCOL_CMD_STOP_RAMP 0x03
# s1 j, m" e( Y$ O - #define MC_PROTOCOL_CMD_RESET 0x04
, B+ K1 O7 n. J1 ] - #define MC_PROTOCOL_CMD_PING 0x05, N9 b* v% G$ g, O6 k
- #define MC_PROTOCOL_CMD_START_STOP 0x06$ h+ e5 f% ?4 \
- #define MC_PROTOCOL_CMD_FAULT_ACK 0x07
7 M) Y1 I3 j3 X - #define MC_PROTOCOL_CMD_ENCODER_ALIGN 0x08
8 A3 a7 _1 g8 |+ l% t' L - #define MC_PROTOCOL_CMD_IQDREF_CLEAR 0x09 2 R# }( s1 f' u% v, z2 O- y8 B' g
- #define MC_PROTOCOL_CMD_PFC_ENABLE 0x0A$ T$ f( R, O" E; w
- #define MC_PROTOCOL_CMD_PFC_DISABLE 0x0B( u7 D, k8 _9 Z7 h" g! U) x
- #define MC_PROTOCOL_CMD_PFC_FAULT_ACK 0x0C. g4 B t1 \" ^& N+ f8 y) I
- #define MC_PROTOCOL_CMD_SC_START 0x0D- C2 Y' f. ~4 b- J
- #define MC_PROTOCOL_CMD_SC_STOP 0x0E
* `9 c ?; u7 w; q1 A1 J; x
/ ]6 z# ?7 [5 _) ]6 o- #define GUI_ERROR_CODE 0xFFFFFFFF. [/ k' T% \: G4 {5 f
复制代码
- w" X- `8 f( ]. l9 L; ]8 \ P- K* o% I
开发板接收到这些命令,然后就去执行,比如停止或启动电机,与MCU无关!
/ C: U# T6 w, d5 X6 O! B. `
3 @' y7 g% a& G3 [再进一步设想,如果找到了上位机与电机套件之间通信的控制协议格式,自己也可以写一个类似的工具出来,欢迎大家一起来研究1 R9 j: [; d3 N {2 T# `) `4 b
: }+ J; N+ x- F3 |2 E0 `2 l+ d
2 o N! J& P3 f! a* l3 a$ J
|