Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
The 68HC11 Microcontroller Chapter 11: 68HC11 Analog to Digital Converter The 68HC11 Microcontroller Han-Way Huang Minnesota State University, Mankato H. Huang Transparency No.11-1 The 68HC11 Microcontroller Basics on A/D Conversion - Almost any measurable quantity, for example, current, voltage, temperature, speed, and time, is analog in nature. - Analog signals must be represented in digital format in order to be processed by the digital computer. - An analog to digital (A/D) converter can convert a electrical voltage to a digital value. - A non-electrical quantity must be converted into electrical voltage before it can be converted into digital value. - A transducer is normally used to convert a non-electrical quantity into a electrical voltage so that it can be further processed by a computer. - The accuracy of an A/D converter is dictated by the number of bits it used to represent the digital value. -An A/D conversion system is illustrated in Figure 11.1 H. Huang Transparency No.11-2 The 68HC11 Microcontroller Nonelectric quantity such as temperature pressure light weight airflow humidity . . . Transducer Such as a sensor, load cell, photocall, or thermocouple . . . voltage signal conditioning circuit voltage A/D converter Digital value Computer (optional) Figure 11.1 The A/D conversion process H. Huang Transparency No.11-3 The 68HC11 Microcontroller Optimal Voltage Range for the A/D Converter - A/D converter needs a low reference voltage and a high reference voltage to operate. - The low reference voltage (VLREF) is often set to 0 and the high reference voltage (VHREF) is often set to VCC. - Most A/D converters are ratiometric. - To take advantage the whole dynamic range of the A/D converter, we should set scale and shift the sensor output to VLREF ~ VHREF. - The A/D conversion result x corresponds to an analog voltage given by Vx = VLREF + (range x) (2n – 1) where, range = VHREF – VLREF H. Huang Transparency No.11-4 The 68HC11 Microcontroller Example 11.1 Assume there is a 12-bit A/D converter with VLREF = 0V and VHREF = 5V. Find out the corresponding voltage values for A/D conversion results of 100, 400, 800, 1200, and 2400. Solution: range = VHREF – VLREF = 5 V. V(100) = 0V + (100 5) (212 – 1) = 0.12 V V(400) = 0V + (400 5) (212 – 1) = 0.49 V V(800) = 0V + (800 5) (212 – 1) = 0.98 V V(1200) = 0V + (1200 5) (212 – 1) = 1.46 V V(2400) = 0V + (2400 5) (212 – 1) = 2.93 V H. Huang Transparency No.11-5 The 68HC11 Microcontroller An Overview of the 68HC11 A/D Converter - - Eight-channel, 8-bit, multiplexed input, successive-approximation conversion method. A weighted array of capacitors are used to implement the successive-approximation method. A clock signal is required to control the A/D conversion that must have a frequency no lower than 750 KHz. Reference voltages are required for the conversion: one is high reference (VRH) voltage, the other is low reference (VRL) voltage. The difference between VRH and VRL cannot be lower than 2.5 V. Accuracy is only guaranteed for VRL = 0 V and VRH = 5 V. The conversion is ratiometric. The input voltage VRL converts to $00 and the input voltage VRH converts to $FF. H. Huang Transparency No.11-6 The 68HC11 Microcontroller The Clock Frequency Issue - The A/D converter requires a clock to operate. Either the E clock or the on-chip RC clock signal can be used. The RC clock runs at 1.5 MHz. To choose the E clock signal, clear the bit 6 of the OPTION register to 0. To select RC clock signal, set the bit 6 of the OPTION register to 1. This circuit requires 10 ms to start and settle. - The 68HC11 completes the conversion of one sample in 32 clock cycles. Registers Related to the A/D Operation - ADCTL: - OPTION: - ADR1-4: A/D control/status register bits 7 and 6 A/D result registers 1 to 4 H. Huang Transparency No.11-7 The 68HC11 Microcontroller A/D Control Register (ADCTL) Value after reset 7 6 CCF 0 0 0 5 4 SCAN MULT u u 3 2 1 0 CD CC CB CA u u u u ADCTL at $1030 CCF : Conversion complete flag. This read-only flag is set when all four A/D result registers contain valid conversion results. Each time the ADCTL register is written, this bit is automatically cleared to 0 and a conversion sequence is started. SCAN: Continuous scan control. When this bit is 0, the four requested conversions are performed once to fill the four result registers. When this bit is 1, conversions continue in a round-robin fashion with the result registers being updated as data becomes available. MULT : Multiple-channel/single-channel control. When this bit is 0, the A/D system performs four consecutive conversions on the single channel specified by the four channel select bits (CD through CA, bits 3-0 of the ADCTL register). When this bit is 1, the A/D system is configured to perform a conversion on each of four channels, with each result register corresponding to one channel. CD: Channel select D. CC: Channel select C. CB: Channel select B. CA: Channel select A. These four bits are used to select one of the sixteen A/D channels. When a multiple-channel mode is selected, the two least significant bits (CB and CA) have no meaning, and the CD and CC bits specify which group of four channels is to be converted. The channels selected by the four channel select bits are shown in Table 11.1. H. Huang Transparency No.11-8 The 68HC11 Microcontroller CD CC CB CA 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Channel signal AN0 AN1 AN2 AN3 AN4* AN5* AN6* AN7* reserved reserved reserved reserved VRHpin** VRLpin** (V RH)/2** reserved** Result in ADRx if MULT = 1 ADR1 ADR2 ADR3 ADR4 ADR1 ADR2 ADR3 ADR4 ADR1 ADR2 ADR3 ADR4 ADR1 ADR2 ADR3 ADR4 * Not avaliable in 48-pin package. ** These channels are intended for factory testinig. Table 11.1 Analog-to-digital channel assignments H. Huang Transparency No.11-9 The 68HC11 Microcontroller The OPTION Register Value after reset ADPU CSEL IREQ DLY CME 0 CR1 CR2 0 0 0 1 0 0 0 0 OPTION at $1039 ADPU: A/D power up. When set to 1, it enables the A/D converter. After setting this bit, the user must wait at least 100 ms before using the A/D converter. CSEL: clock select. When set to 1, the RC clock signal is selected. Otherwise, the E clock is selected. It takes 10 ms for RC clock to stabilize. H. Huang Transparency No.11-10 The 68HC11 Microcontroller The Procedure for Using the A/D Converter Step 1. Connect the hardware properly. Scale and shift the analog inputs, when necessary, so that they fall between VRH and VRL. Step 2. Set the ADPU bit of OPTION register to enable the A/D converter. Step 3. Select the appropriate clock signal by setting or clearing the CSEL bit of the OPTION register. Step 4. Wait for the A/D converter to stabilize. Step 5. Select the appropriate channel(s) and operation modes by programming the ADCTL register. Step 6. Wait until the CCF flag of the ADCTL register becomes 1 and collect the conversion results. H. Huang Transparency No.11-11 The 68HC11 Microcontroller Example 11.5 Write an instruction sequence to set up the following A/D conversion parameters: Nonscan mode Single-channel mode Select channel AN0 Choose the E clock as the clock source for the A/D converter Enable A/D converter Solution: Set bit 5 of ADCTL to 0 to select nonscan mode. Set bit 4 of ADCTL to 0 to select single-channel mode. Set bits 3-0 of ADCTL to 0000 to select channel AN0. Write the value $00 into the ADCTL register. Set the bit 7 of the OPTION register to enable A/D charge pump. Clear the bit 6 of the OPTION register to select E clock as the A/D control clock signal. Wait for 100 ms for the converter to stabilize. H. Huang Transparency No.11-12