PWM详解

PWM,全称为Pulse Width Modulation, 脉宽调制器. 用于产生宽度可调的方波脉冲,这种方波脉冲序列即可以直接使用,也可以经过滤波变为模拟信号使用,从而间接实现D/A转换

PWM占空比(duty cycle): 一个脉冲周期内,高电平的时间与整个周期时间的比例,单位是% (0%-100%)

比方说一个方波脉冲,在一个周期中,一半时间为高电平,一半时间为低电平,则占空比为50%

PWM方波分析:

  1. 周期可调
    • 脉宽调制器输出的方波脉冲频率由预分频器PWMP控制.

PWM计数器每一个状态周期进行一次加1,8位计数器最大计数值为255,故脉宽调制器输出的方波脉冲频率fPWM的计算公式为

fPWM = fosc/2*(PWMP+1) * 255

根据此公式,只要知道时钟频率和预分频器的值,就可以计算出以微秒为单位的PWM方波周期.

假定晶振频率为6MHz,PWMP的值为1,则PWM方波周期约为170μs.

  1. 宽度可调->占空比可调:
    • PWM方波脉冲的宽度由脉冲宽度寄存器确定,而PWM是通过计数和比较来产生方波的,所以只要改变脉冲宽度寄存器的内容,方波宽度就会随之改变。 方波宽度可控,而方波宽度在整个周期的占比就是占空比,因此占空比是可调的。

对于晶振频率为6MHz的芯片来说,当宽度参数为0x00时候,PWM输出为恒定的高电平; 当宽度参数为0xFF的时候,方波输出恒定为低电平.

PWM的产生一般和定时器有关,下面以STM32为例进行说明

定时器
上图为STM32定时器框图,其中有关PWM的部分为右下部分,即,
PWM

以向上计数为例,对PWM模式进行说明:
从图中可以看出,除了CNT计数器和ARR自动重装载以外,方框图中还有一个CRRx捕获/比较寄存器.当CNT小于CCRx时,TIMx_CHx通道输出低电平;当CNT等于或大于CCRx时TIMx_CHx通道输出高电平。
因此,我们想要调节PWM,就可以通过更改捕获/比较寄存器中的值,来控制PWM的占空比. 再通过控制ARR自动重装在寄存器,来控制PWM的频率,从而达到完全控制输出电压的效果.

我们已经了解了PWM的方波脉冲输出,那么输出的方波脉冲有什么用呢?

  1. 直接使用
  2. 转成模拟信号使用

下面我们详细介绍转成模拟信号

我们知道,DAC是用来进行数模转换的,但是很多芯片中,不一定有DAC. 但PWM是每个芯片都有的,因此我们可以使用PWM来实现DAC的功能.

将PWM数字信号转换成模拟信号,需要使用到一个重要的原理:面积等效原理: 冲量相等而形状不同的窄脉冲施加在惯性环节上时,其效果基本相同。

因此,当我们想要将数字信号转换成模拟信号的时候,只需要将所需要的模拟信号分成一定的周期T,然后确定一个电压幅度,当我们改变占空比的时候,一定周期内,信号面积不同,所能表示的电压就不同,从而通过控制占空比而控制电压的不同,从而转换成模拟信号.

原理是这样的,那么实际实现的电路是什么样的呢?

PWM
缓冲器
RC低通滤波器
功率放大器
模拟信号

如上所示,是利用PWM实现DAC功能的电路简易图

  • 其中PWM信号经过缓冲器,进一步加工,使波形达到标准的0~+5V范围.
  • RC低通滤波器用来抑制干扰信号(除去谐波分量)
  • 功率放大器具有高输入阻抗的特点,用来提高输出模拟信号的驱动能力
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值