The Analog to Digital Converter (ADC) allows micro-processor controlled circuits such as Arduinos and Raspberry Pis to interact with the real world by converting analogue signals into a digital representation.
As the resolution of the ADC increases, so does the number of output binary bits required. This also means that the number of comparators and voltage levels needed for each bit level increases.
ADC Inputs
The ADC converts an analog signal to a digital value, it can do this in a few different ways. Some ADCs charge a capacitor using the varying analog input, then use clock cycles to determine how long it takes for the capacitor to completely discharge and then convert this into an integer value. This method is typically limited in resolution (the number of discrete values an ADC can encode the analog input).
Other ADCs sample the analog input at regular intervals and then reconstruct the signal by analyzing the time intervals between each sampling point. This method is often better for high frequency inputs because it allows them to detect and correct errors caused by aliasing. However, this method suffers from the fact that it can only accurately reconstruct the signal if the sampling rate is equal to or higher than twice the highest frequency component in the signal being sampled.
Most ADCs are implemented in the form of integrated computer chips that take the analog input and then output a series of binary values representing its varying amplitude. The output is typically brought out to a pin on the IC that can be connected to a microcontroller or other processor. The resulting digital value can range from 0 to 255, with the first bit representing the most significant number and the last bit being the least significant number.
ADC Outputs
Analog-to-Digital converters turn analog (continuous, infinitely variable) signals into digital (discrete-time, discrete-amplitude) signals. Performing this conversion always introduces some error and noise into the resulting digitized signal, but the amount of error is determined by both quantization level and the sampling rate.
The sampling rate is defined as the number of samples or data points the ADC takes per unit of time. This is a crucial aspect of the ADC because it determines whether or not all frequencies in the original analog signal can be reconstructed correctly. If the sample frequency is too low, higher-frequency signals will be misinterpreted as lower-frequency ones and reconstructed incorrectly. This is known as aliasing.
A high sample rate can reduce the amount of quantization Analog to Digital Converter error, but it also increases the complexity and cost of the ADC circuitry. Oversampling can sometimes be used to minimize the effects of aliasing while maintaining a high sample rate.
The digitized output of an ADC is a sequence of binary numbers. Each bit represents a specific value, with a single bit representing a zero and two bits representing a one. This allows the digitized signal to be more precisely reproduced than an analog signal. The digitized signal is more compact, and is easier for electronic circuits to work with than analog signals, which are often chaotic.
ADC Circuits
In the design of an ADC, there are two factors that determine how accurately the digital values will represent Analog to Digital Converter manufacturer the original analog signal. These are the quantization level and the sampling rate.
In general, the more bits an ADC has, the better the resolution will be. In order to increase the number of bits in a digital representation, the analog signal must be sampled a greater amount of times. This increases the sampler noise and reduces the accuracy of the result.
To minimize this problem, many ADC circuits use successive approximation techniques. Each successive bit in a digital representation has a greater weight than the preceding one. The MSB is weighted twice as much as the LSB. This is important for high-resolution representations of complex signals.
The sample and hold circuit is usually the first component in an ADC. This circuit samples the analog voltage at a time called the sample clock (tk). Then it stores this value in a capacitor and waits for a clock pulse that resets the counter to zero. This triggers the J-K flip-flop circuit and starts counting the clock pulses (generated by the computer).
On each clock cycle, the comparator compares the sampled analog input to the threshold value for the most significant bit. If the input is higher than the threshold, it sets the most significant bit to ‘1’. This process continues for the rest of the bits until they are all set. This results in a binary output code representing the full-scale analog input voltage minus 1 LSB.
ADC Applications
The ADC allows microprocessor controlled circuits such as Arduinos and Raspberry Pi to interact with sensors that measure things like sound, light, temperature and movement. The sensors provide analogue signals which have continuous values but electronic circuits work with digital signals that only contain two distinct states, a logic “1” (HIGH) or a logic “0” (LOW). The ADC converts the continuous analog signal to a series of discrete digital value changes and provides the output as a serial bitstream or parallel bus.
The successive approximation converter uses a comparator and counting logic to perform the conversion. It starts by checking whether the input is greater than half of the reference voltage. If it is, then the first output bit is set and the counter resets for the next cycle. This process is repeated for as many output bits as are desired. A typical implementation requires 100 ns for each conversion.
Other ADCs use more complex comparator or priority encoder circuitry. These can operate at much higher speeds as the number of comparators increases proportionally with the number of output bits. However, their speed limit is limited by the Nyquist sampling theorem which states that an accurately reproduced bandlimited analog signal can be obtained only if the sample rate is at least twice the highest frequency component of the original signal.