新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于L297和L298的步进电机驱动器的设计

基于L297和L298的步进电机驱动器的设计

作者:时间:2016-10-15来源:网络收藏

引言

本文引用地址:http://www.eepw.com.cn/article/201610/307601.htm

步进电机广泛应用于对精度要求比较高的运动控制系统中,如机器人、打印机、软盘驱动器、绘图仪、机械阀门控制器等。目前,对步进电机的控制主要有由分散器件组成的环形脉冲分配器、软件环形脉冲分配器、专用集成芯片环形脉冲分配器等。分散器件组成的环形脉冲分配器体积比较大,同时由于分散器件的延时,其可靠性大大降低;软件环形分配器要占用主机的运行时间,降低了速度;专用集成芯片环形脉冲分配器集成度高、可靠性好,但其适应性受到限制,同时开发周期长、需求费用较高。

步进电机控制

步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(VR)、永磁式步进电机(PM)和混合式步进电机(HB)。 步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。 步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下:

(1)控制换相顺序 通电换相这一过程称为脉冲分配。例如:混合式步进电机的工作方式,其各相通电顺序为A-B-C-D,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断,这就是所谓脉冲环形分配器。

(2)控制步进电机的转向 如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。

(3)控制步进电机的速度 如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。

组成的步进电机驱动电路

SGS公司的单片步进电机控制集成电路适用于双极性两相步进电机或四相单极性步进电机的控制,与两片H桥式驱动芯片组合,组成完整的步进电机固定斩波频率的PWM恒流斩波驱动器。

产生四相驱动信号,用以控制双极性两相步进电机或四相单极性步进电机,可以采用半步、两相励磁、单相励磁三种工作方式控制步进电机,并且控制电机的片内PWM斩波电路允许三种工作方式的切换。使用 L297突出的特点是外部只需时钟、方向和工作方式三个输入信号,同时L297自动产生电机励磁相序减轻了微处理器控制及编程的负担。L297具有DIP20和SO20两种封装形式,可用于控制集成桥式驱动电路或分立元件组成的驱动电路。

L297主要由译码器、两个固定斩波频率的PWM恒流斩波器以及输出逻辑控制组成,其内部结构图如图1所示。

1.jpg

图1 L297内部结构框图

L297另一重要组成是PWM斩波器控制相绕组电流,实现恒流斩波控制,以获得良好的转矩-频率特性。每个斩波器由一个比较器、一个RS触发器以及外接采样电阻组成(见图2)内部设有一公共振荡器,向两个斩波器提供触发脉冲信号,脉冲频率是由外接的RC网络决定,当

时振荡器脉冲使触发器置“1”,电机绕组相电流上升,采样电阻RS的电压上升到基准电压Vref时,比较器翻转,使触发器复位,功率晶体管关断,电流下降,等待下一个振荡器脉冲的到来。这样,触发器输出是恒频的PWM信号,调制L297的输出信号,绕组相电流峰值由Vref决定。CONTROL信号用以选择斩波信号控制。当它为低电平时,斩波信号作用于两个禁止信号,高电平时,斩波信号作用于A、B、C、D信号。前者适用于单极性工作方式,而对于双极性工作方式的电机,这两种控制方式都可以采用。

2.jpg

图2 斩波器电路

利用L297的SYNC引脚可实现多个L297同步工作,其连接方式如图3所示,只将RC网络接于一芯片上,而其余芯片的OSC引脚均接地,这样可避免接地杂波的引入问题。

3.jpg

图3 多个L297同步工作

SGS公司的芯片是一种高电压、大电流双H桥功率集成电路,可用来驱动继电器、线圈、直流电机和步进电机等感性负载。它具有两抑制输入来使器件不受输入信号影响。每桥的三极管的射级是连接在一起的,相应的外接线端可用来连接外设传感电阻。可安置另一输入电源,使逻辑能在低电压下工作。

采用L297和L298实现的步进电机驱动电路见图4,该电路为固定斩波频率的PWM恒流斩波驱动方式,适用两相双极性步进电机,最高电压46V,每相电流可达2A。用两片L298和一片297配合使用,可驱动更大功率的两相步进电机。

4.jpg

图4 L297和L298的步进电机驱动电路图

软件设计

当程序进入到非程序区,只要在非程序区设置拦截措施,使程序进入陷阱,

然后强迫程序回到初始状态。如对CPU的RST指令对应的字节码为0FFH,如果不用的程序存储区预先写入0FFH,则当程序因干扰而“飞”到该区域执行代码时,就相当于执行1条RST指令,从而达到系统复位的目的。

采用C语言编写程序代码

PO_ 0=1; //CW 方向

PO_ 1=1; //HALF 半步

PO_3=1; //ENABLE 使能

PO_ 2=1; //RESET 复位

PO_7=1; //CLOCK 时钟

TMOD=O X O1; //TI采用定时器

THO=(一4000/256);

TLO=一(400000256);

TRO二I;

for(;;)

{

THO=一(4000/256);

TLO=一(4000% 256);

do{}while(! TFO);

PO_ 7=! PO_ 7; CLOCK 输出时钟

TFO=O;

}

结语

采用此设计的步进电机驱动系统,在驱动二相或四相混合式步进电机时运动平稳,速度快,噪音低,控制精高,而且可选整步半步驱动。外观采用铝镁合金,散热性好,价格低廉,可广泛应用于需要驱动电流小于2A的混合式两相或四相步进电机的系统中。



评论


相关推荐

技术专区

关闭