实验三Timer部件驱动马达_第1页
实验三Timer部件驱动马达_第2页
实验三Timer部件驱动马达_第3页
实验三Timer部件驱动马达_第4页
实验三Timer部件驱动马达_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电机转动控制实验一、实验目的 1熟悉 ARM 本身自带的六路即三对 PWM,掌握相应寄存器的配置。 2编程实现ARM 系统的PWM 输出用于控制直流电机。 3了解直流电机的工作原理, 4掌握带有 PWM 的 CPU 编程实现其相应功能的主要方法。 二、实验内容 学习直流电机的工作原理,了解实现电机转动对于系统的软件和硬件要求。学习 ARM知识,掌握 PWM 的生成方法。 编程实现 ARM 芯片的一对 PWM 输出用于控制直流电机的转动,并实现三级速度变化。三、预备知识 1、用 ARM ADS1.2 集成开发环境,编写和调试程序的基本过程。 2、ARM 应用程序的框架结构。 3、了解直流电机的基

2、本原理。 四、实验设备及工具 硬件:ARM嵌入式开发平台、用于 ARM920T 的 JTAG仿真器、PC 机 Pentium100 以上。 软件:PC 机操作系统 Win2000 或 WinXP、ARM ADS1.2 集成开发环境、仿真器驱动程序、超级终端通讯程序 。五、实验原理及说明 1、直流电机 1)直流电动机的 PWM 电路原理 晶体管的导通时间也被称为导通角,若改变调制晶体管的开与关的时间,也就是说通过改变导通角的大小,如图1 所示,来改变加在负载上的平均电压的大小,以实现对电动机的变速控制,称为脉宽调制 (PWM)变速控制。在 PWM 变速控制中,系统采用直流电源,放大器的频率是固定

3、,变速控制通过调节脉宽来实现。构成 PWM 的功率转换电路或者采用"H"桥式驱动,或者采用 "T"式驱动。由于"T"式电路要求双电源供电,而且功率晶体管承受的反向电压为电源电压的两倍。因此只适用于小功率低电压的电动机系统。而"H"桥式驱动电路只需一个电源,功率晶体管的耐压相对要求也低些,所以应用得较广泛,尤其用在耐高压的电动机系统中。 图1 脉宽调制 (PWM)变速原理2)直流电动机的 PWM 等效电路 如图2a 所示:是一个直流电动机的 PWM 控制电路的等效电路。在这个等效电路中,传送到负载 (电动机)上的功率

4、值决定于开关频率、导通角度及负载电感的大小。开关频率的大小主要和所用功率器件的种类有关,对于双极结型晶体管(GTR),一般为lkHz 至5kHz,小功率时(100W,5A以下)可以取高些,这决定于晶体管的特性。对于绝缘栅双极晶体管(IGBT),一般为5kHz至l2kHz;对于场效应晶体管(MOSFET),频率可高达20kHz。另外,开关频率还和电动机电感有关,电感小的应该取得高些。 (a)等效电路 b) PWM 电路中电流和电压波讨论图2当接通电源时,电动机两端加上电压 Up,电动机储能,电流增加,当电源中断时,电枢电感所储的能量通过续流二极管 VD继续流动,而储藏的能量呈下降的趋势。 除功率

5、值以外,电枢电流的脉动量也与电动机的转速无关,仅与开关周期、正向导通时间及电机的电磁时间常数有关。3)直流电动机 PWM 电路举例 图3 为直流电动机 PWM 电路的一个例子。它属于"H"桥式双极模式 PWM 电路。图3 直流电动机 PWM 电路举例电路主要由四部分组成,即三角波形成电路、脉宽调制电路、信号延迟及信号分配电 路和功率电路。电路中各点波形如图4 所示。其中信号延迟电路是为了防止"共态直通"而设置的。一般延迟时间调整在(1030)ps之内,根据晶体管特性而定。其原理简单叙述如下:功率电路主要由四个功率晶体管和四个续流二极管组成。四个功率晶体管

6、分为两组,V1 与V4、V2 与 V3分别为一组,同一组的晶体管同时导通,同时关断。基极的驱动信号 Ub1 = Ub2,Ub3=Ub4。其工作过程为: ·在 t1 t2 期间, Ub1> 0 与 Ub4 > 0,V1与 V4导通,V2与 V3截止,电枢电流沿回路l 流通。 ·在 t2 T+ t1 期间,Ub1< 0与 Ub4 < 0,V1 与 V4截止, Ub2 > 0 与 U b 3> 0 但此时由于电枢电感储藏着能量,将维持电流在原来的方向上流动,此时电流沿回路 2 流通;经过跨接于 V2 与 V3 上的续流二极管 VD4、VD5。受

7、二极管正向压降的限制,V2 与 V3 不能导通。 ·T+ t1 之后,重复前面的过程。 ·反向运转时,具有相似的过程。 图4 各点波形4)开发平台中直流电机驱动的实现 开发板中的直流电机的驱动部分如图5所示;由于 S3C2410X芯片自带PWM 定时器,所以控制部分省去了三角波产生电路、脉冲调制电路和 PWM 信号延迟及信号分配电路,取而代之的是 S3C2410X芯片的定时器 0、1 组成的双极性 PWM 发生器。 2、Timer部件-S3C2410X双极性 PWM 发生器 Timer部件主要是用于提供定时功能、脉宽调制(PWM)功能的部件,它的应用比较灵活,对于需要一定频

8、率的脉冲信号、一定时间间隔的定时信号的应用场合,它都能提供应用支持。下面主要对S3C2410芯片内部的Timer部件进行介1)概况S3C2410芯片内部拥有5个16位的Timer部件。其中Timer0,Timer 1,Timer 2,Timer 3具有脉宽调制(PWM)功能。Timer4仅作定时器用,不具有PWM功能,因为它没有输出引脚。Timer0有一个死区(dead-zone)发生器,通常用于大电流设备应用。Timer 0和Timer 1共享一个8位的预分频器,而Timer 2,Timer 3,Timer 4共享另一个8位的预分频器。另外还有2个具有5种分频系数的时钟分割器,5种不同的分频

9、系数是:1/2,1/4,1/8,1/16和TCLK。其中,Timer 0和Timer 1共享一个4位的分割器,而Timer 2,Timer 3,Timer 4共享另一个4位的分割器。每个Timer部件接收的时钟是经过预分频器、分割器分频后的、仅提供给自己的时钟信号。8位的预分频器、分割器均可编程设定。S3C2410芯片内部的Timer部件功能框图如图7-6所示。图5 Timer部件内部功能框图TCNTBn是定时器的计数缓冲寄存器,初始化应给其赋一个初值,该初值在定时器启动时加载进递减计数器中。TCMPBn是定时器(但Timer4没有)的比较缓冲寄存器,初始化时也给其赋一个初值,该初值被加载进比

10、较寄存器,以便与递减计数器中的值比较。TCNTBn和TCMPBn的双缓冲机制,保证了Timer部件在频率和占空比发生改变时能有一个稳定的输出。2)Timer部件的操作每个定时器都有他自己的16位递减计数器TCNTn,该计数器是通过定时器自己的时钟驱动的。当递减计数器减为0时,可产生定时器中断请求信号,该中断信号通知微处理器定时器的操作已经完成了。当定时器计数器中的值为0时,TCNTBn的值将自动加载到递减计数器,以开始下一轮定时操作。但是,如果定时器停止工作,那么TCNTBn的值就不会被重新加载到计数器中。TCMPBn的值用于脉宽调制。当递减计数器的值和定时器控制逻辑中的比较寄存器值相匹配时,

11、定时器控制逻辑将改变输出电平(output level)。因此,比较寄存器确定脉宽调制信号输出的上升时间(或者下降时间)。(1) 基本的定时器操作每个定时器(除了定时器4外)都有TCNTBn,TCNTn,TCMPBn和TCMPn。在TCNTn的值达到0时,TCNTBn和TCMPBn被分别加载到TCNTn和TCMPn中。同时,如果中断使能的话,将会提出中断请求。TCNTn和TCMPn是内部寄存器,TCNTn计数器的值可以通过TCNTOn寄存器读出。定时器基本操作的过程如图6所示。图6定时器操作(2)自动重载和双缓冲器S3C2410芯片的PWM定时器有双缓冲功能,该功能可以在不停止当前定时器操作的

12、情况下,重新加载为下一轮定时器操作而改变的值。在这种机制下,尽管设置了新的定时器计数值,但是当前定时器的操作不受影响,还是按原计数值完成操作。定时器计数值可以写入定时器计数缓冲寄存器(TCNTBn)中,而当前定时器的计数值可以从定时器计数观察寄存器(TCNTOn)中读到。如果读取TCNTBn的值,读到的值不一定是当前定时器的计数值,但一定是下一轮定时器操作的计数值。当TCNTn值达到0时,自动重载操作将TCNTBn的值拷贝至TCNTn中。写入到TCNTBn中的值,仅在TCNTn值为0并且自动重载使能时,被加载到TCNTn中。如果TCNTn值变为0并且自动重载不使能,那么,TCNTn就不会进一步

13、操作。一个双缓冲功能的例子如图7所示。图7 一个双缓冲功能的例子(3)采用手动更新方式初始化定时器当递减计数器的值为0时,定时器自动重载操作就会发生。但若在重载发生之前,TCNTn的初始值还没有设置,在这种情况下,就必须通过手动更新位来加载TCNTn的初值。启动一个定时器操作的步骤如下:1) 将初始值写到TCNTBn和TCMPBn中2) 设置相应的定时器的手动更新位。3) 设置相应的定时器的启动位来启动定时器,并清除手动更新位。如果定时器被强制停止,TCNTn仍保持着当前计数值,而不会从TCNTBn重新加载计数值。如果需要重新启动定时操作,则必须设置新的计数值,这也要采用手动更新的方式。如图8

14、所示,若要产生图中所示脉冲信号波形,则要进行如下步骤的操作:1)使能自动重载功能位。设置TCNTBn的值为160(50+110),TCMPBn的值为110。设置手动更新位和配置反转器位(开/关)。手动更新位分别设置TCNTn和TCMPn为TCNTBn和TCMPBn的值。然后,再分别设置TCNTBn的值和TCMPBn的值为80(40+40)和40,用作下一轮的重载值。2)设置启动位,将手动更新位清为0,反转器置为off,自动重载使能。定时器的递减计数器开始启动工作。3)当TCNTn的值达到与TCMPn的值相同时,TOUTn的逻辑电平由低变高。4)当TCNTn的值达到0时,产生中断请求,同时TCN

15、TBn的值加载到一个临时寄存器中。在下一节拍的定时器操作开始时,TCNTn从临时寄存器中重新加载计数值。5)在中断服务程序中,TCNTBn的值和TCMPBn的值分别设置为80(20+60)和60,用于下一轮的定时操作。6)当TCNTn的值达到与TCMPn的值相同时,TOUTn的逻辑电平由低变高。7)当TCNTn的值达到0时,TCNTn自动重载TCNTBn中的值,并触发一个中断请求。8)在中断服务程序中,自动重载和中断请求被禁止,从而停止定时器工作。9)当TCNTn的值达到与TCMPn的值相同时,TOUTn的逻辑电平由低变高。10)当TCNTn的值递减计数到0时,由于自动重载被禁止,因此TCNT

16、n不再重载计数值,并且定时器停止。11)不再产生中断请求。图8定时器产生的一个脉冲信号(4)脉宽调制(PWM)PWM脉冲宽度值由TCMPBn确定,而PWM脉冲频率值由TCNTBn确定。如图9所示。若要得到一个较高的PWM脉宽输出值,需增加TCMPBn的值。若要得到一个较低的PWM脉宽输出值,需减少TCMPBn的值。如果输出反转器被使能,增加和减少的结果将是反转的。基于双缓冲器的功能,下一轮PWM周期的TCMPBn的值,可以通过中断服务程序或其他方法,在当前PWM周期内任何时刻写入。图9 PWM的脉宽实例(5)输出电平控制以下的方法用来保持TOUT的电平为高或低(假设反转器关闭):·关

17、闭自动加载位。然后,TOUTn的电平变为高,定时器在TCNTn递减计数到0时停止,推荐使用这种模式。·通过将定时器的启动/停止位清为0来停止定时器工作。如果TCNTn的值小于等于TCMPn的值,输出电平为高。如果TCNTn的值大于TCMPn的值,输出电平为低。·TOUTn可以通过设置TCON中的反转器的on/off位来反转。经过反转器反转的PWM信号如图10所示。图10反转器反转后的效果(6)死区发生器死区发生器用于对大功率设备进行PWM控制。这个功能用于在一个开关设备的断开和另一个开关设备的闭合之间插入一个时间间隙。这个时间间隙使得两个开关设备不可能同时被打开,即使是很短

18、的一段时间。图11所示的是死区使能时的输出波形图。TOUT0是PWM的输出,nTOUT0是TOUT0的反转输出。如果死区被使能,那么从TOUT0和nTOUT0输出的波形将分别是TOUT0_DZ和nTOUT0_DZ(如图11所示)。在死区的间隙中,TOUT0_DZ和nTOUT0_DZ不可能同时出现高电平。图11死区使能时的输出波形3)PWM 发生器用到的寄存器(1)定时器配置寄存器0(TCFG0)定时器配置寄存器0(TCFG0)是可读/写的,主要用来设置预分频系数。其地址为:0x51000000,复位后的初值为0x00000000。TCFG0寄存器的具体格式如表1所示。表1 TCFG0寄存器的格

19、式符号位描述初始状态Reserved31:24保留0x00Dead zone length23:16这8位用于确定死区长度,死区长度的1个单位等于Timer0的定时间隔。0x00Prescaler 115:8这8位确定Timer2、Timer3、Timer4的预分频器值。 0x00Prescaler 07:0这8位确定Timer0、Timer1的预分频器值。0x00(2)定时器配置寄存器1(TCFG1)定时器配置寄存器1(TCFG1)是可读/写的,主要用来设置分割器值。其地址为:0x51000004,复位后的初值为0x00000000。TCFG1寄存器的具体格式如表2所示。表2 TCFG1寄存

20、器的格式符号位描述初始状态Reserved31:24保留0x00DMA mode23:20选择产生DMA请求的定时器。0000=不选择(所有采用中断请求)0001=Timer0 0010=Timer10011=Timer2 0100=Timer30101=Timer4 0110=保留0000MUX419:16选择Timer4的分割器值。0000=1/2 0001=1/4 0010=1/80011=1/16 01XX=外部TCLK1 0000MUX315:12选择Timer3的分割器值。0000=1/2 0001=1/4 0010=1/80011=1/16 01XX=外部TCLK10000MUX

21、211:8选择Timer2的分割器值。0000=1/2 0001=1/4 0010=1/80011=1/16 01XX=外部TCLK10000MUX17:4选择Timer1的分割器值。0000=1/2 0001=1/4 0010=1/80011=1/16 01XX=外部TCLK00000MUX03:0选择Timer0的分割器值。0000=1/2 0001=1/4 0010=1/80011=1/16 01XX=外部TCLK00000通过TCFG0、TCFG1的设置,可以确定预分频系数和分割器值,最终通过下面公式计算定时器输入时钟频率。定时器输入时钟频率= PCLK /(预分频系数+1) / (分

22、割器值)预分频系数的范围 = 0255分割器值的取值范围 = 2, 4, 8, 16(3)定时器控制寄存器(TCON)定时器控制寄存器(TCON)是可读/写的,其地址为:0x51000008,复位后的初值为0x00000000。TCON寄存器的具体格式如表3所示。表3 TCON寄存器的格式符号位描述初始状态Timer422确定Timer4的自动装载功能位1=自动装载 0=一次停止 0Timer421确定Timer4的手动更新位1=更新TCNTB4 0=不操作0Timer420确定Timer4的启动/停止位1=启动 0=停止0Timer319确定Timer3的自动装载功能位1=自动装载 0=一次

23、停止 0Timer318确定Timer3的输出反转位1=TOUT3反转 0=不反转0Timer317确定Timer3的手动更新位1=更新TCNTB3和TCMPB3 0=不操作0Timer316确定Timer3的启动/停止位1=启动 0=停止0Timer215确定Timer2的自动装载功能位1=自动装载 0=一次停止 0Timer214确定Timer2的输出反转位1=TOUT2反转 0=不反转0Timer213确定Timer2的手动更新位1=更新TCNTB2和TCMPB2 0=不操作0Timer212确定Timer2的启动/停止位1=启动 0=停止0Timer111确定Timer1的自动装载功能

24、位1=自动装载 0=一次停止 0Timer110确定Timer1的输出反转位1=TOUT1反转 0=不反转0Timer19确定Timer1的手动更新位1=更新TCNTB1和TCMPB1 0=不操作0Timer18确定Timer1的启动/停止位1=启动 0=停止0Reserved7:5保留000Dead zone 4确定死区操作位1=使能 0=不使能0Timer03确定Timer0的自动装载功能位1=自动装载 0=一次停止 0Timer02确定Timer0的输出反转位1=TOUT0反转 0=不反转0Timer01确定Timer0的手动更新位1=更新TCNTB0和TCMPB0 0=不操作0Timer00确定Timer0的启动/停止位1=启动 0=停止0(4)Timer0计数缓冲寄存器和比较缓冲寄存器(TCNTB0/TCMPB0)Timer0计数缓冲寄存器(TCNTB0)是可读/写的,其地址为:0x5100000C,复位后的初值为0x00000000。Timer0比较缓冲寄存器(TCMPB0)是可读/写的,其地址为:0x51000010,复位后的初值为0x00000000。T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论