第11章节S3C2410的PWM操纵.pptVIP

  • 7
  • 0
  • 约6.25千字
  • 约 28页
  • 2017-04-01 发布于四川
  • 举报
第11章节S3C2410的PWM操纵

第十一章 S3C2410的PWM控制 主要内容: 11.1 PWM定时器概述 11.2 PWM输出电平控制 11.3 PWM定时器控制寄存器 11.4 PWM参考程序 11.1 PWM定时器概述 11.1.1 什么是脉宽调制(Pulse-Width Modulation) 在嵌入式控制系统中,有许多场合需要直流电机做驱动,我们知道,直流电机给定直流电压就可以旋转,给定的电压高,电机转速就高;给定的电压低,电机转速就慢,这样控制给定电压大小就可以控制电机的转速。 11.1.2 S3C2410的脉宽调制和PWM控制 S3C2410有5个16位定时器,其中定时器0,1,2,3具有脉冲宽度调制((PWM)功能,定时器4具有内部定时作用,但是没有输出引脚。定时器0具有死区生成器,可以控制大电流设备。 定时器T0和T1共用一个8位预定标器,定时器T2,T3和T4共用另一个8位预定标器,每个定时器都有一个时钟分频器,信号分频输出有5种模式(1/2、1/4、1/8、1/16和外部时钟TCLK)。定时器结框如图11-1所示。 每一个定时器都有一个自己的用定时器时钟驱动的16位减法计数器。当减法计数器减到0时,就会产生一个定时器中断来通知CPU ,定时器操作完成。当定时器减法计数器减到0时,相应的TCNTBn的值被自动重载到减法计数器中继续下次操作。然而,如果定时器停止了,比如在运行时通过清除TCON中定时器使能位来中止定时器的运行,则TCNTBn的值不会被重载到减法计数器中。 TCMPBn的值用于脉冲宽带调制(PWM)。当定时器的减法计数器的值和TCMPBn的值相等时,定时器输出改变输出电平。因此,比较寄存器决定了PWM的占空比。 11.1.3 S3C2410定时器特性: . 5个16位定时器; . 2个8位预定标器和2个4位分频器; . 可编程改变PWM输出占空比; . 自动重载模式或者单个脉冲输出模式; . 具有死区生成器; . 自动重载与双缓冲。 S3C2410具有双缓冲功能,能在不中止当前定时器运行的情况下,重载下次定时器运行参数,所以尽管新的定时器的值被设置好了。当前操作仍能成功完成。定时器值可以被写入定时器计数缓冲寄存器(TCNTBn),当前计数器的值可以从定时器计数观察寄存器(TCNTOn)读出。读出的TCNTBn值并不是当前计数器的值,而是下次重载的计数器值。TCNTn的值等于0时,自动重载,把TCNTBn的值装人TCNTn,只有当自动重载允许并且TCNTn的值等于0时才会自动重载。如果TCNTn=0,自动重载禁止,.则定时器停止运行,具体如图11-2所示。 以下几个步骤给出了更新过程: . 向TCNTBn和TCMPBn写入初始值。 . 置位相应定时器的手动更新位,不管是否使用倒相功能,推荐设置倒相位 . 启动定时器,清除手动更新位。 11.1.4 定时器操作示例 定时器操作示例如图11-3所示。 A:允许自动重载功能,TCNTBn=160 , TCMPBn=110。置位手动更新位,配置倒相位,手动更新位被置位后,TCNTBn和TCMPBn的值被自动装人了TCNTn和TCMPn。之后,设置TCNTBn和TCMPBn分别等于80和40. B: 启动定时器清零手动更新位,取消倒相功能,允许自动重载,定时器开始启动减法计数。 C: 当TCNTn和TCMPn的值相等时,TOUT输出电平由低变高。 D: 当TCN Tn的值等于0时产生中断,并在下一个时钟到来时把TCNTBn的值装人 暂存器中。 E: 在中断服务子程序中,把80和40分别装入TCNTBn和TCMPBn。 F: 当TCNTn和TCMPn的值相等时,TOUT输出电平由低变高。 G、H: 当TCNTn = 0时,产生中断,把TCNTBn(80)和TCMPBn(60)的值分别自动装入TCNTn和TCMPn,并在在中断服务子程序中,禁止自动重载和中断请求来中止定时器运行。 I: 当TCNTn和TCMPn的值相等时,TOUT输出电平由低变高。 J、K: 尽管TCNTn=0,但是定时器停止运行,也不再发生自动重载操作,因为定时器自动重载功能被禁止, 不再产生新的中断。 11.1.5 死区生成器 当PWM控制用于电源设备时需要用到死区功能。这个功能允许在一个没备关闭和另一个设备开启之间插入一个时间间隔。这个时间间隔可以防止两个设备同时关闭、同时开启或一个关闭的同时另一个开启。 TOUT0是定时器0的PWM输出,假定nTOUT0是TOUT0的倒相信号。如果死区功能被允许,TOUT0和nTOUT0的输出波形就变成了TOUT0_DZ和nTOUT0_DZ。如图11-4所示。nTOUT0_DZ可在TOUT1脚上产生。 有了死区间隔,TOUT0_DZ和nT

文档评论(0)

1亿VIP精品文档

相关文档