Since we specialize in mixed-signal ASIC designs, Analog-to-Digital Converters (ADC) are common elements in many of our projects. In basic terms, an ADC converts the value of an analog signal (usually voltage or current) to a digital value that is proportionate in scale to the analog signal. Probably the most common differentiator of ADCs is the level of resolution which is expressed in terms of bits (i.e. 8bit, 10bit, 16bit, etc.). What the number of bits refers to is the number of unique binary values the ADC can produce over the range of analog values. For example, an 8bit ADC can encode an analog input to one in 256 different levels (28=256) and a 24bit ADC can encode an analog input to one in 16,777,216 different levels. With such high resolutions, 24bit ADCs are commonly used in sensitive applications such as test and measurement equipment and high-end communications equipment.
So how does an ADC work? In reality, there are several different ways you can go about converting an analog signal. One way is by using a Successive Approximation approach. A Successive Approximation ADC (SA-ADC) uses a comparator to evaluate the input value relative to a reference value generated by an internal Digital-to-Analog Converter. The results of the comparison are then stored in an internal Successive Approximation Register (SAR). When I was first trying to understand how a Successive Approximation ADC worked, the following analogy made things a lot clearer: If I told you to guess a number between 1 and 48 and I will tell you if the number I’m thinking of is either higher or lower than your guess, the rational approach would be for you to guess 24. If I said the number I am think of is higher than 24, your next guess would be 36 (half the difference between 24 and 48). If I told you it was lower than 36, your next guess would be 30 (half the difference between 36 and 24) and so on until you were able to determine the actual number. Using that approach, an 8bit SA-ADC would make the comparison 8 times with each successive comparison based on a reference value that is half the difference of the narrowed range. If the input value is lower than the reference value, the return is a 0. If the input value is higher than the reference value, the return is a 1. The result of each of these comparisons is subsequently stored in the SAR.
In order to be able to quantify the actual resolution, one must first know the range of input values and the resolution of the ADC in bits. Using the following formula:
Q= VRefhi – VReflow
Where Q is equal to the resolution or value per step, VRefhi is equal to the highest possible value of the input voltage, VReflow is equal to the lowest possible value of input voltage and N is the ADC’s resolution expressed in bits.
Using this equation, we can determine that with an input voltage that ranges from 2.2V to 2.8V, an 8 bit ADC can convert the input voltage with an accuracy of .0023V or 2.3mV. A 16bit ADC can convert the input voltage with an accuracy of .00000916V or 9.16μV.