打印
[资料分享]

一种基于PWM快速产生模拟电压的方法

[复制链接]
726|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Peonys|  楼主 | 2020-2-13 22:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一种基于PWM快速产生模拟电压的方法



      1,概述

  在电子和自动化技术的应用中,数字信号转换模拟控制信号输出是电子设计中常见的问题,然而许多单片机内部并没有集成数摸转换器(DAC)。当然市场上也有一些专用的D/A转换芯片,但这类芯片价格昂贵,并且需要多个处理器功能管脚来控制,这对一般的简单应用是不适合的。

  所以在有些应用中,由单片机的PWM输出(或者通过定时器和软件一起来实现PWM输出),经过简单RC滤波电路实现DAC来得到模拟电压是一种比较好的选择。然后,这种方法的一个缺点就是电平转换时间过长,本文提出了一种新的方法来克服该问题。


  2, RC滤波电路

  图1是传统的RC滤波电路,PSoC通过GPIO口和RC滤波产生模拟电压


  

  图1,RC滤波电路产生模拟电压

  在这种方法中,PWM通过Px[y]输出,Vout即是需要的模拟电压。PWM的输出在电压VDD和0之间变换,PWM的占空比(DC)决定Vout的输出值。增加DC输出电压也会跟着增加(当DC=0%时,Vout=GND; 当DC=100%时,Vout=VDD)。

  这种方法比较简单,但缺点是电平转换时间长。例如,当DC从一个值变到另一个值时,可能要几个ms才能使Vout从一个电压变换到最终的稳定电压,如图2所示。

  

  图2,RC滤波电路的电平转换时间

  较长的电平转换时间在有些应用中是不适用的,下面我将提供一个新的方法来减小该时间。当然,也可通过减小电容电阻(RC)值并提高PWM频率来缩短电平转换时间,但有些单片机的固有缺陷而没办法提高PWM频率时就没办法了。


  3, 电压跟随器电路

  本文介绍一种新的方法能把转换时间减小到几十us,该方法除了RC滤波外,还使用了电阻、三极管以及另外一个GPIO口,三极管设计为电压跟随器模式,如下图3所示:

  

  图3,电压跟随器电路产生模拟电压

  三极管T是模拟电压Vc到Vout的开关。在空闲状态下设置Pa为“strong drive”模式,并置为高电平(逻辑1),这样,Vout = VDD, 下列步骤将使Vout从空闲状态变换到指定的电压状态。

  1)使能PWM并设定为指定的占空比DC。在计算PWN占空比时要考虑到三极管be间的压降(Vbe)。Vc = Vout + Vbe,得出DC = (Vout + Vbe)/VDD.

  2) 做足够长时间的延迟以使Vc稳定在指定的电压,注意在这延迟的时间内Vout保持高电平VDD。

  3) 设置GPIO口Pa的驱动模式为“High-Z analog”,这将导致三极管T工作状态并且Vout将立即变为指定的最终电压(只需要几十个微秒)。

  下列步骤将使Vout从指定的电压变换到空闲状态(Vout = VDD)

  1) 设置Pa的驱动模式为“strong drive”并置该PIN为高电平,Vout 将立即变为VDD.

  2) 如果需要,此时可停止Px[y]口的PWM以减小功耗。

  电平转换如图4所示,当Vc在电压下降的非稳态过程中,Vout还保持高电平。

  

  图4,电压跟随器电路的电平转换时间


  4, 实验和测试结果

  在Cypress的CY8C20x24系列芯片中,无PWM模块,所以若需要输出模拟电压就只能使用内部的TImer13模块产生PWM,然后使用外围电路产生模拟电压。下面以 CY8C20224 芯片为例来说明两种模拟电压产生方法的测试情况。

  1)使用RC电路做测试

  由于CY8C20224提供的Timer13其输入时钟为32KHz,所以由此产生的PWM频率比较低。为了减小模拟电压值的纹波,必须提高RC电路的电阻电容值。在实验电路中R=47K,C=0.1uF。下图5是用示波器抓到的波形。

  

  图5,RC滤波电路的电平转换波形

  从上图可以看出,当电压从空闲状态(VDD=3.3V)变换到稳定电压1.0V时,大约需要13~15ms.

  这在有些应用中是不够的。

  2)采用电压跟随器电路测试

  若采用电压跟随器电路,电压从空闲状态(VDD=3.3V)变换到稳定电压1.0V时,需要的时间不超过50us, 如下图6所示:

  

  图6,电压跟随器电路的电平转换波形


  5, 结束语

  本文基于对RC滤波电路的分析,提出了一种快速产生模拟电压的方法,并通过实验证明其可行性。目前该方案已在Cypress CY8C20224芯片上液晶电视按键控制板项目使用。



使用特权

评论回复

相关帖子

沙发
quickman| | 2020-2-15 16:00 | 只看该作者
PWM与系统模拟电压是如何对应转化的

使用特权

评论回复
板凳
jstgotodo| | 2020-2-15 16:00 | 只看该作者
如何把PWM输出变成平滑的电压输出?  

使用特权

评论回复
地板
iamaiqiyi| | 2020-2-15 16:00 | 只看该作者
PWM可以直接当直流电压么

使用特权

评论回复
5
dzfansman| | 2020-2-15 16:01 | 只看该作者
电流型pwm和电压型pwm区别

使用特权

评论回复
6
sanxingnote7| | 2020-2-15 16:01 | 只看该作者
如何用 单片机来产生pwm波来驱动5v的小电机

使用特权

评论回复
7
backlugin| | 2020-2-15 16:01 | 只看该作者

有什么可以产生PWM输出的芯片?  

使用特权

评论回复
8
sdCAD| | 2020-2-15 16:01 | 只看该作者
用软件模拟PWM怎样接入电路来控制

使用特权

评论回复
9
lzmm| | 2020-2-15 16:02 | 只看该作者
如何将0-10v或4-20mA的直流电压信号转变

使用特权

评论回复
10
aspoke| | 2020-2-15 16:02 | 只看该作者
pwm的频率和占空比之间的关系?

使用特权

评论回复
11
232321122| | 2020-2-15 16:02 | 只看该作者
怎么产生这种波形      

使用特权

评论回复
12
sanxingnote7| | 2020-2-15 16:03 | 只看该作者

控制器PWM输出是什么意思?

使用特权

评论回复
13
quickman| | 2020-2-15 16:03 | 只看该作者

用PWM做DAC输出模拟电压工作原理不理解?  

使用特权

评论回复
14
dzfansman| | 2020-2-15 16:03 | 只看该作者
会产生尖峰电压吗   

使用特权

评论回复
15
jstgotodo| | 2020-2-15 16:03 | 只看该作者

如何将电压较小的PWM信号的脉冲宽度的变化

使用特权

评论回复
16
iamaiqiyi| | 2020-2-15 16:03 | 只看该作者
pwm信号会改变电压输出吗?  

使用特权

评论回复
17
232321122| | 2020-2-15 16:03 | 只看该作者
pwm的精度 怎么算?   

使用特权

评论回复
18
aspoke| | 2020-2-15 16:03 | 只看该作者
PWM波怎么产生   

使用特权

评论回复
19
lzmm| | 2020-2-15 16:03 | 只看该作者

   pwm开关电源原理是什么?

使用特权

评论回复
20
sdCAD| | 2020-2-15 16:03 | 只看该作者

PWM信号转电压芯片GP8101的线性度怎么样

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

640

主题

901

帖子

5

粉丝