前言
很多时候,IC厂商之间对某些参数指标没有明确的规范,所以,我们在选择步进电机驱动器时,不能完全依赖数据手册中的规格参数,它们的定义可能不同,适用情况和现实情况可能相去甚远,有时甚至是彻头彻尾的误导。
我们需要结合自身应用,更深层次的理解和计算。
正文
今天我将和大家一起共同探讨如何正确选择步进电机驱动器。
首先,我们将了解步进电机的基础知识,以及如何去驱动一个步进电机。
其次,我们将通过典型步进电机驱动IC的数据手册,来了解步进电机驱动器的主要特点和技术指标。
最后,我们将展示如何理解数据手册中的规格参数,并将它们和实际应用联系在一起。
在这个过程中,你会发现你必须要自己做一些工作,而不是相信你在数据手册上看到的一切!
PART.01
我们先来了解下步进电机的基本构造,以及它是如何运转起来的。
步进电机是一种将电脉冲信号转换成相应角位移或线位移的执行器。通俗一点讲,当步进电机驱动器 接收到一个脉冲信号,它就会驱动步进电机按设定的方向转过一个固定的角度,就是我们常说的步距角。我们可以通过控制脉冲个数来控制角位移量,从而达到准确的位置控制;同时我们还可以通过控制 脉冲的频率 来控制电机的转速,从而达到调速的目的。
步进电机一般可分为:永磁式步进电机、反应式步进电机和混合式步进电机。
永磁式步进电机一般为两相电机,它的转矩和体积都比较小,步距角一般为7.5度或15度;,反应式步进电机一般为三相电机,它可以实现大转矩输出,但噪声和震动都很大,所以现在基本已经被淘汰了;,混合式步进电机混合了永磁式和反应式的优点,一般是两相或五相电机,两相的步距角一般为1.8度,而五相的步距角一般为0.72度。
目前市面上绝大多数步进电机使用两相绕组,因此本文我们将重点研究两相双极型步进电机及其驱动器。
图1展示了两相永磁式步进电机和混合式步进电机的基本结构>
永磁式步进电机的转子由永磁性材料制成,N/S极交替分布在转子上;定子由软磁材料制成,上面分布有两相励磁绕组;定子、转子周边没有小齿和槽,通电后利用永磁体与定子电流产生的磁场 相互作用产生转矩。
图1:两相永磁式步进电机和混合式步进电机的基本结构,混合式步进电机的定子一般由8个磁极构成,两相绕组错开缠绕在8个磁极上,它的转子结构比较复杂,内部为圆柱形永磁铁,外套软磁性材料,使得一部分被磁化成N极,另一部分被磁化成S极,定子和转子周边有小齿和槽。
虽然这两种电机的结构不同,但都依赖于带有永磁体的转子,通过改变定子线圈上电流的大小和方向来产生变化的磁场,吸引和排斥带有永磁体的转子,使得电机能够朝着一个方向连续转动。
PART.02
我们来了解下如何驱动一个两相双极型步进电机。
通常我们采用双全桥结构作为驱动电路。前面我们提到通过改变定子线圈上电流的大小和方向可以在磁极上感应出不同的N/S极,进而吸引和排斥带有永磁体的转子来实现电机转动。下面我们以整步驱动方式为例,来看下具体的操作>
首先我们将步进电机的定子和转子简化成图2中左图示意,以便说明。
图2,当A相绕组正向通电时,也就是图2中的右图全桥电路中打开Q1和Q4,根据安培定则,会在A相定子磁极 上端 感应出N极,下端感应出S极,转子的S极就被吸引到位置8;B相绕组正向通电时,也就是打开Q5和Q8,会在B相定子磁极 左端 感应出S极,右端感应出N极,吸引转子S极到位置2;同理A相绕组反向通电时,吸引转子S极到位置4;B相绕组反向通电时,吸引转子S极到位置6;如此循环,电机就朝着一个方向转动起来了。
由此可见,A/B两相驱动存在90度相位差,就像正弦和余弦的关系。
当然还有一种整部控制方式,在同一时刻,两相绕组都会通电。
A/B两相正向通电时,A相定子磁极 上端 感应出N极,下端感应出S极;B相定子磁极左端感应出S极,右端感应出N极,转子S极就会被吸引到位置1。A相绕组负向通电,B相绕组正向通电时,转子被吸引到位置3。接下来依次是位置5和位置7,如此形成矢量闭合。
相较于单相驱动,双相驱动效率更高,力矩更大,因此在实际应用中较为常见。
步进电机的机械步进分辨率是由电机本身结构决定的,准确的说,是由定子和转子上的齿数来决定。
一般来说,步进电机转一圈需要16-400个脉冲信号,其中每转一圈需要200个脉冲信号的步进电机最为常见,它们的定子和转子有50对极,步距角为1.8度。由于电机的机械分辨率受到实际生产制造的限制,很难再通过机械的方式来实现0.9度以下的位置控制。为了进一步提高步进电机的控制精度,我们引入了细分控制。
前面我们介绍了整步模式下的单相驱动和双相驱动,当我们把这两种驱动方式交替的结合在一起,就产生了半步控制。这种控制下 一个电周期内有8个电气角位置,比整步模式多了一倍,因此对于同一个电机转过相同的角度,半步模式需要的脉冲个数也会比整步多一倍。换句话说就是同样数量的脉冲信号,电机转过的角度只有整步的一半,提高了控制精度。
我们将电周期看作一个圆周,以1/4圆周为例,整步模式下驱动的位置有1和9;半步模式下驱动的位置是1,5,9;继续按正弦电流调制,得到了1/4步,增加了位置3和7……以此类推,两相驱动电流被不断分割得到更小的步进增量,这就是微步。
这里我们提一点,以1/8步为例,一个电周期需要32个脉冲信号,而在机械上一个电周期电机仅仅只是转过了一个对极。所以对于一个50对极的步进电机来说,如果用1/8步电流控制,那么机械上转过一圈就要1600个脉冲!
图3,PART.03
前面我们说到了步进电机细分控制原理,现在我们来看下不同细分步数下的电流控制波形。
如图4,在整步模式中,只有一个电流平台被驱动,正负交替,一个电周期内只有4个状态,对应4个电气角位置。
在半步模式中,有两个电流平台,分别是100%电流和70.7%电流,一个电周期内有8个状态;1/4步下有4个电流平台,16种状态;以此类推…,从驱动电流形态上看,如果细分步数越多,两相电流越接近正弦和余弦波形,电机转动会更顺滑,噪音也会更小。
图4,PART.04
我们来看一下典型的步进电机驱动IC是什么样的。
图5是MPS公司一个典型步进电机驱动IC的内部原理框图。它包含了基本的电源模块,两个全桥电路,门级驱动电路,电流采样电路以及一些逻辑控制单元等。
图5:MP6500典型步进电机驱动IC的内部原理框图,这其中还有一个用于控制步进的状态机,我们称之为索引器,门级驱动电路根据状态机来驱动后级功率管开通和关断,进而控制相电流的大小和方向,以实现准确的电机位置控制。
图6是一个改进型的步进电机驱动IC,它除了前面提到的这些基本模块以外,还使用了SPI接口,用来访问故障诊断寄存器和其他功能设置。此外,这个改进型驱动器还可以直接测量电机反电动势,可用于转子失速检测,或者速度闭环控制等。
图6,复杂的步进电机驱动器可能还包括运动轨迹发生器,它可以通过编程自动的将电机从静止状态ramp到目标速度,也可以通过一个指令,一定的步数,缓慢回到静止状态。
PART.05
我们来看下IC数据手册。
在典型的步进电机驱动IC手册上,我们通常会在第一页看到一个基本功能列表。上面提到的这些特性都是选择步进电机驱动器时需要考虑的。但正如我们稍后将看到的,其中一些特性只能作为参考,不能认为它们都适用于你的应用。
下面我们来逐个查看重要的技术指标。
图7,我们需要关注的第一个重要指标就是输入电压范围,它表征了这颗IC的最大和最小工作电压,电机驱动电压必须落在这个范围内。
接下来是输出电流,它表征了这颗IC驱动负载 输出电流的能力。由于芯片厂商之间没有明确的规范,这个电流可以是持续电流,峰值电流或者其他形式的电流,所以仅仅盯着这个电流数值可能没有太大意义,甚至有时候还会误导你。
当然在任何情况下,这个电流值必须等于,或者更有可能大大高于你想要驱动到绕组的电流。
MOSFET的导通阻抗对于驱动器真正可以提供多少电流至关重要,它可用于IC发热计算。稍后我们也会详细讨论这一点。
接下来是逻辑接口,不同产品的逻辑接口可能有所不同。
一些步进电机驱动IC具有单独的逻辑电源引脚,逻辑高低电平阈值 与该逻辑电源电压成正比。另外一些则有固定的逻辑阈值。你需要确保逻辑输入电平与你的系统相兼容 – 假如你的控制器 逻辑高电平 只能驱动到1.8V,那么当你使用仅为3.3V 逻辑电平 设计的驱动器时,就很有可能会遇到问题。
图8展示的是步进电机驱动IC的主要功能。选型之前,你应该很清楚你的应用需要哪些功能。
图8,很多时候我们不需要过多用不到的功能,因为更多的功能意味着更高的成本。
一些比较老旧的驱动器使用外部采样电阻,每个全桥各需要一个,以提供控制绕组电流所需的电流反馈。这些电阻又大又贵。较新的驱动器一般都将采样电阻集成到IC内部,这样不但可以减少外部所需的元件,而且还减小了布板面积。
不同驱动器之间的步进模式差异很大,从整步到1024微步都有。从某种程度上讲,更精细的步进模式可以使步进电机运行更平稳。但细分步数也不是越高越好,因为它会受到电机自身机械结构的限制,而无法实现更高的细分要求。实际应用上比较常见的微步有1/8步和1/16步。
为了实现高质量的运动控制,绕组电流必须得到很好的调节。确保这一点的一个重要指标就是控制电流衰减的时间。
电机高速运转时会产生较大的反电动势,如果管理不当,可能会导致电流波形失真。一些比较老旧的驱动器采用固定比例的“混合衰减”模式来解决这个问题。而比较新的驱动器,带有内部电流检测,可以实现自动电流衰减,提供了更高效的电流控制。
保护功能在电机驱动IC中是非常有必要的,它可以在发生短路或电源故障等问题时保护IC不受损坏。
在改进型的步进电机驱动IC中通常会使用SPI接口,会做更加完善的故障诊断功能,比如电机失速检测,负载开路检测等等。
最后,IC的封装尺寸也是一个重要的考虑因素。较小的封装可以节省PCB布板面积,但较小的封装通常有较大的热阻,这意味着它们耗散IC内部产生热量的效率较低。这可能会限制驱动器可以提供的最大输出电流。
在后续探讨之前,我们先来回顾下数据手册上经常会看到的几种电流表述。Peak,maximum,continuous,average,RMS,full-scale…,
图9,一般来说,peak current指的是峰值电流,它是触发OCP前允许的最大瞬时电流;maximum一般指的是一个周期内的最大输出电流;continuous一般指的是持续的直流输出电流;average是算数平均电流;RMS是均方根电流;full-scale是满量程电流。
实际上IC厂商之间并没有统一 驱动器输出电流的表述方式。
比如图9中,波峰时刻的电流,在一些数据手册中,被描述成maximum current,peak current或者是full-scale current。但在另一些数据手册中,这些电流的含义却是不一样的。所以,你必须真正理解它们具体指代的意思,而不是停留在术语本身。
在IC功耗计算中,我们需要用到RMS电流。整步模式下,绕组电流只被驱动到一个电流平台。所以,在不考虑电流纹波时,整步下的RMS电流就等于最大电流;而在非整步模式下,你可以用最大电流乘以0.707,来近似得到RMS电流。
在我们深入了解驱动器 实际可以输出多少电流之前,我们需要计算IC上产生的功耗。
对于IC总功耗的计算,我们需要知道全桥电路中功率管的导通阻抗,我们用Rds来表示。在步进电机驱动IC中,全桥上管和下管的导通阻抗可能是一样的,也可能是不一样的。在电流调节期间,绝大多数时候,控制器保持全桥一侧下管通,另一侧在PWM,PWM的占空比根据电源电压、电流调节设定值和电机转速等变化。理论上来说,占空比可以在0和100%之间变化,但实际上大多数时候,占空比都是在50%左右变化。
换句话说,在电流调节期间,始终有两个功率管处于导通状态,电流有一半的时间流过两个下管,另一半时间流过一侧的上管和另一侧的下管。
由此我们也可以大致计算出芯片总的有效导通阻抗,计算公式为一个下管的Rds + 上管和下管Rds的平均值>
Effective RDS = RLS + / 2,例如MPS公司的MP6500,上管Rds为195mΩ,下管为170mΩ,那么可以算出有效导通阻抗为353mΩ;而同类其他产品上下管的Rds都为450mΩ,电流路径上的有效导通阻抗为900mΩ。
考虑到实际工作中,下管导通时间更长,所以在设计驱动芯片时,将低边MOSFET的Rds做的更小一些,是有意义的。
PART.06
可是,有时候事情并没有我们想想的这么简单。
事实上MOSFET的Rds并不是一个恒定的值,不同芯片之间可能会存在差异,这就是我们可以在数据手册上看到典型值和最大值的原因。对于最坏的情况分析,我们可以用最大值来计算,尽管这是一种比较悲观的做法,但它绝对是安全的。
更糟糕的情况是MOSFET的Rds,会随温度变化而变化,这种变化和器件的物理特性相关,不同的IC工艺都有类似的现象。
图10展示了MP6500两个全桥上/下管Rds随温度变化的情况。一般来说,150度下的Rds会比常温下高50%左右。
图10,知道了电流路径下的有效导通阻抗之后,我们就可以来计算IC上产生的总功耗了。
它大体可分为三部分,分别是导通损耗,开关损耗和静态损耗。
当然可能还有一部分驱动损耗,这部分损耗非常小,通常可以忽略不计。有时候驱动损耗已经包含在静态损耗中,这取决于IC静态电流是在开关状态下还是非开关状态下测得的。
导通损耗
计算公式是>
Resistive Losses>
PR = IRMS2 x RDS,其中IRMS是流经绕组的有效电流,RDS是电流路径上MOSFET的有效导通阻抗。
功率损耗
在MOSFET开通和关断时也有一部分功率损耗,即开关损耗。这个功耗取决于开关频率和MOSFET开通关断时的转换速率,也就是slew rate。在此期间,MOSFET工作在线性区域,就像可变电阻一样。所以这个功耗可以近似为 >
Switching Losses>
PS ≈ ½ x VIN x IRMS x fsw x tR,+ ½ x VIN x IRMS x fsw x tF,通常步进电机驱动IC手册上不会标明转换速率,但大部分驱动器的上升下降时间在10nS到100nS之间。所以,如果没有明确标注的话,我们可以用100nS作为估算。
注意,我们算的导通损耗和开关损耗只是其中一个全桥的,在步进电机驱动器中有两个全桥,所以以上两部分损耗,需要乘以2。
静态损耗
这部分损耗来自于芯片内部的逻辑供电,门级驱动电路等等。数据手册上会直接给出IC静态电流,我们用输入电压乘以静态电流就得到了这部分损耗:,Static Losses>
PQ = VIN x IQ,IC内部耗散的总功率就是这三部分之和:,Total Power
P = PR + PS + PQ
下面我们用一个实例来说明IC总功耗。
比如某个应用中,MP6500输入电源电压为24V,输出峰值电流为2A,开关频率为20kHz。在正弦或者类正弦的电流输出中,2A峰值电流意味着实际驱动电机的RMS电流为2A*0.707,即1.414A。前面我们得到了PWM期间,MP6500总的有效导通阻抗为353mΩ,那么就可以算出导通损耗为706mW每个全桥。我们没有在MP6500的数据手册中找到上升/下降时间,所以这里我们都用100nS来近似估算。当然slew rate可以通过实际测量得到。
根据公式算得开关损耗为每个全桥68mW。另外我们在手册中找到静态电流为1.5mA,算得静态损耗为36mW。三部分损耗相加,我们得到的总功耗约为1.58瓦。需要注意的是,这里我们用到的所有数据都是基于常温下的。
当我们知道了IC上消耗了多少功率以后,我们就可以把它和实际温度联系在一起。IC内部硅晶片上的温度我们称之为“结温”,由于我们不能直接测量结温,只能依靠热仿真或者大体计算得出。通常,硅晶片的工作温度是有上限的,一般为150摄氏度。超过这个温度,大多数芯片就会关断功率级以保护IC不被损坏。热量会从一个温度较高的物体流向一个温度较低的物体,就好像电流会从一个较高的电压流向一个较低的电压。传递受阻力的影响,在热模型中,我们称之为热阻。
图11展示了一个最基本的热传递模型。硅晶片上产生的热量有两条传导路径,一条向上传导,从junction传递到case top,再由case top向空气散热;另一条向下传导,从junction传递到board,再由board向空气散热。
图11:基本的热传递模型,大多数IC数据手册上都标注了热阻参数。Theta-JA,它表征了热量从硅晶片向周围空气传递时受到的阻力,它是上述两条支路的热阻总和,单位℃/W。所以当你知道了IC上消耗的总功率,你就可以通过功率乘以热阻再加上环境温度计算出结温。
需要说明的是,你在数据手册中看的热阻参数都是基于一些标准PCB下的数据,其中一种JEDEC标准,称之为JESD-51。JESD-51有几种标准化的电路板结构,其中IC数据手册中最常用的是JESD51-7,也就是图12上展示的这个。
图12,JESD51-7约定了板子的尺寸,层数,铜厚和线宽等等。这是一种相当典型的PCB板结构,但它可能与你实际的PCB有很大不同。
不同PCB的尺寸,层数和铜厚都会对热阻产生巨大的影响。所以,手册上给出的热阻数据只适用于JESD51-7标准下的PCB以及其约定的其他外部条件。
换句话说,手册上的Theta-JA只能用于同类产品之间的横向比较,而不能用于你PCB上的IC发热计算。
我们用一个实例来说明不同PCB对相同功耗下的IC发热有多大影响。
图13中的左边是MP6500在两层板上驱动2A峰值电流时的发热情况,我们可以看到壳温是84度;图13中的右边是四层板,其他条件都一样,壳温只有56度。差异非常的明显。
图13:MP6500 Driving a 2A Peak Stepper Motor,我们知道了如何计算IC功耗和结温,现在我们再回过头来看看手册中的标称电流。
如图14所示,MPS公司的MP6500标称2.5A 最大电流,同类其他产品标称2.4A 峰值电流。单从标称电流上来看,有人可能会认为这两款产品都可以工作在2A峰值电流。
图14,我们再来对比下它们的热阻,TSSOP封装分别是32和30.9,QFN封装分别是36和40.7。看起来也没有太大的差别。
但是,请注意MP6500的有效导通阻抗只有353mΩ,而同类“其他产品”却高达900mΩ,是MP6500的两倍多。
我们也来算一下“其他产品”的总功耗,还是在24V,2A峰值电流下。计算方法我们前面已经讲过了,这里就不再重复。直接讲结果,我们得出在相同条件下,“其他产品”总功耗是3.86W,而MPS公司的MP6500的总功耗只有1.58W。
再来看下这两款产品的结温。
以TSSOP封装为例,都在室温25度下工作。MP6500的结温是75度,同类“其他产品”是145度,这几乎到了热关断的温度。
但是请不要忘记,刚才我们计算总功耗时,用的只是常温下的Rds 数据,高温下Rds会显著增加,所以实际的结温肯定比我们拿常温数据计算得到的要高。再考虑到环温高一些的应用场合,比如烈日下的汽车内,同类“其他产品”就根本没办法持续工作在2A峰值电流。
换一个角度,我们刚才看到MP6500在两层EVB上驱动2A峰值电流的壳温是接近85度,也就是60度的温升,而MP6500的功耗只有同类“其他产品”的41%,那么可以计算出在同样的两层EVB上,同类“其他产品”的温升达到141度,结温更是高达166度,这已经远远超过了OTP的温度。
通过上述对比,我们可以看出MP6500手册上标称的2.5A maximum current是常温下实实在在能出的电流,而同类“其他产品”很难在常温下持续输出2A最大电流,更不用说2.4A。
这也就是为什么我们一直在强调不能仅仅只看手册上的标称电流的原因。
通过热阻参数Theta JA,我们也可以反推某一温度下实际够输出多少电流。
这里你需要解一个一元二次方程,这和我们之前做的计算是一样的,只是反过来而已,具体过程我就不详细了。
比如常温25度下,MP6500在触发OTP之前可以持续输出2.3A RMS电流,3.2A峰值电流。同类“其他产品”只能输出不到1.5A的RMS电流,2.1A峰值电流。同样的,这些计算结果都是基于常温下的Rds和静态电流,以及JESD51-7标准下的评估板。
需要强调的是,我们不认为任何IC厂商会在数据手册上发布不真实的信息。
同类“其他产品”在数据手册上标注2.4A peak current,1.5A full-scale current。通过刚才的计算,在室温下,同类“其他产品”很难持续工作在2A峰值电流。所以,这里的2.4A peak current,我们可以理解为短时间内可以输出的最大电流,而非持续输出的最大电流。
正是因为很多时候IC厂商之间对某些参数指标没有明确的规范,所以,我们在选择步进电机驱动器时,就需要结合自身应用,更深层次的理解和计算。
当我们在设计一款对IC发热要求非常高的产品时,我们可以使用150度下的Rds数据来计算。结果可能会让你感到失望,也许只有我们上面计算的一半,但这正是我们需要考虑的。
PART.07
综上所述,关于如何选择步进电机驱动器,我的一些小建议>
第一,不能完全依赖数据手册中的规格参数,它们的定义可能不同,适用情况和现实情况可能相去甚远,有时甚至是彻头彻尾的误导!,第二,为了确定选择的驱动器是否适合你的应用,你需要使用MOSFET的导通阻抗和IC的热特性参数等,进行估算。
第三,将PCB结构,环境温度,周围散热情况等纳入你的考虑。
最后,我们来做个简短的回顾>
今天我们一起了解了典型的两相双极型步进电机的基本结构,如何去驱动一个步进电机,我们讲到了细分控制原理,逐个查看了手册上的主要技术指标,以及如何计算IC损耗并将它和温度联系在一起。
希望我的讲解对大家今后在选择步进电机驱动器时有所帮助。