• These commercial threads are for private transactions. diyAudio.com provides these forums for the convenience of our members, but makes no warranty nor assumes any responsibility. We do not vet any members, use of this facility is at your own risk. Customers can post any issues in those threads as long as it is done in a civil manner. All diyAudio rules about conduct apply and will be enforced.

Reference DAC Module - Discrete R-2R Sign Magnitude 24 bit 384 KHz

Bottom line, testing audio DACs at DC is absurd.

This is clearly wrong.

To measure INL and DNL of a DAC simply apply digital codes and use a good voltmeter to measure corresponding analog output.
Noise can be filtered with averaging.
Computer control can be used to automate the process.

DNL(n)=V(n)−V(n−1)−LSB/LSB

INL(n)=Vreal(n)−Videal(n)/LSB

The output of a monotonic DAC always stays the same or increases for an increasing digital code. The quantitative measure of monotonicity is the
specification of differential nonlinearity (step size).

Traditional static specifications such as differential nonlinearity (DNL) and integral nonlinearity (INL) are most certainly reflected in the ac performance. For instance, low distortion, a key audio and communication requirement, is directly related to low INL.
Large INL and DNL errors will increase both the noise and distortion level of a DAC and render it unsuitable for these demanding applications. In fact, one often finds that the static performance of these ac-specified DACs is quite good, even though it is not directly specified.
 
Noise can be filtered with averaging.

Hello Roberto,

You must be the DIY partner of our now sin binned hero. Well, it doesn’t really matter, as long as you stay accurate. For your education, averaging doesn’t filter noise a iota, that’s an audiophile grade mistake.

You may want to go through https://www.analog.com/media/en/technical-documentation/application-notes/AN-615.pdf and understand the difference between peak to peak resolution vs. effective resolution. 2.7 bit difference, that’s a lot.
 
Hello Roberto,

You must be the DIY partner of our now sin binned hero. Well, it doesn’t really matter, as long as you stay accurate. For your education, averaging doesn’t filter noise a iota, that’s an audiophile grade mistake.

You may want to go through https://www.analog.com/media/en/technical-documentation/application-notes/AN-615.pdf and understand the difference between peak to peak resolution vs. effective resolution. 2.7 bit difference, that’s a lot.

This is clearly wrong.

That paper is about the resolution of ADC and not DAC.

Measure the accuracy of an ADC is not as simple as DAC, it needs to find "decision levels", i.e. input voltages at all code boundaries.

In a DAC, there is one unique output voltage for each digital input code, regardless of DNL or INL errors. An ADC, on the other hand, does not have a unique voltage input corresponding to each output code—there is a small input voltage range equal to 1 LSB in width (for an ideal noiseless ADC) that will produce the same digital output code.
This is called the quantization uncertainty, and it can be the source of confusion when specifying and measuring ADC static transfer characteristics. Directly measured code transiction method only works well if the ADC (and the input voltage source) has an effective peak-to-peak input-referred noise which is less than 1 LSB.
Larger amounts of input-referred noise tend to mask the transitions and make the measurement increasingly difficult.

A computer-based ADC servo-loop tester is needed.
This test method allows for data averaging to remove the effects of excess noise.
 
This is clearly wrong.

That paper is about the resolution of ADC and not DAC.

A computer-based ADC servo-loop tester is needed.
This test method allows for data averaging to remove the effects of excess noise.

Really, I see a pattern in your styles, no wonder who you associated with :rofl:.

The effect is the same in the ADCs and DACs, uncertainty in the ADC digital output matches the analog output level uncertainty. That is, when your partner is testing the DAC with his 6 1/2 voltmeter, the LSBs are flickering, no way to figure out the real value, other than statistically, with a certain probability, something your DIY partner clearly did not do. The peak in such a measurements distribution histogram would give the peak resolution, which is what apparently your DIY partner is obsessed with. If I recall correctly, the average (not the peak) of these measurements will give the effective resolution. Of course, the voltmeter has to have a resolution better than the peak resolution of the DAC.

Data averaging, as much as analog averaging DOES NOT remove noise or any of its effects. The only way to remove noise is filtering in a limited bandwidth, or synchronous averaging (or averaging in the time domain, or autocorrelation if you prefer) which do not apply to spot values like the digital ADC or analog DAC outputs.

To make it crystal clear, when you get a signal spectrum in your favorite software controlling a sound card, averaging the result does lead to a sharper image, but the noise is the same! To lower the noise effect you would have to lower the resolution bandwidth (or increase the process gain if you prefer).
 
Last edited:
This is again wrong for a binary weighted DAC like the one presented in this thread.

Firstly I have no partner.
Secondly I have read 7 1/2 digit DMM (Keithley 2001) and "Median" in the reports, which means the value separating the higher half from the lower half of a data sample, a population, or a probability distribution.

Moreover it would be useful to consider the property of superposition, and be able to recognize its signature. Mathematically, superposition, a property of linear systems, implies that, if the influences of a number of phenomena at a particular point are measured individually, with all other influences at zero as each is asserted, the resulting total, with any number of these influences operating, will always be equal to the arithmetic sum of the individual measurements.

For example, let us assume that a simple binary-weighted DAC is ideal, except that each bit has a small linearity error associated with it. If each bit error is independent of the state of the other bits, then the linearity error at any code is simply the algebraic sum of the errors of each bit in that code (i.e., superposition holds). In addition, by using endpoint linearity, we have defined the linearity error at zero and full-scale to be zero.
Thus, the sum of all the bit errors must be zero, since all bits are summed to give the all "1"s value.

The bit errors can be either positive or negative; therefore, if their sum is zero, the sum of the positive errors (positive summation) must be equal to the sum of the negative errors (negative summation). These two summations constitute the worst-case integral nonlinearities of the DAC.
Intelligent use of superposition, coupled with a complete understanding of the architecture of the DAC under test, generally allows for a reduction in the number of measurements required to adequately determine DNL and INL.

Superposition generally holds true for binary weighted DACs.
Because of superposition, it is not necessary to measure the linearity error at all codes.

Therefore, absolute accuracy of the voltage measured at the DAC output is not required.
 
For those wondering, ain't search engines a biatch...

Sorry I prefer respecting Roberto's willing rather than your willing since you are the only one who asks for the source code to be public.

I'm sorry but Roberto does not like this forum, he also does not like to share our designs because as I have said several times we are designing for ourselves, basically we are designing our whole audio system following the way we believe.
Me and Roberto we do not agree on this point and the compromise was to share our projects but not the schematics.
I respect him and therefore I find it right to respect his will.

Keithley 2001, 7 1/2 digits DMM

Firstly I have no partner. Secondly I have read 7 1/2 digit DMM (Keithley 2001)

It should be also said that I received a nasty message (of which, for obvious reasons, I am not going to post a screenshot here) from Andrea, following his sanction. Essentially, I am accused of using my "Canadian friends" to kick him out.
 
Sorry, any further dialogue is impossible. You, like your non existing DIY partner, choose to ignore reality and replace it with your very own construct. I'll let Andreas know you are doing a fine job while he's MIA.

Not quite, this is how INL/DNL should be measured for a binary weighted DAC.

In a DAC, we are concerned with two measures of the linearity of its transfer function: integral nonlinearity, INL (or relative accuracy), and differential nonlinearity, DNL.
Integral nonlinearity is the maximum deviation, at any point in the transfer function, of the output voltage level from its ideal value which is a straight line drawn through the actual zero and full-scale of the DAC.
Differential nonlinearity is the maximum deviation of an actual analog output step, between adjacent input codes, from the ideal step value of +1 LSB, calibrated based on the gain of the particular DAC.
If the differential nonlinearity is more negative than –1 LSB, the DACs transfer function is non-monotonic.
 
And how is this relevant to the Andrea/Roberto measurements? Hint: it is not, the definitions above are text book correct, what is incorrect is the use of the numbers provided by the Keithley 2001 7-1/2 DVM.

You cannot determine 1 LSB at DC without advanced statistics as mentioned. Again, the difference is as between the peak resolution and the effective resolution. You are hoping to measure the former, but you only can measure the latter. 2.7bit difference, that's a lot.
 
Wow, even after being placed on my ignore list, andrea_mori still somehow manages to deliver the goods.

***

Anyway, moving right along. Nobody has posted their build here for months! I finished up my dam1021 rev7 build a couple of weeks back, so here it is.

Deliberately minimalistic, I almost called it "Singular Purpose". HiFi2000 case, FPE panels, JLSounds I2SoverUSB v.III input, DIYinHK LT3045-based power supplies, direct R-2R output intended for my headphone amp, and buffered output for my powered desk speakers. Sounds bloody marvellous, I feel no need to modify the board in any way.

My only regret is that I didn't add a second USB input and leave the USB/serial adapter connected internally for filter testing. I could add a small USB hub internally, but it would defeat the isolation provided by the I2SoverUSB module, which is essential given how damn noisy my computer's USB is.

So Søren.... thanks for your design, your patience with the community, and for the ongoing and continual upgrades over the years!
 

Attachments

  • R-2R 1.jpg
    R-2R 1.jpg
    217.7 KB · Views: 443
  • R-2R 2.jpg
    R-2R 2.jpg
    259 KB · Views: 426
  • R-2R 3.jpg
    R-2R 3.jpg
    288.2 KB · Views: 433
Wow, even after being placed on my ignore list, andrea_mori still somehow manages to deliver the goods.

***

Anyway, moving right along. Nobody has posted their build here for months! I finished up my dam1021 rev7 build a couple of weeks back, so here it is.

Deliberately minimalistic, I almost called it "Singular Purpose". HiFi2000 case, FPE panels, JLSounds I2SoverUSB v.III input, DIYinHK LT3045-based power supplies, direct R-2R output intended for my headphone amp, and buffered output for my powered desk speakers. Sounds bloody marvellous, I feel no need to modify the board in any way.

My only regret is that I didn't add a second USB input and leave the USB/serial adapter connected internally for filter testing. I could add a small USB hub internally, but it would defeat the isolation provided by the I2SoverUSB module, which is essential given how damn noisy my computer's USB is.

So Søren.... thanks for your design, your patience with the community, and for the ongoing and continual upgrades over the years!

Nice build, thanks for the nice words, happy to see somebody still building instead of just creating noise....

You could use the isolated serial port with an interface and a hub, keeping it on the noisy side....