嵌入式学习笔记(37) S5PV210的PWM定时器

嵌入式学习笔记(37) S5PV210的PWM定时器_第1张图片

7.3.1为什么叫PWM定时器

(1)叫定时器说明它本质上的原理是定时器。

(2)叫PWM定时器,是因为这个定时器天然是用来产生PWM波形的。

7.3.2 PWM定时器介绍

(1)S5PV210有5个PWM定时器。其中0、1、2、3各自对应一个外部GPIO,可以通过这些对应的GPIO产生PWM波形信号并输出;timer4没有对应的外部GPIO(因此不是为了产生PWM波形,而是为了产生内部定时器中断而生的)。

(2)S5PV210的5个PWM定时器的时钟源为PCLK_PSYS,timer0和timer1共同使用一个预分频器,timer2、3、4共同使用一个预分频器;每个timer有一个专用的独立的分频器;预分频器和分频器构成了2级分频系统,将PCLK_PSYS两级分频后生成的时钟供给timer模块作为时钟周期。

7.3.3 S5PV210的PWM定时器框图简介

关键点:时钟源、预分频器、分频器、TCMPB & TCNTB、dead zone

7.3.4预分频器和分频器

(1)两级分频是串联(级联)的,所以两级分频的分频数是相乘的。

(2)两级分频的分频系数分别在TCFG0和TCFG1两个寄存器中设置。

(3)预分频器有2个,prescaler0为timer0和timer1共用;prescaler1为timer2、3、4共用;两个prescaler都是8bit的,因此prescaler value范围为0~255;所以预分频器的分频值范围为1~256(注意实际分频值为prescaler value + 1)。

(4)分频器实质上是一个MUX开关,多选一开关决定了走哪个分频系数路线。可以选择的有1/1、1/2、1/4、1/8、1/16等。

(5)计算一下,两级分频下来,分频最小为1/2,最大分频为1/(256*16)

(6)在PCLK_PSYS为66MHz的情况下(默认时钟设置就是66MHz的),此时两级分频后的时钟周期范围为0.03us到62.061us;再结合TCNTB的值的设置(范围为1~2exp32),可知能定出来的时间最长为266548.27s(74h多)

7.3.5 TCNT&TCMP、TCNTB&TCMPB、TCNTO

(1)TCNT和TCNTB是相对应的,TCNTB是有地址的寄存器,供程序员操作;TCNT在内部和TCNTB相对应,它没有寄存器地址,程序员不能编程访问这个寄存器。

(2)TCNT寄存器功能就是用来减1的,它是内部的不能读写;我们想TCNT中写要通过TCNTB往进写;读取TCNT寄存器中的值要通过读取相对应的TCNTO寄存器。

(3)工作流程就是:我们事先算好TCNT寄存器中开始减的那个数(譬如300),然后将之写入TCNTB寄存器中,在启动timer前,将TCNTB中的值刷到TCNT寄存器中(有一位寄存器专门用来操作刷数据过去的),刷过去后就可以启动定时器开始计时;在计时过程中如果想知道TCNT寄存器中的值减到多少了,可以读取相应的TCNT0寄存器来得知。

(4)定时功能只需要TCNT、TCNTB两个即可;TCNTO寄存器用来做一些捕获计时;TCMPB用来生成PWM波形。

嵌入式物联网的学习之路非常漫长,不少人因为学习路线不对或者学习内容不够专业而错失高薪offer。不过别担心,我为大家整理了一份150多G的学习资源,基本上涵盖了嵌入式物联网学习的所有内容。在评论区输入“嵌入式”,即可0元领取学习资源,让你的学习之路更加顺畅!记得点赞、关注、收藏、转发哦!

嵌入式学习笔记(37) S5PV210的PWM定时器_第2张图片

你可能感兴趣的:(嵌入式学习笔记,编程,嵌入式,学习,笔记,单片机,嵌入式实时数据库,嵌入式硬件)