AVR单片机ATmega16之初识PWM模式

引言

书上开篇关于这部分的描述是这样讲的:相对于一般的8位单片机而言,AVR不仅配备了更多的定时/计数器接口,而且还是增强型的例如通过定时/计数器与比较匹配寄存器相互配合,生成占空比可调的方波信号,即脉冲宽度调制输出的PWM信号,用于D/A转换,电机无极调速控制、变频控制等(这样一段书上的导语其实已经很好地概括了PWM的产生原理,和用途),下面说说具体的实现方式吧(都是以T/C0定时器为例来实现的)。按照我自己的粗略总结大致分为三大类(下面会逐条详细解释):1.CTC模式产生(50%占空比的方波信号) 2.快速PWM模式 3.相位可调PWM模式 (因为是初学如有不对,还望朋友们指正!)
根据图上的信息可以知道T/C0定时器对应的输出口为OC0对应的是PB3管脚,同理:T/C2对应的为OC2对应PD7
根据图上的信息可以知道T/C0定时器对应的输出口为OC0对应的是PB3管脚,同理:T/C2对应的为OC2对应PD7


CTC模式产生(50%占空比的方波信号)

一言以蔽之:用计时器定出时间,在设定时间到时,改变相关引脚的输出电平值,每次取反(就跟异或原理相同)。恰好每次时间间隔都相同,这样就能理解为什么是50%占空比了(当然这种用法比较特殊,也有着它的局限性:比如占空比就不可调)
下面讲讲具体的配置吧:
1.TCNT0:计数寄存器(每次到与OCR0匹配时就会清零TCNT0的值,所以也不用配置了)
2.OCR0:输出比较寄存器
3.TIMSK:定时/计数器屏蔽寄存器(这里用不上)
4.TIFR:定时/计数器中断标志寄存器(这里也用不上)
5.TCCR0:主要的配置就是这个寄存器了(它的COM01(5)和COM00(4)配置成01,即为比较匹配时,触发OC0(OC0为原OC0的取反))
在这里插入图片描述
这里有一个公式来计算其他频率(占空比仍为50%):输出的频率=选定的时钟/(2N(1+OCR0)) N:为分频数*


快速PWM模式:

在这里插入图片描述

在该模式下又分正向比较匹配输出和反向比较匹配输出:
在这里插入图片描述

(是正向的话,计数到设定匹配值管脚输出0,计数到255(0xff)时管脚输出1,反向的话计数到设定匹配值管脚输出1,计数到255(0xff)时管脚输出0)

①TCNT0计数到255(oxff)时,溢出标志位TOV0置1,可以用来申请中断。可以在中断服务程序中修改OCR0的值
②OC0的输出的PWM波形频率计算公式:PWM的频率=所选时钟源频率/256N (N为分频数)
③通过设置OCR0的值便可获得不同占空比的脉冲波形
④该模式是单程向上加1计数的


相位可调PWM模式

在这里插入图片描述
与快速PWM模式类似的,也有正反向,只不过多了个减数的过程与上个模式的④相比,这个是先加数过程和OCR0比一次,后又从255减下来跟OCR0再比一次,这样一加一减算作一个完整的过程。
在这里插入图片描述
(正向比较匹配输出时,TCNT0加1计数与OCR0比较,OC0输出0,从255减到OCR0,OC0输出1,反向比较匹配输出时,TCNT0加1计数与OCR0比较,OC0输出1,从255减到OCR0,OC0输出0)

①TCNT0计数0x00时,溢出标志位TOV0置1,可以用来申请中断。可以在中断服务程序中修改OCR0的值
②OC0的输出的PWM波形频率计算公式:PWM的频率=所选时钟源频率/510N (N为分频数)
③通过设置OCR0的值便可获得不同占空比的脉冲波形
④该模式双程计数

总结:通过以上两种模式PWM对比,十分直观,除了③相同,其他还是有些差别和相似点的
相信机智的你也发现了,快速PWM模式采用单程计数方式,所以它可以产生比相位可调PWM模式高1倍频率的PWM波。因此快速PWM模式适用于电源调整,DAC等应用。相位可调PWM模式特性(即OC0逻辑电平的改变不是固定在TCNT0=0x00处),适用于电机控制一类的应用。

无论是快速还是相位可调模式下,占空比计算均可用这个公式:
OCR0的的(数)值/计数器上限的值(0xff 255)


相关寄存器配置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

关于文中的图片均为马潮老师的《AVR单片机嵌入式系统原理与应用实践》第二版
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值