2

TI's slide deck on ADC DC specifications (https://training.ti.com/ti-precision-labs-adcs-dc-spec) disagrees with Maxim's app note on INL/DNL (https://www.maximintegrated.com/en/design/technical-documents/tutorials/2/283.html) on how to calculate DNL.

TI says that the \$k\$th code's DNL is $$DNL[k] = \frac{W[k] - Q}{Q},$$ where \$W[k]\$ is the width of the \$k\$th code and \$Q\$ is the ideal code width (i.e. 1 LSB).

Maxim says that $$DNL = |(V_{D+1} - V_D) / V_{LSB-IDEAL} -1|,$$ where \$V_D\$ is the "physical value corresponding to the digital output code D." I understand that to mean the physical value corresponding to the center of code D, since the other values corresponding to the code are represented by quantization error which is modeled as additive white noise and ignored in the analysis of DNL. I think Maxim's equation describes how the distance between the centers of adjacent codes (in LSBs) deviates from 1 LSB. I think the absolute value is wrong, because the deviation can be positive or negative.

To compare Maxim's equation to TI's, it has to be rewritten in terms of code widths. With assistance from the figure below the equation is $$\left(\frac{W[D]}{2} + \frac{W[D+1]}{2} - Q\right)/Q.$$ enter image description here

These two equations do not give the same results for DNL and INL, as shown in the example below. I changed the indices of the Maxim equation a little in my example, but I think it is still valid.

Who is right? I like Maxim's equation with my changed indices, because I can see the maximum INL of -1 as the difference between the ideal transfer function and the center of code 4, where the equation says it should be (the center of code 3 is also the maximum INL, but with zero width, the center is just the transition). I don't see where the maximum INL of -1.5 is according to TI's equation.

enter image description here

DavidG25
  • 1,292
  • 8
  • 21
  • 1
    The equations look identical by substitution. I'll try to give a more detailed answer if I have time. – pat Oct 22 '21 at 20:29
  • Why do you believe that there must be a single, standard definition for DNL? Why couldn't each manufacturer use their own definition? – Elliot Alderson Oct 22 '21 at 20:43
  • They are the same equation. Vd+1-Vd = W[k]. V(ideal) = Q. –  Oct 22 '21 at 20:50
  • @user_1818839 I don't think W[k] = Vd+1 - Vd. Isn't Vd the voltage corresponding to the center of a code? – DavidG25 Oct 22 '21 at 20:55
  • Then you are arguing about an 0.5LSB constant DC offset, which has no effect on the DNL. Practically, what matters is the code changes, i.e. the edges of the steps. Nothing happens in the middle of a step! –  Oct 22 '21 at 20:58
  • 1
    @ElliotAlderson That would be okay, except both manufacturers say that INL is the distance between the actual transfer function and an ideal transfer function. Unless the two manufacturers disagree that INL = cumsum(DNL), then one of the DNL definitions is wrong, or they are the same, and I am wrong. – DavidG25 Oct 22 '21 at 21:09
  • @user_1818839 pat did me a favor and converted my hand drawn analysis to code. His results do not look like a constant offset, and there is an effect on the DNL. – DavidG25 Oct 26 '21 at 00:54

2 Answers2

2

It is clear that TI is using transition points on each side of the analog range corresponding to a digital value. They define \$T[k]\$ as the voltage level where the code transitions. And \$W[k]\$ is the measured width between every \$kth\$ pair of adjacent transition points. $$W[k] = T[k+1]-T[k]$$ So, \$W[k]\$is the width or distance of the analog range corresponding to the \$kth\$ single digital value. Now, Q is the ideal LSB value or ideal distance between analog values corresponding to the \$kth\$ single digital value. Q will always be \$\frac{VFS}{2^N}\$ or 1 LSB (ideal distance). Finally, the \$kth\$ \$DNL\$ is defined to be $$DNL[k] = \frac{W[k] - Q}{Q}$$ This is the relative error between the actual measured width and ideal width (\$Q = LSB\$) of each transition.

Now Maxim defines DNL as $$DNL=|(VD+1−VD)/VLSB_{IDEAL}−1|$$ Notice, they have no kth index here. This is since they are using one \$DNL\$ value to represent the entire range of \$k\$ \$DNL\$ values. It's common to spec MIN, TYP, and MAX \$DNL\$. And since they are using one value, it is an absolute value. This, since they will typically show \$+/-DNL\$ as a specification for their data sheet (representing the range of \$DNL\$s that were measured). If you just substitute \$VD+1 = T[k+1]\$ and \$VD = T[k]\$ and \$Q = VLSB_{ideal}\$ It should be fairly obvious, that simple rearrangement gives identical equations. And the meanings are identical, in that both can give a range of \$+/- DNL\$ to the end user. Often graphs are displayed that show the \$DNL\$ measurements to make it clearer.

However, the Maxim link does graphically show the \$VD\$ values as the center of each analog range corresponding to every digital value. This in contrast to the transition values that TI used in their definition. So the question is, does this change the meaning significantly? I'd say yes. Why?

If you measure the difference from center to center. The equation would be $$((T[k+2]- T[k+1])/2 - (T[k+1] - T[k])/2)$$ or $$(T[k+2] + T[k])/2 - (T[k+1] )$$ This is not equivalent to $$W[k]=T[k+1]−T[k]$$ So, I would argue that taking center to center as Maxim shows is not identical. Not only does the equation not make a lot of intuitive sense, but you are no longer comparing the width of an ideal LSB for a digital code, to the measured width corresponding to that code. But, instead, measuring some average of the widths between two codes and comparing it the ideal width of one single code.

I put together a small script to simulate the effect (3bit ADC). One can see that if I add noise to the transitions (red), the distance between transitions is not the same as the distance between center points (blue). There's one less difference sample point (since using average of two code centers). The relative errors are also significantly different (not just a fixed offset).

enter image description here

Most literature I've seen measure the transition point differences. I'd go with the TI methodology here. There are different ways to measure DNL in practice. For example, some tests count the ratio of samples for each code to the average samples of an ideal code bin.

pat
  • 2,075
  • 12
  • 11
  • So we agree they are not the same. Would you agree that the transfer function of an ideal ADC changes from a staircase to a straight line as quantization noise is removed? Would you then agree that the line is defined by points that used to be the centers of the staircase steps? If so, non-linearity could be described by how the slope of a line between two code centers deviates from the slope of the ideal transfer function. That is what Maxim's equation calculates. I'm not sure what the width of a stair step tells you, which is why I posted this question. – DavidG25 Oct 26 '21 at 00:43
  • Agree, though that sounds like gain error, not DNL. The width of a stair step shows us how much corresponding analog range deviates from ideal for each code word. If you are asking why Maxim measures DNL Ctr-Ctr way, I don't know, other than apps engineers aren't infallible. – pat Oct 26 '21 at 01:00
  • I'm asking why TI measures DNL that way (Maxim's measurement makes sense to me). Isn't the analog range corresponding to a code word just a measure of quantization error? – DavidG25 Oct 26 '21 at 01:08
  • Most engineers in practice and literature measures it the way TI does. You can call it a measure of quantization error. But I already mentioned the error should be relative to each code for consistency, where Maxim measures between two codes. I can also find other Maxim papers showing transition measurements. – pat Oct 26 '21 at 01:17
  • I will follow the convention to be consistent, but I don’t get it. Thanks for your time. – DavidG25 Oct 26 '21 at 01:19
0

My confusion was cleared after I realized that the vertical line segments in an ADC transfer function are the output levels of the DAC used in the ADC in the case of a flash, SAR, or other ADC that uses a DAC.

TI's equation describes the linearity of the DAC, which is unambiguous as the output of the DAC is a collection of points.

Maxim's equation made sense to me when I was thinking about the ADC transfer function without quantization noise, but since ADC design focuses on the DAC performance, I think TI's equation is a more useful metric in that context.

DavidG25
  • 1,292
  • 8
  • 21