参考S3C2440的数据手册的第10章《PWM定时器》
概述
S3C2440A 有 5 个 16 位定时器。其中定时器 0、1、2 和 3 具有脉宽调制(PWM)功能。定时器 4 是一个无输出引脚的内部定时器。定时器 0 还包含用于大电流驱动的死区发生器。
S3C2440有两个8 位预分频器。定时器 0 和 1 共用一个 8 位预分频器,定时器 2、3 和 4 共用另外的 8 位预分频器。使得PCLK分频进入下一步操作。8 位预分频器由TCFG0寄存器设置。
每个定时器都有一个可以生成 5 种不同分频信号(1/2,1/4,1/8,1/16 和 TCLK)的时钟分频器。使得经过8 位预分频器的时钟再次分频。由TCFG1寄存器设置。
看一下PWM定时器的方框图
从方框图仅能看出定时器的时钟频率,具体如何工作还需看内部结构。
下图为内部控制逻辑图
定时器的工作流程为:
- 设置TCMPBn和TCNTBn,分别为比较值和初值。
- 随之设置TCON启动定时器,这时,TCMPBn和TCNTBn的值被装载至TCMPn和TCNTn。定时器的TCNTn开始减1计数。
- 当TCNTn的值等于TCMPn的值时,定时器的输出管脚TOUTn的输出电平反转。定时器的TCNTn继续减1计数。
- 当TCNTn的值减到0时,输出管脚TOUTn的