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

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

3天内不再提示

如何降低微处理器中PWM DAC的纹波

电子设计 作者:电子设计 2018-09-28 08:05 次阅读

降低PWM DAC纹波的方法通常有两种:一种是降低低通滤波器的截止频率,另一种是提高PWM信号的频率。然而,前一种方法会加长上升时间,后一种方法会导致分辨率降低。本设计实例讨论了在不使用上述两种方法的情况下,如何降低PWM DAC的纹波。

我们大多数人都知道PWM DAC(数模转换器)。它们很容易实现,也很便宜,非常适合一些低性能的应用。

实现它们的方法是滤除PWM信号中的高频分量,只留下正比于占空比的低频或直流分量。但是低通滤波器并不能完全滤除PWM频率,因此低频/直流信号中通常都会有一定程度的纹波。

减少PWM DAC纹波的方法一般有两种。一种是降低低通滤波器的截止频率,另一种是提高PWM信号的频率。然而不可避免的是,更低的截止频率会延长上升时间;如果是在给定时钟频率点通过减小计数器尺寸实现的,那么更快的PWM频率会降低分辨率。

下面要讨论的设计实例非常有趣,着重介绍了另外一种降低PWM DAC纹波的方法。

事实上,我们可以使用相位差为180°的两个PWM信号来降低上述纹波。从直觉上,当两个相同频率的正弦波的相位相差180°时,它们会相互抵消,因此我们使用相位差为180°的两个PWM信号也能将彼此的谐波分量抵消干净,是这样吗?确实是这样,但并不是PWM信号的所有谐波分量都能抵消,有些分量可以抵消,有些却抵消不了。这与傅里叶级数有关,比较复杂,这里就不罗列一大堆数学公式来进行解释了。

两个PWM信号之间180°的相位差是如何实现的呢?我使用了TI的MSP320FR5969 LaunchPad,这种方法很常用。为了实现相位移动,需要两个定时器。其中一个定时器必须包含两个比较-捕获-PWM(CCP)模块,另一个只需要一个CCP模块。

在包含两个CCP模块的定时器中,可以用一个CCP模块来设置该定时器的PWM频率和占空比,另一个CCP模块产生中断,用于启动另一个定时器,两者的延时等于PWM周期的一半。另一个定时器中的CCP模块用于设置相同的PWM频率和占空比。你还必须对这个延时进行“微调”,因为软件会在PWM信号之间增加额外的时间。举例来说,在我的代码的102行,我将比较寄存器的值从(timer_period+1)/2改为了(timer_period+1)/2-27。

我做了一些小调查,想看看其它微控制器是否具有相同的硬件和能力来实现我所用的方法:许多Atmel控制器都有1个以上的定时器,每种控制器通常都有两个CCP(比如ATmega 328),因此实现这种方法应该是可能的。另外一个常见的例子是STM32F051R8(这是一些流行的ST电路板使用的微控制器),它有11个定时器,其中许多定时器都有1个以上的CCP。TI基于ARM的微控制器通常有独立的PWM和定时器模块(如TM4C123GH6PM),因此应该更容易实现相移。使用其中一个定时器,两个PWM模块就可以以一半PWM周期的延时开启。

如何降低微处理器中PWM DAC的纹波

图1:单路和双路PWM电路。

在相移DAC的Vout端,两个PWM信号被累加在一起,结果有些谐波分量彼此抵消,最终实现了降低纹波的效果。

我们看看使用三种不同电阻值时的情况。每个PWM信号都是占空比为25%、频率为100kHz。

图2:上面的波形是传统PWM,下面的波形是双路相移PWM。从左到右每格的电压递减100mV、50mV、4mV。

从图中的结果可以看出:首先,峰-峰纹波降低了;其次,传统PWM DAC的纹波基频等于 PWM信号的频率(100kHz)。相移PWM DAC的纹波基频等于PWM信号的二次谐波(200kHz),这意味着我们用相移DAC成功地删除了PWM信号的一次谐波。

这种方法的一个优点是不用增加上升时间也能降低纹波(或者相同的纹波只需一半的上升时间)。

另外一个潜在优点是,将两个PWM设置为相隔一个计数值可以获得中间值,进而实现DAC有效分辨率的翻倍。虽然这会导致少许的不对称并增加纹波,但是影响很小可以忽略不计。

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

    关注

    114

    文章

    4884

    浏览量

    209794
  • 微处理器
    +关注

    关注

    11

    文章

    2105

    浏览量

    81367
  • 定时器
    +关注

    关注

    23

    文章

    3142

    浏览量

    111996
收藏 人收藏

    评论

    相关推荐

    什么是嵌入式微处理器?嵌入式微处理器有哪些?

    嵌入式微处理器是指嵌入到特定应用系统中的微处理器,它是整个嵌入式系统的核心,由通用处理器演变而来,具有体积小、重量轻、成本低、可靠性高等优点。与通用处理器相比,嵌入式
    的头像 发表于 03-29 11:39 262次阅读

    嵌入式微处理器的原理和应用

    嵌入式微处理器是专为嵌入式系统设计的微处理器,它们是嵌入式系统的核心组件,负责执行程序指令、处理数据和控制其他硬件设备。与通用微处理器相比,嵌入式
    的头像 发表于 03-28 15:51 179次阅读

    微处理器由什么组成 微处理器和cpu的关系

    微处理器由以下几个主要组成部分构成:控制单元、算术逻辑单元、寄存器组和高速缓存。 控制单元:控制单元是微处理器的核心组成部分,负责协调和控制整个微处理器的运作。它包括指令译码器、时钟发生器和程序
    的头像 发表于 02-22 10:40 967次阅读

    #芯圣车规级触摸微处理器 HC8AT3541系列!

    微处理器
    上海芯圣电子股份有限公司
    发布于 :2024年01月16日 10:14:09

    aducm410微处理器还需要接外部晶振和复位电路吗?

    aducm410微处理器还需要接外部晶振和复位电路吗?
    发表于 01-11 07:23

    如何降低微控制器系统中的噪声影响(2)

    如何降低微控制器系统中的噪声影响(2)
    的头像 发表于 10-25 17:41 274次阅读
    如何<b class='flag-5'>降低微</b>控制器系统中的噪声影响(2)

    微处理器和微控制的区别是什么?怎么区分?

    微控制微处理器概念和实际应用,怎么区分?
    发表于 10-23 06:25

    青稞处理器资料分享

    简介 青稞处理器是沁恒微电子自研的32位微处理器,遵循和兼容开源的RISC-V指令集架构规范,并提供可选的功能扩展。支持IMAFC指令集和自定义压缩指令,并提供硬件压栈(HPE)、免表中断(VTF
    发表于 10-11 10:42

    MA35D1系列微处理器的实时处理器( RTP) 的自测试库分享

    应用程序: 此示例代码是MA35D1系列微处理器的实时处理器( RTP) 的自测试库。 此库执行芯片的自测试功能, 以满足市场要求的安全要求。 当芯片出现错误时, 可以实时检测, 系统可以保持功能
    发表于 08-29 07:04

    嵌入式应用对微处理器的需求

    的集成度   高集成度不仅意味着有更丰富的功能、更小的封装尺寸,还能有效地降低系统功耗,简化工程师的设计。随着对集成度更高的要求,微处理器片上不但要集成高性能内核、大容
    的头像 发表于 08-25 16:49 457次阅读

    新唐NuMicro Arm9微处理器介绍

    新唐作为微控制微处理器的领导厂商之一,除了在微控制系列有上百款的产品可供选择,在微处理器方面也有许多出色的产品。本篇文章一次整理所有新唐的微处
    发表于 08-25 07:32

    新唐Arm9微处理器降低CPU负担同时大幅提升加解密速度的秘密

    新唐Arm9微处理器降低CPU负担同时大幅提升加解密速度的秘密
    的头像 发表于 08-10 11:29 513次阅读
    新唐Arm9<b class='flag-5'>微处理器</b><b class='flag-5'>降低</b>CPU负担同时大幅提升加解密速度的秘密

    如何降低微控制器系统中的噪声影响(3)

    前篇回顾 如何降低微控制器系统中的噪声影响(1) 如何降低微控制器系统中的噪声影响(2) 在本系列文章中,我们研究了噪声以及它如何干扰基于微控制器的系统的操作。本篇作为系列内容的最后一篇,我们将看看
    的头像 发表于 08-09 12:05 472次阅读
    如何<b class='flag-5'>降低微</b>控制器系统中的噪声影响(3)

    微控制器和微处理器之间有什么区别?

    微处理器与微控制器,通常在学校和大学中,我们发现很难发现微控制器和微处理器之间的区别。
    的头像 发表于 06-29 15:22 1735次阅读
    微控制器和<b class='flag-5'>微处理器</b>之间有什么区别?

    可以将Wemos D1 Mini Lite用作微处理器吗?

    所以我正在尝试使用 MAX31855 测量温度,我使用 D1 Mini Lite 作为微处理器,设置非常接近下面视频的设置,只是将 arduino nano 替换为 D1 Mini Lite
    发表于 05-11 07:25