广告

利用Σ-Δ调制提高可编程中断控制器模拟输出的分辨率

2020-03-11 10:06:23 Camilo Quintans 阅读:
在MCU中重建模拟信号有PWM和DAC两种方案。这两种方案都需要使用特定外设,但是在很多情况下它们都无法获得。一种解决方案是将8位MCU与4位固定参考电压模块结合使用,然后采用Σ-Δ调制生成模拟信号。

在微控制器(MCU)中重建模拟信号的一种常用方法是脉宽调制(PWM)。但是,这种调制会产生大量的谐波分量,从而限制所生成信号的带宽,而且需要通过滤波来减少输出纹波(请参阅“Cancel PWM DAC ripple with analog subtraction”和“Fast PWM DAC has no ripple”两篇文章)。xdTednc

然而,由于是一种开关调制,PWM的优势是只需要使用简单的二进制输出。另一种方法是采用具有一定分辨率位数的特定数模转换器(DAC)外设。DAC和PWM这两种方案都需要使用特定外设,但是在很多情况下它们都无法获得。xdTednc

一种解决方案是将8位MCU与4位固定参考电压(FVR)模块结合使用,然后采用Σ-Δ调制(SDM)生成模拟信号。由于SDM可以将噪声移动到更高频率,因此就更容易实现滤波。这样就可以提高分辨率并增加有效位数。1给出了此一阶SDM框图,2给出了其汇编程序代码。xdTednc

图1:一阶4位Σ-Δ调制器。xdTednc

图2:调制器的汇编程序代码。xdTednc

1所示,我们将输出电压(V)截断,将其四个最高有效位(MSB)连接到4位DAC模块,而残差h则送往与下一个输入样本x相加。由于这个简单的SDM只接受一半的输入范围(从而避免饱和),因此数据输入幅度被限制为7位,而其MSB则固定为“0”。为了对该设计进行测试,这里使用了一个查找表,它包含128个正弦点,由定时器1中断以32kHz进行采样。定时器0用于产生主中断,而以250kHz的速率执行SDM代码。CPU时钟配置为64MHz,调制器所用时间小于2μs。3显示了模拟输出响应时间。xdTednc

图3:滤波前生成的信号波形。xdTednc

此外,我们通过逻辑分析仪对4位输出进行直接采样,测试了所生成的信号在频域中的幅度响应,如4所示。由此可以得出结论,使用低通滤波器去除1kHz以上的噪声,可以实现60dB的无杂散动态范围,这意味着过采样率(OSR)为250,分辨率可以提高4位(0.5×log2OSR)。该解决方案也适用于较少的输出位数,即使只使用了一个开关输出位也行。xdTednc

 
   

图4:输出频率响应(128ks DFT)。xdTednc

(原文刊登于EDN美国版,参考链接:Sigma-delta modulation improves resolution in programmable interrupt controller analog outputsxdTednc

本文为《电子技术设计》2020年3月刊杂志文章,版权所有,禁止转载。免费杂志订阅申请点击这里xdTednc

本文为电子技术设计原创文章,未经授权禁止转载。请尊重知识产权,违者本司保留追究责任的权利。
  • 目测这用的是我家微芯……
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
热门推荐
广告
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了