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

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

[复制链接]
STMCU小助手 发布时间:2022-7-17 18:34
前言
5 T2 A2 {% _( r$ U' a- x本应用笔记讲解了当使用基于 cortex-M3 微控制器的 medium-density STM32F103xx 系列产品驱动双极步进电机时,怎样做到体积小、速度高、成本低、资源少。它提供一种简单的方法,实现全步进和半步进工作模式控制步进电机。
, F3 y! {! w' a; M步进电机是一种机电设备,可将电脉冲转换为离散的机械步进运动。当以适当顺序施加电命令脉冲时,步进电机的轴将以离散步进旋转。当需要受控的运动时,步进电机是一个很好的选择。尤其是当应用需要控制旋转角、速度、位置和同步时,它们非常有用。* c# X) I$ D2 V; G$ h6 u
步进电机的主要优势在于它们不需要反馈器件;与其它运动控制系统相比,它们很便宜;它们有极佳的低速扭矩且很稳定。很多步进电机应用都得益于 STM32F10xxx 器件的功耗、特性及灵活性。包括机器人控制器、车床工具、摄影机及其它精确的轴位置控制环境。, A9 S- p0 j9 [+ M# G3 u: P
此外,STM32F10xxx 微控制器的高性能为设计者们提供了仅需控制器的很低计算资源,就可以稳定控制步进电机。4 M* b8 Q8 G4 I. E
本应用笔记给出了一个简单的方法来实现按照典型运行曲线运行 (先加速,再匀速,最后减速)的步进电机控制。用户可选择工作模式 (全步进或半步进)、电机的旋转方向 (顺时针或逆时针)、控制电流模式(快衰减或慢衰减)。此方法使用 medium-density STM32F103xxL6208 全集成两相步进电机驱动。此方法价格最低、实现最简单、使用的 CPU 负荷最小( Q; l/ Z2 l7 F4 Y2 ~
0 D/ a, m1 o+ Z( v5 ~

9 }: A, x3 ~1 g1步进电机基础
& k* D+ `8 d& f1 W: s4 S# H* c) r1.1步进电机类型
# {. O, c" _3 \  H/ X有三种基本的步进电机类型:
( ], W: x* |; J% m" l5 Z7 f可变磁阻
( l$ t; q! F/ ?& {+ y" u永磁! j/ E0 P0 S  i9 w5 N) h
混合5 I  Q. z2 n; ^' E
可变磁阻 (VR)电机类型已经存在了很长时间。从构造角度,它可能是最容易理解的。此类电机包含一个软铁多齿转子和一个绕线定子。当向定子绕组输入 DC 电流时,定子励磁为磁极,当转子的齿被吸到通电的定子磁极时,会发生旋转。永磁(PM)电机类型向电机结构增加了永磁体。转子不像 VR 电机中那样有齿,而是磁化为交替的北极和南极,两极位置在与转子轴平行的直线上。这些磁化转子极提供了增强的磁通" B' B# N5 [7 C) X* Q
量密度,与 VR 类型相比,它为 PM 电机带来了更好的扭矩特性。4 J6 h, M  d0 s
混合(HB)电机类型在步进分辨率、扭矩和速度方面有更好的性能。此类电机融合了 PM 和VR 步进电机这两种类型的最佳特性。与在 VR 电机中一样,转子是多齿的,在其转轴周围包含轴向磁化的同心磁。转子上的齿提供了更好的路径,有助于将磁通引导至气隙中的所需位置。与 VR PM 电机类型相比,此特性增加了电机的制动、保持和动态磁通特性。
6 p7 O& g/ U* Y, r. _步进电机可为双极或单极绕组。
% e7 X3 B9 \* y3 S& x0 M/ k) O单极步进电机有两个相同的线圈,它们不做电连接,都有中心抽头。双线无感线圈组的任一端通电,共用中心抽头,则磁通反转。单极步进电机的优势在于它们仅需要一个切换开关。然而,它们需要双线无感线圈组,这意味着对于一个给定的体积因子,线更细,电阻更高。
1 \$ }& G$ K5 M! M, p1 A5 Z5 C7 I% ]除了线圈没有中心抽头外,双极步进电机与单极电机相同。对于双极电机,可使用 H 桥反转绕组的极性及磁通。双极步进电机的优势在于它们仅使用一个线圈,因此具有较好的体积因子 (较低的线圈电阻)。+ J7 I$ i0 I* I: K
单极电机仍被广泛使用,因为当与分立器件一起实现时,它们的驱动电路更简单。然而,对于现今的集成电路,驱动双极电机所需的元件也不比单极电机多。
" _. ~1 C2 J6 X0 \8 I& P% s6 \* t7 I: {8 z
3 }8 O9 S! S# S7 a, l7 T
- {# p) V9 z& h2 ?( m5 w/ W0 q- c
7~QC@NM)K_K~@{MP[P@726L.png ; a7 c3 e) y/ R

$ S- n' h( M  b3 D# y/ n" b
" L& }; i- Y/ K3 V+ c' m" f
1.2驱动信号
3 ?7 T, v+ y( A. l7 v/ U- i当供电时,直流电机可自行运行,而步进电机需要换向信号。2 N( p/ k' |' M# ^7 K2 j5 s5 {
可使用不同模式驱动步进电机,包括全步进和半步进模式。通常全步进模式被全步进电机驱动使用。在此模式中,两个相位都一直被供电,电机具有全额定扭矩。此控制模式仅需四个矩形信号,也可由 PWM 生成 (在一步的时间内有固定的占空比)。取决于超前相位,电机轴会顺时针或逆时针旋转。
: r- S3 l. [1 g2 \+ y半步进模式更复杂一些。若使用了半步进驱动,则在每个时钟沿后,电机会前进半步,这样能得到更高的位置分辨率及降低不稳定性。
9 b7 ^% q" x5 B' \8 p  H然而,在两种模式中,信号都以确定的方式互相相关,因此可用标准逻辑生成。较好的逻辑实现最好使用专业应用集成电路,当然芯片价格也很高。简单讲,专业应用集成电路包含内部转换电路,由步长和方向输入控制。 IC (集成电路)电机控制器仅有三种工作模式:全步进两相开、半步进、波形驱动。此类 IC 需要输入四个信号至控制器,它们由微电脑或其它专用控制芯片提供。此外,此解决方案需要一个功率驱动电路和一个微处理器,来产生不同电机的驱动控制信号。
4 T/ d" N+ i2 E/ ^: H% v0 c一些已知应用需要能改变步进电机速度,以生成确定的速度曲线 (例如,一个典型的运行曲线)。在此情况下,在这三种可能的模式中,驱动步进电机的最好方式为软件解决方案,使用能代替任何其它控制器的微控制器电路。在基于微控制器的应用中,可使用软件和 PWM 定时器,因此不需要外部控制器。
  }* N  L* f9 K1 k7 k) K# I$ h使用此方法可用最少的硬件及非常低的微控制器 CPU 负荷实现高速应用。
5 d% K6 j. ?  H1 X3 T2 N8 a: K! I
7 a2 J! s/ s, m# Y+ d2使用中密度 STM32F103xx 驱动双极步进电机
( n- f8 b7 @6 T. I3 O1 Q本章说明了如何根据2 中所示的典型运行曲线,使用 medium-density STM32F103xx 来驱动全步进和半步进模式的步进电机。
6 z- I$ F) ^) s: \3 y- J0 H
0 A/ e" {; P* D# |

$ E* q( L$ ]$ d- K% _, } 4H0H{Z_D{D$J9X1APUQJ{%O.png
/ O/ {+ E9 [/ C2 E* j
% ^  J5 X% n- k
- r& d$ F5 u% Q3 _

( M5 Z, M/ U) v% A8 Q7 P6 G9 Y, t8 m2.1硬件开发
# q1 |- V  L1 _9 \. s6 [如前面章节所述,需要正确选择微控制器和 IC,以实现驱动步进电机的最佳解决方案。在本应用中,选择的是 medium-density STM32F103xx 器件和 L6208 DMOS 驱动。
. j8 k/ E; L2 r; O8 ]1 B/ k, R( ?8 @' D

3 i! x0 s% H& j" D- R2.1.1 STM32F10xxx 用于驱动双极步进电机的特性
# y  C6 _" O5 E/ Dmedium-density STM32F103xx 的外设非常适合驱动步进电机。这些外设包括三个标准 (通用)定时器(TIM2TIM3TIM4),其内部时钟频率最高为 72 MHz,以及用于高分辨率捕获的四个 16 位独立通道。此外,STM32F103xx 外设包括一个高级控制定时器(TIM1),其内部时钟频率最高为 72 MHz,以及四个 16 位高分辨率捕获通道。此定时器有三个通道CH1CH2CH3),它们可生成三个互补信号。它还有一个独立通道(CH4)。这些定时器通道可生成 PWM 中的信号或输出比较模式中的信号。要生成 L6208 控制步进电机所需的常规步进时钟输入,需要 PWM 和输出比较特性。本应用的目的为在输出比较切换模式中使用 TIM2 控制步进电机速度,占空比恒定为 50%,频率可变。后者用于改变电机速度,使之与典型速度曲线相符。当更改时钟频率时,需要最低 CPU 负荷以防止驱动的步进电机停转。; e; q/ j2 ~) p5 l: j' h
用 DMA 控制器传输定时器周期可加速 CPU 的工作,这是因为通过 DMA 控制器,周期数据直接由存储器传输到定时器控制寄存器,而不需要 CPU 干预。 STM32F10xxx DMA 控制器有七个独立可配通道,每个通道有三个事件标志:一个用于 DMA 半传输,一个用于 DMA传输完成,最后一个用于 DMA 传输错误。在本应用中,使用更新事件 DMA 请求和 DMA 输完成中断来控制周期的传输。对于所有定时器,更新事件请求都存在于不同的 DMA 通道中。因此,此选择的优势在于:所有定时器与其 DMA 请求都能同时工作以驱动不同的步进电机。& N; h5 x2 U& r" P, B' l
SysTick 用于在 T 时间内维持最大步进电机速度。每次达到所编程的时间基准时,这一灵活的系统定时器都可生成一个中断。
& ^7 |3 {: ?+ ]7 jmedium-density STM32F103xx 有八十个 GPIO,可配置为复用功能推挽。这些 I/O 可控制步进电机的旋转方向 (顺时针或逆时针) 、步进模式 (全步进或半步进) 、衰变模式 (慢或快)、L6208 芯片使能信号。(若需 medium-density STM32F103xx 特性的更详细信息,请参STM32F10xxx 参考手册)。
& ~; q; |* C: \总之,使用这些外设, medium-density STM32F103xx 可同时驱动十九个全步进及半步进模式的步进电机,仅需消耗最低的 CPU 负荷。此解决方案的硬件需求为:功率极中每个线圈都要有一个集成了基本 H 桥电路的 IC,以及主要用于相位生成的中央逻辑。
# O) F6 D5 d8 g
0 B) C( l5 i  u1 r9 c9 C( ^
. |3 f8 C, p2 e2 a: m# v7 Y+ r2 q
2.1.2双极步进电机的 L6208 DMOS 驱动
5 F$ ?3 n9 Y$ ?用于双极步进电机的驱动电路更复杂一些,因为双极电机的绕组上没有中心抽头。因此,若需反转电机线圈所产生场的方向,需要使用 H 桥电路,通过线圈反转电流。市场上有很多集成的 H 桥驱动。本应用选择的驱动为 L6208,它是 DMOS 全集成步进电机驱动,其非耗散过电流保护用于驱动两相双极步进电机。它包含一个双 DMOS 全桥、用于执行浪涌调节的两个固定关断时间 PWM 电流控制器(每个桥一个)、用于生成步进序列的一个相位序列生成器。; j3 U' B4 ?) m$ T, j
3 表示了 L6208 IC 框图。对于此图,主要的 L6208 输入为:
/ L0 S2 v! G7 E; D- J% EEN 逻辑输入:它是芯片使能输入。低逻辑电平可切断桥 A 和桥 B 的所有功率 MOSFET
" [7 A& Q- w" e此引脚还连至过电流和热保护电路的集电极以实现过电流保护。  ^$ c! w% j5 p9 g0 h
CLOCK 逻辑输入:它是步进时钟输入。在每个上升沿,状态机前进一步。
& {0 e% i  L" bCW/CCW 逻辑输入:它选择了旋转的方向。高逻辑电平设置的是顺时针方向,低逻辑电平设置的是逆时针方向。) H+ h* l3 b, o. m2 r
HALF/FULL 逻辑输入:它是步进模式选择器。高逻辑电平设置的是半步进模式,低逻辑电平设置的是全步进模式。
8 n4 X" a) }- N9 Q- N/ l' lCONTROL 逻辑输入:它是衰变模式选择器。高逻辑电平设置的是慢衰变模式,低逻辑电平设置的是快衰变模式。
' i6 M7 Q$ z9 A7 C) r' W" oVREFA VREFB 模拟输入:它们分别是桥 A 和桥 B 的源引脚。4 Z" t" x2 H1 t9 W4 y

& q8 U  k" W1 _. S

; e; i/ x# _+ {5 P1 I. h 6)O~TLZY[DGDK%HH{I]C)R5.png
( B1 J& Q0 p* F; {- z5 J
7 I0 [6 p7 e2 P8 b+ A

, a7 g! j9 _7 G3 F: P! |
- x  j" s7 p  r7 E4 显示了使用 L6208 驱动的典型双极步进电机驱动应用。它还显示了所用封装,即PowerDIP24/SO24 的不同引脚。在功率引脚 (VSA VSB)和 L6208 附近的接地之间应插入范围为 100 200 nF 的高质量陶瓷电容,以增强电源的高频滤波,降低开关产生的高频瞬态。EN 输入和接地之间所连接的电容可设置检测到过电流时的关闭时间。两个电流感应输入SENSEA SENSEB)应与布局中的感应电阻尽量接近。感应电阻应为非电感电阻,以使通过它的 di/dt 瞬态最低。为增强对噪声的免疫力,最好将不用的逻辑引脚 (除 EN 之外)连5 V (高逻辑电平)或 GND (低逻辑电平)。建议在 PCB 上将电源地和信号地分开。
: t1 p. s' \$ }  T
) S6 P$ X/ @0 o4 r

! {% C# l3 A; y* i* ~9 S( j 13]RJ`_1]RK97E9X(29%H@K.png / L- m. q% z5 {" T% k! ?$ L
' j* G- a" z  P& e! M# g2 r5 \+ ]
1 给出了 L6208 驱动的电气特性。
+ E% c/ U/ a+ f7 W) A# F, ^: l
+ @# [& j6 z, H- a+ }  [; t8 j! u3 X' L
. K% |$ {2 [8 }) b4 O! W. y
W89U([`BWA5KR05PDPYVM[W.png
" w! i; Y& r- X: S! E- [4 C+ `9 T! a5 L& r/ Q. ^
3 h: W) J- O9 }& N7 ]8 M

( f( c9 m/ o/ O; v4 D6 X. \L6208 两个桥中的每个桥都包括一个固定的关断时间 PWM 电流控制器。通过感应两个低功MOS 晶体管的源和地之间所连外部感应电阻上的压降,电流控制电路取得桥电流。
2 y. I3 D3 H& M8 q0 |1 \* Q0 D2 {每个电机线圈的电流流过相应的感应电阻,产生压降,逻辑电路可用其控制负载电流的峰值。
1 N( M3 K. ?# c' L当选择感应电阻 RSENSE 的值时,必须考虑两个问题:
1 o. d: N3 o% K" V  M当电流再开始流动时,感应电阻耗散功率会在 SENSE 引脚上引起潜在的危险负电压。
" K+ E' G6 l) p" }: z" z因此,该元件的电阻应较低。
. C0 Q3 [. p! y" B$ a0 F- G由内部比较器比较 RSENSE 上的压降与(Vref 引脚上的)参考电压。RSENSE 值越低,峰值电流误差就越高。这是因为 Vref 引脚上的噪声以及电流感应比较器的输入偏置:必须避免太小的 RSENSE 值。, r" |& E  E  @6 g4 \- {8 g
计算感应电阻值的一个较好折中为,对应于流过负载峰值电流 (Ipeak)的压降应为约 0.5 VRSENSE = 0.5 V / Ipeak( X5 K0 H6 {4 i2 n- z
感应电阻必须为非电感类型,以避免 SENSE 引脚上有危险的负电压。
& I( q6 Q* U, {; g& `: O1 r# Q0 P( @3 q6 L9 j- U* N
电流控制模式:快衰变模式和慢衰变模式
, x% {" k# ]+ O9 E, HCONTROL 输入用于选择关断期间桥的行为。当 CONTROL 引脚为低时,选择的是快衰变模式,桥中的两个晶体管都在关断期间关闭。当 CONTROL 引脚为高时,选择的是慢衰变模式,仅桥的低侧晶体管在关断期间关闭。
: W0 q+ R* f( [, h; U% }
& ^5 o/ Y, l* m
$ k$ ]6 y# M2 m6 P8 {& O
步进序列生成:半步进和全步进模式
- m$ S2 ~( F/ m! h. x! q. Z相位序列生成器为一个状态机,它可提供相位并启用两个桥的输入,以在全步进或半步进模式中驱动步进电机。有两种全步进模式:普通驱动模式,在每步时两个相位都开;波形驱动模式,同一时间仅有一个相位为开。驱动模式由 HALF/FULL 输入选择。CLOCK 输入的上升沿会使状态机前进至下一状态。旋转的方向由 CW/CCW 输入设置。RESET 输入会将状态机复位至 Home 状态 (状态 1)。
6 D; V/ ?% d/ N半步进模式7 p# U1 x. Q/ C6 {) x
HALF/FULL 输入上的高逻辑电平选择的是半步进模式。5 显示了电机电流波形及相位序列生成器的状态图。在启动时或复位后,相位序列生成器处于状态 1 Home 态)。在每个时钟脉冲之后,状态根据如下顺序改变:% Z" N8 t: I6 f8 t9 p" z  S
– 1,2,3,4,5,6,7,8,… 若 CW/CCW 为高 (顺时针方向)
" [; i! q/ C6 [+ J9 x, b; d# F0 O– 1,8,7,6,5,4,3,2,… 若 CW/CCW 为低 (逆时针方向)。' B) e. c# m# {/ r$ l
  }7 r, P6 K! Y+ Z1 h/ u
( I- Q1 P0 a4 Y- N4 T) {; G
82AU[R[QH7KYMY2$TTOF93Y.png   {3 C0 t$ L& `) @7 F5 U

1 E9 H! L# g4 \! ~1 `

( E3 c+ q# I# e" F2 ^7 G2 ^6 u3 [+ I8 H& k
普通驱动模式 (全步进,两相开)
7 O6 J2 v' |9 vHALF/FULL 输入上的低电平选择的是全步进模式。若为低电平,当状态机为奇数状态时,选择普通驱动模式。6 显示了电机电流波形及相位序列生成器的状态图。保持HALF/FULL 输入为低然后复位,即可选择普通驱动模式。在启动时或复位后,状态机处于状态 1。当 HALF/FULL 输入保持为低时,状态按如下顺序变化:& Z; [7 o5 Q4 ?& s4 R
– 1,3,5,7,… 若 CW/CCW 为高 (顺时针方向)' \3 V0 B" R* o6 \: d2 g( K0 {
– 1,7,5,3,… 若 CW/CCW 为低 (逆时针方向)) V3 Y2 ^! F+ ]- w4 @: _
# _1 G& g- g- p

, f) [8 ^- F% Z6 H% }, z ZGTF(Y~TWT%[02NSN%KGH~9.png ) k+ @% Y5 l0 O( a

- e+ q3 \6 t3 E' \: p
1 G( S$ v  ]* r
3 w* Z4 ~4 b% w: l1 A
波形驱动模式 (全步进,一相开)
9 Q1 L6 W) j! u: C2 Y3 vHALF/FULL 输入引脚上的低电平选择的是全步进模式。若为低电平,当状态机为偶数状态时,选择波形驱动模式。7 显示了电机电流波形及相位序列生成器的状态图。要进入波形驱动模式,状态机必须为偶数状态。更直接进入波形驱动模式的方法为:首先复位,然后在保持 HALF/FULL 输入为高电平的同时向时钟输入施加一个脉冲,然后将HALF/FULL 输入变为低电平。此顺序首先将状态机强制为状态 1。取决于 CW/CCW 入,时钟脉冲与 HALF/FULL 输入高电平共同将状态机从状态 1 切换至状态 2 8。在每个时钟脉冲 (上升沿)之后,状态机根据如下顺序改变状态:
5 P8 N8 N* ?( d– 2,4,6,8,… 若 CW/CCW 为高 (顺时针方向)" M% h1 V6 m/ _% P/ v1 {
– 8,6,4,2,… 若 CW/CCW 为低 (逆时针方向)
, n6 Q( x8 S2 Y' z, Z  T, O  s有关详细信息,请参见 L6208 数据手册。
! ~2 C* J" u6 J! W% N2 M
+ p1 h# ^' I' U

; K/ i7 W1 D9 {% _( G3 ^/ f CSGM})SN(ZOAQ3${Y$FHAFA.png 6 _4 x* D' d9 _- P7 t" {: H

. v" B: l* l* Z; d) r3 E# Y! | `L9H%LICHLH7JE][QSJ4N)R.png * |* Y/ C) H" F

& F2 _( Y' @$ }5 `
) @6 f5 p6 A6 e1 C; y$ l4 N( e4 s
完整版请查看:附件
/ ~9 Y- B" _1 A/ x1 _) M7 l" E- k; y

+ M/ T: P) q: t8 Q' X

CD00207733_ZHV2.pdf

下载

614.61 KB, 下载次数: 5

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

举报

0个回答

所属标签

相似分享

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版