第8章 PWM定时器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

8.1 PWM定时器
8.1.1
PWM定时器概述 ⒈ 定时器模块
参见图8.1,S3C2410A有5个16位的定时器。
定时器0~3带有脉宽调制(Pulse Width Modulation,
PWM)功能,这4个定时器的输出信号连接到 S3C2410A的TOUT0~TOUT3引脚,输出波形的频率 和占空比可编程控制。 定时器4是一个内部定时器,没有PWM功能,输出信 号不连接到S3C2410A引脚。 定时器0有一个死区发生器(dead zone generator), 能够用于对大电流设备进行控制。
2013-6-17
16

DMA请求模式
定时器在每段指定时间后(一次定时结束)能够
产生DMA请求信号。 DMA模式配置和DMA/中断操作见表8-1。 图8.8(P272)表明,定时器3一旦设置为DMA模式, 将不产生中断请求。定时器3的DMA请求和响应 时间关系,也在图8.8中给出。
2013-6-17
基本定时操作
基本定时操作见图8.2(P268)。

自动重装与双缓冲
S3C2410A PWM定时器有双缓冲功能,也就是
说有两个缓冲器,定时器计数缓冲器寄存器 TCNTBn和定时器比较缓冲器寄存器TCMPBn。 图8.3(P269)是双缓冲功能的一个举例,图中省 略了TCMPBn寄存器的值。
2013-6-17 14
2013-6-17
22


最小分辨率:
定时器输入时钟的频率
=PCLK/{prescaler值+1}/{divider值} =66.5(MHz)/{0+1}/{2} =33.2500(MHz) 一个计数脉冲的时间 =1/33.2500(MHz)=0.0300(µs)
2013-6-17 23
器的自动重装on/off、手动更新与否、启动/停止 和输出反相器on/off进行设置,其地址为 0x51000008,可读写,Reset值为0x00000000, 具体含义见表8-4。
2013-6-17
20

定时器计数缓冲器寄存器、比较缓冲器寄 存器和计数观察寄存器
定时器0~4都有计数缓冲器寄存器TCNTBn和
数脉冲,所以 65536×7.6992(µs)=0.5045(sec)。
2013-6-17
25
【例8.2】下面给出了使用C语言编写的,对
定时器0/1/2/3测试的程序片段,假定程序中 用到的寄存器地址在别的程序中已定义过, 定时器产生中断后的处理程序这里没有列出。 (见参考书)
2013-6-17
TCMPBn寄存器来实现,而PWM的频率由TCNTBn寄存器 的值确定。 图8.5(P271)通过举例,表明了TCMPBn的值越小,TOUTn 输出高电平的时间越短,输出低电平的时间越长;而 TCMPBn的值越大,TOUTn输出高电平的时间越长,输出低 电平的时间越短。 2013-6-17 15
2013-6-17
9
⑷ 定时器比较寄存器TCMPn,是内部寄存器,
程序不可读写。在计数过程中,一旦TCNTn的值 与TCMPn的值相等,计数器输出TOUTn电平由 低变高。 ⑸ 定时器计数观察寄存器TCNTOn,程序可读写。 在计数过程中,如果希望读出TCNTn的值,只能 通过读出TCNTOn实现,不能直接读TCNTn的值。
2013-6-17 7
⑵ 定时器比较缓冲器寄存器TCMPBn,程序可
读写,用于保存定时器比较初值。在手动更新允 许时,将这个初值送到定时器比较寄存器TCMPn。 当执行计数的TCNTn的值与TCMPn的值相等时, 计数器输出信号TOUTn电平由低变高。当自动重 装允许时,一次计数结束(TCNTn递减计数达到0 时),自动将TCMPBn的值装到TCMPn。 TCMPBn的值,被用作脉宽调制,即在输出信 号TOUTn频率不变时,对每个输出脉冲低电平、 高电平占用时间的调制,也称为输出信号占空比 的调制。
2013-6-17
4
S3C2410A片内定时器,
支持自动重装模式 (一次定时结束,以重装值开始下一次定时) 一次脉冲模式 (一次定时结束,停止定时器)。
定时器模块图见图8.1。
2013-6-17
5
2013-6-17
6

定时器寄存器组成和定时器主要操作过程 除了定时器4,定时器0~3中每个定时器内部, 都有下述寄存器。
2013-6-17 8
⑶ 定时器计数寄存器TCNTn,是内部寄存器,
程序不可读写。TCNTn也称为减法计数器、倒计 数器或递减计数器。定时器的计数操作在TCNTn 中执行。TCNTn计数时钟信号来源于时钟分频器。 当TCNTn一次计数结束,或产生DMA请求,或 产生中断请求,由编程决定。当一次计数结束, 如果自动重装允许时,TCNTBn值送TCNTn、 TCMPBn值送TCMPn,开始下一次计数;如果 自动重装禁止,则计数器停止。
26
8.2 实时时钟
8.2.1
RTC概述
S3C2410A芯片内部有一个实时时钟(Real Time
Clock,RTC)模块,当系统电源闭合时,使用系统 提供的电源,当系统电源切断时,由后备电池为RTC 模块供电。无论系统加电或切断电源,RTC都在运行; 可以对RTC设定报警时间。使用STRB/LDRB指令, 可以在RTC和CPU之间传送8位BCD码的数据,包括 秒、分、时、日、星期、月、年。RTC模块使用 32.768KHz的外部晶振工作。
2013-6-17 18

定时器配置寄存器1
定时器配置寄存器1,即TCFG1,用于选择
DMA请求通道和选择各定时器MUX(多路开关) 的输入。其地址为0x51000004,可读写,Reset 值为0x00000000,具体含义见表8-3。
2013-6-17
19

定时器控制寄存器
定时器控制寄存器,即TCON,用于对各定时
2013-6-17
27
RTC作为系统时钟使用,也能够执行报警功能、产
生节拍时间中断。 主要特点有: · 使用BCD码表示秒、分、时、日、星期、月、年; · 有闰年产生器; · 报警功能:有报警中断或从Power_OFF模式中唤 醒功能; · 解决了2000年问题; · 独立的电源引脚(RTCVDD); · 支持毫秒级节拍时间中断,可用于RTOS内核; · 支持秒进位复位功能。
计数观察寄存器TCNTOn,定时器4没有比较缓 冲器寄存器,定时器0~3有比较缓冲器寄存器 TCMPBn。除了地址不同以外,各定时器对应的 寄存器含义相同,如表8-5和表8-6所示。
2013-6-17
21
8.1.4 PWM定时器应用举例
【例8.1】当PCLK=66.5MHz时,选择不同的
时钟分频(1/2、1/4、1/8、1/16)输入,分 别计算定时器最小分辨率、最大分辨率及最 大定时区间。 参见8.1.3节中定时器配置寄存器TCFG0的 内容,根据定时器输入时钟频率计算式,计 算结果见表8-7。
⑴ 定时器计数缓冲器寄存器TCNTBn,程序可读
写,用于保存定时器计数初值。在手动更新 (manual update)允许时,将这个初值送到定时 器计数寄存器TCNTn,在TCNTn中进行递减计数操 作。当自动重装(auto reload)允许时,一次计数 结束(TCNTn递减计数达到0时),自动将 TCNTBn的值装到TCNTn。 TCNTBn值的不同,决定了输出信号TOUTn频率 的不同。


最大分辨率:
定时器输入时钟的频率=PCLK/{255+1}/{2}
=66.5(MHz)/256/2 =129.8828(KHz) 一个计数脉冲的时间=1/129.8828(KHz) =7.6992(µs)
2013-6-17
24

最大定时区间:
由于TCNTBn=65535,计数到0共65536个计

2013-6-17 12

PWM定时器用到的S3C2410A引脚信号
PWM定时器输出信号,作为S3C2410A的
TOUT0~TOUT3引脚信号。 可以将S3C2410A引脚引入的时钟源TCLK1、 TCLK0,作为定时器的时钟信号。
2013-6-17
13
8.1.2 PWM定时器操作


2013-6-17
11
在计数过程中,可以给TCNTBn和TCMPBn装入 一个新的值,在自动重装方式,新的值只能用于下 一次定时,对当前正在进行的定时操作,不产生影 响。 定时器4除了没有TCMPB4和TCMP4寄存器外, 其他寄存器与定时器0~3相同。定时器4不能进行脉 宽调制,只能通过对TCNTB4设置不同的值,改变 输出信号的频率。

⒊ 定时器初始使用手动更新位和反相器位

当TCNTn在递减计数过程中,一旦达到0时,如果定时器 控制寄存器TCON允许该定时器自动重装,会出现自动重装 操作。 定时器操作举例见图8.4(P270)。

⒋ 定时器操作举例

⒌ 脉宽调制
脉宽调制(Pulse Width Modulation,PWM)功能通过使用
2013-6-17 3
定时器0和1共用一个8位预分频器(prescaler), 定时器2~4共用另一个8位预分频器。 定时器计数时钟信号来源于时钟分频器(clock
divider),通过编程能够选择时钟分频器的1/2、 1/4、1/8、1/16分频信号或选择使用TCLK0、 TCLK1。 8位预分频器是可编程的,根据保存在定时器配置寄 存器TCFG0中的预分频值,对PCLK分频。定时器 配置寄存器TCFG1为每个定时器选择时钟分频信号 (1/2、1/4、1/8、1/16)或选择TCLK0、TCLK1。

⒍ 输出电平控制
如图8.6(P271)所示,反相器设定为off或on,其输出信号
TOUTn的波形高低电平正好相反。

⒎ 死区发生器(dead zone generator)
使用PWM对大电流设备进行控制时,常常用到死区
(dead zone)功能。死区功能在切断一个开关设备和接 通另一个开关设备之间,允许插入一个时间间隙。在这 个时间间隙,禁止两个开关设备同时被接通,即使接通 非常短的时间也不允许。 当定时器死区功能被允许时,输出波形见图8.7(P272)。
17
8.1.3 PWM定时器特殊功能寄存器

定时器配置寄存器0
定时器配置寄存器0,即TCFG0,用于对两个8位预
分频器配置,并且设置死区长度。其地址为 0x51000000,可读写,Reset值为0x00000000, 具体含义见表8-2。 定时器输入时钟频率 = PCLK/{prescaler值+1}/{divider值} {prescaler值} = 0~255 {divБайду номын сангаасder值} = 2、4、8、16
2013-6-17
10

要使定时器0~3运行,主要操作包括:通过编程先送出 计数值到TCNTBn,送出比较值(脉宽调制值)到 TCMPBn。当设置为手动更新允许时,定时器自动将 TCNTBn、TCMPBn的内容送TCNTn、TCMPn。然后 设置启动定时器(TCON寄存器对应的start/stop位为 1),则TCNTn开始递减计数。计数过程中当TCNTn 的值与TCMPn的值相等时,输出信号TOUTn的电平由 低变高。如果允许自动重装,当TCNTn计数达到0时, 进行重装,同时产生中断请求或DMA请求,再开始下 一次定时。如果不允许自动重装,则定时器停止。
第8章 PWM定时器、 实时时钟 及看门狗定时器
本章重点:
⑴ S3C2410A PWM(脉宽调制)定时器概述;PWM 定时器操作;PWM定时器特殊功能寄存器;PWM定时 器应用举例。在PWM定时器操作中,详细讲述了自动 重装与双缓冲、手动更新、脉宽调制、输出电平控制、 死区发生器、DMA请求模式等内容。 ⑵ S3C2410A RTC(实时时钟)概述;RTC组成与操 作;RTC特殊功能寄存器;RTC程序举例。在RTC组成 与操作中,详细讲述了闰年产生器、读/写寄存器、后 备电池、报警功能、节拍时间中断等内容。 ⑶ S3C2410A看门狗定时器(WDT)概述;看门狗定 时器操作;看门狗定时器特殊功能寄存器;看门狗定时 器程序举例。
相关文档
最新文档