二相步进电机驱动芯片TA8435H及其应用

2007-03-09 19:03:27来源: 互联网
摘要:TA8435H是东芝公司推出的一款单片步进电机专用驱动芯片。文中介绍了该芯片的特点、引脚功能和工作原理,给出了采用89C51和82C53作为控制核心驱动步进电机的具体电路和相关程序代码。 关键词:步进电机;TA8435H;细分驱动;82C53;89C51 1 主要特点 TA8435H是东芝公司生产的单片正弦细分二相步进电机驱动专用芯片,TA8435H可以驱动二相步进电机,且电路简单,工作可靠。该芯片还具有以下特点: ●工作电压范围宽(10V~40V); ●输出电流可达1.5A平均和2.5A峰值; ●具有整步、半步、1/4细分、1/8细分运行方式可供选择; ●采用脉宽调制式斩波驱动方式; ●具有正/反转控制功能; ●带有复位和使能引脚 ●可选择使用单时钟输入或双时钟输入。 2 引脚功能 TA8435H采用ZIP25封装形式,图1为其引脚排列图。各引脚功能如下: 脚1(S-GND):信号地; 脚2(RESET):复位端,低电平有效,当该端有效时,电路复位到起始状态,此时在任何激励方式下,输出各相都置于它们的原点; 引脚3(ENABLE):使能端,低电平有效;当该端为高电平时电路处于维持状态,此时各相输出被强制关闭; 引脚4(OSC):该脚外接电容的典型值可决定芯片内部驱动级的斩波频率(15kHz~80kHz),计算公式为: fosc=1/5.15%26;#215;COSC 式中,COSC的单位为μFfOSC的单位为kHz。 脚5(CW/CCW):正、反转控制引脚; 脚6、7(CK2、CK1):时钟输入端,可选择单时钟输入或双时钟输入,最大时钟输入频率为5kHz; 脚8、9(M1、M2):选择激励方式,00表示步进电机工作在整步方式,10为半步方式,01为1/4细分方式,11为1/8细分方式; 脚10(REF IN):VNF输入控制,接高电平时VNF为0.8V,接低电平时VNF为0.5V; 脚11(MO):输出监视,用于监视输出电流峰值位置; 脚13(VCC):逻辑电路供电引脚,一般为5V; 脚15、24(VMB、VMA):B相和A相负载电源端; 脚16、19( B、B):B相输出引脚; 脚17、22(PG-B、PG-A):B相和A相负载地; 脚18、21(NFB、NFA):B相和A相电流检测端,由该引脚外接电阻和REF-IN引脚控制的输出电流为:IO=VNF/RNF 脚20、23( A、A):A相输出引脚。 3 实际应用电路 笔者为省重点科研项目《智能化大气污染系统的研究》所设计的电路共需驱动三个二相步进电机,以分别完成进样、采样和阀门控制。 图2是TA8435H的一个典型应用电路,该电路用一片TA8435H来驱动一个步进电机,输入信号有使能控制、正反转控制和时钟输入,通过光耦可将驱动器与输入级进行电隔离,以起到逻辑电平隔离和保护作用;该电路工作在1/8细分模式(M1、M1接高电平),可减小低速时的振动,R8和C1组成复位电路,D1~D4快恢复二极管可用来泄放绕组电流由于REF IN引脚接高电平,因此VNF为0.8V,输出级斩波电流为VNF/RNF=0.8/0.8=1A,选用不同的二相步进电机时,应根据其电流大小选择合适的R13和R14。 图3是步进电机核心控制电路,该电路能够控制如图2所示的三个步进电机驱动器。本设计采用外部定时/计数器82C53来给TA8435H提供步进脉冲。因为82C53有三个定时/计数器,可以驱动三个步进电机控制器,因而能满足设计要求;另外,82C53的工作方式3是一种方波速率发生器。在这种方式下,当CPU设置控制字后,输出将为高电平,在写完计数值后就自动开始计数,输出保持高电平;而当计到一半计数值时,输出变低直到计数到0,此后输出又变高以重新开始计数。在计数期间写入新的计数值并不影响现行的计数过程。但是若在方波半周期结束前和新计数值写入后收到GATE脉冲,那么计数器将在下一个CLK脉冲时装入新的计数值并以这个计数值开始计数。否则,新的计数值将在现行半周期结束时装入计数值。因此,只要写入不同的计数初值,就能控制步进电机的转速而不需要用软件来控制高低电平的转换,因而编程比较容易。本设计将82C53的GATE端全部接高电平,新的计数值将在现行半周期结束时起作用。 由于采用了定时/计数器82C53作为步进脉冲产生电路,因此系统编程十分简单,以下语句为控制一个步进电机的相应程序代码。 #include <reg52.h> #include <absacc.h> #include <intrins.h> #define A8253A XBYTE[0xB000] //计数器0地址 #define A8253B XBYTE[0xB100] //计数器1地址 #define A8253C XBYTE[0xB200] //计数器2地址 #define A8253D XBYTE[0xB300] //控制字口地址 #define uchar unsigned char #define uint unsigned int uint time1; //电机1运行时间 uchar speed1;//电机1运转速度 sbit en1=P1^0; //电机1使能控制 sbit dir1=P1^1; ///电机1方向控制 uint sum1; uchar code sdtab[16]={0x30,0x35,0x40,0x45,0x50,0x55,0x60,0x65,0x70, 0x75,0x80,0x85,0x90,0x95,0xa0,0xa5}; 图2 //16个计数初值,对应16种转速,初值大小应根据电机的转速要求和82C53计数器CLK端输入的时钟频率决定 main() { A8253D=0x16; //计数器0方式3,只读写高位字节 A8253D=0x56; //计数器1方式3,只读写高位字节 A8253D=0x96; //计数器2方式3,只读写高位字节 dir1=1; //运转方向 time1=200; //运转200秒 speed1=3; //速度等级3 //以上是电机1的运行参数,实际应用中一般先用上位机通过串口将数据送入89C51单片机存储器,然后由单片机按照上位机送入的数据来控制步进电机的运行速度、方向和时间。 sum1=time1*20; //sum1为89C51定时器T0中断次数,因为定时间隔为0.05秒 A8253A=sdtab[speed1]; //向82C53计数器0送初值,OUT0脚输出方波 en1=1;//电机1开始运转 TMOD=0x01; TL0=-46080%256; TH0=-46080/256; ET0=1; EA=1; TR0=1; //89C51的计数器0用于定时器,定时间隔0.05秒,方式1,中断方式,晶振11.0592M while(10); } void T0_srv(void) interrupt 1 using 1 {//中断服务程序,执行完后,电机停止运行 TL0=-46080%256; TH0=-46080/256; sum1--; if(sum1==0) { en1=0// 电机停止运行 } } 图3 4 结论 采用TA8435H构成步进电机驱动器,利用82C53输出步进脉冲的设计方案具有占用CPU时间短、编程容易、结构简单、成本低、可靠性好、抗干扰能力强等优点,因此可在控制和测量领域中得到广泛应用。
编辑: 引用地址:http://www.eeworld.com.cn/designarticles/sensor/200703/10796.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部

小广播

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved