数字电位器(dpot)是一种常见组件,采用各种封装、电阻和分辨率。但是,除了电阻和设置之间的常规线性函数,它并无其他效用。对于需要广泛的动态增益调整范围(例如数十倍频程)的应用来说,这会造成一些问题。
以一款放大器为例,你使用8位(256中的1个)分辨率电位器,将其增益设置为0至10,000 (80dB)。当电位器设置与电阻(线性锥度)成线性关系时,dpot设置与增益成线性关系。在256个电位器设置中,每个步进都表示约40的增益幅度增加(即增益步进为0、40、80、120、160等)。
对于8或以上的dpot设置(增益>300),这给增益设置提供了不错的分辨率,可以实现每个步进1dB或更低的增益控制。但是,当设置值低于8时,增益分辨率大幅降低。例如,如果你需要将增益设置为100或以下,你没有办法以任何有意义的精度达到必要的值,你只能选择80或120左右的值。
如果具备准确、稳定、高分辨率,且带有对数抽头的数字电位器(电阻对数与设置成正比),就很容易安排增益控制电路,在整个调整范围内提供恒定的分辨率(增量单位:dB)。遗憾的是,目前并没有具备出色分辨率(例如,步进小于 6dB)的对数数字电位器(对数dpot)。
但并非全无用处。图1所示的Design Idea采用普通的线性抽头电位器(例如,ADI提供的价格便宜的双极 AD5200 ),AD5200)实现了相近的对数增益控制。
图1 线性数字电位器模拟对数抽头
如果Dx(上方所示)表示游标设置(0 – 255),我们可以采用分段求解的方式,轻松得出放大器增益Vout/Vin与Dx的设计公式。首先,作为Vin的函数,求解游标电压(Vw):
Vw = −Vin RAB Dx / (255 R1)
接下来,作为Vw的函数,求解Vout:
Vout = −Vw 255 R2 / (RAB (255 – Dx))
然后,将公式1和2结合在一起:
增益 = Vout / Vin = −Vw 255 R2 / (RAB (255 – Dx)) / (−Vin RAB Dx / (255 R1))
增益 = (R2 / R1)(Dx / (255 – Dx))
Dx = 255 增益 (R1 / R2) / (1 + 增益 (R1 / R2))
毫无疑问:
dB(增益) = 20 Log10((R2 / R1)(Dx / (255 – Dx)))和
增益 = 10dB/20
由此得到:
Dx = 255 10dB/20 (R1 / R2) / (1 + 10dB/20 (R1 / R2))
图2 dB增益(y轴左半段)和增益集分辨率(y轴右半段)与Dx(x轴)之间的关系
认真看看得出的增益公式,可以看到这些有意思的地方:
Dx/(255 - Dx)的近似对数性质。如图2所示,当R2/R1=100,Dx = 8时,得出的增益=~10dB;Dx = 23时,增益为20dB;Dx = 128时,增益为40dB;Dx = 232时,增益为60dB;Dx = 247时,增益为70dB。在整个60dB =1,000至1范围内,增益设置的分辨率仍然不超过1dB,这一点尤其重要。此外,Dx =0时,增益设置为0,同时Dx = 255选择开环。
采用电位器游标作为输入端子的策略有效地将游标触点移动到放大器A1的馈电回路中(图1),从而消除了作为误差项的影响,提高了增益设置的时间和温度稳定性。
同时,在A1馈电和A2输入(图1)端使用RAB电阻元件可以将RAB公差和温度系数(tempco)(AD5200中为+/-30%和500ppm/oC)与灵敏度进行比较,R1和R2是增益集精度的唯一决定因素。
如果需要高于8位(1/256)的分辨率,可以将10位AD5292等部件放入拓扑中,获得高于4×的增益设置精度。谨记,增益公式中出现255时,要替换为1023!或者,更概括地说,如果N表示位数:
Dx = (2N – 1) 增益 (R1 / R2) / (1 + 增益 (R1 / R2))