1、基于 TA8435H 步进电机细分驱动摘要:本设计采用脉宽调制式斩波驱动方式,运用 TA8435H 步进电机专用芯片设计了一个两相步进电机细分驱动模块。模块中 TA8435H 芯片将来至 MCU 等控制器的单一脉冲信号进行脉冲分配,并在芯片内部提高驱动能力,进而驱动步进电机。该驱动模块具有以下特点:工作电压范围宽(1040 v);输出电流大,可达 15 A(平均)和 25 A(峰值);具有整步、半步、14 细分、18细分运行方式可供选择; 具有正反转控制功能和复位和使能功能;编程简单,控制方便。关键字:步进电机 细分驱动 TA8435H 1. 系统设计1.1 设计要求设计并制作一个步进电机驱动
2、模块,要求能实现控制器对步进电机的控制尽可能的精确,占用控制器的资源尽可能少,而且控制方便,程序简单。1.2 总体设计方案1.2.1 设计思路根据题目要求,此设计主要采用以下基本模块来实现,脉冲信号产生模块,脉冲信号分配模块,功率放大模块,设计方框图如图 1.2.1 所示。脉冲信号信号分配信号放大步进电机图 1.2.1 总体设计方框图其中脉冲信号产生模块用于产生步进电机工作所需要的脉冲信号,信号分配模块用于将信号产生模块所发出的环形脉冲进行分配,信号放大模块用于将经分配后的脉冲信号进行放大,以便于能驱动步进电机。1.2.2 系统方案论证与选择方案一:由单片机编程产生并分配环形脉冲,由分散元件构
3、成功率放大电路,信号经其放大后驱动步进电机。设计方框图如图 1.2.2 所示。MCU 放大电路 步进电机图 1.2.2 方案一该方案由单片机作为脉冲产生模块以及脉冲分配模块,经编程后从单片机输出已经分配的环形脉冲,经一些分散元件构成的放大电路放大后驱动步进电机。此方案结构简单易行,驱动电机所需要的控制信号直接由软件实现。由分散元件构成的放大电路实现简单,而且所需元件常见,价格便宜,节约成本。但是该设计在步进电机在低频工作时,振动大、噪声大。另外占用单片机资源较多,编程复杂,而且不能实现对脉冲实现细分,达到对步进电机的精确控制。方案二:由单片机产生脉冲,经 L298N 芯片进行脉冲分配和功率放大
4、后,将脉冲信号输入步进电机进行驱动。设计方案如图 1.2.3 所示。MCU L298N 步进电机图 1.2.3 方案二L298N 可以驱动两个二相电机,也可以驱动一个四相电机,可直接通过电源来调节输出电压,直接用单片机的 I/O 口提供信号。但是其电路较为复杂,调试相对繁琐,最大只能 1/4 细分,低速运行震动噪音较大,且该芯片较贵。方案三:由单片机产生脉冲,经 TA8435H 专用芯片进行脉冲分配和功率放大后,将脉冲信号输入步进电机进行驱动。设计方案如图 1.2.4 所示。MCU TA8435H 步进电机图 1.2.4 方案三使用细分方式,能很好的解决步进电机在低频工作时,振动大、噪声大的问
5、题。步进电机的细分控制,从本质上讲是通过对步进电机励磁绕组中电流的控制,使步进电机内部的合成磁场为均匀的圆形旋转磁场,从而实现步距角的细分。跟用 L298N 比较:调试简单,最大 1/8 细分,低速运行震动噪音小;不但简化了电路而且该芯片价格更加便宜。 通过综合比较为达到最佳驱动效果,选择 TA8435H 芯片驱动步进电机。2.理论分析与计算进电机有两种工作方式:整步方式和半步方式。以步进角 18四相混合式步进电机为例,在整步方式下,步进电机每接收一个脉冲,旋转 18,旋转一周,则需要 2OO 个脉冲。在半步方式下,步进电机每接收一个脉冲,旋转 09,旋转一周脉冲数:N=2/ 09=400旋转
6、一周,则需要 4OO 个脉冲。控制步进电机旋转必须按一定时序对步进电机引线输入脉冲。以四相六线制电进电机为例,其半步工作方式和整步工作方式的控制时序如表 1 和表 2 所列。步进电机在低频工作时会有振动大、噪声大的缺点。如果使用细分方式,就能很好的解决这个问题。步进电机的细分控制,从本质上讲是通过对步进电机励磁绕组中电流的控制,使步进电机内部的合成磁场为均匀的圆形旋转磁场,从而实现步进电机步距角的细分。一般情况下,合成磁场矢量的幅值决定了步进电机旋转力矩的大小,相邻两合成磁场矢量之间的夹角大小决定了步距角的大小。步进电机半步工作方式就蕴涵了细分的工作原理。在图 2.1 中,第一个 CK 时钟周
7、期时,解码器打开桥式驱动电路,电流从VMA 流经电机的线圈后经 RNFA 后与地构成回路,由于线圈电感的作用,电流是逐渐增大的,所以 RNFB 上的电压也随之上升。当 RNFB 上的电压大于比较器正端的电压时,比较器使桥式驱动电路关闭,电机线圈上的电流开始衰减,RNFB上的电压也相应减小;当电压值小于比较器正向电压时,桥式驱动电路又重新导通,如此循环,电流不断的上升和下降形成锯齿波,其波形如图 3 中 IA 波形的第 1 段。另外由于斩波器频率很高,一般在几十 kHz,其频率大小与所选用电容有关。在 OSC 作用下电流锯齿波纹是非常小的,可以近似认为输出电流是直流。在第 2个时钟周期开始时,输
8、出电流控制电路输出电压 Ua 达到第 2 阶段,比较器正向电压也相应为第 2 阶段的电压,因此,流经步进电机线圈的电流从第 l 阶段也升至第二阶段 2。电流波形如图 IA 第 2 部分。第 3 时钟周期,第 4 时钟周期 TA8435 的工作原理与第 1、2 是一样的,只是又升高比较器正向电压而已,输出电流波形如图 IA 中第 3、4 部分。如此最终形成阶梯电流,加在线圈 B 上的电流,如图 3 中 IB。在 CK 一个时钟周期内,流经线圈 A 和线圈 B 的电流共同作用下,步进电机运转一个细分步。图 2.1 TA8435H 细分原理3.硬件电路设计硬件电路如图 3.2 所示。引脚 M1 和
9、M2 决定电机的转动方式:MI=0、M2=O,电机按整步方式运转;Ml=1、M2=0,电机按半步方式运转;M1=O、M2=1,电机按 14 细分方式运转;Ml=1、M2=1,电机按 l8 步细分方式运转。CWCWW控制电机转动方向,CKl、CK2 时钟输入的最大频率不能超过 5 kHz。控制时钟的频率,即可控制电机转动速率。REFIN 为高电平时,NFA 和 NFB 的输出电压为08 V,REFIN 为低电平时,NFA 和 NFB 输出电压为 05 V,这 2 个引脚控制步进电机输入电流,电流大小与 NF 端外接电阻关系式为:,Io=VrefRnf。图4 中,设 REFIN=l,选用步进电机额
10、定电流为 04 A,R1l、R12 选用 16 、2W 的大功率电阻,O、C 两线不接。步进电机按二相双极性使用,四相按二相使用时可以提高步进电机的输出转矩。D3D6 快恢复二极管用来泄放绕组电流。图 3.1TA8435H 原理图1 2217410983256713111524182116192023TA8435CK1CK2CW/CCWRESETENABLEM1M2REF INBBAAVm BVCCVm AIC1TA8435H12J11234J4D3IN4001D4IN4001D5IN4001D6IN4001C30.1uFC53300pFC1470uFC6470uF/50VR74.7K R84
11、.7K R92K R1022KR120.5/3WR110.5/3WR54.7KD2LEDLEDR11K R41KVCCC410uFC20.1uF R64.7KR31KR21KCKCW/CCWEANBLEAABBOFFONOFFON2 3OFFOFFONON0248S1 MODE:VCCA1K2B3E 4C 5U14N25A1K2B3E 4C 5U24N25A1K2B3E 4C 5U34N25123654 S5 SW DIP-3R13330R14330R153307.2V12J2POWER12J5VCC123J3MCU图 3.2 硬件电路图4.软件设计鉴于单片机技术比较成熟,且开发过程中可以利用
12、的资源和工具丰富、价格便宜、成本低。故设计用 C 语言对其编程并烧录到芯片内部,C 语言表达和运算能力比较强,且具有很好的可移植性和硬件控制能力。采用 KEIL51 的C51 编译器。KEIL Uvision2 是众多单片机应用开发软件中的优秀软件之一,它支持众多不同公司的 51 构架的芯片,集编辑、编译、仿真等于一体,同时还支持 PLM,汇编和 C 语言的程序设计,它的界面和常用的微软 VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强的功能。系统软件流程图如图 4.1 所示。键盘扫描启动 加速 减速反转正转 停止键盘扫描图 4.1 系统流程图5系统测试5.1 测试仪器测
13、试使用的仪器设备比表 5.1.1 所示。 表 5.1.1 测试使用的仪器设备序号 名称、型号、规格 数量 备 注1 直流电压源 1 自己制作2 步进电机 1 胜利电子公司3 STC 单片机开发板 1 林洋单片机公司程序开始5.2 测试方法与测试记录将已经编好的单片机程序下载到单片机,按照硬件电路和软件设计将预设的单片机 I/O 端口与驱动模块连接,外加+12V 直流电压供电,按照软件设计对步进电机的工作情况进行控制,看是否达到了预期的目的.测试记录如表 5.2.2 所示。表 5.2.1 测试记录测试次数 按键 1 按键 2 按键 3 按键 4 按键 5 按键 6第一次 启动 正转 反转 加速
14、减速 停止第二次 启动 正转 反转 加速 减速 停止第三次 启动 正转 反转 加速 减速 停止加速和减速过程中,能完全按照预定的设想实现精确的速度控制。5.3 结果分析略参考文献1 全国大学生电子设计竞赛组委会.全国大学生电子设计竞赛获奖作品选编( 19941999)M.北京 :北京理工大学出版社,1997.2 全国大学生电子设计竞赛组委会 .全国大学生电子设计竞赛获奖作品选编(2001)M.北京:北京理工大学出版社,2003.3 全国大学生电子设计竞赛组委会 .全国大学生电子设计竞赛获奖作品选编(2003)M.北京:北京理工大学出版社,2005.4 全国大学生电子设计竞赛组委会 .全国大学生
15、电子设计竞赛获奖作品选编(2005)M.北京:北京理工大学出版社,2007.5 黄智伟.全国大学生设计竞赛培训教程M. 北京: 电子工业出版社.2003.6 黄智伟.基于 multisim2001 的电子电路计算机仿真设计M. 北京: 电子工业出版社,2004.7 黄智伟.FPGA 系统设计与实践M. 北京: 电子工业出版社 ,2004.8 黄智伟.射频电路设计M. 北京: 电子工业出版社,2004.9 黄智伟.无线发射与接收电路设计M. 北京: 北京航空航天大学出版社,2004.10 黄智伟.全国大学生电子设计竞赛系统设计M. 北京航空航天大学出版社 ,2006.11 黄智伟.全国大学生电子
16、设计竞赛制作实训M. 北京航空航天大学出版社 ,2007.12 黄智伟.全国大学生电子设计竞赛电路设计M. 北京航空航天大学出版社 ,2006.13 高吉祥.全国大学生电子设计竞赛培训系列教程高频电子线路设计M 电子工业出版社,2007.14 高吉祥.全国大学生电子设计竞赛培训系列教程模拟电子设计M 电子工业出版社,2007.附录 1 主要元器件清单主要元器件清单见表 1 所示。表 1 主要元器件清单序号 名称或型号 数量 备注 封装1 4N25 3 光耦 DIP 2 TA8435H 1 细分芯片 DIP 3 FR10 4 快恢复二极管4 两路拨动开关 1 模式选择 DIP5 电容 若干6 电
17、阻 若干附录 4 程序清单#include #define uint unsigned int #define uchar unsigned char sbit cl=P10;sbit cw=P11;sbit en=P12;uchar i,j,key;uint code suduH=0x3c,0x63,0x8A,0xB1,0xD8,0xFE,0xFF,0xFF;uint code suduL=0xB0,0xC0,0xD0,0xE0,0xF0,0x0C,0x06,0x9C;void unit();void kongzhi();void delay(unsigned int cnt);uchar
18、keyscan(void);main()unit();while(1)kongzhi();void timer0() interrupt 1TH0=suduHi;TL0=suduLj;cl=cl; /产生脉冲void unit()TMOD=0x00;EA=1;ET0=1;TR0=1;i=0;j=0;void kongzhi()key=keyscan();/调用键盘扫描,switch(key)case 0xee:cw=1;break; /正转case 0xed:cw=0;break; /反转case 0xeb:en=1;break; /停止case 0xe7:en=0;break; /启动cas
19、e 0xde:i+;j+;break; /加速case 0xdd:i-;j-;break; /减速uchar keyscan(void)/键盘扫描函数,使用行列反转扫描法uchar cord_h,cord_l;/行列值P3=0xf0; cord_h=P3if(cord_h!=0xf0) /先检测有无按键按下delay(100);if(cord_h!=0xf0)cord_h=P3 /逐个检测是哪个按键按下?P3=cord_h|0x0f;cord_l=P3return(cord_h+cord_l);/键盘最后码值return(0xff); /返回该值void delay(unsigned int cnt)while(-cnt);