定时器与PWM

什么是PWM

1、脉冲宽度调制(PWM),简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种技术。
2、PWM的频率
指1秒钟内信号从高电平到低电平再回到高电平的次数(一个周期),也就是说一秒钟PWM有多少个周期。
3、PWM的周期
T = 1 / f,周期 = 1 / 频率
如:50Hz = 20ms一个周期(如果频率为50Hz,也就是说一个周期20ms,那么一秒钟就有50次PWM周期)
4、占空比
是指一个脉冲周期内,高电平的时间与整个周期时间的比例
5、周期
一个脉冲信号的时间,1s内周期次数等于频率
6、脉宽时间
高电平时间,脉宽时间占总周期时间的比例,就是占空比
7、调节PWM
PWM就是通过脉冲宽度调制,通过调节占空比,就可以调节脉冲宽度(脉宽时间),而频率就是单位时间内脉冲信号的次数,频率越大,占空比越大。

分频-计数器时钟

定时器时钟提供较高的频率,计数器不需要这么高的频率来计数,所以会进行降频,使用一个合适的低频时钟来计数。
定时器时钟经过PSC预分频器之后,即CK_CNT,用来驱动计数器计数。PSC是一个16位的预分频器,可以对时钟TIMxCLK进行1~65536之间的任何一个数进行分频。
即:CK_CNT = TIMxCLK / (PSC+1)

  • 比如,使用STM32F4的通用定时器2(TIM2CLK为APB1的时钟的两倍即84MHz),PSC设置为83,则计数时钟为84MHz/(83+1)=1MHz,即1ms计一个数。

计数器

计数器CNT是一个16位的计数器,只能往上计数,最大数值为65535。当计数达到自动重装载值时产生更新事件,并清零从头开始计数。

定时器输出PWM原理

假设定时器工作模式设置为向上计数PWM模式,且当CNT<CCRx时,输出1,当CNT>=CCRx时输出0,则:

  • 当CNT值小于CCRx的时候,IO输出高电平(1)
  • 当CNT值大于等于CCRx的时候,IO输出低电平(0)
  • 当 CNT 达到 ARR 值的时候,重新归零,然后重新向上计数,依次循环。

因此,改变CCRx的值,就可以改变PWM输出的占空比,改变ARR的值,就可以改变PWM输出的周期(频率)

定时器初始化

时基初始化,主要是配置定时器的自动重装值(每次计数的周期,arr)和计数频率(psc),比如TIM3_PWM_Init(500-1,84-1);

这里将arr的值设置为500,即计数器每计够500个数就会重新从0开始计数,这个500再乘以计数器计数的周期,就是PWM真正的周期,那计数器计数的频率是多少呢(频率的倒数为周期)?

这里将psc的值设置为84-1,即TIM3的输入频率为84MHz再将频率降低1/84,即使用1MHz的频率计数(1s能计1,000,000个数,也即1us计1个数),那么PWM的真正周期就是500*1us=500us(0.5ms),通过改变占空比的值(CCR),就可以调节PWM的输出占空比。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值