coolstuff07
Advanced Member level 4
- Joined
- Mar 9, 2008
- Messages
- 118
- Helped
- 3
- Reputation
- 6
- Reaction score
- 1
- Trophy points
- 1,298
- Activity points
- 1,949
eecs4ever said:End Point method:
The end points in the ADC transfer function are used to draw a straight line. The real ADC data is compared to the straight line. The deviation is used to calculate INL. DNL can be derived from INL.
Best fit method:
Instead of using the end points of the ADC data, a best-fit straight line is drawn. We use this best fit line to compare to the ADC output to calculate the INL. The best fit line is chosen to minimize the mean squared distance between the straight line and the ADC data points. This minimizes the INL (it minimizes SUM of INL^2 )
Search for "best-fit" to find the matlab commands:
**broken link removed**
eecs4ever said:Yes, you can use the matlab code to generate the INL/DNL plot. It requires that you've tested your ADC using a sinusoid input, close to full scale, and that you've acquired many samples. There are also more details about the frequency requirements described in the link above.
eecs4ever said:1. The file name refers to the file where you have stored your Data points.
2. A data point refers to 1 ADC digital output. For example, if you have 4 bit ADC, this will be 4 bits in binary, or a decimal value between 0 and 15.
3. to find the mean: SUM ( value of data points) / number of data points.
"Unfortunately the histogram method requires the capture of fairly large data records. The number of samples required is depending on the resolution of the ADC, the desired confidence level of the measurement, and the size of the DNL error. For instance, a 10-bit ADC with a DNL error (β) of 0.1LSB and a 95% confidence level (Zα/2) requires more than half a million samples (NRECORD) to be recorded. Boosting the confidence level from 95% to 99% will result in a significantly higher data record size of more than one million samples.
NRECORD = π × 2N-1 × (Zα/2)²] / β² = π × 29 × (1.96)² / (0.1)² = 617,920
NRECORD = π × 2N-1 × (Zα/2)²] / β² = π × 29 × (2.58)² / (0.1)² = 1,070,678"
to calculate INL correctly, you acutally need a lot more samples. maybe 5~10x of the # required for acurrate DNL ?
read more here
https://www-mtl.mit.edu/researchgroups/hslee/0820doer.pdf
eecs4ever said:The code above is meant to be used when testing your ADC chip ( real silicon). It would take far to do the histogram test in simulation.
To check the accuracy of your ADC in simulation, you can do an FFT test. Put in a sine wave. take 128 samples, then take the FFT of the data points.
Or, put in a linear ramp, ~1000 pts, and check the output your ADC to estimate the DNL.
eecs4ever said:run 1 transient simulation. To get 128 samples, you should input a sine wave, and run a transient sim. Allow the ADC to settle out the initial transients and record 128 data points and then take a FFT of the data. read this note here:
**broken link removed**
eecs4ever said:Your 8 bit ADC should have at least 8 bit of digital output. If the output is always the same regardless of your ADC's input, then you should probably check to see if your ADC works at all. A clock signal is required.
eecs4ever said:Try to reduce the ramp rate of your input by 4 , and run the same simulation for 4 uS and see what happens.
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?