# ADC and DAC Data Converter

Document Sample

using PIC18, Introduction to DAC and DAC interfacing with PIC18.
   Discuss the ADC of the PIC18
   Explain the process of data acquisition using
   Program the PIC18’s ADC in assembly
   Describe the basic operation of DAC
   Interface a DAC chip to the PIC18
   Digital Computer: Binary (discrete) values
   Physical World: Analog (continuous) values
   Example: Temperature, Humidity, Pressure
   Output: Voltage or Current
   Microcontroller? -----> Digital
   Therefore, ADC is needed to translate
(convert) the analog signals to digital
numbers
Microcontroller Connection to Sensor via ADC
n-bit       No. of steps                Step size (mV)
8               28 = 256               5/256 = 19.53

10          210 = 1024                  5/1024 = 4.88

12          212 = 4096                  5/4096 = 1.2

Assuming VREF = 5V

* Step Size (Resolution): is the smallest change that can be discerned by an ADC
   Vref: Input voltage used for the reference
voltage
   The voltage connected to this pin , with the
resolution of the ADC chip, dictate the step
size
to 4 volts, Vref is connected to 4 volts
   Digital data output: 8-bit (D0-D7), 10-bit (D0-
D9)
Vref (V)         Vin (V)                 Step size (mV)
5.00             0 to 5                 5/1024 = 4.88
4.096         0 to 4.096                4.096/1024 = 4
3.0             0 to 3                 3/1024 = 2.93
2.56          0 to 2.56                2.56/1024 = 2.5
2.048         0 to 2.048                2.048/1024 = 2

Vref Relation to Vin Range for an 10-bit ADC
Dout = Vin / Step Size

Digital data output (in   Example:
decimal):                 Vref = 2.56, Vin = 1.7V.
Calculate the Do-D9 output?
8-bit (D0-D7)= 256
10-bit (D0-D9) = 1024     Solution:
Step Size = 2.56/1024 = 2.5mV
Dout = 1.7/2.5mV = 680 (Decimal)
D0-D9 = 1010101000
   Converted values are stored in
   A/D Control Register 0 (ADCON0)
 Controls the operation of the A/D module
   A/D Control Register 1 (ADCON1)
 Configures the functions of the port pins
   A/D Control Register 2 (ADCON2)
 Configures the A/D clock source, programmed
acquisition time and justification
Example:

Different from the Book!   ADCON0 = 00101001
* Different from the Book!
Example:

* Different from the Book!
Example:

* Different from the Book!
For a PIC18-based system, we have Vref = Vdd = 5V. Find
a) The step size and b) The ADCON1 value if we need 3
channels.

a) The step size = 5/1024 = 4,8mV
   Define in term of Tad (Conversion time per
bit)
   To calculate: FOSC/2, FOSC/4, FOSC/8, FOSC/16,
FOSC/32 or FOSC/64
 Make the ADC channel pin as input pin
 Select voltage reference and ADC channel
 Select the conversion speed
 Wait for the required acquisition time
 Activate the start conversion bit of GO/DONE
 Wait for the conversion to be completed by
pooling the end-of-conversion GO/DONE bit
 After the GO/DONE bit has gone LOW, read the
ORG     0000H      OV ER CALL    DELAY
CLRF    TRISD      BACK BTFS     ADCON0, GONE
BSF     TRISA, 0         BRA     BACK
MOVLW   0x0E             CALL    QSEC_DELAY
MOVLW   0xBE             END
Interrupt     Flag Bit   Register      Enable Bit   Register

ADC Interrupt Flag Bits and Associated Registers

* Please see Program 13-2 page 514
   Covert digital pulses to analog pulses
   DAC0808 chip: Use R/2R method, 8-bit

DAC Block Diagram
   The digital inputs are converted to current
(Iout)
   Connecting a resistor to the Iout pin, we
convert the result to voltage
This will course inaccuracy because the Resistance will affect the reading

Iout = Iref (D7/2 + D6/4 + D5/8 + D4/16 + D3/32 + D2/64 + D1/128 + D0/256)

Iref = Generally set to 2.0mA
Example:

Binary input: 10011001
Iout = 2mA (153/256) =
1.195mA

and

Vout = 1.195mA x 5K =
5.975V
Gas Sensor
Sonar Sensor

Temperature Sensor   Humidity Sensor
Characteristic:

1)   Precision integrated-circuit
2)   Output voltage is linearly proportional to the Celcius
3)   Requires no external calibration (Internally calibration)
4)   Output: 10mV for each degree
10mV = 1 degree (Minimum)
20mV = 2 degree
30mV = 3 degree
.
.
.
How to               .
set Vref??            1000mV = 100 degree (Maximum)

Step Size    Vin (max)
5V
= 4.8mV        = 5V        Which
one
Vref = ???                                      suitable?
Step Size    Vin (max)
1.024
= 1mV       = 1.024V
To overcome any
fluctuations in
power supply.

* Please see Program 13-4 page 524
“Things are only impossible until they're not”

DOCUMENT INFO
Shared By:
Categories:
Stats:
 views: 234 posted: 9/7/2010 language: English pages: 31