S3C2410定时器工作原理

S3C2410芯片有5个16位定时器,除timer4外均具有PWM功能。

工作原理

定时器与计数器工作原理相同,只不过是16位计数器的脉冲来源不同,如下图所示。
在这里插入图片描述
主要介绍定时器功能:PCLK经过预分频和分隔后产生定时器的脉冲信号,计数器在每个脉冲周期内减1,当减至0时产生定时器归零中断并且自动重载TCNTn为缓冲寄存器的值(若自动重载位置1)。

S3C2410定时器

S3C2410有5个16位定时器,即TCNTn寄存器最大值为65335。

定时器对应IO接口PWM
Timer0TOUT0(GPB0)
Timer1TOUT1(GPB1)
Timer2TOUT2(GPB2)
Timer3TOUT3(GPB3)
Timer4仅有计数功能

定时器输入时钟频率: f T C L K = f P C L K / ( 预 分 频 + 1 ) / 分 割 系 数 f_{TCLK}=f_{PCLK}/(预分频+1)/分割系数 fTCLK=fPCLK/(+1)/
定时器计数频率: f 0 = f T C L K / T C N T B n f_0=f_{TCLK}/TCNTBn f0=fTCLK/TCNTBn
设置好预分频值,分频系数,TCNTBn的值,一些相关控制寄存器,编写定时器中断处理函数即可使用。

  • timer0,timer1,timer2共用一个预分频值,timer3,timer4共用一个预分频值
  • 每个定时器的分割系数可以单独设置
  • 启动时先设置好两个缓冲寄存器的值,然后置为手动更新(此时不启动),芯片自动将缓冲寄存器写入递减寄存器和比较寄存器;然后设置为自动更新并启动寄存器。后续需要修改直接改缓冲寄存器即可。

PWM设置

PWM可以控制输出的占空比,即某一周期内高/低电平的比例,进而控制电机转速、LED亮度等。
PWM的运行过程涉及两个寄存器TCMPn:比较寄存器,TCMPBn:比较计数器的缓冲寄存器。当TCNTn的值递减到与TCMPn的值相等时,定时器改变输出电平(可通过翻转器决定电平的高低)。
同样,若设置自动重载,当TCNTn归零时,会自动将TCMPBn的值写入TCMPn用于下一计数周期。通过这种双缓冲设置,S3C2410可以在当前周期修改下一周期的定时器运行状态。
PWM输出频率: f P W M = f 0 f_{PWM}=f_0 fPWM=f0
PWM输出信号占空比: 占 空 比 = T C M P B n / T C N T B n 占空比=TCMPBn/TCNTBn =TCMPBn/TCNTBn

定时器控制寄存器

  • TCFG0配置寄存器0,用于设置与分频系数和死区值。
  • TCFG1配置寄存器1,设置分割器值和哪个定时器产生DMA请求
  • TCON定时器控制寄存器,控制每一个定时器的手动更新/自动更新,启动/停止
  • 每个寄存器都有一个递减寄存器的缓冲寄存器TCNTBn
  • 前四个定时器有比较寄存器的缓冲寄存器TCMPBn
  • 每个定时器都有一个观察寄存器TCNTOn用于查看当前定时器计数值,共5个。
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值