前言:
DAC一般是指输出电压型DAC,IDAC顾名思义输出是电流型DAC。
DAC对比ADC
DAC是模数转换器 (ADC) 的功能补充,但两者面临的挑战却截然不同。ADC的主要作用是在存在外部和内部噪声的情况下,将未知的随机输入信号连续数字化,并将结果传输到兼容的处理器。不同于ADC,DAC的输入是来自处理器的稳定且有界的数字信号,不存在信噪比 (SNR) 问题。然而,DAC输出却面临驱动外部负载的挑战,就电气上而言,这或许更为困难。
电流输出DAC对比电压输出DAC
某些传感器和控制回路需要接入DAC来精确控制电流。这些应用包括扬声器线圈、螺线管和电机;开环和闭环工业系统、科学系统和光学系统中与控制相关的设置;基本电阻加热器或精密可调谐激光器;自动测试设备 (ATE) 探针刺激;用于电池充电的精密电流输出;这些往往都是低阻抗电阻、电感和磁性负载。虽然这些负载也可以由电压驱动,但是电压与端部效应的关系较为复杂,并且通常呈非线性。因此,对于这类传感器而言,使用电流源更有效、更精确。
一种将传统的电压输出DAC转换为电流输出器件的方法是,添加一个电压-电流 (V/I) 转换器的输出运算放大器,如下图可以实现:
采用这种方法需要添加一些有源和无源元器件,并且运算放大器必须具有良好的拉/灌电流能力,否则就必须使用MOSFET升压。此外,由于添加了更多具有独立规格的有源元器件以及无源元器件,使得整个输出范围和温度范围内的数字输入/电流输出传递函数的误差测量就变得愈加困难。
IDAC的原理:
一般有:R2R,current-weighted,current-steering三种模型
本文讲述current-steering
典型的结构如下,一个基准电流源Vref1可以控制A大小,
分段式10位电流控制数模转换器的结构且带有31位解码器
其中高5位是31个电流源( thermometer-code architecture),低5位是5个电流源(binary-weighted architecture)
,
IDAC中的参数:
Test Parameter | Unit | Typical Description |
Resolution | Bits | This is the number of bits that the DAC has. If a DAC has n bits, then its output analog signal span can be divided (or "resolved") into 2n states, each corresponding to its own digital input code. The higher the number of bits, the better is the resolution of a DAC. |
Voltage Reference Input Range | V | This indicates the minimum and maximum voltages that may be used as the DAC's external reference voltage. |
Example of an Actual Spec: 0V min; Vdd max | ||
Bipolar Zero Error or Midscale Error | mV | This is the deviation of the actual analog output of the DAC from the ideal output of 0V when the 2's complement input code representing half-scale (all zeros) is loaded into the input register. |
Example of an Actual Spec: +/- 30 mV typ. | ||
Non-Linearity, Differential (DNL) | LSB or | This is the difference between the actual or measured output change and the ideal output change for a digital input change of 1 LSB, i.e., for a transition between two adjacent codes. |
Examples of Actual Specs: | ||
% of FSR | +/- 1 LSB; +/- 0.001% FSR typ. | |
Non-Linearity, Integral (INL) | LSB | This is the maximum deviation of the output from the straight line between the zero and full-scale points, excluding the effects of zero and full-scale errors. |
Example of an Actual Spec: | ||
or Relative Accuracy | +/-1 LSB typ.; +/- 4 LSB's max. | |
Analog Output Range or Full-Scale Range | V | This is the difference between the maximum and minimum analog output values that the DAC is specified to provide. |
Example of Actual Spec: -3V to +3V, Bipolar Mode | ||
Logic Input Voltage, Vih | V | This is the minimum voltage that the digital inputs of the DAC are guaranteed to recognize as a Logic "1". |
Example of an Actual Spec: 2.4 V min. | ||
(Logic "1") | ||
Logic Input Voltage, Vil | V | This is the maximum voltage that the digital inputs of the DAC are guaranteed to recognize as a Logic "0". |
Example of an Actual Spec: 0.8 V max. | ||
(Logic "0") | ||
Input Leakage Current, IIL | A | This is maximum leakage current exhibited by a digital input at logic "0". |
Example of an Actual Spec: 2 A max. for Vil = 0.4 V. | ||
Settling Time | sec | This is the time required by the outputs of a DAC to reach and remain within a specified error band about its final value. This is measured from the digital input transition. |
Examples of Actual Specs: | ||
1.5 碌sec typ. for a 6V step; | ||
1.0 碌sec typ. for a 1 LSB step; | ||
Analog Positive Power Supply (+Vs) | V | This is the voltage range that can be used for the analog positive supply of the DAC. |
Example of an Actual Spec: | ||
+4.75V min.; +5.0V typ.; +13.2V max. | ||
Analog Negative Power Supply (-Vs) | V | This is the voltage range that can be used for the analog negative supply of the DAC. |
Example of an Actual Spec: | ||
-13.2V min.; -5V typ.; -4.75V max. | ||
Logic Positive Power Supply (+VL) | V | This is the voltage range that can be used for the logic positive supply of the DAC. |
Example of an Actual Spec: | ||
+4.75V min.; +5.0V typ.; +13.2V max. | ||
Logic Negative Power Supply (-VL) | V | This is the voltage range that can be used for the logic negative supply of the DAC. |
Example of an Actual Spec: | ||
-13.2V min.; -5V typ.; -4.75V max. | ||
Analog Output Impedance | kW | This is the dynamic load presented by a DAC at its analog output. |
Example of an Actual Spec: 0.1kWtyp. | ||
Gain Error or | mV | This indicates how closely the analog output of a DAC matches its ideal value at full scale and may be expressed in mV or as a % of the FSR. For many DAC's, the ideal maximum output voltage is Vref-1 LSB. |
Example of an Actual Spec: +/-1.22 mV | ||
Full-Scale Error | or %FSR | |
Signal-to-Noise Ratio (SNR) | dB | This is the ratio of the amplitude of the analog output of the DAC when the output is set to full-scale to the amplitude of the output when it is set to zero. |
Example of an Actual Spec: | ||
107 dB min.; 110 dB typ. for 20 Hz-30 kHz | ||
Total Harmonic Distortion (THD) | dB | This is the ratio of the rms sum of the first few (2nd to 6th) harmonic components of the DAC output to the DAC output's fundamental value, usually expressed in dB. |
Example of an Actual Spec: -80 dB typ. |
DAC的性能测试:
关系到器件精度的两个非常重要的参数就是INL值和DNL值
模数器件的精度指标是用积分非线性度(Interger NonLiner)即INL值来表示。也有
的器件手册用 Linearity error 来表示。表示了ADC器件在所有的数值点上对应的模
拟值,和真实值之间误差最大的那一点的误差值。也就是,输出数值偏离线性最大的距
离。单位是LSB(即最低位所表示的量)。
DNL是差分非线性值,也就是相邻两个刻度的差值。这个差值可能大于或者小于标准值,从而导致输出值不是线性增大。
计算公式如下:
FS:N bit current-steering DAC
使用matlab分析读取的DAC输出的数据,测试原始数据是一个线性增加的数据
可以得到如下的分析图
电压型DAC的DNL与INL估算误差图:
电流型DAC的DNL与INL估算误差图:
IDAC的一些问题:
无论是电流输出还是电压输出器件,最初DAC大多都是由分辨率和更新速度来定义。电流输出DAC通常不用于信号处理/分析或波形生成。此外,由于其机电特性或热特性,电流输出DAC的典型负载变化通常相对较慢。因此,这类DAC的分辨率范围为12位至16位,更新速率为每秒数十或数百千次采样。
使用电流输出DAC时,必须注意一些问题:
- 顺从电压和压差
- 电流驱动范围和分辨率(可编程增益放大)
- 上电复位 (POR) 和输出毛刺等瞬态条件
- DAC数据和输出完整性
- 散热
顺从电压和压差
电流输出DAC还有两个参数是电压输出DAC所不具备的:饱和电压和压差。饱和电压是电流源输出所需电流时所能达到的最大电压,设计时负载两端的电压需要小于饱和电压,电流源才能驱动负载,此外,电流输出DAC也具有压差限制,即DAC所需的最小压降以维持输出调节。压差是负载电流的函数;压差越小,DAC的工作范围越宽。即最大电流输出时负载端需要有的最小电压。
电流驱动范围和分辨率
电流输出DAC的输出驱动能力可达数百毫安。请注意,电流输出DAC通常设计为拉出电流,而非灌入电流;多通道多输出范围DAC具有两个属性:为了输出更高的总电流,允许将输出叠加;可实现各通道分辨率与应用的最佳匹配。通过这种方式,就能最大限度地有效利用分辨率,而非局限于DAC的部分动态范围而造成浪费。这相当于在ADC输入端使用可编程增益放大器 (PGA),调节输入信号以适应ADC的输入范围。若使用输出范围为100mA的14位电流输出DAC用于0至25mA的驱动范围,只能提供12位有效分辨率,浪费了2位。
上电复位 (POR) 和输出毛刺等瞬态条件
许多应用中,上电时的DAC输出(称为上电复位)是个难题,因为处理器(及其软件)无法立即初始化DAC。虽然在处理器代码中DAC初始化具有最高优先级,但是具有多个直流电源轨的处理器启动时间可能比简单的DAC更长。启动时间差可能导致一些异常DAC输出。
输出转换时的毛刺也是个问题。每当DAC加载新代码模式的数据位时,由于两种代码间存在时钟偏移,因而在新旧代码转换过程中,DAC会产生错误输出;为避免这种情况,可以将DAC加载的缓冲数据增加一倍。单个或多个通道的所有数据位均可写入相应的输入寄存器,而不会影响DAC输出。向器件发出“加载DAC”的单一命令,即可将输入寄存器内容发送到DAC寄存器,更新DAC输出而不会出现毛刺。相当于多一个缓存。
DAC数据和输出完整性
使用软件回读并将其值与原始发送值进行比较,确保DAC性能可靠性的最终测试是测量输出电流和饱和电压值,DAC 输出的绝对精度很大程度上取决于基准电压源和一些内部精密电阻的性能。
散热
电流型DAC均以受控电流的形式为负载供电。因此,IC耗散和自热都是必须分析的问题,确保不会超过内部芯片的最大允许温度。在多数情况下,需要通过印刷电路板来散热,其中使用IC焊球作为热导管。
热分析时,首先分析各通道的峰值电流、平均电流及其相关耗散。然后对IC到电路板的路径和电路板的散热能力进行热建模(例如层数、可用铜面积以及使用相同散热区域的其他元件)
电流输出DAC虽不如电压输出DAC广为人知,但是对于许多实际应用和负载而言都是不可或缺的器件。