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

使用中密度 STM32F103xx 微控制器驱动双极步进电机

[复制链接]
STMCU小助手 发布时间:2022-7-17 18:34
前言6 O" W: _. z/ V. b
本应用笔记讲解了当使用基于 cortex-M3 微控制器的 medium-density STM32F103xx 系列产品驱动双极步进电机时,怎样做到体积小、速度高、成本低、资源少。它提供一种简单的方法,实现全步进和半步进工作模式控制步进电机。
. h% k) L" r9 B  P$ }  `" L+ \3 \% \步进电机是一种机电设备,可将电脉冲转换为离散的机械步进运动。当以适当顺序施加电命令脉冲时,步进电机的轴将以离散步进旋转。当需要受控的运动时,步进电机是一个很好的选择。尤其是当应用需要控制旋转角、速度、位置和同步时,它们非常有用。
. ]6 C' H) m8 E1 A3 H) l7 q步进电机的主要优势在于它们不需要反馈器件;与其它运动控制系统相比,它们很便宜;它们有极佳的低速扭矩且很稳定。很多步进电机应用都得益于 STM32F10xxx 器件的功耗、特性及灵活性。包括机器人控制器、车床工具、摄影机及其它精确的轴位置控制环境。
) C, e; _' M5 @0 K1 L此外,STM32F10xxx 微控制器的高性能为设计者们提供了仅需控制器的很低计算资源,就可以稳定控制步进电机。# d5 o' F9 g4 v  Y9 ~5 Q
本应用笔记给出了一个简单的方法来实现按照典型运行曲线运行 (先加速,再匀速,最后减速)的步进电机控制。用户可选择工作模式 (全步进或半步进)、电机的旋转方向 (顺时针或逆时针)、控制电流模式(快衰减或慢衰减)。此方法使用 medium-density STM32F103xx及 L6208 全集成两相步进电机驱动。此方法价格最低、实现最简单、使用的 CPU 负荷最小
  @1 [5 e1 b* p& X& T! V# i
5 ~, x1 M8 M6 n4 I

& Q! }& U) ^' Q: e* y& G1步进电机基础
, \! r* _6 G5 H' _1.1步进电机类型
+ f4 J7 {/ `2 h0 U1 `; i1 A有三种基本的步进电机类型:
1 ]! @9 E- \; U5 R●可变磁阻% e0 k8 a  h* C# o$ G- G, w, s
●永磁
$ d0 O8 e6 d  ]. ]●混合
# y% Z: k; S- _1 v可变磁阻 (VR)电机类型已经存在了很长时间。从构造角度,它可能是最容易理解的。此类电机包含一个软铁多齿转子和一个绕线定子。当向定子绕组输入 DC 电流时,定子励磁为磁极,当转子的齿被吸到通电的定子磁极时,会发生旋转。永磁(PM)电机类型向电机结构增加了永磁体。转子不像 VR 电机中那样有齿,而是磁化为交替的北极和南极,两极位置在与转子轴平行的直线上。这些磁化转子极提供了增强的磁通
2 s1 s1 `; y& H% }) ^' z- [量密度,与 VR 类型相比,它为 PM 电机带来了更好的扭矩特性。
+ d( Y4 G* K) ]* U' Z; {混合(HB)电机类型在步进分辨率、扭矩和速度方面有更好的性能。此类电机融合了 PM 和VR 步进电机这两种类型的最佳特性。与在 VR 电机中一样,转子是多齿的,在其转轴周围包含轴向磁化的同心磁。转子上的齿提供了更好的路径,有助于将磁通引导至气隙中的所需位置。与 VR 和 PM 电机类型相比,此特性增加了电机的制动、保持和动态磁通特性。- H6 M$ N3 L* @7 q" ^$ z
步进电机可为双极或单极绕组。4 d& e) D# Z1 x5 h7 T! ]
单极步进电机有两个相同的线圈,它们不做电连接,都有中心抽头。双线无感线圈组的任一端通电,共用中心抽头,则磁通反转。单极步进电机的优势在于它们仅需要一个切换开关。然而,它们需要双线无感线圈组,这意味着对于一个给定的体积因子,线更细,电阻更高。
+ a* a- [9 W+ l! T# j( z& J' `* Z& S除了线圈没有中心抽头外,双极步进电机与单极电机相同。对于双极电机,可使用 H 桥反转绕组的极性及磁通。双极步进电机的优势在于它们仅使用一个线圈,因此具有较好的体积因子 (较低的线圈电阻)。
& _" S7 g3 _( H) g9 s3 v单极电机仍被广泛使用,因为当与分立器件一起实现时,它们的驱动电路更简单。然而,对于现今的集成电路,驱动双极电机所需的元件也不比单极电机多。6 G, `' P/ v: A  K2 |) G

5 f/ H8 R1 ^% }/ D5 f  U
% ?) e/ r, [$ ?4 F: C& c2 q
8 B, M* I3 k. S- a  R6 p3 J
7~QC@NM)K_K~@{MP[P@726L.png
% j, w; f" q, I) S% K
! m( m9 f# r  F& _9 h! j
: q- }1 A) C# {  J! N# X  R* j
1.2驱动信号+ Y# w. j7 }$ Y( j
当供电时,直流电机可自行运行,而步进电机需要换向信号。
9 e. D% K8 O7 x5 G: Q4 f) X5 w可使用不同模式驱动步进电机,包括全步进和半步进模式。通常全步进模式被全步进电机驱动使用。在此模式中,两个相位都一直被供电,电机具有全额定扭矩。此控制模式仅需四个矩形信号,也可由 PWM 生成 (在一步的时间内有固定的占空比)。取决于超前相位,电机轴会顺时针或逆时针旋转。% t0 v& S' I6 U3 d9 q% f8 t
半步进模式更复杂一些。若使用了半步进驱动,则在每个时钟沿后,电机会前进半步,这样能得到更高的位置分辨率及降低不稳定性。9 z( ~% n; z  {4 B
然而,在两种模式中,信号都以确定的方式互相相关,因此可用标准逻辑生成。较好的逻辑实现最好使用专业应用集成电路,当然芯片价格也很高。简单讲,专业应用集成电路包含内部转换电路,由步长和方向输入控制。 IC (集成电路)电机控制器仅有三种工作模式:全步进两相开、半步进、波形驱动。此类 IC 需要输入四个信号至控制器,它们由微电脑或其它专用控制芯片提供。此外,此解决方案需要一个功率驱动电路和一个微处理器,来产生不同电机的驱动控制信号。
4 H, V0 X5 t1 w$ B' k& c5 Z* x一些已知应用需要能改变步进电机速度,以生成确定的速度曲线 (例如,一个典型的运行曲线)。在此情况下,在这三种可能的模式中,驱动步进电机的最好方式为软件解决方案,使用能代替任何其它控制器的微控制器电路。在基于微控制器的应用中,可使用软件和 PWM 定时器,因此不需要外部控制器。; J" \8 u9 Z' z+ ~0 j0 N2 X
使用此方法可用最少的硬件及非常低的微控制器 CPU 负荷实现高速应用。) W; k9 _" [5 U  |

3 K! @+ Y7 T0 @* y" B' c  S2使用中密度 STM32F103xx 驱动双极步进电机
0 q* ~2 \" |. f! E9 f本章说明了如何根据图 2 中所示的典型运行曲线,使用 medium-density STM32F103xx 来驱动全步进和半步进模式的步进电机。
: J! |# P/ U. `6 r, Z
  z$ I3 V3 M2 D$ u7 N5 E( X

) O' i$ H8 i, ~ 4H0H{Z_D{D$J9X1APUQJ{%O.png 8 L+ z; `4 U3 {9 O+ U

$ L7 O9 l* s- g" l$ x* I
. Z( k9 ]* W6 z" K! T$ A
# S  c$ b" D% @8 {  z$ U
2.1硬件开发
; ?5 b$ d% B0 {如前面章节所述,需要正确选择微控制器和 IC,以实现驱动步进电机的最佳解决方案。在本应用中,选择的是 medium-density STM32F103xx 器件和 L6208 DMOS 驱动。
2 L8 o  D- |7 t- Q0 E( k
# }, D9 E6 r) z: p! O
" g: X. R0 q# O! q( i7 Q
2.1.1 STM32F10xxx 用于驱动双极步进电机的特性$ e2 W1 w- G/ K( t% k  V- J" v
medium-density STM32F103xx 的外设非常适合驱动步进电机。这些外设包括三个标准 (通用)定时器(TIM2、TIM3、TIM4),其内部时钟频率最高为 72 MHz,以及用于高分辨率捕获的四个 16 位独立通道。此外,STM32F103xx 外设包括一个高级控制定时器(TIM1),其内部时钟频率最高为 72 MHz,以及四个 16 位高分辨率捕获通道。此定时器有三个通道(CH1、CH2、CH3),它们可生成三个互补信号。它还有一个独立通道(CH4)。这些定时器通道可生成 PWM 中的信号或输出比较模式中的信号。要生成 L6208 控制步进电机所需的常规步进时钟输入,需要 PWM 和输出比较特性。本应用的目的为在输出比较切换模式中使用 TIM2 控制步进电机速度,占空比恒定为 50%,频率可变。后者用于改变电机速度,使之与典型速度曲线相符。当更改时钟频率时,需要最低 CPU 负荷以防止驱动的步进电机停转。3 \, g& T- n0 |: K" D0 U. e
用 DMA 控制器传输定时器周期可加速 CPU 的工作,这是因为通过 DMA 控制器,周期数据直接由存储器传输到定时器控制寄存器,而不需要 CPU 干预。 STM32F10xxx 的 DMA 控制器有七个独立可配通道,每个通道有三个事件标志:一个用于 DMA 半传输,一个用于 DMA传输完成,最后一个用于 DMA 传输错误。在本应用中,使用更新事件 DMA 请求和 DMA 传输完成中断来控制周期的传输。对于所有定时器,更新事件请求都存在于不同的 DMA 通道中。因此,此选择的优势在于:所有定时器与其 DMA 请求都能同时工作以驱动不同的步进电机。
# j6 ~3 U7 J: F/ d" nSysTick 用于在 T 时间内维持最大步进电机速度。每次达到所编程的时间基准时,这一灵活的系统定时器都可生成一个中断。
9 A4 K5 B2 y' S% I  y; H! p5 Zmedium-density STM32F103xx 有八十个 GPIO,可配置为复用功能推挽。这些 I/O 可控制步进电机的旋转方向 (顺时针或逆时针) 、步进模式 (全步进或半步进) 、衰变模式 (慢或快)、L6208 芯片使能信号。(若需 medium-density STM32F103xx 特性的更详细信息,请参考 STM32F10xxx 参考手册)。1 Q1 F5 ~( e" u' ]7 c. ~
总之,使用这些外设, medium-density STM32F103xx 可同时驱动十九个全步进及半步进模式的步进电机,仅需消耗最低的 CPU 负荷。此解决方案的硬件需求为:功率极中每个线圈都要有一个集成了基本 H 桥电路的 IC,以及主要用于相位生成的中央逻辑。
' V, h) T) S) m, v6 V$ ?% ^9 n8 c/ c- [

3 ~3 R, \* I4 C8 G. H2.1.2双极步进电机的 L6208 DMOS 驱动
( H# u# E6 z' X6 ?- f7 Y) _/ p用于双极步进电机的驱动电路更复杂一些,因为双极电机的绕组上没有中心抽头。因此,若需反转电机线圈所产生场的方向,需要使用 H 桥电路,通过线圈反转电流。市场上有很多集成的 H 桥驱动。本应用选择的驱动为 L6208,它是 DMOS 全集成步进电机驱动,其非耗散过电流保护用于驱动两相双极步进电机。它包含一个双 DMOS 全桥、用于执行浪涌调节的两个固定关断时间 PWM 电流控制器(每个桥一个)、用于生成步进序列的一个相位序列生成器。) B' F9 M' W; `4 B
图 3 表示了 L6208 IC 框图。对于此图,主要的 L6208 输入为:
9 F/ m0 ~8 ?: B3 `●EN 逻辑输入:它是芯片使能输入。低逻辑电平可切断桥 A 和桥 B 的所有功率 MOSFET。
* `$ o. E* I3 E此引脚还连至过电流和热保护电路的集电极以实现过电流保护。
. G' ^; [" `2 L) {( @. J8 ~●CLOCK 逻辑输入:它是步进时钟输入。在每个上升沿,状态机前进一步。
: z% d3 @. N, r' g. t7 R, T5 L4 A●CW/CCW 逻辑输入:它选择了旋转的方向。高逻辑电平设置的是顺时针方向,低逻辑电平设置的是逆时针方向。# U4 p! j  P3 K" ]1 k6 U
●HALF/FULL 逻辑输入:它是步进模式选择器。高逻辑电平设置的是半步进模式,低逻辑电平设置的是全步进模式。
( U$ y; |/ d/ D& G0 m●CONTROL 逻辑输入:它是衰变模式选择器。高逻辑电平设置的是慢衰变模式,低逻辑电平设置的是快衰变模式。$ z* a0 o/ {) {8 K
●VREFA 和 VREFB 模拟输入:它们分别是桥 A 和桥 B 的源引脚。4 `8 }: F) ]  x' j0 P+ g' ?+ i

. [3 T% z+ u; J4 a" ~

% m4 U6 I, l/ F8 h9 G) U 6)O~TLZY[DGDK%HH{I]C)R5.png 4 y  `7 P9 R) M2 R1 t, A1 Z7 }
: w  S9 H; c9 D6 A3 ~4 n

, {' G( m; O& F; H
4 r6 J7 E, h( f4 a7 c4 j. I5 b图 4 显示了使用 L6208 驱动的典型双极步进电机驱动应用。它还显示了所用封装,即PowerDIP24/SO24 的不同引脚。在功率引脚 (VSA 和 VSB)和 L6208 附近的接地之间应插入范围为 100 到 200 nF 的高质量陶瓷电容,以增强电源的高频滤波,降低开关产生的高频瞬态。EN 输入和接地之间所连接的电容可设置检测到过电流时的关闭时间。两个电流感应输入(SENSEA 和 SENSEB)应与布局中的感应电阻尽量接近。感应电阻应为非电感电阻,以使通过它的 di/dt 瞬态最低。为增强对噪声的免疫力,最好将不用的逻辑引脚 (除 EN 之外)连至 5 V (高逻辑电平)或 GND (低逻辑电平)。建议在 PCB 上将电源地和信号地分开。9 [' a8 \- l; V7 i# P' O+ t
* C, a5 r  X$ Y, m, _2 @( S

' x4 k. o* ^/ |% v, Z5 B# O 13]RJ`_1]RK97E9X(29%H@K.png % u4 d+ H% L- [# Y

! p# H" J0 O$ r$ D2 d" {表 1 给出了 L6208 驱动的电气特性。3 O6 P. R4 j4 ?: j

+ I! v! M/ O$ [. U* @2 \2 `

" @  @- s4 H  u. c% M- U1 h3 ~) N W89U([`BWA5KR05PDPYVM[W.png ) N: m$ ~' w! T) f1 p9 c

5 f" y% f. s6 m/ f& S& u

! m5 X1 n5 M# ^6 W  I! {4 B ! \$ P$ G! |0 m5 g7 {1 j' l: q
L6208 两个桥中的每个桥都包括一个固定的关断时间 PWM 电流控制器。通过感应两个低功率 MOS 晶体管的源和地之间所连外部感应电阻上的压降,电流控制电路取得桥电流。. u  K& }$ _- v  p5 B" c4 @. r! W
每个电机线圈的电流流过相应的感应电阻,产生压降,逻辑电路可用其控制负载电流的峰值。
/ M) N' H, G+ E) s- c当选择感应电阻 RSENSE 的值时,必须考虑两个问题:  e* b4 I- ?0 g
●当电流再开始流动时,感应电阻耗散功率会在 SENSE 引脚上引起潜在的危险负电压。- k4 ^! K' h* j- y# q) Q4 n/ j
因此,该元件的电阻应较低。
/ d) P9 P/ Z* {; e●由内部比较器比较 RSENSE 上的压降与(Vref 引脚上的)参考电压。RSENSE 值越低,峰值电流误差就越高。这是因为 Vref 引脚上的噪声以及电流感应比较器的输入偏置:必须避免太小的 RSENSE 值。
. q' O' H7 D$ k% b: O  @5 p4 Q# r计算感应电阻值的一个较好折中为,对应于流过负载峰值电流 (Ipeak)的压降应为约 0.5 V:RSENSE = 0.5 V / Ipeak。4 a2 z( Q3 J) k7 s% ^6 M
感应电阻必须为非电感类型,以避免 SENSE 引脚上有危险的负电压。% [/ c6 A+ d2 B# X+ B8 V+ W

% B/ U3 [2 D( n* o5 Z& D2 x: ?1 i4 o电流控制模式:快衰变模式和慢衰变模式- @4 w$ \2 u! s
CONTROL 输入用于选择关断期间桥的行为。当 CONTROL 引脚为低时,选择的是快衰变模式,桥中的两个晶体管都在关断期间关闭。当 CONTROL 引脚为高时,选择的是慢衰变模式,仅桥的低侧晶体管在关断期间关闭。
% H( R5 ?4 E; ^; N3 E& L: e4 a: A5 u* r: W9 B* |6 I

* n) r* F5 Q1 t) U7 Y1 m步进序列生成:半步进和全步进模式6 a) p2 Z. m0 y. }) u! F4 T
相位序列生成器为一个状态机,它可提供相位并启用两个桥的输入,以在全步进或半步进模式中驱动步进电机。有两种全步进模式:普通驱动模式,在每步时两个相位都开;波形驱动模式,同一时间仅有一个相位为开。驱动模式由 HALF/FULL 输入选择。CLOCK 输入的上升沿会使状态机前进至下一状态。旋转的方向由 CW/CCW 输入设置。RESET 输入会将状态机复位至 Home 状态 (状态 1)。' }. z2 I' w+ o2 [- [. u& ~7 R
●半步进模式
! O  H  S5 g" P- rHALF/FULL 输入上的高逻辑电平选择的是半步进模式。图 5 显示了电机电流波形及相位序列生成器的状态图。在启动时或复位后,相位序列生成器处于状态 1 (Home 状态)。在每个时钟脉冲之后,状态根据如下顺序改变:3 s: K0 A. u' u1 H/ S# R
– 1,2,3,4,5,6,7,8,… 若 CW/CCW 为高 (顺时针方向)
: X" I& a% |3 o) I/ d– 1,8,7,6,5,4,3,2,… 若 CW/CCW 为低 (逆时针方向)。
% j1 `( C/ D" M( ?  M8 C9 h# c' K- |5 h
- @, Y5 y0 h/ Q* Z1 N8 g
82AU[R[QH7KYMY2$TTOF93Y.png 3 }1 K; G4 A$ o/ L

' F0 B$ T3 D+ \' e/ a; Z' s. }) B

5 `- P9 G  K+ E+ l% f8 `1 [
$ x! t/ y: O) r! N# L●普通驱动模式 (全步进,两相开)
8 y( B! |8 m. h7 _% ^HALF/FULL 输入上的低电平选择的是全步进模式。若为低电平,当状态机为奇数状态时,选择普通驱动模式。图 6 显示了电机电流波形及相位序列生成器的状态图。保持HALF/FULL 输入为低然后复位,即可选择普通驱动模式。在启动时或复位后,状态机处于状态 1。当 HALF/FULL 输入保持为低时,状态按如下顺序变化:
* l  p) f! B5 l% @1 P– 1,3,5,7,… 若 CW/CCW 为高 (顺时针方向)" \" t( h& ?; @+ q) p
– 1,7,5,3,… 若 CW/CCW 为低 (逆时针方向)
+ }$ V! l2 G# O' N8 o3 q6 \7 _8 |- Y! ~2 |: p$ a

1 t8 m! ?4 a% j ZGTF(Y~TWT%[02NSN%KGH~9.png
, M, _$ A! U7 Z7 }2 e8 F
) t# u" p0 u! G

' M; d* |- M5 r. U' k" a3 h6 f' S" w2 z/ ^, n, E
●波形驱动模式 (全步进,一相开)0 C( u/ s4 a/ X. ]- |
HALF/FULL 输入引脚上的低电平选择的是全步进模式。若为低电平,当状态机为偶数状态时,选择波形驱动模式。图 7 显示了电机电流波形及相位序列生成器的状态图。要进入波形驱动模式,状态机必须为偶数状态。更直接进入波形驱动模式的方法为:首先复位,然后在保持 HALF/FULL 输入为高电平的同时向时钟输入施加一个脉冲,然后将HALF/FULL 输入变为低电平。此顺序首先将状态机强制为状态 1。取决于 CW/CCW 输入,时钟脉冲与 HALF/FULL 输入高电平共同将状态机从状态 1 切换至状态 2 或 8。在每个时钟脉冲 (上升沿)之后,状态机根据如下顺序改变状态:) r) G- S+ `  x/ m, w" U9 S( e- R
– 2,4,6,8,… 若 CW/CCW 为高 (顺时针方向)
8 B6 ]5 E/ Z7 W. g– 8,6,4,2,… 若 CW/CCW 为低 (逆时针方向)1 E9 a  t$ \- E. ]+ N1 D- ?$ m
有关详细信息,请参见 L6208 数据手册。
: {8 H1 g4 T! l9 B% k8 a. z
6 Y# `" @- j5 S7 r1 h

, o& V; C7 H  b' s CSGM})SN(ZOAQ3${Y$FHAFA.png / e! x8 P# z: Y: p+ u; T
$ i. I! w' Z# l6 |6 ]
`L9H%LICHLH7JE][QSJ4N)R.png 7 i; i& C1 T2 J& _; Q8 C5 @6 y# [
" h2 C3 |$ \5 N- x/ o

- X" \, z6 _6 r; _: T完整版请查看:附件4 U8 m- g) j% @) K8 x" K& A  o2 S

$ F7 y$ G5 x3 ]$ t" K7 V& ^, B4 |8 u- H* z& q* [2 \

CD00207733_ZHV2.pdf

下载

614.61 KB, 下载次数: 6

赞 收藏 评论0 发布时间:2022-7-17 18:34

举报

0个回答

所属标签

相似技术帖

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版