一、电压输出型DAC实际应用举例
假设现在要将MCU端的幅值在3.3V的PWM转换成对应占空比输出电压0-10V可调:
3.3V PWM 转 0-10V 模拟电压的DAC设计思路
设计目标分析:
-
输入:3.3V 逻辑电平的PWM信号,频率固定(例如10kHz),占空比(0% - 100%)可变。
-
输出:与PWM占空比成线性比例的0V至10V直流电压。
-
核心任务:1. 低通滤波(将PWM转换为平滑的直流电压)。 2. 放大与电平移位(将0-3.3V的范围变换到0-10V)。本例子不需要考虑电平移位。
两级设计思路:
第一级:无源或有源低通滤波(缓冲与初步滤波)
-
目的:将PWM方波转换为纹波较小的直流电压,并提供高输入阻抗,避免给MCU的PWM输出引脚带来负担。
-
电路选择:简单RC无源滤波 + 电压跟随器。
-
一个简单的RC滤波器(例如R=10kΩ, C=10μF,截止频率 ~1.6Hz)可以滤除大部分高频分量。
-
为什么加电压跟随器? 根据戴维宁定理,当负载阻抗(Z_load)远高于滤波器的输出阻抗(R)时,负载对输出电压的影响很小,电压跌落可以忽略不计。
-
反之,如果负载阻抗很低(与R可比或更低),负载会从滤波器吸取较大电流,导致输出电压下降(电压跌落),同时滤波器的截止频率也会因为负载阻抗而改变(因为负载阻抗与电容C并联,改变了滤波时间常数)
-
RC滤波器的输出阻抗等于电阻R(10kΩ),这在低阻抗负载下会导致电压跌落和滤波效果变差。加入一个单位增益的电压跟随器,利用其高输入阻抗、低输出阻抗的特性,可以完美地隔离RC网络和后级电路,保持滤波效果。
-
-
本级输出:一个比较平滑的 0 ~ 3.3V 直流电压(
V_in_pwm * DutyCycle)。
第二级:同相放大器(执行核心的缩放与移位)
-
目的:将0-3.3V的输入线性地映射到0-10V的输出。
-
电路选择:同相运算放大器电路。这是最关键的一步。
-
设计计算:
-
我们需要一个输出关系:
V_out = A * V_in + B -
当
V_in = 0V时,V_out = 0V=>0 = A * 0 + B=>B = 0。 -
当
V_in = 3.3V时,V_out = 10V=>10 = A * 3.3=>A = 10 / 3.3 ≈ 3.03。 -
同相放大倍数公式:
A = 1 + Rf / R1 = 3.03 -
因此,我们需要
Rf / R1 = 2.03。选择标准电阻值,例如R1 = 10.0kΩ,Rf = 20.3kΩ(可以用20kΩ固定电阻和500Ω可调电阻串联,用于微调增益)。
-
-
为什么用同相不用反相放大器?
-
高输入阻抗:同相放大器的高输入阻抗是第一级RC滤波器所需要的,可以保证滤波效果不因负载而改变。
-
简单的正增益:我们需要一个
Gain = 3.03的正增益来将0-3.3V映射到0-10V。如前面所讨论,用同相放大器实现Vout = A * Vin是最直接的方式。如果用反相放大器实现Vout = -3.03 * Vin,还需要额外一级电路来反相,增加了复杂性和误差。
电源要求:
第二级运放的正电源电压必须高于10V,例如选择±12V或+15V的单电源运放,以确保输出能达到10V而不饱和。第一级运放如果使用同一芯片(双运放),则共享同一组电源。
完整信号链总结:
MCU_PWM -> RC滤波器 -> 电压跟随器(缓冲) -> 同相放大器(Gain≈3.03) -> 0-10V Output
优点 of this Approach:
-
高输入阻抗:第一级的缓冲器保护了MCU的PWM输出。
-
优秀的滤波:RC + 缓冲的方案提供了干净、稳定的直流电压。
-
线性度好:运放电路提供了良好的线性放大。
-
易于调整:通过调节Rf可以精确校准满量程10V输出。
-
成本效益高:通常一颗双运算放大器芯片(如TL082, LM358(注意LM358是单电源运放,输出无法完全到0V,需注意)或更精密的OPA2172)就能实现整个电路。
比较两种结构:
-
方案A(原方案):PWM -> RC滤波 -> 电压跟随器 -> 同相放大器
-
RC滤波器的负载:电压跟随器具有极高的输入阻抗(>100MΩ)。这意味着RC滤波器(R=10kΩ)几乎是空载的。其滤波效果(截止频率
fc=1/(2πRC))非常精确,不会因为后级负载而改变。滤波后的电压信号无衰减。 -
同相放大器的输入:电压跟随器具有极低的输出阻抗(<100Ω)。这意味着它可以轻松地驱动后级同相放大器所需的输入电流,而不会引起信号压降。同相放大器从此获得了了一个“强壮”、“干净”的理想信号源。
-
总结:此方案优先保证了信号调理的精度。
-
方案B(变换后):PWM -> RC滤波 -> 同相放大器 -> 电压跟随器
-
RC滤波器的负载:RC滤波器直接连接到同相放大器的高输入阻抗上。这其实和方案A中跟随器的作用类似,滤波效果依然很好,信号无衰减。在这一步,方案A和B几乎没有区别。
-
同相放大器的输出:同相放大器的输出阻抗本身已经较低(通常几十到几百欧姆)。但如果它需要驱动重负载(例如一个长的电缆、一个低阻抗的执行器、或多个并联的设备),其输出电流能力可能不足,导致输出电压下降(负载调节率差)。
-
跟随器的作用:此时,在放大器后增加一个电压跟随器,是作为一个功率缓冲器(Buffer) 使用。它的低输出阻抗可以轻松提供更大的电流,确保在连接重负载时,输出电压也能稳定在预设值。
使用建议(不在乎成本的情况下)
-
如果后级负载是固定的、高阻抗的(例如,只连接到一个PLC的模拟输入端口,输入阻抗在100kΩ以上),那么方案A更优。它结构清晰,用最少的元件完成了信号调理和放大。同相放大器自身的输出能力足以驱动此类负载。
-
如果后级负载是变化的、或低阻抗的(例如,需要驱动一个500Ω的负载,或者需要连接多个设备),那么方案B更优,或者需要在方案A的基础上再在最后增加一个缓冲器。此时的跟随器主要目的是提供电流驱动能力,防止负载影响放大器的输出精度。
最终结论:原方案(A)是标准且通用的设计,优先保证了信号完整性。将跟随器放到最后(B)是一种针对高驱动需求场景的特定优化。在不确定负载情况时,最稳健的做法是采用“A+B”的组合:RC滤波 -> 跟随器 -> 同相放大器 -> 跟随器,用三个运放实现滤波、放大和驱动的全功能。
2977

被折叠的 条评论
为什么被折叠?



