Jump to content

Successive-approximation ADC

From Wikipedia, the free encyclopedia
1978 integrated circuit containing an 8-bit successive-approximation analog-to-digital converter (Analog Devices AD570)

A successive-approximation ADC (or SAR ADC) is a type of analog-to-digital converter (ADC) that digitizes each sample from a continuous analog waveform using a binary search through all possible quantization levels.

Structure

[edit]
Successive-approximation ADC block diagram showing digital-to-analog converter (DAC), end of conversion indicator (EOC), successive-approximation register (SAR), sample and hold circuit (S/H), input voltage (Vin) and reference voltage (Vref)

A successive-approximation analog-to-digital converter contains several component subcircuits:

  1. An analog voltage comparator that compares Vin to the output of a digital-to-analog converter (DAC).
  2. A successive-approximation register that is updated by the results of the comparator to provide the DAC with a digital code whose accuracy increases with each successive iteration.
  3. A DAC that supplies the comparator with an analog voltage relative to the reference voltage Vref (which corresponds to the full-scale range of the ADC) and proportional to the digital code of the SAR.

In many implementations, a sample-and-hold circuit is used to acquire the input voltage prior to starting a conversion. This holds the acquired voltage steady while a conversion is in progress. It is required if Vin can change rapidly enough to cause conversion errors, and is inherently an integral part of some types of ADCs (e.g., charge-redistribution ADC).

Algorithm

[edit]

Drummer and Ray described the algorithm as applied to a digital voltmeter.[1] This paper predates ADC integrated circuits but describes the binary search decision-making.

The successive-approximation register is initialized with 1 in the most significant bit (MSB) and zeroes in the lower bits. The register's code is fed into the DAC, which provides an analog equivalent of its digital code (initially 1/2Vref) to the comparator for comparison with the sampled input voltage. If this analog voltage exceeds Vin, then the comparator causes the SAR to reset this bit; otherwise, the bit is left as 1. Then the next bit is set to 1, and the same test is done, continuing this binary search until every bit in the SAR has been tested. The resulting code is the digital approximated output of the sampled input voltage.

The algorithm's objective for the nth iteration is to approximately digitize the input voltage to an accuracy of 12n relative to the reference voltage. To show this mathematically, the normalized input voltage is represented as x in [−1, 1] by letting Vin = xVref. The algorithm starts with an initial approximation of x0 = 0 and during each iteration i produces the following approximation:

ith approximation: xi = xi−1sgn(xi−1x)/2i

where the binary signum function sgn mathematically represents the comparison of the previous iteration's approximation xi-1 with the normalized input voltage x:It follows using mathematical induction that the approximation of the nth iteration theoretically has a bounded accuracy of: |xnx| ≤ 1/2n.

Examples

[edit]

Example 9-bit ADC

[edit]

The steps to converting an analog input to 9-bit digital, using successive-approximation, are shown here for all voltages from 5 V to 0 V in 0.1 V iterations. Since the reference voltage is 5 V, when the input voltage is also 5 V, all bits are set. As the voltage is decreased to 4.9 V, only some of the least significant bits are cleared. The MSB will remain set until the input is one half the reference voltage, 2.5 V.

The binary weights assigned to each bit, starting with the MSB, are 2.5, 1.25, 0.625, 0.3125, 0.15625, 0.078125, 0.0390625, 0.01953125, 0.009765625. All of these add up to 4.990234375, meaning binary 111111111, or one LSB less than 5.

When the analog input is being compared to the internal DAC output, it effectively is being compared to each of these binary weights, starting with the 2.5 V and either keeping it or clearing it as a result. Then by adding the next weight to the previous result, comparing again, and repeating until all the bits and their weights have been compared to the input, the result, a binary number representing the analog input, is found.

Example 4-bit ADC

[edit]

The working of a 4-bit successive-approximation ADC is illustrated below. The MSB is initially set to 1, whereas the remaining digits are set to zero. If the input voltage is lower than the value stored in the register, on the next clock cycle, the register changes its value to that illustrated in the figure by following the green line. If the input voltage is higher, then on the next clock cycle, the register changes its value to that illustrated in the figure by following the red line. The simplified structure of this type of ADC that acts on 2n volts range can be expressed as an algorithm:

  1. Initialize register with MSB set to 1 and all other values set to zero.
  2. In the nth clock cycle, if voltage is higher than digital equivalent voltage of the number in register, the (n+1)th digit from the left is set to 1. If the voltage were lower than digital equivalent voltage, then nth digit from left is set to zero and the next digit is set to 1. To perform a conversion, an N-bit ADC requires N such clock cycles, excluding the initial state.
Working of successive approximation ADC
Setup where output values of the ADC are arranged in a grid, with the vertical axis corresponding to voltage. It is a 4-bit ADC that measures input voltages from 0V to 15V.
Previously established setup where an input voltage of 10.4V is provided.
Previously established setup where an input voltage of 9.4V is provided.

Conceptually, the successive-approximation algorithm initially assigns each digital output to a corresponding voltage range (see above). The algorithm effectively divides the range into two subranges and selects the subrange that the input voltage falls within, thus producing one bit of the result. This divide-and-select process is repeated for each previously selected subrange until all bits have been generated.

Inaccuracies in non-ideal analog circuits

[edit]

DAC inaccuracy or electronic noise (or both) can cause the binary search algorithm to incorrectly set or clear a bit during a conversion, thus causing subsequently converted bits to also be incorrect and resulting in a binary output that differs significantly from the correct value. To avoid this, the DAC must generate an accurate output voltage for each of its 2n binary input values. Manufacturers may characterize the DAC accuracy in terms of effective number of bits (ENOB) rather than the actual number of output bits.

As of 2001, the component-matching limitations of the DAC generally limited the linearity to about 12 bits in practical designs and mandated some form of trimming or calibration to achieve the necessary linearity for more than 12 bits.[2] And since kT/C noise is inversely proportional to capacitance, low noise demands a large input capacitance (which costs chip area and requires a more powerful drive buffer), which has motivated proposals around noise cancellation.[3] For comparison, for a Vref of 5 V, the least significant bit of a 16-bit converter corresponds to 76 μV, which is around the 64 μVrms noise of a 1 pF (large for on-chip) capacitor at room temperature. As of 2012, SAR ADCs are limited to 18 bits, while delta-sigma ADCs (which can be 24 bits) are better suited if more than 16 bits are needed.[4] SAR ADCs are commonly found on microcontrollers because they are easy to integrate into a mixed-signal process, but suffer from inaccuracies from the internal reference voltage resistor ladder and clock and signal noise from the rest of the microcontroller, so external ADC chips may provide better accuracy.[5]

Calibration of the element weights allows for greater accuracy, but generally, some redundancy is then required.[6]

Charge-redistribution, successive-approximation ADC

[edit]
Switched capacitor array acting as the DAC for an N-bit charge-redistribution SAR ADC, fed into a ground-referenced comparator.

A charge-redistribution, successive-approximation ADC employs a switched capacitor array to perform the functions of both sample-and-hold and DAC. It has a charge-scaling DAC consisting of an array of individually-switched capacitors, sized in powers of two, and an additional duplicate of the smallest capacitor, resulting in a total of N+1 capacitors for N bits.[7] Thus if the largest capacitance is C, then the array's total capacitance is 2C.

Redistributing the capacitors' charge will adjust their net voltage, which is fed into the negative input of a comparator (whose positive input is always grounded) to perform the binary search using the following steps:[8][9]

3 bit capacitive ADC, using Vref = 5V. The bottom left transient simulation uses Vin ≅ 3.5V or about .7 of Vref, resulting in an answer of 58 (101 in binary), representing 3.125V or 0.625 of Vref. "PESE" is the voltage on the array, and its remaining final voltage is the conversion's residual error.
  1. Discharge: The capacitors are discharged. Discharging to the comparator's offset voltage will automatically provide offset cancellation.
  2. Sampling: The capacitors are switched to the input signal Vin. After a brief sampling period, the capacitors will hold a charge equal to their respective capacitance times Vin (and minus the offset voltage upon each of them), so the array holds a total charge of 2C·Vin.
  3. Hold: The capacitors are switched to ground. This provides the comparator's negative input with a voltage of Vin.
  4. Conversion: the actual conversion process proceeds with the following steps in each iteration, starting with the largest capacitor as the test capacitor for the MSB, and then testing each next smaller capacitor in order for each bit of lower significance:
    1. Redistribution: The current test capacitor is switched to Vref. The test capacitor forms a charge divider with the remainder of the array, whose ratio depends on the capacitor's relative size. In the first iteration, the ratio is 1:1, so the comparator's negative input becomes Vin + Vref2. On the ith iteration, the ratio will be 1:2i−1, so the ith iteration of this redistribution step effectively adds Vref2i to the voltage.
    2. Comparison: The comparator's output determines the bit's value for to the current test capacitor. In the first iteration, if Vin is greater than Vref2, then the comparator will output a digital 1 and otherwise output a digital 0.
    3. Update Switch: A digital 1 result will leave the current test capacitor connected to Vref for subsequent iterations, while a digital 0 result will switch the capacitor back to ground. Thus, each ith iteration may or may not add Vref2i to the comparator's negative input voltage. For instance, the voltage at the end of the first iteration will be Vin + MSB·Vref2.
  5. End Of Conversion: After all capacitors are tested in the same manner, the comparator's negative input voltage will have converged as close as possible (given the resolution of the DAC) to the comparator's offset voltage.

Calibration

[edit]

The capacitors must be calibrated for accuracy of 10 bits or more.[citation needed] A patent by assignee Cirrus Logic describes a method for calibrating such capacitors.[10]

History

[edit]

The SAR ADC was first used for experimental pulse-code modulation (PCM) by Bell Labs in the 1940s. In 1954, Bernard Gordon introduced the first commercial vacuum tube SAR ADC, converting 50,000 11-bit samples per second.[11]

See also

[edit]

References

[edit]
  1. Weinschel, B. O.; Sorgor, G. U.; Hedrich, A. L. (March 1959). "Relative Voltmeter for VHF/UHF Signal Generator Attenuator Calibration". IRE Transactions on Instrumentation. I-8 (1): 22–31. Bibcode:1959IRTI....1...22W. doi:10.1109/ire-i.1959.5006830. ISSN 0096-2260.
  2. "Understanding SAR ADCs: Their Architecture and Comparison with Other ADCs". Analog Devices. 2001-10-02. Archived from the original on 2024-11-18. Retrieved 2025-01-03.
  3. Keerthy Kumar, Shashank (2023). "Design of a 13-Bit SAR ADC with kT/C noise cancellation technique". Master's Thesis Published in Lund University Student Papers.
  4. "Understanding Noise, ENOB, and Effective Resolution in Analog-to-Digital Converters". Analog Devices. 2012-05-07. Archived from the original on 2024-04-22. Retrieved 2024-12-28.
  5. Giovino, Bill (2018-11-21). "IoT Microcontrollers Have ADCs, but Know When to Choose and Apply an External ADC". DigiKey. Archived from the original on 2024-06-24. Retrieved 2025-01-03.
  6. US6486806B1, Muñoz, Carlos Esteban; Thompson, Karl Ernesto & Piasecki, Douglas S. et al., "Systems and methods for adaptive auto-calibration of Radix", issued 2002-11-26
  7. Suarez, R.; Gray, P.; Hodges, D. (1974). "An all-MOS charge-redistribution A/D conversion technique". 1974 IEEE International Solid-State Circuits Conference. Digest of Technical Papers. IEEE. pp. 194–195. doi:10.1109/isscc.1974.1155344.
  8. Kugelstadt, Thomas (2000). "The operation of the SAR-ADC based on charge redistribution" (PDF). Texas Instruments. Archived (PDF) from the original on 2024-12-27. Retrieved 2024-12-28.
  9. "Operation of a SAR-ADC Based on Charge Redistribution". Renesas Electronics. 2020. Archived from the original on 2024-10-15. Retrieved 2024-12-28.
  10. US4709225A, Welland, David R. & Callahan, Michael J., "Self-calibration method for capacitors in a monolithic integrated circuit", issued 1987-11-24
  11. Kester, Walt (June 2005). "Which ADC Architecture Is Right for Your Application?". Analog Dialogue. Archived from the original on 2025-01-09. Retrieved 2025-05-30.

Further reading

[edit]
  • CMOS Circuit Design, Layout, and Simulation, 3rd Edition; R. J. Baker; Wiley-IEEE; 1208 pages; 2010; ISBN 978-0-470-88132-3
  • Data Conversion Handbook; Analog Devices; Newnes; 976 pages; 2004; ISBN 978-0750678414
[edit]