PWM两种模式区分以及公式Tout=(ARR+1)(PSC+1)/Tclk的理解

本文两个概念:

  1. 之前学这块的时候就对什么PWM模式一模式二 有效无效 高低电平什么的概念很模糊 最近又重温了一遍 决定还是记录下来 以下是STM32 PWM输出的工作过程(以向上计数为例)
    这是PWM的工作过程图
    CCRX的值位于0——ARR之间,若0——CCRX为低电平,则CCRX——ARR为高电平,如上图所示。ARR的大小决定周期,CCRX的大小决定占空比。
    因为怕有人把高电平和有效电平这块弄混,此处有必要提一下占空比这个概念,占空比是高电平在一个周期内所占的时间比率,即 占空比=高电平持续时间/ARR的值
    PWM有模式一和模式二,具体使用哪个模式由CCMRX寄存器相关位的值来决定
    计数器模式有向上计数,向下计数,向上向下双向计数(中央对齐)模式。具体区别通过字面意思就可理解。
    PWM模式一(110):如果是向上计数,当TIMX_CNT<TIMX_CCRX时通道X为有效电平,否则为无效电平。向下计数时相反,当TIMX_CNT>TIMX_CCRX时通道X为无效电平,否则为有效电平
    PWM模式二(111):如果是向上计数,当TIMX_CNT<TIMX_CCRX时通道X为无效电平,否则为有效电平。向下计数时相反,当TIMX_CNT>TIMX_CCRX时通道X为有效电平,否则为无效电平
    这里的高低电平可以通过设置定时器的寄存器CCER的CC1P位决定高电平有效还是低电平有效。0:高电平有效 1:低电平有效,一般默认为高电平有效
    说了这么点,相信已经有人懵了,没事 ,有总结呢。

/*************************************************************************************************************************************/
总结出------不用考虑计数模式问题,以上提出只是为了增添一个新的概念,PWM模式一:只要TIMX_CNT<TIMX_CCRX,即为有效电平,PWM模式二刚好相反
/********************************************************************************************************************************/

2.此处顺便解释一下一个很常用的公式:
Tout=(ARR+1)(PSC+1)/Tclk(ARR为自动重装载值,PSC为预分频系数)
只要写过定时器中断实验的同学一定见过这个公式,初始化需要往进填值,不过大多数人只知道怎么算,却不知道为什么,我尽量说的让大家在最短的时间内明白这个公式的含义。
先说一点基本概念(还是需要了解一下的):
定时器时钟选择(fcx_psc)
以下为时钟源:
内部时钟CK_INT (此处用的是内部时钟)
外部时钟模式1:外部输入脚 (TIx )
外部时钟模式2:外部触发输入(ETR)
内部触发输入(ITRx):使用一个定时器作为另一个定时器的预分频器
计数器时钟频率CK_INT=fcx_psc/(PSC(15:0)+1)
举例
定时器中断配置:每500ms中断一次
时钟计算方法:
(如果选择内部时钟)

STM32 AHB时钟=72M APB1时钟=36M
APB1的分频系数=AHB/APB1时钟=2
通用定时器时钟(CK_INT)=APB1的时钟*分频系数=72M
fcx_psc=CK_INT 最终时钟等于fcx_psc/N 此处N=PSC+1
Tclk就是上面所说的CK_INT 为72M
PSC若设置为7199
定时器时钟为Tclk/(PSC+1)=10k
1/10k=0.1ms即一个时钟周期
所以配置ARR为4999 即ARR+1=5000个周期完成500ms中断

具体实现参考https://blog.csdn.net/weixin_43796192/article/details/84866368
参考链接(OCX和OCXREF之间关系):http://www.openedv.com/forum.php?mod=viewthread&tid=140&highlight=REF%2B%2B%B9%D8%CF%B5

  • 16
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值