0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个简单的PWM DAC设计方案详解

电子设计 来源:电子元件技术 作者:Dusan Ponikvar 2021-03-26 14:49 次阅读

当你需要从一个不带数模转换器(DAC)的微控制器输出模拟信号时,你可以外加一个DAC芯片。但是你也可以用另一种更经济的方法,即采用脉宽调制(PWM)输出加低通滤波器(LPF)取其平均值的方法,该平均值等于PWM信号的占空比。

图1:用RC低通滤波器得到PWM信号的平均值

RC低通滤波器滤除掉非直流信号,得到的便是平均信号UOUT。如果PWM信号的周期T为63个时钟周期,UOUT将会是64个离散DC值之一。(0 到 63,6位分辨率。)

RC低通滤波器的时间常数τ必须足够大以平滑输出信号UOUT,纹波?UOUT应小于一个最低有效位(LSB)。最坏的情况出现在50% 占空比时(如图2所示)。当τ远大于周期T时,电容的充电电流IC 和变化?UOUT可近似为:

对于一个6位的DAC,UOUT应小于 VCC/64,要求滤波器的τ=RC ≥ 16·T。

图2:滤波输出(蓝色)的纹波应小于一个LSB

一些实用数据:低功耗微处理器常使用一个32768Hz晶体振荡器作为PWM模块的时钟信号。如果是6位PWM,则周期T为64/32768≈2ms,因此需要32ms的时间常数,也就是要等待5τ(160ms)来使6位转换器稳定。非常慢。本设计实例将展现你如何才能加速完成信号的转换。

微控制器中的PWM模块通常可以产生多个PWM信号。我们来考虑一下将两个基于PWM的3位DAC(DACH和DACL)的输出求和,求和前DACL输出的幅度被减小到了八分之一。得到的信号相当于一个6位DAC,但将会比简单版本有重大的优势:周期T对于相同的分辨率仅为8个时钟周期,而所需的时间常数τ是原来的八分之一,DAC的稳定时间快了8倍。这样改进后就很容易用电阻为两个PWM信号(PWMH、PWML)实现RC滤波器:

o4YBAGBdgyGAQ87XAAFcZq5Y_Lc521.png

图3:将两个基于PWM的DAC输出合到一起

输出信号UOUT等于:

pIYBAGBdgy-Ab46JAAB3HJAkHno719.png

这一技术已经在TI MSP430F5132微控制器中实现:

图4:基于6位(3+3)PWM的DAC的初始化和写入代码

图5:基于6位PWM的DAC测量输出;蓝线:图1方案(稳定时间160ms);紫线:图3方案(稳定时间20ms)。

7位DAC可以用1%精度的电阻实现。这次,两个PWM信号用来产生两个3位DAC,最终实现6位的效果,MSb只用P3.7引脚来设置为0或1。

pIYBAGBdg22AZbaWAADomv_l0k0394.png

图6:基于7位PWM的DAC的实现

图7:图6电路的测量输出结果;注意其优秀的线性度

图8:基于7位(3+3+1)PWM的DAC的初始化和写入代码

这里的速度提升更加明显。一个简单的PWM DAC需要128个时钟周期(128/32768 s-1=3.9ms),因此τ=32·T=125ms,稳定时间为5·125ms=625ms。图7的稳定时间为40ms,快了16倍。使用高阶的LPF滤波器也有助于缩短稳定时间。
编辑:hfy

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PWM
    PWM
    +关注

    关注

    114

    文章

    4820

    浏览量

    209556
  • 低通滤波器
    +关注

    关注

    12

    文章

    445

    浏览量

    46873
  • 脉宽调制
    +关注

    关注

    3

    文章

    198

    浏览量

    38021
  • 数模转换器
    +关注

    关注

    13

    文章

    736

    浏览量

    82333
收藏 人收藏

    评论

    相关推荐

    在NuEdu,pwm_dac示例程序中,让pwm来供电,为什么pwm产生的是输出假象的电压?

    在NuEdu,pwm_dac示例程序中,是让pwm来供电,用adc来量取电压值。能够得到很均衡的数字。 这里我有小问题,pwm产生的电压不是实实在在电压,是通过快速开关,来输出假象
    发表于 01-17 07:44

    DAC接口基本原理详解

    电压 越来越多的人简单地将DAC视作具有数字输入和模拟输出的器件。但模拟输出取决于 是否存在称为基准电压源的模拟输入,且基准电压源的精度几乎始终是
    发表于 12-19 07:29

    看似简单的整流二极管电路详解(一)

    看似简单的整流二极管电路详解(一)
    的头像 发表于 12-04 16:18 343次阅读
    看似<b class='flag-5'>简单</b>的整流二极管电路<b class='flag-5'>详解</b>(一)

    如何提高PWM-DAC的输出精度

      昨天发了一篇TI的技术文章,里面提到了一个比较有意思的电路,就是用多路PWM并联来提高PWM-DAC的输出精度。比如组合两路8bit的PWM来组合为16bit的PWM-DAC
    的头像 发表于 11-18 16:30 800次阅读
    如何提高<b class='flag-5'>PWM-DAC</b>的输出精度

    pwm相比dac有哪些优势?

    pwm相比dac的优势有么?
    发表于 10-28 07:49

    电力变压器保护设计方案

    电力变压器保护设计方案
    的头像 发表于 10-23 09:35 325次阅读
    电力变压器保护<b class='flag-5'>设计方案</b>

    语音芯片KT142C两种音频输出方式PWMDAC的区别

    一般的语音芯片,输出方式,无外乎两种,即dac输出,或者PWM输出
    的头像 发表于 10-21 11:43 365次阅读
    语音芯片KT142C两种音频输出方式<b class='flag-5'>PWM</b>和<b class='flag-5'>DAC</b>的区别

    pwm三相逆变电路详解

    pwm三相逆变电路详解  PWM三相逆变电路是一种能将DC直流电源转换为高性能三相交流电源的电路设计。PWM是脉冲宽度调制的缩写,是一种调制电流或电压的方法。在
    的头像 发表于 10-16 16:25 3060次阅读

    如何获取ADC电压并由DACPWM发送

    应用程序: 获取 ADC 电压, 由 PWM DAC 发送 BSP 版本: M480系列 BSP CMSIS V3.04.000 硬件: NuMaker-ETM-M487 此示例代码显示如何获取
    发表于 09-01 06:31

    如何获取ADC电压并由DACPWM发送

    应用程序: 获取 ADC 电压, 由 PWM DAC 发送 BSP 版本: M480系列 BSP CMSIS V3.04.000 硬件: NuMaker-ETM-M487 此示例代码显示如何获取
    发表于 08-23 07:55

    基于UC3842芯片的升压转换电路设计方案

      UC3842 是款固定频率电流模式 PWM 控制器。该 IC 专为离线和直流到直流转换器应用而设计,只需极少的外部元件。   我们将进步讨论UC3842在升压转换电路中的应用。   升压转换
    发表于 07-31 16:11

    CH32V103基础教程-PWM播放音乐(2TIM)

    。关于PWM播放音乐原理,即将PWM模拟变成DAC进行语音信号的输出。大概原理就是:通过改变PWM
    发表于 05-11 16:11

    CH32V103基础教程93-PWM播放音乐 (1TIM)

    函数介绍关于TIM,在前面章节已经进行过介绍,在此不再赘述。关于PWM播放音乐原理,即将PWM模拟变成DAC进行语音信号的输出。大概原理
    发表于 05-11 16:10

    全自动洗衣机的设计方案

    最近发现16进制很好用,于是出了设计方案。程序,报错,显示使用同方案。水位0-3,占2位。洗衣0-3,占2位。漂洗0-3,占2位脱水
    发表于 04-21 12:19

    制作简单PWM脉宽调制电路!

    PWM
    YS YYDS
    发布于 :2023年04月18日 12:37:55