S5PV210的Timer--1 PWM

本文深入解析S5PV210微处理器的PWM定时器工作原理及配置过程,包括两级分频器的使用,以及如何通过寄存器设置实现特定频率和占空比的PWM信号输出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PWM
1.S5PV210有5个PWM定时器,其中4个有引脚输出,一个没有引脚输出
2.PWM定时器有2级分频器,第一个是预分屏器,prescaler 8bit的,手册上说明上面最小的值是1+1,所以这个预分屏器寄存器里面的值最小是2,寄存器不写数值默认就是0x1,寄存器里面写1就是2. 写255分频系数就是256
3.第二级分频器,值从1-16,每一个pwm都有一个二级分频器
4.所以最小分频就是两个寄存器都是1,为66M / 2 = 33MHZ
t = 1 / f t = 0.03us
5.最大分频就是第一个分频器写255 + 1,第二个取16
66MHZ / 256 x 16 = 16113.28125HZ
t = 1 / f t = 62.06us
注意第一级分频器,pwm0 和 1是公用的 pwm 2 3 4 是公用另一个第一级分频器的
在这里插入图片描述
6.我们的蜂鸣器接的是pwm2,用的是GPD0_2这个引脚,
下面看一下寄存器的配置:
(1).rGPD0CON:把引脚配置成TOUT_2 rGPD0CON &= ~(0xf<<8); rGPD0CON |= (2<<8);
(2).rTCFG0:第一个分频器 rTCFG0 &= ~(0xff<<8); rTCFG0 |= (65<<8); 写的值是65,所以分频系数是65 + 1 = 66,所以第一级分频后的时钟就是1MHZ
(3).rTCFG1:第二级分频器, rTCFG1 &= ~(0x0f<<8); rTCFG1 |= (1<<8); 写的值是1,所以分频系数是2, 1MHZ经过2分频后就是500khz了 t = 1 / 500khz t = 2us
(4).rCON |= (1<<15); 打开自动reload的功能,这样就可以实现循环产生波形
(5). rTCNTB2 = 50; 这个是控制周期的, 50 x 2us = 100us Tpwm = 100us
rTCMPB2 = 25; 这个控制占空比的,25 / 50 = 1/2 所以占空比是50%
(6).最后就是关于CON寄存器的配置了:
// 第一次需要手工将TCNTB中的值刷新到TCNT中去,以后就可以auto-reload了
rCON |= (1<<13); // 打开自动刷新功能
rCON &= ~(1<<13); // 关闭自动刷新功能
rCON |= (1<<12); // 开timer2定时器。要先把其他都设置好才能开定时器
下面我们理清楚一下几个寄存器:
TCNT:这个寄存器是没有地址的,需要把值写到TCNTB,然后刷新到这个寄存器里面去,最终实际上是这个里面的值-1
TCNTB:控制周期的,x * 时钟 = T 里面时钟2us x = 50 T = 100us
TCMPB:控制duty,占空比的,TCMPB / TCNTB就是占空比,占空比就是高电平的时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值