使微处理器的PWM频率和分辨率翻倍方法之讨论

我们大多数人都知道数模转换器。它们易于实施且价格低廉,因此非常适合某些低性能应用程序。它们是通过滤除信号的高频分量来实现的,只留下与占空比成比例的低频或直流分量。但低通滤波器并不能完全滤除频率,因此低频直流信号通常会有一定的纹波。通常有两种方法可以减少纹波。一是降低低通滤波器的截止频率,二是提高信号的频率。然而,不可避免地,较低的截止频率会增加上升时间。如果通过在给定时钟频率下减小计数器的大小来实现,则更快的频率会降低分辨率。下面讨论的设计示例非常有趣,并强调了另一种减少纹波的方法。其实我们可以用两个相差180的信号来降低上面的纹波。直观地说,当两个相同频率的正弦波相差180度时,它们会相互抵消,所以我们可以用两个相差180度的信号来干净地抵消彼此的谐波分量,对吧?确实如此,但并非信号的所有谐波分量都可以消除,有些可以消除,有些则不能。这与更复杂的傅里叶级数有关。我不会在这里列出很多数学公式来解释。两个信号之间180的相位差是如何实现的?我用的是3205969,这个方法很常用。为了实现相移,需要两个定时器。其中一个计时器必须包含两个比较捕获模块,另一个只需要一个模块。在一个由两个模块组成的定时器中,一个模块可以用来设置定时器的频率和占空比,另一个模块可以产生一个中断来启动另一个定时器,延时等于周期的一半。另一个定时器中的一个块用于设置相同的频率和占空比。您还必须微调此延迟,因为该软件会增加信号之间的额外时间。例如,在我的代码的第 102 行,我将比较寄存器的值从 _12 更改为 _1227。我做了一些研究,看看其他微控制器是否具有相同的硬件和功能来实现我正在使用的方法:许多微控制器有超过 1 个定时器,通常每种类型有两个,比如 328,所以应该可以实现这种方法.另一个常见的例子是 320518,它是一些流行的电路板使用的微控制器,它有 11 个定时器,其中许多定时器超过 1 个。基于微控制器通常具有独立的定时器模块,如 41236,因此应该更容易实现相移。使用其中一个定时器,两个模块都可以在半个周期延迟后开启。图 1:单电路和双电路。在移相端,将两个信号相加在一起,使一些谐波分量相互抵消,最终降低纹波。让我们看看当使用三个不同的电阻值时会发生什么。每个信号的占空比为 25%,频率为 100。 图 2:上述波形为传统上,下面的波形是双向相移的。电压从左到右每格降低 100、50、4。从图中的结果可以看出:一是峰峰纹波降低了;其次,纹波的传统基频等于信号的频率 100。相移纹波的基频等于信号二次谐波的200,这意味着我们已经成功地去除了带有相移的信号的一次谐波。这种方法的一个优点是可以在不增加上升时间的情况下减少纹波,或者用一半的上升时间来降低纹波。另一个潜在的优势是,将两个计数分开可以获得一个中间值,使有效分辨率加倍。虽然这会导致少量的不对称并增加波纹,但效果可以忽略不计。本文转载自《电子科技设计》网站负责人编辑: