ANALOG TO DIGITAL CONVERTERS Stu Godlasky Nikita Pak James Potter INTRODUCTION What is an analog to digital converter (ADC) Going from analog to digital Types and properties of ADC WHAT IS AN ANALOG TO DIGITAL CONVERTER Converts digital an analog signal to discrete time Computers , 1/0) need digital. (On / Off , High / Low GOING FROM ANALOG TO DIGITAL Two step process 1) Sampling – Measuring analog signal at uniform time intervals 2) Quantization – Assigning discrete measurements a binary code (each sample will have a binary number associated with it) T1 T2 T3 T4 Example of digital signal from 3 bit ADC 010 010 011 ALIASING Every analog signal has a frequency Nyquist Frequency (half sampling frequency) Aliasing occurs when signal above Nyquist frequency QUANTIZATION ERROR Analog (infinite values) – Digital (finite values) Upon reconstruction of analog signal Increases as resolution decreases Resolution - Q EFSR - full scale voltage range N = Number of discrete voltage intervals N = 2k where k is the number of bits QUANTIZATION ERROR •Quantized signal only has values at midpoint of voltage band TYPES OF ANALOG TO DIGITAL CONVERTERS Dual Slope A/D Converter Successive Approximation A/D Converter Flash A/D Converter Delta – Sigma A/D Converter DUAL SLOPE ANALOG TO DIGITAL CONVERTER Also referred to as an Integrating ADC Integrator DUAL SLOPE ANALOG TO DIGITAL CONVERTER Converts in two phases (ramp up / ramp down ) Input voltage measurement not dependant on integrator components DUAL SLOPE ANALOG TO DIGITAL CONVERTER Pros Conversion result is insensitive to errors in the component values Fewer adverse affects from noise High accuracy Cons o Slow o Accuracy is dependant on the use of precision external components o Cost SUCCESSIVE APPROXIMATION ANALOG TO DIGITAL CONVERTER DAC = Digital to Analog Converter EOC = End of Conversion SAR = Successive Approximation Register S/H = Sample and Hold Circuit Vin = Input Voltage Vref = Reference Voltage SUCCESSIVE APPROXIMATION ANALOG TO DIGITAL CONVERTER Uses an n-bit DAC and original analog results Performs a bit by bit comparison of VDAC and Vin If Vin > VREF / 2 MSB set to 1 otherwise 0 If Vin > VDAC Successive Bits set to 1 otherwise 0 SUCCESSIVE APPROXIMATION ADC EXAMPLE 10 bit ADC Vin = 0.6 V Vref = 1V N = 2n (n = number of bits) N = 210 = 1024 Vref = 1V/ 1024 = 0.0009765625V (resolution) SUCCESSIVE APPROXIMATION DIGITAL TO ANALOG CONVERTER Pros Capable of high speed and reliable Medium accuracy compared to other ADC types Good tradeoff between speed and cost Capable of outputting the binary number in serial (one bit at a time) format. Cons o Higher resolution successive approximation ADCs will be slower FLASH ANALOG TO DIGITAL CONVERTER Also called a parallel ADC 2N – 1 Comparators 2N Resistors Control Logic (encoder) FLASH ANALOG TO DIGITAL CONVERTER Uses the resistors to divide reference voltage into intervals Uses comparators to compare Vin and the reference voltages Encoder takes the output of comparators and uses control logic to generate binary digital output FLASH ANALOG TO DIGITAL CONVERTER Pros Very Fast (Fastest) Very simple operational theory Speed is only limited by gate and comparator propagation delay Cons o Expensive o Prone to produce glitches in the output o Each additional bit of resolution requires twice the comparators and resistors SIGMA-DELTA ANALOG TO DIGITAL CONVERTER Input over sampled, goes to integrator Integration compared with ground Iteration drives integration of error to zero Output is a stream of serial bits SIGMA-DELTA ANALOG TO DIGITAL CONVERTER Pros High resolution No need for precision components Cons oSlow due to over sampling o Only good for low bandwidth COMPARISON OF ADCS Type Speed (relative) Cost (relative) Resolution Dual Slope Slow Med 12-16 Flash Very Fast High 4-12 Successive Approx Medium – Fast Low 8-16 Sigma – Delta Slow Low 12-24 ANALOG TO DIGITAL CONVERTER APPLICATIONS Nikita Pak ANALOG TO DIGITAL CONVERTER APPLICATIONS Music recording Data acquisition/measurement devices thermocouples digital multimeters strain gauges Consumer Products cell phones digital cameras MUSIC RECORDING A to D used to convert sound pressure waves into discrete digital signal (later, D to A used to convert back to an electrical signal for a speaker) Saves a tremendous amount of space Ex. CD samples at 44.1 kHz (Nyquist frequency = 22.05 kHz is higher than human ear can detect) CD recording often done with flash A to D DATA ACQUISITION Data acquisition: the process of obtaining signals from sensors that measure physical conditions Sensors give analog voltage that must be converted to work on a computer Most National Instruments DAQ’s use successive approximation A to D MEASUREMENT DEVICES Thermocouple: a junction of dissimilar metals creates a voltage difference that is temperature dependent Digital multimeter: converts signal to a voltage and amplifies it for measurement More accurate than analog counterparts MEASUREMENT DEVICES Strain gauge: most common type measures the change in resistance as a metal pattern is deformed R L A CONSUMER PRODUCTS Cell phones: convert your voice into a digital signal so it can be more efficiently transmitted by compressing the signal Digital camera ccd: absorbed photons create charges that are converted into a sequence of voltages These voltages are converted to a digital signal Both often use flash A to D ADC ON YOUR MICROCONTROLLER Input Pins ADC Built-into MC9S12C32 ADC IN BLOCK DIAGRAM ATD 10B8C Port AD DETAILS OF ATD 10B8C Analog-To-Digital Resolution: 8 or 10 Bits (manually chosen) 8-Channel multiplexed inputs Conversion time: 7 µs (for 10 bit mode) Optional external trigger “Successive approximation” type ADC ATD 10B8C BLOCK DIAGRAM ATD 10B8C BLOCK DIAGRAM Reference Voltages Results of Successive Approximation Source Vsource “Holds” Source Voltage REGISTERS AND SETTING James Potter UP YOUR ATD10B8C ADC REGISTERS All information about registers found in Chapter 8 of MC9S12C Family Reference Manual 8 Result Registers 6 Control Registers 2 Status Registers 2 Test Registers 1 Digital Input Enable Register 1 Digital Port Data Register RESULT REGISTERS RESULT REGISTERS 8 registers, Each with High and low byte RESULT REGISTERS: LEFT-JUSTIFIED (DEFAULT) High Byte Low Byte RESULT REGISTERS: RIGHT-JUSTIFIED High Byte Low Byte CONTROL REGISTERS CONTROL REGISTERS: ATDCTL2 CONTROL REGISTERS: ATDCTL2 CONTROL REGISTERS: ATDCTL3 CONTROL REGISTERS: ATDCTL3 CONTROL REGISTERS: ATDCTL4 CONTROL REGISTERS: ATDCTL4 CONTROL REGISTERS: ATDCTL5 CONTROL REGISTERS: ATDCTL5 CONTROL REGISTERS: ATDCTL5 SINGLE CHANNEL (MULT = 0) SINGLE CONVERSION (SCAN = 0) ATDDR7 ATDDR6 7 6 5 4 3 2 1 0 ATDDR5 ATDDR4 ATDDR3 Port AD Result Register Interface ATD Converter ATDDR2 ATDDR1 ATDDR0 SINGLE CHANNEL (MULT = 0) CONTINUOUS CONVERSION (SCAN = 1) ATDDR7 ATDDR6 7 6 5 4 3 2 1 0 ATDDR5 ATDDR4 ATDDR3 Port AD Result Register Interface ATD Converter ATDDR2 ATDDR1 ATDDR0 MULTIPLE CHANNEL (MULT = 1) SINGLE CONVERSION (SCAN = 0) ATDDR7 ATDDR6 7 6 5 4 3 2 1 0 ATDDR5 ATDDR4 ATDDR3 Port AD Result Register Interface ATD Converter ATDDR2 ATDDR1 ATDDR0 SINGLE CHANNEL (MULT = 1) CONTINUOUS CONVERSION (SCAN = 1) ATDDR7 ATDDR6 7 6 5 4 3 2 1 0 ATDDR5 ATDDR4 ATDDR3 Port AD Result Register Interface ATD Converter ATDDR2 ATDDR1 ATDDR0 STATUS REGISTERS STATUS REGISTER 0: ATDSTAT0 STATUS REGISTER 0: ATDSTAT0 STATUS REGISTER 1: ATDSTAT1 SETTING UP YOUR ATD10B8C SETTING UP THE ATD Step 1: Power-up the ATD and define settings in ATDCTL2 ADPU = 1 powers up the ATD ASCIE = 1 enables interrupt Step 2: Wait for ATD recovery time (~ 20μs) before proceeding Step 3: Set number of successive conversions in ATDCTL3 S1C, S2C, S4C, S8C determine number of conversions (see Table 8-4) SETTING UP THE ATD Step 4: Configure resolution, sampling time, and ATD clock speed in ATDCTL4 PRS0, PRS1, PRS2, PRS3, PRS4 set sampling rate (see Table 8-6) SRES8 sets resolution to 8-bit (= 1) or 10-bit (= 0) Step 5: Configure starting channel, single/multiple channel, SCAN and result data signed or unsigned in ATDCTL5 CC, CB, CA determine input channel (see Table 8-12) MULT sets single (= 0) or multiple (= 1) inputs SCAN sets single (= 0) or continuous (= 1) sampling DJM sets output format as left-justified (=0) or right-justified (=1) DSGN sets output data as unsigned (=0) or signed (=1) THANK YOU