第八章 PWM定时器——ARM

参考资料:S3C2410中文手册第10章-PWM定时器.pdf。 ( S3C2410中文手册第10章-PWM定时器 )

补充:

1.PWM定时器寄存器组成和主要操作过程

在这里插入图片描述

除了定时器4,定时器0~3中每个定时器内部,都有下述寄存器:

  • 时器计数缓冲器寄存器TCNTBn,程序可读写,用于保存定时器计数初值。
    在手动更新(manual update)允许时,将这个初值送到定时器计数寄存器TCNTn,在TCNTn中进行递减计数操作。
    当自动重装(autoreload)允许时,一次计数结束(TCNTn递 减计数达到0时),自动将TCNTBn的值装到TCNTn。
    TCNTBn值的不同,决定了输出信号TOUTn频率的不同。
  • 定时器比较缓冲器寄存器TCMPBn,程序可读写,用于保存定时器比较初值。
    在手动更新允许时,将这个初值送到定时器比较寄存器TCMPn。当执行计数的TCNTn的值与TCMPn的值相等时,计数器输出信号TOUTn电平由低变高。
    当自动重装允许时,一次计数结束(TCNTn递减计数达到0时),自动将TCMPBn的值装到TCMPn。
    TCMPBn的值,被用作脉宽调制,即在输出信号TOUTn频率不变时,对每个输出脉冲低电平、高电平占用时间的调制,也称为输出信号占空比的调制。
  • 定时器计数寄存器TCNTn,是内部寄存器,程序不可读写。
    TCNTn也称为减法计数器、倒计数器或递减计数器。定时器的计数操作在TCNTn中执行。TCNTn计数时钟信号来源于时钟分频器。
    当TCNTn一次计数结束,或产生DMA请求,或产生中断请求,由编程决定。
    当一次计数结束,如果自动重装允许时,TCNTBn值送TCNTn、TCMPBn值送TCMPn,开始下一次计数;如果自动重装禁止,则计数器停止。
  • 定时器比较寄存器TCMPn, 是内部寄存器,程序不可读写。
    在计数过程中,一旦TCNTn的值与TCMPn的值相等,计数器输出TOUTn电平由低变高。
  • 定时器计数观察寄存器TCNTOn,程序可读写。在计数过程中,如果希望读出TCNTn的值,只能通过读出TCNTOn实现,不能直接读TCNTn的值。

要使定时器0~3运行,主要操作包括:

●通过编程先送出计数值到TCNTBn,送出比较值(脉宽调制值)到TCMPBn。
●当设置为手动更新允许时,定时器自动将.TCNTBn、TCMPBn的内容送TCNTn、TCMPn。
●然后设置启动定时器(TCON寄存器对应的start/stop位为1),则TCNTn开始递减计数。
●计数过程中当TCNTn的值与TCMPn的值相等时,输出信号TOUTn的电平由低变高。
●如果允许自动重装,当TCNTn计数达到0时,进行重裝,同时产生中断请求或DMA请求,再开始下一次定时。如果不允许自动重装,则定时器停止。

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

2.PWM定时器基本定时操作

定时器运行时序:
在这里插入图片描述

从左到右图中的内容是定时器设置的参数和命令以及进行的操作步骤(参考特殊功能寄存器):

  • 设置TCNTBn=3,TCMPBn=1,手动更新位设置为1,自动重装设置为1(允许自动重装)。由于手动更新位为1,TCNTBn值送TCNTn,TCMPBn值送 TCMPn。设置定时器控制寄存器TCON中对应的start/stop位为1,开始定时。
  • 在定时过程中,设置TCNTBn=2,TCMPBn=0,手动更新=0,自动重装=1。由于手动更新=0,TCNTBn和TCMPBn的值不会立即装入TCNTn和TCMPn;
    由于自动重装=1,在本次结束时(TCNT0n=0),将TCNTBn值装入到TCNTn、TCMPBn值装入TCMPn。
  • 当TCNTn计数值为1时,与TCMPn值相等,TOUTn输出信号电平从低变高。
  • 当TCNTn计数值为0时,定时器n发出中断请求(或DMA请求)。由于允许自动重装,经过一个节拍时间,TCNTBn、TCMPBn的值装到TCNTn、TCMPn寄存器。重装后立即开始另一次定时。
  • 设置自动重装位为0,禁止自动重装。
  • 这次计数(TCNTn=2,TCMPn=0)过程中,当TCNTn计数值为0时,与TCMPn值相等,TOUTn输出信号电平从低变高。由于TCNTn=0,定时器n发生中断请求(或DMA请求)。由于禁止了自动重装,所以定时器停止了操作。
3.PWM定时器特殊功能寄存器 (寄存器每一位的功能见手册)
(1)定时器配置寄存器0,定时器配置寄存器1和定时器控制寄存器

TCFG0、TCFG1、TCON对应地址及描述

————————————————————————————————————————————————————————————————————————————————————————
存储器名		|地址		|R/W	|描述										|Reset值
————————————|———————————|———————|———————————————————————————————————————————|———————————
TCFG0		|0x51000000	|R/W	|定时器配置寄存器0,用于对两个8位			|0x00000000
			|			|		|预分频器配置,并且设置死区长度             |
————————————|———————————|———————|———————————————————————————————————————————|———————————							
TCFG1		|0x51000004	|R/W	|定时器配置寄存器1,用于选择DMA请求通道		|0x00000000
			|			|		|和选择各定时器MUX(多路开关)的输入          |
————————————|———————————|———————|———————————————————————————————————————————|———————————							
TCON		|0x51000008	|R/W	|定时器控制寄存器,用于对各定时器的自动重装	|0x00000000
			|			|		|on/off、手动更新与否、启动/停止和输出      |
			|			|		|反相器on/off进行设置                       |
————————————————————————————————————————————————————————————————————————————————————————								
(2)定时器计数缓冲器、比较缓冲寄存器和计数观察寄存器

定时器04都有计数缓冲器寄存器TCNTBn和计数观察寄存器TCNTOn,定时器4没有比较缓冲器寄存器,定时器03有比较缓冲器寄存器TCMPBn。
TCNTBn、TCMPBn、TCNTOn地址及Reset值

————————————————————————————————————————————————————————————————————
寄存器名		|地址		|R/W 	|描述						|Reset值 
————————————|———————————|———————|———————————————————————————|———————
TCNTB0		|0x5100000C	|R/W	|定时器0计数缓冲器寄存器		|0x0000
TCMPB0		|0x51000010	|R/W	|定时器0比较缓冲器寄存器		|0x0000
TCNTO0		|0x51000014	|R 		|定时器0计数观察寄存器		|0x0000
TCNTB1		|0x51000018	|R/W	|定时器1计数缓冲器寄存器		|0x0000
TCMPB1		|0x5100001C	|R/W	|定时器1比较缓冲器寄存器		|0x0000
TCNTO1		|0x51000020	|R 		|定时器1计数观察寄存器		|0x0000
TCNTB2		|0x51000024	|R/W	|定时器2计数缓冲器寄存器		|0x0000
TCMPB2		|0x51000028	|R/W	|定时器2比较缓冲器寄存器		|0x0000
TCNTO2		|0x5100002C	|R		|定时器2计数观察寄存器		|0x0000
TCNTB3		|0x51000030	|R/W	|定时器3计数缓冲器寄存器		|0x0000
TCMPB3		|0x51000034	|R/W	|定时器3比较缓冲器寄存器		|0x0000
TCNTO3		|0x51000038	|R 		|定时器3计数观察寄存器		|0x0000
TCNTB4		|0x5100003C	|R/W	|定时器4计数缓冲器寄存器		|0x0000
TCNTO4		|0x00000040	|R 		|定时器4计数观察寄存器		|0x0000
————————————————————————————————————————————————————————————————————

TCNTBn、TCMPBn、TCNTOn含义

———————————————————————————————————————————————————————————————
寄存器名		|位		|描述								|初态
————————————|———————|———————————————————————————————————|——————
TCNTBn 		|[15:0]	|为定时器设置计数缓冲器寄存器的值		|0x0000
TCMPBn 		|[15:0]	|为定时器设置比较缓冲器寄存器的值		|0x0000
TCNTOn		|[15:0]	|定时器计数观察值					|0x0000
———————————————————————————————————————————————————————————————

参考资料下载链接:link.

  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值