Top Banner
ADC INTERFACING DOEACC Society, Chandigarh Centre
37
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: ADC Interfacing

ADC INTERFACING

DOEACC Society, Chandigarh Centre

Page 2: ADC Interfacing

Interface 8051 with the following Input / Output Devices

Transducer/Sensors Analogue-to-Digital Conversion (ADC) Digital-to-Analogue Conversion (DAC)

Topic to coverTopic to cover

Page 3: ADC Interfacing

Digital computer/microcontrollers use binary values, but in the physical world most things is in analog nature (continuous).Data (such as temperature, pressure, humidity, velocity, voltage) are analog data.A device called transducer is used to convert the physical quantity to electrical signals (i.e. voltage, current).Transducer are also referred to as sensors.Sensors for temperature, velocity, pressure, light, and many other natural quantities can produce an output voltage (or current) which the value is proportional to the quantity being measured.Then an analog-to-digital converter is used to translate the analog voltage to digital numbers so that microcontroller can read and process them.

Transducer/sensors Transducer/sensors

Page 4: ADC Interfacing

Temperature can be converted to electrical signals by thermistor.

Thermistor is a kind of resistor responds to temperature change by changing its resistance.

But its response is not linear, as seen in the Table 10.1 below.

Temperature (C) Thermistor Resistance (k)

0 29.490

25 10.000

50 3.893

75 1.700

100 0.817

Temperature sensors (ThermistorTemperature sensors (Thermistor))

Table 10.1

Page 5: ADC Interfacing

LM34 series are precision integrated-circuit temperature sensors whose output voltage is linearly proportional to Fahrenheit temperature. LM35 series are precision integrated-circuit temperature sensors whose output voltage is linearly proportional to Celsius temperature. They require no external calibration since it is internally calibrated.Their output voltage changes 10mV for each degree of temperature change.

Item Temperature Range Accuracy Output

LM34 -50 F to +300 F +3.0 F 10 mV/F

LM34C -40 F to +230 F +3.0 F 10 mV/F

LM35 -55 C to +150 C +1.5 C 10 mV/C

LM35C -40 C to +110 C +1.5 C 10 mV/C

LM35D 0 C to +100 C +2.0 C 10 mV/C

Temperature sensors (LM34 and LM35)Temperature sensors (LM34 and LM35)

Table 10.2

Page 6: ADC Interfacing

Need to have some means to convert them into digital signal so that computers can handleAnalog-to-digital converter (ADC) is a device which can convert analogue voltage to digital numbers so that microcontrollers can handle and process the data.ADC are the most widely used devices for data acquisitionADC has n-bit resolution, where n can be 8, 12, 16 or even 24 bits.The higher-resolution ADC provides a smaller step size.Step size is the smallest change that can be recognized by ADC.

Analog-to-digital converter (ADCAnalog-to-digital converter (ADC ) )

Page 7: ADC Interfacing

An ADC has a resolution of 8 bits, the range is divided into 2^8=256 steps (from 0 – 255). But there are 255 quantization levels.

n-bit Number of steps Step Size (mV)

8 2^8 = 256 5/255 = 19.61

10 2^10 = 1024 5/1023 = 4.89

12 2^12 = 4096 5/4095 = 1.22

16 2^16 = 65536 5/65535 = 0.076

Analog-to-digital converter (ADCAnalog-to-digital converter (ADC ) )

12

nccVSizeStep

Vcc is the reference voltage of ADC with n-bit resolutionTable 10.3 : Resolution versus Step Size for ADC

(if Vcc = 5V)

Page 8: ADC Interfacing

ADC0804 Chip ADC0804 Chip (Free Running Mode)(Free Running Mode)

Vin(+)

Vin()

A GND

Vref/2

CLK R

CLK in

CS

RD

D GND

20

6

7

8

9

18

17

1615

14

13

12

11

19

4

1

2

10

3

5

D0D1D2D3D4D5D6D7

WR

INTR

+5V

To LEDs

Normally open START

10k POT

10k

150 pF ADC0804

Figure 10.1

Port of 8-bit uC

Page 9: ADC Interfacing

ADC0804 Chip ADC0804 Chip (Free Running Mode)(Free Running Mode)

(INTR tied to WR with. CS = 0 V)

Continuous Conversions(Extracted from Page 11Of Spec sheet of ADC0804)

Pin diagram ADC0804

D0D1D2D3D4D5D6D7

VI+

VREF/2

VI-

CLK

INTR

WR

RD

CS

CLKR

AGND

VCC

DGND

20191817161514131211

12345678910

Page 10: ADC Interfacing

ADC0804 ChipADC0804 Chip

CSActive low input used to activate the ADC0804 chip.

RD (data enable)Active low input used to get converted data out of the ADC0804 chip. When CS = 0, if a high-to-low pulse is applied to the RD pin, the 8-bit digital output shows up at the D0-D7 data pins.

WR (start conversion)Active low input used to inform the ADC0804 to start the conversion process. If CS = 0 when WR makes a low-to-high transition, the ADC0804 starts converting the analog input value of Vin to an 8-bit digital number. When the data conversion is complete, the INTR pin is forced low by the ADC0804.

Page 11: ADC Interfacing

ADC0804 ChipADC0804 Chip

CLK IN and CLK RConnect to external capacitor and resistor for self-clocking, f = 1/(1.1RC). The clock affect the conversion time and this time cannot be faster than 110s.

INTR (end of conversion)This is an active low output pin. When the conversion is finished, it goes low to signal the CPU that the converted data is ready to be picked up. After INTR goes low, we make CS = 0 and send a high-to-low pulse to the RD pin to get the data out of the ADC0804 chip.

Vin (+) and Vin ()These are the differential analog inputs where Vin = Vin (+) Vin (). Often the Vin () pin is connected to ground and the Vin (+) pin is used as the analog input to be converted to digital.

Page 12: ADC Interfacing

ADC0804 ChipADC0804 ChipVCC

This is the +5V power supply. It is also used as a reference voltage when the Vref/2 (pin 9) input is open.

Vref/2Input voltage pin used for the reference voltage. If this pin is open, the analog input voltage for the the ADC is ranged from 0 to 5 volts.

Vref/2 (V) Vin (V) Step Size (mV)

Not connected 0 to 5 5/255 = 19.60

2.0 0 to 4 4/255 = 15.69

1.5 0 to 3 3/255 = 11.76

1.28 0 to 2.56 2.56/255 = 10.04

1.0 0 to 2 2/255 = 7.84

0.5 0 to 1 1/255 = 3.92

255

V

122

V2

sizestep REF8

REF

Pin Vref/2 is open, Step size =19.6mV

ADC0804 has resolution of 8 bits

Page 13: ADC Interfacing

ADC0804 ChipADC0804 Chip

D0 – D7

D0 – D7 are the digital data output pins. These are the tri-state buffered and the converted data is accessed only when CS = 0 and RD is forced low. The output voltage:

Analog Ground and Digital Ground

Analog ground is connected to the ground of the analog signal while digital ground is connected to the ground of the Vcc pin.

sizeStep

VD in

out

Question: An analog input voltage of 3.5V, Pin Vref/2 is open.Solution:Dout = 3.5V / 19.6mV = 178 or 179 (depends on accuracy of ADC)

Page 14: ADC Interfacing

1. Make CS = 0 and send a L-to-H pulse to pin WR to start the conversion.

2. Keep monitoring the INTR pin. If INTR is low, the conversion is finished and we can go to the next step. If INTR is high, keep polling until it goes low.

3. After the INTR has become low, we make CS = 0 and send a H-to-L pulse to the RD pin to get the data out of the ADC0804 IC chip.

Signal control on ADC0804Signal control on ADC0804

Page 15: ADC Interfacing

Read it

End conversionStart conversion

Data out

CS

WR

D0 – D7

INTR

RD

Note: CS is set to low for both RD and WR pulses

The timing diagram of ADC0804The timing diagram of ADC0804

Figure 10.2

Page 16: ADC Interfacing

Testing the ADC0804Testing the ADC0804

P2.5P2.6

P1.0

P1.7

P2.7

RDWR

D0:::::D7

INTR CS

A GNDVref/2

D GND

VCC

CLK RCLK IN

10k POT

+5V8051 ADC0804

Vin(+)Vin()

P2.5P2.6

Page 17: ADC Interfacing

Example 10-1Example 10-1Write a program to monitor the INTR pin and bring the digital input value into register A. Then call a subroutine to display the input value on a 7-segment display. Do this continuously.

;P2.6 = WR (Start conversion needs a L-to-H pulse); P2.7 = INTR (When low, end-of-conversion); P2.5 = RD (H-to-L will read the data from ADC chip); P1.0 – P1.7 = D0 – D7 of the ADC0804;

MOV P1, #0FFH ; make P1=inputBACK: CLR P2.6 ; WR=0

SETB P2.6 ; WR=1 L-to-H to start conversionHERE: JB P2.7, HERE ; wait for end of conversion

CLR P2.5 ; conversion finished, enable RD

MOV A, P1 ; read the dataACALL DATA_DISPLAY ; display the dataSETB P2.5 ; make RD=1 for next roundSJMP BACK

Page 18: ADC Interfacing

Referred to Example 10.1, the digital values output from the ADC0804 correspond to the analogue voltage inputs. It is calculated by:

12

nccVSizeStep VSizeStep 019608.0

255

5

12

58

Analogue input voltage

Vin (V)

Digital Value Output

Dout

0 0/0.019608 = 0

0.5 0.5/0.019608 = 26

1.0 1.0/0.019608 = 51

1.5 1.5/0.019608 = 77

2.0 2.0/0.019608 = 102

sizeStep

VD in

out

5.0 5.0/0.019608 = 255

Page 19: ADC Interfacing

Temperature detectionA temperature sensor (LM34 or LM35) is interfaced to the 8051 via an ADC (ADC0804)The output voltage from the LM34/LM35 is linearly proportional to the measuring temperatureThe ADC0804 converts the output voltages from the LM34/LM35 into digital signals, which correspond to the measured temperature.They are then handled by the 8051

Example of ADC ApplicationExample of ADC Application

Page 20: ADC Interfacing

Interfacing with the LM35Interfacing with the LM35 (Temperature Sensor)(Temperature Sensor)

P2.5P2.6

P1.0

P1.7

P2.7

RDWR

D0

D7

INTR CS

A GNDVref/2

D GND

VCC

CLK RCLK IN

+5V8051 ADC0804

XTAL1

XTAL2

Q

Q

D Q

Vin(+)Vin()

Set to 1.28V

LM35

Clock freq 4

Q

Q

D Q

Page 21: ADC Interfacing

The ADC0804 converts the output voltages from the LM35 into digital signals, which correspond to the measured temperature.

Step size of the ADC0804 = (1.28)x(2)/255 = 0.01004V Clock input to the ADC0804 = clock frequency 4 If the following data of LM35 are given

the temperature range of the temperature sensor LM35 is -55C to 150C and its output scale is 10mV/C, and

the output value of the ADC0804 is 00H when the LM35 senses -55C

then the value output from the ADC0804 for a measuring temperature 100 C is:

BHorx

Dout 915538.15401004.0

01.))55(100(

Example ADC ApplicationExample ADC Application

sizeStep

VD in

out

Page 22: ADC Interfacing

ADC 0808/0809 CHIP WITH 8 ANALOG CHANNEL

ADC 0804 has one input, this chip has 8 inputs.

A,B,C addresses to select IN0-IN7 and activate ALE to latch in the address

SC to start conversion SC is same as WR

EOC – end of conversion EOC is same as INTR

OE – output enable(READ) OE is same as RD

Page 23: ADC Interfacing

ADC0808/0809 ANALOG CHANNEL SELECTION

Selected Analog Channel C B A

IN0 0 0 0

IN1 0 0 1

IN2 0 1 0

IN3 0 1 1

IN4 1 0 0

IN5 1 0 1

IN6 1 1 0

IN7 1 1 1

Page 24: ADC Interfacing

ALGORITHM

Select an analog channel by provide bits to A, B, C. NOTE : there is no self-clocking and clock must be

provided from an external source to the CLK pin. Hence Enable clock

Activate ALE (address latch enable) with a low-to-high pulse.

Activate SC (start conversion) with a high-to-low pulse The conversion is begun on the falling edge of the start conversion pulse.

Monitor EOC (end of conversion) Pin .After conversion this pin goes high.

Activate OE (output enable) with a low-to-high pulse to read data out of the ADC chip.

Page 25: ADC Interfacing

SELECTING A CHANNEL AND READ TIMING

Page 26: ADC Interfacing

PROGRAM

Page 27: ADC Interfacing
Page 28: ADC Interfacing

The digital-to-analog converter (DAC) is a device widely used to convert digital values to analog signals. It does the reverse operation of an ADCThe resolution of DAC depends on the no. of binary bits input to it.The common ones are 8, 10 and 12 bits.An 8-input DAC provides 256 discrete voltages (or current) levels of output. (The 12-bit DAC gives 4096 discrete levels).

Digital-to-Analog (DAC) ConversionDigital-to-Analog (DAC) Conversion

D0

D7

DACDigital inputs

Analog output(Voltage or current)

Figure 10.5

Page 29: ADC Interfacing

DAC0808 Chip (MC1408)DAC0808 Chip (MC1408)

P2.5P2.6

P1.0

P1.7

Vref (e.g +5V)

8051Vout = 0 to 10V

D0

D7

Comp.

Vee

VCC

DAC0808

Vin(+)

Vin()

GND

+5V

Rref1

Iout

15V

Iref = Vref/(Rref1+Rref2)

= 2mA (Typical)

To Scope

IrefRref 2

R0

+

Figure 10.6

Page 30: ADC Interfacing

DAC0808 Chip (MC1408DAC0808 Chip (MC1408))Operating Principle

• In the DAC0808, the digital inputs are converted to corresponding current (Iout).

• Then by connecting a resistor to the Iout pin, the current will further convert to voltage level.• The total current provided by the output Iout pin is a function of the reference current (Iref) and is follows:

Converting Iout to voltage (Vout)

Connect the output pin Iout to a output standard resistor and hence convert this current to a voltage.

256

D

128

D

64

D

32

D

16

D

8

D

4

D

2

D 01234567refout II

Output voltage, Vout = Iout x Ro

Page 31: ADC Interfacing

Solution:

(a) 99H = 15310

(b) C8H = 20010

Example Example

Assume that Ro = 5kAssume that Ro = 5k, R, Rref1ref1 = 1k = 1k ,, Rref2ref2 = 1.5k and using a standard 5V supply connected to Vref(+),ref(+), calculate Vout for the following binary inputs.(a) 1001 1001 (99H) (b) 1100 1000 (C8H)

mAI ref 215001000

5

mAmAIout 195.1256

153)2(

VkmAVout 975.5)5000)(195.1(

mAmAIout 562.1256

200)2(

VkmAVout 8125.7)5000)(562.1(

Page 32: ADC Interfacing

Example Example

In order to generate a star-step ramp, set up the circuit as in Figure 10.6 and connect the output to an oscilloscope. Then write a program to send data to the DAC at port 1 to generate a stair-step ramp.

Solution:

ORG 0HCLR A

AGAIN: MOV P1, A ; send data to DACINC A ; count from 0 to FFH ACALL DELAY ; let DAC work and recoverSJMP AGAINEND

Page 33: ADC Interfacing

Example Example

Use the circuit in Figure 10.6, write a program to generate a sine wave of full-scale 10V output. If the output is connected to a CRO, draw the display on the CRO screen.

Solution:

Assume 10V full-scale voltage for the DAC output.Vout = [5 + (5 sin )] V

A table is drawn up to list the magnitude of the sine of angles between 0 and 360 degrees. The table values are integer numbers representing the voltage magnitude for the sine .

Table 10.5 gives the angles, the sine values, the voltage magnitudes and the integer values representing the voltage magnitude for each angle (with 30 interval).

Page 34: ADC Interfacing

Table : Angle vs Voltage Magnitude for Sine WaveTable : Angle vs Voltage Magnitude for Sine Wave

Angle (degree)

Sine Vout5V + (5sin )

Voltage Values sent to

DAC0 0 5 128

30 0.5 7.5 192

60 0.866 9.33 238

90 1.0 10 255

120 0.866 9.33 238

150 0.5 7.5 192

180 0 5 128

210 0.5 2.5 64

240 0.866 0.669 17

270 1.0 0 0

300 0.866 0.669 17

330 0.5 2.5 64

360 0 5 128

Vout x 256/10

256 steps and full scale Vout is 10 volts 9.33*256/10

Page 35: ADC Interfacing

Program Generating a Sine WaveProgram Generating a Sine Wave

ORG 0HAGAIN: MOV DPTR, #TABLE

MOV R2, #COUNTBACK: CLR A

MOVC A,@A+DPTRMOV P1,AINC DPTRDJNZ R2, BACKSJMP AGAIN;ORG 300

TABLE: DB 128, 192, 238, 255, 238, 192DB 128, 64, 17, 0, 17, 64, 128;

; To get a better looking sine wave, regenerate the look-up table for 2-degree angles END

Page 36: ADC Interfacing

Display on the Generating Sine Wave on CRODisplay on the Generating Sine Wave on CRO

30 90 150 210 270 330

10

9

8

7

6

5

4

3

2

1

0 /Degrees

V / Volts

V = 5 + 5 * sin

FFh

80h

D7..D0

Page 37: ADC Interfacing

1. In the ADC0804, the INTR signal is an _____ (input, output)

2. In the ADC0804, to begin conversion, send a(n) ______ pulse to pin _____ .

3. Which pin of the ADC0804 indicates end-of-conversion?

4. In a ADC, input is ________ (digital, analog) and output is _______ (digital, analog).

5. Find the step size for an ADC0804 chip if Vref/2 =1.9V .

6. With Vref/2 =0.64V, find the Vin for the D7 –D0 = 1001 1001 output.

7. In a DAC, input is ________ (digital, analog) and output is _______ (digital, analog).

8. DAC0808 is a9n) ___-bit D-to-A converter.

9. The output of DAC0808 is in _________ (current, voltage).

10.Find the Iout for the digital input 1110 1110 to DAC0808. Assume Iref = 2mA.

11.To get a smaller step, we need a DAC with _____ (more, fewer) digital inputs.

12.The LM35 provides ____mV for each degree of _______ (Fahrenheit, Celsius).

Review QuestionsReview Questions