S3C2410的PWM控制.ppt_第1页
S3C2410的PWM控制.ppt_第2页
S3C2410的PWM控制.ppt_第3页
S3C2410的PWM控制.ppt_第4页
S3C2410的PWM控制.ppt_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

第十一章 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和nTOUT0_DZ关闭和开启就不会同时进行。 死区间隔时间可以通过软件设定,达到防止两个设备同时动作目的。,11.2 PWM输出电平控制,11.2.1 PWM工作原理,当我们把一个数值放入TCNTBn后,启动定时器、使能重载功能,TCNTBn把该数放入减法计数器,减法计数器开始按分频值进行减1操作,减法计数器到0时,相应的TCNTBn的值被自动重载到减法计数器中继续下次操作。这样在定时器的输出会产生连续的锯齿波,如图11-5中Vtcnt。当我们把比较值放入TCMPBn后,该值会在定时器的输出产生一个负的电压,如图11-5中Vtcmpb所示。TCMPBn越大,Vtcmpb的绝对值越小。定时器的输出电压Vtout=Vtcnt-Vtcmpb,当Vtcnt大于Vtcmpb时Vtout输出电压变正,当Vtcnt小于Vtcmpb时Vtout输出电压变负。我们可以在程序中如计数器到0中断服务程序中随时修改TCMPBn,使Vtcmpb大小改变,进而控制Vtcnt的正负比率,也就是改变PWM的占空比。,11.2.2 PWM输出控制 1。输出电平倒相 PWM在不改变占空比情况下,输出电平还可以倒相,即把输出电平取反。在PWM控制寄存器中有一个逆变位,通过修改逆变位值可方便的实现倒相。 2。编程改变输出频率 PWM的输出频率很容易改变,具体见下面程序:,3。编程改变输出占空比,11.3 PWM定时器控制寄存器,11.3.1 定时器配置寄存器0,11.3.2 定时器配置寄存器1,定时器输入时钟频率: fTCLK=(fPCLK/(Prescaler+1)/divider 其中,Prescaler为预定标值(0255);分频器divider(表11-3中的4选1开关)的分频值为2、4、8和16。 PWM输出时钟频率=定时器输入时钟频率(fTCLK)/ 定时器计数缓冲器值(TCNTB) PWM输出占空比=定时器比较缓冲器值(TCMPB)/定时器计数缓冲器值(TCNTB),11.3.3 减法缓冲寄存器和比较缓冲寄存器 定时器减法缓冲寄存器(TCNTBn)和比较缓冲寄存器(TCMPBn)定义如表11-4所列,11.3.4 定时器控制寄存器 定时器控制寄存器(TCON) 如表11-5所列。,11.4 PWM参考程序,参考程序涉及到SMDK2410开发板,该板是三星公司为配合S3C24

温馨提示

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

评论

0/150

提交评论