一、自校准的六位半电压源的原理
DAC 部分
本设计的目标是
1、基本量程为 0-12V(扩展见第五部分的“后续”)
2、编程和回读的分辨率为 6 位半,意即最大计数为 11.999,99,电压设定(编程)步进最小为 10uV,回读的最小分辨力 10uV
3、具备 5ppm 温度系数、5ppm 非线性误差和 25ppm 年稳定度,这个目标定得比较高,和典型的 6 位半商品万用表看齐,算是一个愿景,能不能实现最后靠数据说话。
为了达成上述目标,首先 6 位半分辨率,意味着其等效 DAC 具有 log2(1199999) = 20.2bit 分辨率,然而仅仅 20.2bit 分辨率,难以保证增益校准和非线性校准需要的精度,所以至少需要有 10 倍理论分辨率,即 23.52bit 分辨率才能比较可靠实现校准的目标。商品的精密 DAC 是没有这样的分辨率的,而音响用 DAC 虽然分辨率更高,但温度系数、单调性、差分非线性都不是很好,线性指标通常更是一塌糊涂,所以这里经过考虑,决定使用商品 16bit 精密 R-2R DAC 和 12bit DAC 合成的方式实现这个 DAC。
DAC 部分原理图。其中主 DAC 为 AD5541,副 DAC 为 MAX515,两个 DAC 产生的电压经由 Rmaster = 249 欧姆和 Rslave = 1 兆欧姆合成,送入 G=2.5 的输出缓冲中缓冲后再输出。
*MAX515 标称为 10bit DAC,但实际上是 12bit DAC。在这里这个问题不是很重要,因为主 DAC 16bit + 副 DAC 即使是 10bit 也有 26bit。
理论上 16bit DAC 如果完美和 12bit DAC 合成,那么结果就是一个 28bit DAC,但实际上电压合成的公式为
Vout = (Vmaster * Rslave + Vslave * Rmsater) / (Rm+Rs)
因此,除非 Rs : Rm = 1 : 2^16,否则理想的合成不成立。在这里,Rs 取 1M OHM,而 Rm 是 249 欧姆,实际上的比例大约是 1:4016,也可以简单认为 Delta(VSlave) 对 Vout 的影响大约是 1/4000 左右,而副 DAC 的 1LSB 为 5V/2^12 = 1220uV,因此合成 DAC 的最小步进是 303nV@5V,log2(5V/303nV) = 24bit,所以实际上合成的 DAC 分辨率是 24bit,和 ADC 正好一样 由于输出缓冲增益 G=2.5,所以最终输出电压在 0-12V(0.5V 调整余量)的情况下,最小电压编程步进是 758nV,对于设计目标为 10uV 的情况来说,有 13 倍以上的分辨率余量,非常充足。
ADC 部分
在设计了一个满足目标的 DAC 之后,一个问题就是,虽然我们认为一个理想的 DAC 应该满足 f(Input Code) = Vout,Input Code 和 Vout 是完美的线性关系且不变。但实际上,由于器件的精度和温度系数等因素*,实际上的 DAC 输入和输出不会呈完美的线性关系不说,其具体的输入 Code 和输出电压之间,也会因为温度变化或器件老化而产生偏差。尤其是,本设计中 DAC 的输出缓冲增益电阻的温度系数并不好,因此需要设法将这些误差予以纠正。
*一个额外的因素是,Vout = (Vmaster * Rslave + Vslave * Rmsater) / (Rm+Rs) 这个式子是建立在 Vout 负载电流为 0 的前提下的,而实际上这里 Vout 的负载是缓冲运放的输入端,它大约有几个 nA,对于 Vmaster 来说由于合成电阻 R=249 欧姆,其影响并不大;而对于 Vslave 来说,由于 Rslave = 1M 欧,影响就比较大(大约不到千分之一),这个影响会表现为末几位 LSB 的线性不良。
一般来说,现在的齐纳基准电压的稳定性已经非常高,影响整个电路的稳定性的因素大多数是其他器件,尤其是涉及到决定增益的电阻。因此如果有一个方法,定期检查输出电压和基准电压的比值,那么就能容易将输出电压的误差消除掉。为此,在这里引入了一个回读系统,简而言之就是一个为本设计专门打造的电压表,它定期在输出电压和基准电压之间来回检测,由于基准电压十分稳定,因此在预设电压决定的情况下,其与基准电压的比值也是决定的,只要检查输出电压和基准电压并求比值,如果这个比值不等于预期,说明输出电压发生了变化,那么根据变化的比率,将其调整回来,就能保证输出电压相对基准电压的比值稳定,实际上也就保持了输出电压的稳定。在这里,其它误差在求比中都被消去了,只有基准电压和输出电压会被带到结果中。
回读部分电路图,整个回读部分由被单片机控制的输入复用器,输入缓冲器,以及 24bit 的 ADC 构成。在单片机内程序的控制下,输入复用器来回在输出电压和基准电压之前切换,ADC 将两个电压数字化并送入单片机中,单片机内的程序检测两者的比值,并调整 DAC 使得输出电压符合预设的比值,从而维持了输出电压的稳定。 |