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

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

3天内不再提示

怎样利用PWM实现DAC电路设计

AGk5_ZLG_zhiyua 来源:未知 作者:佚名 2017-10-19 14:11 次阅读

周立功教授新书《面向AMetal框架与接口编程(上)》,对AMetal框架进行了详细介绍,通过阅读这本书,你可以学到高度复用的软件设计原则和面向接口编程的开发思想,聚焦自己的“核心域”,改变自己的编程思维,实现企业和个人的共同进步。经周立功教授授权,即日起,致远电子公众号将对该书内容进行连载,愿共勉之。

本文为第三章:PWM 实现DAC 电路设计,内容包括:3.1 实现原理、3.2 电路设计、3.3 测试验证、3.4 参数总结。

本章导读:

MCU 需要产生不同的模拟信号时,通常采用集成或独立的D/A 转换器实现。但是在要求低成本的场合,可以通过PWM 信号产生系统需要的直流和交流信号。

LPC824 内部有一个32 位PWM 定时器(SCTimer),它产生的PWM 信号搭配外围电路可实现高分辨率、低成本的DAC,比如,12 位DAC。

3.1 实现原理

>>> 3.1.1 PWM 信号时域分析

PWM(Pulse Width Modulation)是频率固定、占空比变化的数字信号,PWM 信号波形可以被分解为一个直流分量加上一个相同占空比,但平均幅度为零的新的方波,详见图3.1,由此可见,这个直流分量的幅度正比于PWM 波形的占空比。

图3.1 PWM 信号波形分解

如果使PWM 信号的占空比随时间改变,那么其直流分量随之改变,信号滤除交流分量后将输出幅度变化的模拟信号。因此通过改变PWM 信号的占空比,可以产生不同的模拟信号。这种技术称之为PWM DAC,其原理可以形象地用图3.2 表现出来。

图3.2 使用滤波器电路获取PWM 的直流成分

>>> 3.1.2 PWM 信号频域分析

从频域分析进一步得到PWM 方式DAC的数学表达式。PWM 信号的函数波形详见图3.3,p 表示PWM 信号的占空比(0≤p≤1),T表示载波周期。图 3.3 是在不影响分析结果的前提下,移动函数波形的时间原点,使波形符合数学中的常规脉冲函数波形,以简化数学分析。

图 3.3 PWM 信号函数波形

根据傅里叶理论,任意周期波形都可以分解为无限个频率为其整数倍的谐波之和,周期函数f(t)的傅里叶级数展开结果如下:

如果令K 表示PWM 信号f(t)的幅度,代入公式(2)~(4),f(t)的展开系数分别如下:

从展开式系数可以看到,直流分量A0 项等于PWM 波形幅度乘以PWM 波形占空比,这是所期望的D/A 转换输出结果。通过选择合适的占空比,可以获得0~K 之间的任意D/A转换输出电压。

交流分量An 项是一系列频率为PWM 信号载波频率整数倍的高频正弦谐波,对于D/A转换转换是不需要的成分。举个例子,如果PWM 载波频率为1MHz,那么交流分量将是1MHz、2MHz、3MHz 等等。此时经过一个截止频率为1MHz 的理想低通滤波器,除去1MHz 及以上交流谐波,只剩下可任意设置直流分量,就是所期望的DAC 功能,DAC 表达式如下:

3.2 电路设计

PWM 实现DAC 的本质是需要保留直流分量去除交流分量,电路设计主要根据DAC 的分辨率,设计幅频曲线陡峭的低通滤波器,将交流成分衰减至可接受的范围内。对比无源RC、无源LC 低通滤波,由运放组成的有源低通滤波器,元件体积小,容易实现高阶滤波器,并且低输出阻抗,不存在带负载能力问题,电路框图详见图 3.4。

图 3.4 PWM 实现DAC 电路框图

该电路由两个三阶低通滤波器级联形成六阶低通滤波器,用于衰减LPC824 输出PWM信号的高频成分,实现12 位分辨率DAC。

>>> 3.2.1 DAC 分辨率

分辨率是DAC 的重要参数,存在两个误差源影响PWM 方式DAC 分辨率。首先,PWM信号的占空比只能表示有限的分辨率。在PWM 定时器最高时钟固定的情况下,DAC 分辨率由PWM 信号载波频率决定。例如,期望产生载波频率100kHz 的PWM 信号,PWM 定时器时钟为100MHz,这个时基在每个PWM 载波周期之中,最多提供1000 个计数值,通过指定PWM 定时器的比较值,最多提供1000 个PWM 占空比分辨率。

第二个误差源是PWM 信号中不期望的谐波分量所产生的峰峰值纹波详见图 3.5,纹波峰值至少需小于1/2 个LSB,这两个误差源加在一起决定总的DAC 分辨率不确定性。

图 3.5 影响PWM 方式DAC 分辨率的误差源

改善第一个误差源占空比分辨率,容易想到降低PWM 载波频率。在前面例子中,将载波频率由100kHz 降低至50kHz,对于100MHz 的时钟,PWM 占空比分辨率增加至2000 个。然而,更低的载波频率也降低了公式(6)中不期望谐波部分的基波频率,一次谐波现在变为50kHz 而不是100kHz,如果硬件有源低通滤波器维持不变,其截止频率不变,更多交流成分将穿过滤波器,谐波纹波峰值增加,会导致第二误差源增加。

由此可见,根据确定的硬件滤波器来选择PWM 载波频率,在两个误差源PWM 占空比分辨率和谐波纹波之间存在矛盾。先确定载波频率,再设计滤波器,是使得分辨率不确定性最小的方法。对于LPC824 的PWM 外设,设计12 位DAC 的计算步骤详细介绍如下。

设定PWM 定时器时钟。LPC824 运行时钟高达30MHz,这里我们留出一些裕量,选择10MHz 时钟,周期为100ns。

设定PWM 信号载波频率。考虑将信号的周期设置为可以被4096 整除,这样可以保证步进值为一个整数,保证转换的准确性与简便性。

因此PWM 的载波周期设定在409600ns,这样在每次DAC 的数字代码步进1 时,只需要将高电平持续时间加100ns,即步进一个计数值即可。我们可以轻松地算出PWM 的载波频率为2.44KHz。

计算硬件低通滤波器所需的衰减倍数,PWM 信号的交流分量中,基波频率最低,当占空比为50%时,基波的幅度最大,若这种情况下滤波器能将基波幅度衰减至1/2LSB 之下,则在所有占空比情况下,都可以将PWM 信号的交流分量衰减至1/2LSB 以下。因此可根据50%占空比时的基波幅度,计算所需的衰减倍数。

首先需要将n=1 代入公式(6),得到基波的幅度An=1:

然后,计算使得基波幅度小于1/2LSB 的衰减倍数Afilter

总结实现12 位DAC 分辨率的计算过程,LPC824 的PWM 时钟设置为10MHz,载波频率设置为2.44kHz,硬件低通滤波器需将2.44KHz 频率分量衰减74dB 以上。

>>> 3.2.2 有源低通滤波器

在PWM 实现DAC 应用中,带宽、阻带滚降速率是两个重要的滤波器性质。滤波器带宽定义为幅频响应等于0.707 倍时的频率。滤波器带宽直接揭示了最大信号带宽,即PWM 方式DAC 能够有效处理的最大信号频率。阻带滚降速率是高频部分幅频响应曲线的斜率。带宽、滚降速率共同决定滤波器输出端看到的谐波纹波幅度。

通常低通滤波器为-20dB 每十倍频程每阶滤波器,若低通滤波器带宽设置为载波频率的1/10 频程,即0.244KHz,衰减-74dB 至少需4 阶低通滤波器。综合考虑带宽、滤波器电路的复杂程度,低通滤波器带宽设定在200Hz,使用两级3 阶巴特沃斯低通滤波器级联形成6阶滤波器,详见图 3.6。

图 3.6 6 阶巴特沃斯有源低通滤波器电路

此滤波器电路的幅度曲线详见图 3.7,2.44kHz 频率成分衰减比例为100dB 左右,具有足够的裕量。如果只需用到10 位分辨率DAC,可只选择使用第一级滤波器。

图 3.7 6 阶有源低通滤波器幅频曲线

与LPC824 的ADC 信号输入滤波器类似,这里再次使用单运放的三阶滤波器电路拓扑,避免常规有源滤波器电路设计对运放的带宽要求。常规配置需要运放增益带宽积至少比输入信号的最高频率高5 到10 倍,否则当输入信号的频率成分高于增益带宽时,高频成分将直接馈通至输出。根据PWM 信号的最小占空比100ns,主要高频成分可达10MHz,需用到50M~100MHz 带宽的精密运放。这类宽带精密运放非常贵,有时相当于直接使用一个DAC芯片的成本。

而在图 3.6 中,使用3peak 公司增益带宽积仅为1MHz 的通用运放LMV358A 实现同样功能,使得滤波器的成本可接受。

3.3 测试验证

为验证所实现12 位PWM DAC 的有效性,特制作了实际的电路板进行测试,主要测试数据为DNL、INL、建立时间。

>>> 3.3.1 DNL

DNL 差分非线性定义为任意两个连续数字代码所输出步进电压的实测值与理想值之差。理想DAC 的步进电压为,每次严格步进一个LSB(DNL=0)。

在DAC 输入数字代码范围内,取若干点的DNL 测试验证(1LSB=3.3V/212=0.81mV),数据详见表 3.1。可以看出,DNL 最大值为0.02 个LSB。

表 3.1 PWM DAC 的DNL 测试数据

>>> 3.3.2 INL

INL 积分非线性是表征DAC 精度的一个重要参数。在DAC 的全量程范围内,设置输入数字代码从小至到大,依次等间距输出一系列电压值,可以线性拟合出一条最贴近这些电压值的直线。理想情况下,DAC 是线性的,这些电压值应该全部落在该直线上。实际输出电压值与拟合直线的偏离程度,则表征了DAC 的非线性。

INL 测试数据详见表 3.2,从表中数据可以看出,INL 最大值为1 个LSB。

表 3.2 PWM DAC 的INL 测试数据

>>> 3.3.3 建立时间

建立时间是指从发出更新输出值的命令,到DAC 输出电压建立到最终值误差范围之内的时间间隔。建立时间受输出有源低通滤波器的带宽等参数影响,测试波形详见图 3.8。

图 3.8 PWM DAC 输出建立时间测试

从上图可以看出,建立时间ΔX 约为10ms。

3.4 参数总结

总结精度指标测试值详见表 3.3,用作对比的AD5623 是常见的独立12 位DAC 芯片。

表 3.3 PWM DAC 精度参数

表中数据表明,LPC824 的PWM 外设结合本电路所实现DAC 有非常好的差分非线性(DNL)、线性度(INL),与独立DAC 芯片基本一致。但建立时间慢,因此适合于输出低频、高精度的模拟信号。


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

    关注

    43

    文章

    2272

    浏览量

    190859

原文标题:周立功:PWM 实现DAC 电路设计

文章出处:【微信号:ZLG_zhiyuan,微信公众号:ZLG致远电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于PWM实现D/A转换电路设计

    能够通过单片机的PWM输出,再加上简单的外围电路及对应的软件设计,实现PWM的信号处理,得到稳定,精确的模拟输出,以实现D/A转换,这将大
    发表于 08-26 09:49

    采用PWM实现电压输出DAC电路

    一种基于PWM的电压输出DAC电路设计
    发表于 04-29 10:05

    电压输出DAC电路设计指南

    一种基于PWM的电压输出DAC电路设计
    发表于 09-16 08:53

    怎样去使用STM32的PWMDAC两个模块呢

    PWM是什么?DAC又是什么?怎样去使用STM32的PWMDAC两个模块呢?
    发表于 11-15 07:30

    如何利用STM32的DAC去输出正弦波形呢

    怎样去使用STM32的PWM模块呢?如何利用STM32的DAC去输出正弦波形呢?
    发表于 11-15 07:39

    怎么实现基于STM32的PWMDAC的功能?

    怎么实现基于STM32的PWMDAC的功能?
    发表于 11-19 07:53

    PWM电路设计技术

    PWM电路设计技术:脉冲宽变调(PWM:Pulse Width Modulation)电除可以监控功电的输出态之外,同时还提供功组件控制信号,因此广泛应用在高功转换效的switching 电源、马达Inve
    发表于 09-21 17:43 38次下载

    一种基于PWM的电压输出DAC电路设计

    一种基于PWM的电压输出DAC电路设计pwmDAC
    发表于 01-14 16:26 30次下载

    PWM DAC文档

    PWM DAC文档,关于PWM DAC文档的详细介绍,PWM DAC文档的应用实例。
    发表于 05-03 11:44 0次下载

    PWM 实现DAC 电路设计

    当MCU 需要产生不同的模拟信号时,通常采用集成或独立的D/A 转换器实现。但是在要求低成本的场合,可以通过PWM 信号产生系统需要的直流和交流信号。
    的头像 发表于 12-01 14:12 3.7w次阅读
    <b class='flag-5'>PWM</b> <b class='flag-5'>实现</b><b class='flag-5'>DAC</b> <b class='flag-5'>电路设计</b>

    一种基于PWM的电压输出DAC电路设计

    外接DAC,这样增加了成本。但是,几乎所有的单片机都提供定时器或者PWM输出功能。如果能应用单片机的PWM输出(或者通过定时器和软件一起来实现PWM
    发表于 12-04 15:18 2568次阅读

    使用PWM的电压输出进行DAC电路设计的详细资料说明

    DAC,这样增加了成本。但是,几乎所有的单片机都提供定时器或者PWM输出功能。如果能应用单片机的PWM输出(或者通过定时器和软件一起来实现PWM
    发表于 07-09 17:52 22次下载
    使用<b class='flag-5'>PWM</b>的电压输出进行<b class='flag-5'>DAC</b><b class='flag-5'>电路设计</b>的详细资料说明

    使用PWM实现DAC

    使用PWM实现DAC(现代电源技术基础pdf)-1 Introduction Many embedded microcontroller applications require
    发表于 09-17 12:02 18次下载
    使用<b class='flag-5'>PWM</b><b class='flag-5'>实现</b><b class='flag-5'>DAC</b>

    一种基于PWM的电压输出DAC电路设计.

    一种基于PWM的电压输出DAC电路设计.(核达中远通电源技术工资)-在电子和自动化技术的应用中,单片机和DAC(数模转换器)是经常需要同时使用的,然而许多单片机内部并没有集成
    发表于 09-17 13:15 57次下载
    一种基于<b class='flag-5'>PWM</b>的电压输出<b class='flag-5'>DAC</b><b class='flag-5'>电路设计</b>.

    基于PWM控制的buck电路设计

    基于PWM(脉冲宽度调制)控制的Buck电路设计是一个综合性的项目,涉及电路原理、控制策略、元件选择等多个方面。以下是一个基于PWM控制的Buck
    的头像 发表于 11-21 10:12 411次阅读