Академический Документы
Профессиональный Документы
Культура Документы
UPS
Sistemas Microprocesados I
UPS
= 21
(2)
Sistemas Microprocesados I
UPS
2,55
2.55
10
=
=
=
23 1
28 1
255
1
(3)
15
=1
1
24
Sistemas Microprocesados I
UPS
Ejemplo 3
Un DAC de 8 bits tiene una resolucin de 10 mV/LSB. Calcule: a) ; b) . En
ambos casos el cdigo de entrada es de 10000000.
Solucin: (a) se presenta cuando la palabra digital es 11111111. El numero
11111111 tiene un valor decimal de 255. Por lo tanto, D = 255 y aplicando la
ecuacin (3) se obtiene:
= =
10
225 = 2.55
10
128 = 1.28
(4)
La resolucin tambin se define como la relacin del cambio necesario en el valor del voltaje
de entrada, , para producir un cambio en la salida digital de 1 LSB. Si se conoce el valor
del voltaje de entrada a escala total, , necesario para producir una salida digital en la
que todos los dgitos sean 1, la resolucin se calcula de la siguiente manera:
=
2 1
(5)
Sistemas Microprocesados I
UPS
(6)
(7)
Sistemas Microprocesados I
UPS
Ejemplo 4
La salida de un ADC de 8 bits est formada totalmente por unos cuando = 2.55 V.
Calcule: (a) su resolucin; (b) su salida digital. En ambos casos, = 1.28 V
Solucin: (a) De la ecuacin (4)
= 28 = 256
Y de la ecuacin (5):
=
2.55
10
=
8
2 1
Ejemplo 5
Cunto vale el error de cuantizacin del ADC del ejemplo 4?
Solucin: En el ejemplo 4 se calcul el valor de la resolucin como 10 mV por LSB. El
error de cuantizacin es de 1/2LSB o 5 mV.
Sistemas Microprocesados I
UPS
Sistemas Microprocesados I
UPS
Varias configuraciones son posibles, pero en este documento slo se estudiar una red
escalera R-2R con salida de voltaje.
Para simplificar el anlisis y explicacin del funcionamiento de un red de escalera R-2R
considere el DAC de 3 bits mostrado en la figura 4.a. El circuito consta de una red de
interruptores (0 , 1 3 ), una referencia estable de tensin ( ) y la red de escalera R2R de precisin. La salida ( ) se conecta a un circuito aislador (amplificador operacional)
que permite conectarlo sin carga a la siguiente etapa. El valor de puede variar bajo el
rango mximo de voltaje del amplificador. El valor tpico de R est en el rango de 2.5 a
10 .
Figura 4: Circuito de un DAC de 3 bits (a) Red de escalera R-2R con posicin de los interruptores en
100 (b) Circuito equivalente de a (c) Circuito equivalente de b.
8
Sistemas Microprocesados I
UPS
2
(3 )
2
2 + 3
(8)
= 2 (
) = (
) = (
)4
4
2
8
(9)
Una nueva posicin de los interruptores del DAC de 3 bits se muestra en la figura 6.a., que
corresponden al cdigo binario 001 (D=1). El circuito puede ser simplificado a la forma
equivalente mostrada en la figura 6.b. Los voltajes de los nodos (A, B, C) formados por las
ramas de resistencias pueden ser fcilmente calculados de una manera similar y la salida de
voltaje se convierte en
=
= 2 (
) = (
) = (
)1
16
8
8
(10)
Sistemas Microprocesados I
UPS
Figura 6: Circuito de un DAC de 3 bits (a) Red de escalera R-2R con posicin
de los interruptores en 001 (b) Circuito equivalente de a.
De una manera similar, se pueden calcular las restantes salidas de voltaje para un DAC de 3
bits ingresando todas las posibles combinaciones binarias. En forma general y en trminos
del circuito real, la salida de voltaje para cualquier DAC est dada por
= ( )
2
(11)
Donde D es igual al valor decimal de la entrada digital y la resolucin del DAC est dada por
=
10
(12)
Sistemas Microprocesados I
UPS
Ejemplo 6
Las resistencias que forman parte de la red de escalera R-2R de un DAC de 4 bits tienen
valores de R = 10 k y de 2R = 20 k. vale 10 V. Calcular: (a) la resolucin de la
escalera; (b) su ecuacin de entrada-salida; (c) correspondiente a una entrada digital
dc 1111.
Solucin: (a) De la ecuacin (12):
=
10
= 4 = 0.625
2
2
11
Sistemas Microprocesados I
UPS
Sistemas Microprocesados I
UPS
13
Sistemas Microprocesados I
UPS
(13)
Segn la ecuacin 13 el tiempo de conversin ser tato ms largo cuanto mayor sea ,
si se mantiene la entrada de reloj constante.
Ejemplo 7
Mediante un reloj de 1 MHz se excita un ADC de aproximaciones sucesivas de 8 bits.
Calcule su tiempo de conversin.
Solucin: El tiempo correspondiente a un pulso de reloj es 1 s. De la ecuacin (13):
= 1(8 + 1) = 9
Sistemas Microprocesados I
UPS
15
Sistemas Microprocesados I
UPS
Sistemas Microprocesados I
UPS
CHS2:CHS0
CANAL
000
Canal 0, (RA0/AN0)
001
Canal 1, (RA1/AN1)
010
Canal 2, (RA2/AN2)
011
Canal 3, (RA3/AN3)
100
Canal 4, (RA5/AN4)
101
Canal 5, (RE0/AN5)
110
Canal 6, (RE1/AN6)
111
Canal 7, (RE2/AN7)
+ +
=
=
2 1
210 1
1024
(14)
5 0
= 4.8 /
1024
17
Sistemas Microprocesados I
UPS
de esta forma si la lectura hecha por el microcontrolador es de D = 512 LSB (valor decimal
de la salida digital del ADC), la tensin analgica leda es:
= = 4.8
512 = 2.4576
Despus de un reset, los bits PCFG3:PCFG0 quedan en el valor 0, por lo que los terminales
del puerto A y E estn asignados al mdulo de conversin A/D y la tensin de referencia se
toma de la alimentacin de microcontrolador. Para asignar como digitales los terminales de
estos puertos, hay que programar la opcin correspondiente en el registro ADCON1.
Las conversiones A/D se realizan en sincronismo con una seal de reloj. Este reloj se obtiene
o bien del oscilador principal del microcontrolador ( ) mediante un divisor programable,
o bien de un oscilador RC interno de frecuencia de fija ( , entre 167 kHz a 500 kHz), no
representado en la figura 10. Con los bits ADCS1y ADCS0 del registro ADCON0 junto con el
18
Sistemas Microprocesados I
UPS
bit ADCS2 del registro ADCON1 se selecciona la fuente del reloj y se programa el divisor de
frecuencia si la fuente es el oscilador principal del microcontrolador. Para que el ADC
funcione mientras el microcontrolador est en modo de bajo consumo (sleep), hay que
seleccionar el oscilador RC interno. En el tabla 3 se presentan las posibles configuraciones
para la seleccin de la seal de reloj.
ADCON1
ADCS2
ADCON0
ADCS1:ADCS0
00
/2
01
/8
10
/32
11
00
/4
01
/16
10
/64
11
Para iniciar una conversin A/D hay que activar el bit del control GO. Cuando ha terminado
. En realidad, GO y
estn realizados
la conversin, se activa el bit del estado
del registro ADCON0 (figura 10). El programador debe
en un mismo bit: el bit /
poner a 1 ese bit para iniciar una conversin A/D y cuando este bit toma el valor de 0, el
resultado de la conversin est disponible en ADRESH y ADRESL. Cuando finaliza una
conversin A/D, se activa tambin el bit ADIF del registro PIR para solicitar interrupcin. Si
el bit ADIE del registro PIE est activo y el sistema de interrupcin del microcontrolador est
habilitado (el bit GIE del registro INTON es 1), la solicitud de interrupcin se hace efectiva.
Resumen
En canal de la entrada analgica se selecciona con los bits CHS2, CHS1 y CHS0 del
registro ADCON0 (ver tabla 1).
Los bits PCFG3:PCFG0 del registro ADCON1 permiten configurar los terminales del
microcontrolador utilizados por el mdulo de conversin A/D como entradas
analgicas del mdulo o como terminales digitales de los puertos paralelos A y E (ver
tabla 2)
19
Sistemas Microprocesados I
UPS
Segn el fabricante, el tiempo de adquisicin en los PIC de gama media est entre 10 s y
20 s, es decir,
10s 20s
20
(15)
Sistemas Microprocesados I
UPS
La falta del seguidor de tensin de entrada mostrado en la figura 9 hace que dependa
mucho de la resistencia de la salida ( ) de la fuente de tensin de entrada. El fabricante de
los PIC recomienda que sea siempre menor que 10 k. Si = 10 , resulta que
= 20 , y para = 50 se obtiene = 10 .
En el convertidor A/D de 10 bits de los PIC de gama media, segn el fabricante, el tiempo
de conversin de un dato de 10 bits es 11.5 veces el tiempo de conversin de un bit:
= 11.5
(16)
(17)
Sistemas Microprocesados I
UPS
2/
2/
(para = . )
1.25 MHz
100
4/
4/
2.5 MHz
001
8/
8/
5 MHz
101
16/
16/
10 MHz
010
32/
32/
20 MHz
110
64/
64/
20 MHz
X11
2 a 6
(Nota 1)
(Nota 1)
Tabla 4: Valor (mximo) que debe tener la frecuencia ( ) del oscilador principal
del PIC16F877A para que el tiempo de adquisicin (mnimo) por bit ( ) sea de 1.6
s, en las diferentes configuraciones.
(18)
Puede calcularse que, en los PIC, el menor valor de est entre 20.4 s y 38.4 s.
Si una seal analgica se digitaliza peridicamente con un periodo , denominado periodo
1
(19)
1
+2
22
(20)
Sistemas Microprocesados I
UPS
Ejemplo 8
Calcule del tiempo de digitalizacin para una conversin A/D de 10 bits en un
PIC16F877A con un oscilador principal de 4 MHz
Solucin: Si la frecuencia del oscilador principal es OSC = 4MHz , teniendo en cuenta
la tabla 4, se selecciona la configuracin dada por los bits ADCS2:ADCS0 = 001, con lo
cual resulta =
( + )
Sistemas Microprocesados I
UPS
b. Configurar el formato del resultado de la conversin A/D con el bit ADFM del
registro ADCON1.
c. Seleccionar la procedencia del reloj del mdulo de conversin A/D y el valor
apropiado del tiempo de conversin por bit ( ) mediante los bits
ADSC1:ADSC0 de ADCON0 y el bit ADSC2 del registro ADCON1.
d. Seleccionar el canal analgico de entrada mediante los bits CHS2:CHS0 de
ADCON0.
e. Activar el modulo A/D mediante el bit ADON del registro ADCON0.
2. Si el modulo se atiende por interrupcin, configurar la interrupcin del mdulo de
conversin A/D.
a. Poner a 0 el indicador de interrupcin del convertidor A/D, que es el bit ADIF
del registro PIR.
b. Habilitar la interrupcin del convertidor A/D, poniendo a 1 el bit ADIE del
registro PIE.
c. Habilitar el sistema de interrupcin del PIC, poniendo a 1 el bit GIE del
registro INTCON.
3. Esperar el tiempo de adquisicin ( ) requerido.
del registro ADCON0.
4. Comenzar la conversin A/D al poner en 1 el bit /
5. Esperar que se complete la conversin A/D:
del
a. Si el tratamiento es por consulta o espera: cuando el bit /
registro ADCON0 vaya a 0 o el bit ADIF de registro PIR vaya a 1.
b. Si el tratamiento es por interrupcin: cuando se produce la interrupcin del
convertidor A/D.
6. Leer el resultado de la conversin en los registros ADRESH y ADRESL. Poner el bit
ADIF a 0 si fuese necesario.
7. Para realizar otra adquisicin, ir a los pasos 1, 2 o 3 en funcin de lo que se necesite.
Esperar al menos un tiempo igual a 2 antes de comenzar otra adquisicin (esto
no es necesario para el PIC16F877A debido a que el interruptor de muestreo se
cierra en cuanto se obtiene el resultado).
24
Sistemas Microprocesados I
UPS
ADCON0
ADCS1:ADCS0
00
/2
ADC_CLOCK_DIV_2
01
/8
ADC_CLOCK_DIV_8
10
/32
ADC_CLOCK_DIV_32
11
00
/4
ADC_CLOCK_DIV_4
01
/16
ADC_CLOCK_DIV_16
10
/64
ADC_CLOCK_DIV_64
11
setup_adc (modo)
ADC_CLOCK_INTERNAL
ADC_CLOCK_INTERNAL
Tambin existe la opcin ADC_OFF para indicar que no se utilizar el mdulo ADC del
microcontrolador.
setup_adc_ports (valor);
Esta funcin configura los pines del ADC para que sean analgicos, digitales o alguna
combinacin de ambos. Las combinaciones permitidas varan, dependiendo del
microcontrolador.
valor: definicin de las entradas analgicas correspondiente a los bits PCFG3:PCFG0 del
ADCON1 de acuerdo a la tabla 6.
25
Sistemas Microprocesados I
UPS
set_adc_channel (canal);
Especifica el canal a utilizar por la funcin read_adc ( ).
canal: seleccin del canal analgico correspondiente a los bits CHS2:CHS0 de ADCON0 (ver
tabla 7). El nmero de canal empieza en 0. Es preciso esperar un corto espacio de tiempo
(generalmente 10 ) despus de cambiar el canal de adquisicin, antes de que se puedan
obtener lecturas de datos vlidos.
CHS2:CHS0
CANAL
set_adc_channel (canal)
000
Canal 0, (RA0/AN0)
001
Canal 1, (RA1/AN1)
010
Canal 2, (RA2/AN2)
011
Canal 3, (RA3/AN3)
100
Canal 4, (RA5/AN4)
101
Canal 5, (RE0/AN5)
110
Canal 6, (RE1/AN6)
111
Canal 7, (RE2/AN7)
Sistemas Microprocesados I
UPS
ADC_START_ONLY
ADC_READ_ONLY
27
Sistemas Microprocesados I
UPS
PROGRAMA:
28
Sistemas Microprocesados I
UPS
Segn se muestra en la figura 14, el voltaje de alimentacin del sensor LM35 puede tener
un rango de variacin entre 4 V a 20 V. El valor de la resistencia 1 se elige en funcin de la
ecuacin 1 = /50 , por ejemplo, para una fuente de alimentacin de 5 V se tendra
un valor de 1 = 5 /50 = 100 .
El sensor LM35 est disponible en varios tipos de encapsulados hermticos, uno de los ms
utilizado es el paquete TO-92 que se muestra en la figura 15.
Figura 15: Sensor LM35 a) Distribucin de los pines, vista inferior b) Apariencia fsica
Junto con el sensor LM35 se suele utilizar una etapa de adaptacin para obtener un rango
de salida 0 a 5 V para poder ingresarlos al microcontrolador, este circuito est formado por
un inversor de ganancia unidad y un sumador (figura 16).
29
Sistemas Microprocesados I
UPS
La tensin de salida de la etapa de adaptacin en funcin de la tensin del LM35 (35) es:
=
6
6
35
4
5
debe ser 0 V para una entrada de -0.55 V y de 5 V para una entrada de 1.5 V. La tensin
de polarizacin ( ) del sumador es de -5 V. Con estos datos los valores si se selecciona
6 = 10 son 4 = 4100 y 5 = 37270 (estas dos ltimas se pueden estandarizar
a 4 = 4 y 5 = 36 ). De esta forma se obtienen 0.109 V para -55 C y 4.888 V para
150 C. Para la 2 se elige una funcin de lo sealado por el fabricante del LM35, tal y como
se ha indicado anteriormente.
La salida de la etapa de adaptacin se puede conectar al PIC y tan slo es necesario aplicar
el escalado en el software para determinar la temperatura (ver figura 17).
Sistemas Microprocesados I
UPS
2 1 150 (55)
=
= 41
2 1
50
Sistemas Microprocesados I
UPS
PROGRAMA:
32
Sistemas Microprocesados I
UPS
+ 1.7 1.5
=
= 0.195/
2 1
1023
Ejemplo 3: Realizar la lectura de una seal analgica que oscila entre 1.5 V y 1.7 V. Realizar
las conexiones mostradas en la figura 19 con la finalidad de mejorar la resolucin del
conversor A/D. Utilizar el canal AN0 para el proceso de adquisicin y mostrar en un LCD el
valor de la tensin medida.
La fuente PULSE est ubicada en la opcin Generator Mode al lado izquierdo de la ventana
principal del ISIS de Proteus. Para configurar los valores de tensiones mnima y mxima en
la fuente PULSE se da doble clic sobre el cono del circuito y se colocan los valores mostrados
en la figura 20.
33
Sistemas Microprocesados I
UPS
PROGRAMA:
34
Sistemas Microprocesados I
UPS
Ejemplo 4: Realizar la Conversin Digital Analgica (seal de -1.5 V a 1.5 V) haciendo uso de
un DAC externo de 8 bits. (figura 21).
35
Sistemas Microprocesados I
UPS
Figura 21: Uso de un DAC externo para generar un seal de -1.5 V a 1.5 V.
El DAC utilizado es un modelo genrico de ISIS, tan solo hay que fijar las tensiones de
referencia e introducir el dato por el puerto paralelo. En este caso se obtiene una seal de
-1.5V a +1.5 V utilizando un dato de 8 bits (de 0 a 255). En este DAC se puede modificar la
conversin mediante el men de la figura 22.
36
Sistemas Microprocesados I
UPS
Los resultados segn el tipo de conversin se muestran en la siguiente tabla (para una
referencia de 1,5 V).
Tabla 7: Posibles valores de salida del DAC externo en funcin del modo de salida configurado.
PROGRAMA:
37
Sistemas Microprocesados I
UPS
del convertidor R-2R, es de fcil desarrollo dado que consiste en un arreglo de conexiones
de resistencias, donde una es el doble de la otra, de ah su nombre R-2R.
Cabe resaltar que cuantos ms bits, posea la conversin mayor ser su resolucin y por
consiguiente mayor la calidad de la seal reconstruida. Las desventajas notables de este
arreglo son, el incremento del hardware requerido y el uso de una cantidad mayor de pines
de los puertos. En la siguiente grfica se puede apreciar la configuracin de las resistencias
para una conversin de 8 bits:
Este arreglo puede ser expandido con la misma arquitectura para conseguir hacer un
convertidor de mayor resolucin, aumentando el nmero de entadas D, o lo que es igual el
nmero de bits. Otra caracterstica de este tipo de conversin es que no requiere de
libreras especializadas, solo basta con colocar el valor numrico a convertir en un puerto,
y el valor anlogo har presencia en la salida.
El valor de R se fija a 10 k y las resistencias de 2R a 20 k. El programa de prueba puede
ser el del ejemplo anterior.
38
Sistemas Microprocesados I
UPS
Figura 24: Uso de una red R-2R para generar un seal de 0 V a 1.5 V.
PROGRAMA
39
Sistemas Microprocesados I
UPS
9. BILIOGRAFA
[1] R. COUGHLIN, F. DRISCOLL, Amplificadores operacionales y circuitos integrados
lineales, Editorial Prentice Hall, Quinta Edicin, Mxico, 1999, 552 pginas.
[2] F. VALDS, R. PALLS, MICROCONTROLADORES FUNDAMENTOS Y APLICACIONES CON
PIC, Editorial Marcombo, Primera Edicin, Espaa, 2007, 340 pginas.
[3] E. GARCA, Compilador C CCS y Simulador Proteus para Microcontroladores PIC,
Editorial Marcombo, Segunda Edicin, Mxico, 2012, 340 pginas.
[4] CCS C, CCS C Compiler Manual, Edicin noviembre del 2013, 403 pginas.
40