
前言 本应用笔记讲解了当使用基于 cortex-M3 微控制器的 medium-density STM32F103xx 系列产品驱动双极步进电机时,怎样做到体积小、速度高、成本低、资源少。它提供一种简单的方法,实现全步进和半步进工作模式控制步进电机。 步进电机是一种机电设备,可将电脉冲转换为离散的机械步进运动。当以适当顺序施加电命令脉冲时,步进电机的轴将以离散步进旋转。当需要受控的运动时,步进电机是一个很好的选择。尤其是当应用需要控制旋转角、速度、位置和同步时,它们非常有用。* 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 STM32F103xx及 L6208 全集成两相步进电机驱动。此方法价格最低、实现最简单、使用的 CPU 负荷最小( Q; l/ Z2 l7 F4 Y2 ~ 0 D/ a, m1 o+ Z( v5 ~ 1步进电机基础 1.1步进电机类型 有三种基本的步进电机类型: ●可变磁阻 ●永磁! 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 电机类型相比,此特性增加了电机的制动、保持和动态磁通特性。 步进电机可为双极或单极绕组。 单极步进电机有两个相同的线圈,它们不做电连接,都有中心抽头。双线无感线圈组的任一端通电,共用中心抽头,则磁通反转。单极步进电机的优势在于它们仅需要一个切换开关。然而,它们需要双线无感线圈组,这意味着对于一个给定的体积因子,线更细,电阻更高。 除了线圈没有中心抽头外,双极步进电机与单极电机相同。对于双极电机,可使用 H 桥反转绕组的极性及磁通。双极步进电机的优势在于它们仅使用一个线圈,因此具有较好的体积因子 (较低的线圈电阻)。+ J7 I$ i0 I* I: K 单极电机仍被广泛使用,因为当与分立器件一起实现时,它们的驱动电路更简单。然而,对于现今的集成电路,驱动双极电机所需的元件也不比单极电机多。 & P% s6 \* t7 I: {8 z 3 }8 O9 S! S# S7 a, l7 T - {# p) V9 z& h2 ?( m5 w/ W0 q- c ![]() " L& }; i- Y/ K3 V+ c' m" f 1.2驱动信号 当供电时,直流电机可自行运行,而步进电机需要换向信号。2 N( p/ k' |' M# ^7 K2 j5 s5 { 可使用不同模式驱动步进电机,包括全步进和半步进模式。通常全步进模式被全步进电机驱动使用。在此模式中,两个相位都一直被供电,电机具有全额定扭矩。此控制模式仅需四个矩形信号,也可由 PWM 生成 (在一步的时间内有固定的占空比)。取决于超前相位,电机轴会顺时针或逆时针旋转。 半步进模式更复杂一些。若使用了半步进驱动,则在每个时钟沿后,电机会前进半步,这样能得到更高的位置分辨率及降低不稳定性。 然而,在两种模式中,信号都以确定的方式互相相关,因此可用标准逻辑生成。较好的逻辑实现最好使用专业应用集成电路,当然芯片价格也很高。简单讲,专业应用集成电路包含内部转换电路,由步长和方向输入控制。 IC (集成电路)电机控制器仅有三种工作模式:全步进两相开、半步进、波形驱动。此类 IC 需要输入四个信号至控制器,它们由微电脑或其它专用控制芯片提供。此外,此解决方案需要一个功率驱动电路和一个微处理器,来产生不同电机的驱动控制信号。 一些已知应用需要能改变步进电机速度,以生成确定的速度曲线 (例如,一个典型的运行曲线)。在此情况下,在这三种可能的模式中,驱动步进电机的最好方式为软件解决方案,使用能代替任何其它控制器的微控制器电路。在基于微控制器的应用中,可使用软件和 PWM 定时器,因此不需要外部控制器。 使用此方法可用最少的硬件及非常低的微控制器 CPU 负荷实现高速应用。 2使用中密度 STM32F103xx 驱动双极步进电机 本章说明了如何根据图 2 中所示的典型运行曲线,使用 medium-density STM32F103xx 来驱动全步进和半步进模式的步进电机。 ![]() - r& d$ F5 u% Q3 _ 2.1硬件开发 如前面章节所述,需要正确选择微控制器和 IC,以实现驱动步进电机的最佳解决方案。在本应用中,选择的是 medium-density STM32F103xx 器件和 L6208 DMOS 驱动。 1 B/ k, R( ?8 @' D 2.1.1 STM32F10xxx 用于驱动双极步进电机的特性 medium-density STM32F103xx 的外设非常适合驱动步进电机。这些外设包括三个标准 (通用)定时器(TIM2、TIM3、TIM4),其内部时钟频率最高为 72 MHz,以及用于高分辨率捕获的四个 16 位独立通道。此外,STM32F103xx 外设包括一个高级控制定时器(TIM1),其内部时钟频率最高为 72 MHz,以及四个 16 位高分辨率捕获通道。此定时器有三个通道(CH1、CH2、CH3),它们可生成三个互补信号。它还有一个独立通道(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 时间内维持最大步进电机速度。每次达到所编程的时间基准时,这一灵活的系统定时器都可生成一个中断。 medium-density STM32F103xx 有八十个 GPIO,可配置为复用功能推挽。这些 I/O 可控制步进电机的旋转方向 (顺时针或逆时针) 、步进模式 (全步进或半步进) 、衰变模式 (慢或快)、L6208 芯片使能信号。(若需 medium-density STM32F103xx 特性的更详细信息,请参考 STM32F10xxx 参考手册)。 总之,使用这些外设, medium-density STM32F103xx 可同时驱动十九个全步进及半步进模式的步进电机,仅需消耗最低的 CPU 负荷。此解决方案的硬件需求为:功率极中每个线圈都要有一个集成了基本 H 桥电路的 IC,以及主要用于相位生成的中央逻辑。 . |3 f8 C, p2 e2 a: m# v7 Y+ r2 q 2.1.2双极步进电机的 L6208 DMOS 驱动 用于双极步进电机的驱动电路更复杂一些,因为双极电机的绕组上没有中心抽头。因此,若需反转电机线圈所产生场的方向,需要使用 H 桥电路,通过线圈反转电流。市场上有很多集成的 H 桥驱动。本应用选择的驱动为 L6208,它是 DMOS 全集成步进电机驱动,其非耗散过电流保护用于驱动两相双极步进电机。它包含一个双 DMOS 全桥、用于执行浪涌调节的两个固定关断时间 PWM 电流控制器(每个桥一个)、用于生成步进序列的一个相位序列生成器。; j3 U' B4 ?) m$ T, j 图 3 表示了 L6208 IC 框图。对于此图,主要的 L6208 输入为: ●EN 逻辑输入:它是芯片使能输入。低逻辑电平可切断桥 A 和桥 B 的所有功率 MOSFET。 此引脚还连至过电流和热保护电路的集电极以实现过电流保护。 ^$ c! w% j5 p9 g0 h ●CLOCK 逻辑输入:它是步进时钟输入。在每个上升沿,状态机前进一步。 ●CW/CCW 逻辑输入:它选择了旋转的方向。高逻辑电平设置的是顺时针方向,低逻辑电平设置的是逆时针方向。) H+ h* l3 b, o. m2 r ●HALF/FULL 逻辑输入:它是步进模式选择器。高逻辑电平设置的是半步进模式,低逻辑电平设置的是全步进模式。 ●CONTROL 逻辑输入:它是衰变模式选择器。高逻辑电平设置的是慢衰变模式,低逻辑电平设置的是快衰变模式。 ●VREFA 和 VREFB 模拟输入:它们分别是桥 A 和桥 B 的源引脚。4 Z" t" x2 H1 t9 W4 y ![]() 图 4 显示了使用 L6208 驱动的典型双极步进电机驱动应用。它还显示了所用封装,即PowerDIP24/SO24 的不同引脚。在功率引脚 (VSA 和 VSB)和 L6208 附近的接地之间应插入范围为 100 到 200 nF 的高质量陶瓷电容,以增强电源的高频滤波,降低开关产生的高频瞬态。EN 输入和接地之间所连接的电容可设置检测到过电流时的关闭时间。两个电流感应输入(SENSEA 和 SENSEB)应与布局中的感应电阻尽量接近。感应电阻应为非电感电阻,以使通过它的 di/dt 瞬态最低。为增强对噪声的免疫力,最好将不用的逻辑引脚 (除 EN 之外)连至 5 V (高逻辑电平)或 GND (低逻辑电平)。建议在 PCB 上将电源地和信号地分开。 ![]() ' j* G- a" z P& e! M# g2 r5 \+ ] 表 1 给出了 L6208 驱动的电气特性。 . K% |$ {2 [8 }) b4 O! W. y ![]() + `9 T! a5 L& r/ Q. ^ 3 h: W) J- O9 }& N7 ]8 M L6208 两个桥中的每个桥都包括一个固定的关断时间 PWM 电流控制器。通过感应两个低功率 MOS 晶体管的源和地之间所连外部感应电阻上的压降,电流控制电路取得桥电流。 每个电机线圈的电流流过相应的感应电阻,产生压降,逻辑电路可用其控制负载电流的峰值。 当选择感应电阻 RSENSE 的值时,必须考虑两个问题: ●当电流再开始流动时,感应电阻耗散功率会在 SENSE 引脚上引起潜在的危险负电压。 因此,该元件的电阻应较低。 ●由内部比较器比较 RSENSE 上的压降与(Vref 引脚上的)参考电压。RSENSE 值越低,峰值电流误差就越高。这是因为 Vref 引脚上的噪声以及电流感应比较器的输入偏置:必须避免太小的 RSENSE 值。, r" |& E E @6 g4 \- {8 g 计算感应电阻值的一个较好折中为,对应于流过负载峰值电流 (Ipeak)的压降应为约 0.5 V:RSENSE = 0.5 V / Ipeak。( X5 K0 H6 {4 i2 n- z 感应电阻必须为非电感类型,以避免 SENSE 引脚上有危险的负电压。 1 r# Q0 P( @3 q6 L9 j- U* N 电流控制模式:快衰变模式和慢衰变模式 CONTROL 输入用于选择关断期间桥的行为。当 CONTROL 引脚为低时,选择的是快衰变模式,桥中的两个晶体管都在关断期间关闭。当 CONTROL 引脚为高时,选择的是慢衰变模式,仅桥的低侧晶体管在关断期间关闭。 $ k$ ]6 y# M2 m6 P8 {& O 步进序列生成:半步进和全步进模式 相位序列生成器为一个状态机,它可提供相位并启用两个桥的输入,以在全步进或半步进模式中驱动步进电机。有两种全步进模式:普通驱动模式,在每步时两个相位都开;波形驱动模式,同一时间仅有一个相位为开。驱动模式由 HALF/FULL 输入选择。CLOCK 输入的上升沿会使状态机前进至下一状态。旋转的方向由 CW/CCW 输入设置。RESET 输入会将状态机复位至 Home 状态 (状态 1)。 ●半步进模式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 为高 (顺时针方向) – 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 ![]() 2 ^7 G2 ^6 u3 [+ I8 H& k ●普通驱动模式 (全步进,两相开) HALF/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 ![]() 1 G( S$ v ]* r 3 w* Z4 ~4 b% w: l1 A ●波形驱动模式 (全步进,一相开) HALF/FULL 输入引脚上的低电平选择的是全步进模式。若为低电平,当状态机为偶数状态时,选择波形驱动模式。图 7 显示了电机电流波形及相位序列生成器的状态图。要进入波形驱动模式,状态机必须为偶数状态。更直接进入波形驱动模式的方法为:首先复位,然后在保持 HALF/FULL 输入为高电平的同时向时钟输入施加一个脉冲,然后将HALF/FULL 输入变为低电平。此顺序首先将状态机强制为状态 1。取决于 CW/CCW 输入,时钟脉冲与 HALF/FULL 输入高电平共同将状态机从状态 1 切换至状态 2 或 8。在每个时钟脉冲 (上升沿)之后,状态机根据如下顺序改变状态: – 2,4,6,8,… 若 CW/CCW 为高 (顺时针方向)" M% h1 V6 m/ _% P/ v1 { – 8,6,4,2,… 若 CW/CCW 为低 (逆时针方向) 有关详细信息,请参见 L6208 数据手册。 ![]() ![]() ) @6 f5 p6 A6 e1 C; y$ l4 N( e4 s 完整版请查看:附件 ) M7 l" E- k; y |
CD00207733_ZHV2.pdf
下载614.61 KB, 下载次数: 5