在微控制器(MCU)中重建模拟信号的一种常用方法介绍

在微控制器 (MCU) 中重建模拟信号的常用方法是脉冲宽度调制 (PWM)。但是,这种调制会产生显着的谐波分量,会限制生成信号的带宽,并且需要进行滤波以降低输出纹波(参见“使用模拟减法消除 PWM DAC 纹波”和“Fast PWM DAC 没有纹波”两篇文章)。9koednc

但是,由于是开关调制,PWM 的优点是只使用简单的二进制输出。另一种方法是使用具有特定位数分辨率的特定数模转换器 (DAC) 外设。DAC 和 PWM 都需要特定的外设可编程逻辑控制器,但在许多情况下它们不可用。9koednc

一种解决方案是将 8 位 MCU 与 4 位固定电压参考 (FVR) 模块相结合,然后使用 sigma-delta 调制 (SDM) 生成模拟信号。由于 SDM 可以将噪声移到更高的频率,因此更容易实现滤波。这增加了分辨率并增加了有效位数。图 1 显示了这个一阶 SDM 的框图可编程逻辑控制器,图 2 显示了它的汇编代码。9koednc

图 1:一阶 4 位 sigma-delta 调制器。9koednc

图 2:调制器的汇编代码。9koednc

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

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

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

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

(原文发表于美国版EDN,参考链接:Sigma-delta 调制提高可编程中断控制器模拟输出的分辨率) 9koednc

本文为《电子技术设计》2020年3月号文章,版权所有,禁止转载。单击此处申请免费杂志订阅。9koednc

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论