Analogue to Digital Conversion By Cap’n Tim Johnson, PE Prepared 11/12/2013 Digital World • The digital in A/D conversion consists of binary or hex numbers that will come to stand for a real world phenomenon. • Say, for instance we have four-bits we use to represent an analog value that’s been converted. • In binary, the numbers would range from 0000 to 1111 and there are (24 = 16) sixteen different values represented. • These number in base 10 could range from 0-15 Typical example of converting a binary number to a decimal number While this is very useful in converting binary number to decimal and back… analog to digital conversion is similar but different. A/D is converting a binary number into something else Something Else We want to change the decimal number column into real world values that don’t necessarily increment by whole numbers but do increment by binary numbers. This example shows the conversion of real world values to binary numbers Real World Values Here if we let each binary bit value or weight represent a 1/3 of a volt, as the binary numbers increment, the voltage goes up 1/3 a volt at a time. 0.00 0.33 0.66 1.00 1.33 1.66 2.00 2.33 2.66 3.00 3.33 3.66 How do we get the real world values? 1. We need to know the maximum input voltage or the range between Vmax – Vmin. If Vmin is 0 or ground then all we need is Vmax. 2. We need to know the number of bits used in the A/D converter. 3. Vmax/(2#bits) = Resolution 4. Resolution is the value of the incremental voltage change per bit or the difference between 0001 and 0000. What else does the table tell us? The binary numbers are stored after a conversion in the A/D results register. By using a simple formula the binary number can tell us what the input voltage is. Real World Values 0.00 0.33 0.66 1.00 1.33 1.66 2.00 2.33 2.66 3.00 3.33 3.66 How? Convert the binary number in the A/D results register to its decimal equivalent. That tells us how many bits are needed to multiply the resolution to equal the input voltage. π ππ πππ’π‘πππ ∗ (π΄/π· π£alue10) 10112ο 1110 β * 11 = 3 β volts Real World Values 0.00 0.33 0.66 1.00 1.33 1.66 2.00 2.33 2.66 3.00 3.33 3.66 Quick Summary • You need to know the maximum voltage that will be present on the input. This voltage can not exceed the device’s upper limit. • You need to know the number of bits the device uses to report the value in the A/D results register • Calculate the Resolution: Vmax/(2#bits) • Convert the value in the A/D results register to base 10 to determine the decimal number of bits • Multiply the decimal number times the Resolution to determine the input voltage. General Rule • Your results will never be higher than Vmax • For instance, if the results register reads $FF, all the bits are filled in a 8-bit ADC. • The complete formula is: • ππππ₯ 2#πππ‘π ∗ 255 ο ππππ₯ 256 ∗ 255 ο 255 256 ∗ ππππ₯ • The fraction 255/265 ≈ 1 thus you have 1*Vmax • The error in the fraction = Quantization error Other Rules of Thumb • If you get $80 (1000 0000) in the result register, the answer is ½ Vmax ($80/$FF is ½) • If the last four zeros have some value then 1000 XXXX is approximately ½ Vmax • You could read just the first 2 bits and round off to fourths of Vmax Ex.: 0100 XXXX ≈ ¼ Vmax • If you read just the first 3 bits you can round off to eights of Vmax • Ex.: 0110 XXXX ≈ β Vmax & 1110 XXXX ≈ β Vmax What else could we do with A/D? • First we have to think of what it is that we want digitized. Rotation around an axis is a useful number especially if we were rotating a telescope horizontally. • We’d need to digitize the number of degrees we rotated a telescope. The maximum number of degrees is 360°. Then suppose our A/D converters was limited to 5 volts input maximum and 8-bits…that would be ~1.4 degrees/bit. • But if we limited our rotation to 180° that would be ~.7 degrees per bit. Use the ADC we can determine if the telescope turned 1 ° with each change of a bit. Another look at ADC LSB value This graph shows the fitting of a linear voltage to an ADC in theory. Visible is the quantization error which is the overhang of the digital step higher and/or lower than the ideal value. The ideal quantization error is ± ½ LSB. The LSB is aka Resolution. Role of ADC module in microcontrollers The ADC module is one of a number of modules on a microcontroller. Others include General Purpose I/O, Comparators, Digital to Analog Converters , Op Amps, Timers, Real-Time clock, AES encryption, Brown-Out Reset, Direct Memory Access, Memory Protection Units, Supply Voltage Supervisors, Capacitive Touch Sense I/O, Communications (UART,SPI, I2C, IrDA, USB, Ethernet), LCD, and other specialty designs. This is the block diagram for the TI MSP430 Sigma-Delta 16 bit ADC A/D Results Register