40
Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa 1 CONVERSIÓN ANALÓGICA DIGITAL Y DIGITAL ANALÓGICA 1. INTRODUCCIÓN El desarrollo de los microprocesadores, microcontroladores y procesadores digitales de señal (DSP), han permitido realizar tareas que durante años fueron hechas por sistemas electrónicos analógicos. Por otro lado, como el mundo real es análogo, una forma de enlazar las variables analógicas con los procesos digitales es a través de los sistemas llamados conversores de analógico – digital (ADC – Analogue to Digital Converter) y conversores digital – analógico (DAC – Digital to Analoque Converter). Un conversor, (o convertidor) de señal analógica a digital (ADC), es un dispositivo electrónico capaz de convertir una señal analógica de voltaje en una señal digital con un valor binario. La señal analógica, que varía de forma continua en el tiempo, se conecta a la entrada del dispositivo y se somete a un muestreo a una velocidad fija, obteniéndose así una señal digital a la salida del mismo. En el conversor digital-analógico (DAC) se parte de muestras en formato digital (valores discretos), y éstas se deben convertir en una señal analógica (valores continuos). El conversor D/A asocia a cada valor binario un nivel de tensión previamente establecido, y genera muestras de tensión utilizando dichos niveles, aplicando un intervalo de tiempo constante entre muestras. 2. CARACTERÍSTICAS DE UN CONVERSOR DIGITAL A ANALÓGICO – DAC 2.1. Resolución En la figura 1 se muestra el símbolo del circuito del DAC de 4 bits, así como sus características de entrada-salida. Hay cuatro entradas digitales, lo que indica que se trata de una DAC de 4 bits. Por cada entrada digital se requiere una señal eléctrica que represente ya sea un 1 lógico o un 0 lógico. 0 es el bit menos significativo (least significant bit, LSB). 3 es el bit más significativo (most significant bit, MSB). En la figura 1(b), se grafica el voltaje de salida analógico en función de 16 posibles palabras de entrada digitales. También se muestra el valor de correspondiente a diversas palabras digitales.

Conversor AD & DA

Embed Size (px)

DESCRIPTION

microcontrolador

Citation preview

Page 1: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

1

CONVERSIÓN ANALÓGICA DIGITAL Y DIGITAL ANALÓGICA

1. INTRODUCCIÓN

El desarrollo de los microprocesadores, microcontroladores y procesadores digitales de

señal (DSP), han permitido realizar tareas que durante años fueron hechas por sistemas

electrónicos analógicos. Por otro lado, como el mundo real es análogo, una forma de enlazar

las variables analógicas con los procesos digitales es a través de los sistemas llamados

conversores de analógico – digital (ADC – Analogue to Digital Converter) y conversores

digital – analógico (DAC – Digital to Analoque Converter).

Un conversor, (o convertidor) de señal analógica a digital (ADC), es un dispositivo

electrónico capaz de convertir una señal analógica de voltaje en una señal digital con un

valor binario. La señal analógica, que varía de forma continua en el tiempo, se conecta a la

entrada del dispositivo y se somete a un muestreo a una velocidad fija, obteniéndose así

una señal digital a la salida del mismo.

En el conversor digital-analógico (DAC) se parte de muestras en formato digital (valores

discretos), y éstas se deben convertir en una señal analógica (valores continuos). El

conversor D/A asocia a cada valor binario un nivel de tensión previamente establecido, y

genera muestras de tensión utilizando dichos niveles, aplicando un intervalo de tiempo

constante entre muestras.

2. CARACTERÍSTICAS DE UN CONVERSOR DIGITAL A ANALÓGICO – DAC

2.1. Resolución

En la figura 1 se muestra el símbolo del circuito del DAC de 4 bits, así como sus

características de entrada-salida. Hay cuatro entradas digitales, lo que indica que se trata

de una DAC de 4 bits. Por cada entrada digital se requiere una señal eléctrica que represente

ya sea un 1 lógico o un 0 lógico. 𝐷0 es el bit menos significativo (least significant bit, LSB).

𝐷3 es el bit más significativo (most significant bit, MSB). En la figura 1(b), se grafica el voltaje

de salida analógico en función de 16 posibles palabras de entrada digitales. También se

muestra el valor de 𝑉𝑜 correspondiente a diversas palabras digitales.

Page 2: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

2

FIGURA 1: (a) Símbolo de circuito y (b) características de entrada-salida.

La resolución se define de dos maneras:

1. La resolución en la cantidad de valores de salida analógicos que se puede obtener

con un DAC. En el caso de un DAC de n bits:

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 = 2𝑛 (1)

2. También se define la resolución como la relación del cambio de voltaje en la salida

que se produce como consecuencia de un cambio 1 LSB en las entradas digitales.

Para calcular la resolución de acuerdo con esta última definición, se necesita contar con dos

tipos de información que pueden obtenerse en hojas de información: el voltaje de salida a

escala total, 𝑉𝑜𝐹𝑆, y la cantidad de entradas digitales, n. Se define a 𝑉𝑜𝐹𝑆 como el voltaje

que se obtiene cuando todas las entradas digitales son 1. Por tanto, la resolución es:

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 =𝑉𝑜𝐹𝑆

2𝑛−1 (2)

Page 3: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

3

En la figura 1 (b) hay n = 4 entradas digitales. Por lo tanto, 𝑉𝑜 tendrá 24 = 16 valores de

salida, del 0 al 15. Observe que 𝑉𝑜𝐹𝑆 = 15 𝑉 cuando la palabra de entrada digital es 1111.

El valor decimal del numero binario 1111 es (24 − 1) = 16 − 1 = 15. Por lo tanto, la

resolución es igual a 15 V/15 = 1 V/ LSB.

2.2. Ecuación de entrada-salida

En el caso de un DAC, mediante una función de transferencia o ecuación de entrada-salida

se da respuesta a la pregunta: ¿en qué medida se modifica el voltaje de salida analógico

como respuesta un cambio en una palabra digital de entrada? Para obtener esta ecuación

se multiplica la resolución por el cambio que se produce en los LSB. Expresado lo anterior

en forma de ecuación:

𝑉𝑜 = 𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 × 𝐷 (3)

En la que 𝑉𝑜 es el voltaje de salida analógico, la resolución esta expresada en la ecuación (2)

y D es el valor decimal de la entrada digital.

Ejemplo 1

Un DAC de 8 bits tiene un rango de voltaje de salida de 0-2.55 V. Defina de dos

maneras su resolución.

Solución: (a) De la ecuación (1):

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛: 2𝑛 = 28 = 256

El voltaje de salida puede tener 256 valores distintos (incluido el cero).

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 = 𝑉𝑜𝐹𝑆

23 − 1=

2,55 𝑉

28 − 1 =

2.55 𝑉

255=

10𝑚𝑉

1 𝐿𝑆𝐵

Ejemplo 2

Suponga que la palabra de entrada digital de una DAC de 4 bits cambia de 0000 a

0110. Calcule el voltaje de salida final del DAC.

Solución: El valor decimal de 0110 es 6. Este valor representa a D, la palabra de

entrada digital. De la explicación anterior, cuando 𝑛 = 4, 𝑉𝑜𝐹𝑆 = 15 𝑉. Aplicando

la ecuación (2) se obtiene:

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 =15 𝑉

24 − 1 = 1

𝑉

𝐿𝑆𝐵

Utilizando ahora la ecuación (3), se obtiene:

𝑉𝑜 = (1 𝑉/𝐿𝑆𝐵 ) 𝑥 6 𝐿𝑆𝐵 = 6 𝑉

Page 4: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

4

3. CARACTERÍSTICAS DE UN CONVERSOR ANALÓGICO A DIGITAL – ADC

3.1. Ecuación de entrada-salida

En la figura 2 (b) se grafica la salida digital de un ADC ideal de 4 bits en función de un voltaje

de entrada analógico. Al igual que en el caso de los DAC, la resolución de un ADC se define

de dos maneras. Primera: la resolución es la cantidad máxima de códigos digitales de salida.

Esta manera de definir la resolución del ADC es similar a la del DAC y a continuación se

repite:

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 = 2𝑛 (4)

La resolución también se define como la relación 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 dígitos sean 1, la resolución se calcula de la siguiente manera:

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 = 𝑉𝑖𝐹𝑆

2𝑛−1 (5)

Ejemplo 3

Un DAC de 8 bits tiene una resolución de 10 mV/LSB. Calcule: a) 𝑉𝑜𝐹𝑆; b) 𝑉𝑜. En

ambos casos el código de entrada es de 10000000.

Solución: (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

ecuación (3) se obtiene:

𝑉𝑜𝐹𝑆 = 𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛 𝑥 𝐷 =10𝑚𝑉

𝐿𝑆𝐵 𝑥 225 𝐿𝑆𝐵𝑠 = 2.55 𝑉

(b) El valor decimal equivalente a 10000000 es 128. Por lo tanto D = 128 y

𝑉𝑜 = 𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖𝑜𝑛 𝑥 𝐷 =10𝑚𝑉

𝐿𝑆𝐵 𝑥 128 𝐿𝑆𝐵𝑠 = 1.28 𝑉

Page 5: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

5

FIGURA 2: Símbolo de circuito y características de entrada-salida de un DAC de 4 bits.

La expresión más sencilla de la ecuación de entrada-salida de una ADC es la siguiente:

Código de salida digital = equivalente binario de D (6)

En la cual D es el valor decimal de la salida digital; o bien, D es igual a la cantidad de bits

presentes en la salida digital; D se calcula mediante la expresión:

𝐷 = 𝑉𝑖

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 (7)

Por ejemplo, observe la figura 2(b), en la cual en la cual 𝑛 = 4 y 𝑉𝑖𝐹𝑆 = 15 𝑉. La resolución

= 15 𝑉/(24 − 1) = 1𝑉/𝐿𝑆𝐵. Si 𝑉𝑖= 5V entonces D=5V/(1 V/LSB) = 5 LSB. El código digital de

D= 5 es 0101.

Page 6: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

6

3.2. Error de cuantización o conversión

En la figura 2 (b) se puede observar que la salida binaria es 0101 para todos aquellos valores

de 𝑉𝑖 que estén entre 4.5 y 5.5 V. Es inevitable que haya incertidumbre sobre el valor exacto

de 𝑉𝑖 cuando la salida es de 0101. A esta incertidumbre se la conoce como error de

cuantización. Tiene un valor de ± 1/2LSB. Se logra una mejor resolución aumentando la

cantidad de bits, con lo que el error de cuantización disminuye.

Ejemplo 4

La salida de un ADC de 8 bits está formada totalmente por unos cuando 𝑉𝑖= 2.55 V.

Calcule: (a) su resolución; (b) su salida digital. En ambos casos, 𝑉𝑖= 1.28 V

Solución: (a) De la ecuación (4)

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 = 28 = 256

Y de la ecuación (5):

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 = 2.55 𝑉

28 − 1 =

10 𝑚𝑉

𝐿𝑆𝐵

(b) De la ecuación (7):

1.28 𝑉

10 𝑚𝑉/𝐿𝑆𝐵 = 128 𝐿𝑆𝐵𝑠

De la ecuación (6):

código de salida digital = equivalente binario de 128 = 10000000

Ejemplo 5

¿Cuánto vale el error de cuantización del ADC del ejemplo 4?

Solución: En el ejemplo 4 se calculó el valor de la resolución como 10 mV por LSB. El

error de cuantización es de ± 1/2LSB o ± 5 mV.

Page 7: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

7

4. PROCEDIMIENTO PARA LA CONVERSIÓN DIGITAL A ANALÓGICA

4.1. Diagrama de bloques

En la figura 3 se muestra el diagrama de bloques de un DAC de tipo resistivo. El voltaje de

referencia, 𝑉𝑟𝑒𝑓, se conecta a una red de resistencia. Mediante un código digital de entra, el

cual pasa por un circuito de control, se accionan interruptores (uno por cada bit) conectados

a la red de resistencias. La salida, tanto en corriente como en voltaje, es una de las

representaciones analógicas del código de entrada digital.

FIGURA 3: Diagrama a bloques y símbolo del circuito de un DAC básico.

La auténtica conversión digital-analógica se lleva a cabo en la red de resistencias. Por ello,

se empezará el estudio de los circuitos de un DAC por la red de resistencias estándar, al cual

se le conoce como red de escalera R-2R.

4.2. Red de escalera R-2R

Una red de escalera R-2R o también llamada escalera de resistencias (ver figura 4.a) es un

circuito electrónico formado por resistencias alternando dos valores posibles, donde un

valor debe ser el doble del otro. Los convertidores digital analógico (DAC) diseñados

mediante una red de escalera R-2R hacen uso de la configuración de las resistencias para

generar una señal analógica a partir de los datos digitales que se presenten en sus entradas.

Page 8: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

8

Varias configuraciones son posibles, pero en este documento sólo se estudiará una red

escalera R-2R con salida de voltaje.

Para simplificar el análisis y explicación 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 tensión (𝑉𝑟𝑒𝑓) y la red de escalera R-

2R de precisión. 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 máximo de voltaje del amplificador. El valor típico 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 posición de los interruptores en

100 (b) Circuito equivalente de a (c) Circuito equivalente de b.

Page 9: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

9

Según se observa en la figura 4.a., la posición de los interruptores 𝐷0, 𝐷1 𝑦 𝐷3 corresponden

al código binario 100 (D=4). El circuito puede ser simplificado a la forma equivalente

mostrada en la figura 4.b. El análisis de la escalera se realiza evaluando los equivalentes de

Thevenin en el circuito; por ejemplo, se ha tomado en consideración todos los elementos

que se encuentran al lado izquierdo del nodo B incluido la resistencia a tierra en ese nodo

(2R) y se obtiene el circuito mostrado en la figura 5. Se empieza a simplificar la resistencias

desde el lado más izquierdo obteniendo el paralelo de 2R||2R=R que se repite en todo el

recorrido hasta llegar al nodo B. Desde cualquiera de los puntos A y B la resistencia

equivalente resulta ser R.

Figura 5. Reducción del circuito utilizando equivalente Thevenin.

Siguiendo el mismo procedimiento explicado anteriormente se llega al nodo C y al final se

obtiene el circuito equivalente mostrado en la figura 4.c., excluyendo al amplificador

operacional. Entonces, el voltaje en el nodo C puede ser fácilmente calculado por el

procedimiento de análisis conjunto de redes como

𝑉𝐶 =𝑉𝑟𝑒𝑓 (

23 𝑅)

2𝑅 +23 𝑅

=𝑉𝑟𝑒𝑓

4

(8)

El voltaje de salida del amplificador se obtiene entonces mediante

𝑉𝑜 =−2𝑅

𝑅𝑉𝐶 = −2 (

𝑉𝑟𝑒𝑓

4) = − (

𝑉𝑜𝐹𝑆

2) = − (

𝑉𝑜𝐹𝑆

8) 4

(9)

Una nueva posición de los interruptores del DAC de 3 bits se muestra en la figura 6.a., que

corresponden al código 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 fácilmente calculados de una manera similar y la salida de

voltaje se convierte en

𝑉𝑜 =−2𝑅

𝑅𝑉𝐶 = −2 (

𝑉𝑟𝑒𝑓

16) = − (

𝑉𝑜𝐹𝑆

8) = − (

𝑉𝑜𝐹𝑆

8) 1

(10)

Page 10: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

10

Figura 6: Circuito de un DAC de 3 bits (a) Red de escalera R-2R con posición

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 términos

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 resolución del DAC está dada por

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 =𝑉𝑜𝐹𝑆

2𝑛

(12)

Page 11: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

11

4. PROCEDIMIENTO PARA LA CONVERSIÓN ANALÓGICA A DIGITAL

4.1. EL ADC de aproximaciones sucesivas.

En la figura 7 se muestra el diagrama a bloques de un ADC de aproximaciones sucesivas.

Consta de un DAC, un comparador y un registro de aproximaciones sucesivas (RAS). Se

necesita una terminal para voltaje de entrada analógica 𝑉𝑒𝑛𝑡. La salida digital se obtiene

tanto en serie como en paralelo. Se necesita como mínimo tres terminales de control. Con

inicio de conversión se empieza la secuencia de la conservación A/D y con fin de conversión

se indica cuando termina la conversión. Mediante una terminal de reloj externo se fija el

tiempo necesario para llevar a cabo cada conversión.

El convertidor de aproximaciones sucesivas se utiliza en aplicaciones donde se necesitan

altas velocidades de conversión. Se basa en realizar sucesivas comparaciones de forma

ascendente o descendente hasta encontrar un valor digital que iguale la tensión entregada

por el conversor D/A y la tensión de entrada.

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 resolución de la

escalera; (b) su ecuación de entrada-salida; (c) 𝑉𝑜 correspondiente a una entrada digital

dc 1111.

Solución: (a) De la ecuación (12):

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 =𝑉𝑜𝐹𝑆

2𝑛 =10 𝑉

24= 0.625 𝑉

(b) Aplicando la ecuación (11) se obtiene:

𝑉𝑂 = −0.625 𝑉 𝑥 𝐷

(c) El valor decimal correspondiente al número binario 1111 es 15; por lo tanto, D = 15

𝑉𝑂 = −0.625 𝑉 𝑥 15 = −9.375

Page 12: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

12

FIGURA 7: Diagrama a bloques de un ADC de aproximaciones sucesivas de 3 bits.

4.2. Funcionamiento del circuito

Mediante un comando de inicio de conversión comienza el ciclo de conversión de analógico

al digital. El registro de aproximación sucesiva (RAS) conecta una secuencia de números

digitales, un número por cada bit, en las entradas de un DAC. Este procedimiento ya se

explicó en la sección 4.

El DAC convierte el número digital en una salida analógica 𝑉𝑜. El voltaje de entrada

analógico, 𝑉𝑒𝑛𝑡, Se compara con 𝑉𝑜 a través de un comparador. El comparador informa al

registro de aproximaciones sucesivas si 𝑉𝑒𝑛𝑡 es mayor o igual que la salida del DAC, 𝑉𝑜, y

ejecuta una comparación por cada uno delos bits. En el caso de una salida de 3 bits, se hacen

tres comparaciones.

La comparación empieza por el MSB y finaliza con el LSB, como se explicará. Al final de la

comparación del LSB, el registro de aproximaciones sucesivas envía una señal que indica el

término de la conversión. El equivalente digital de 𝑉𝑒𝑛𝑡 se encuentran ahora en la salida

digital del registro de aproximaciones sucesivas.

4.3. Analogía de las aproximaciones sucesivas

Suponga que se cuenta con un DAC de 3 bits (que forma parte del ADC) cuya resolución es

igual 1 V/LSB. Ahora se requiere convertir 𝑉𝑒𝑛𝑡 = 6.5 𝑉 en una salida digital. La explicación

de la lógica de control y comparación que realiza el registro de aproximaciones sucesivas

(RAS) para realizar esta conversión se muestra en la figura 8. En este esquema el RAS aplica

el valor MSB de 100 al DAC mediante un pulso de reloj. Su salida, 𝑉𝑜 = 4 𝑉, se compara con

el valor de 𝑉𝑒𝑛𝑡. El MSB (𝐷2) se define como 1 si 𝑉𝑒𝑛𝑡 > 𝑉𝑜, caso contratio 𝐷2 = 0.

Page 13: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

13

Como se ha cumplido la primera condición, el registro de aproximaciones sucesivas aplica

ahora un valor 110 (6 LSB) al DAC, donde 𝐷1 se define como 1 dado que 𝑉𝑒𝑛𝑡 = 6.5 𝑉 y por

tanto es mayor que 𝑉𝑜 = 6 𝑉. Finalmente, el RAS aplica un valor 111 al DAC, dado que

𝑉𝑒𝑛𝑡 = 6.5 𝑉 es menor que el valor de 𝑉𝑜 = 7, 𝐷0 se vuelve cero.

Figura 8: Explicación del funcionamiento del registro de aproximaciones sucesivas. Las líneas gruesas representan la conversión correspondiente a 𝑉𝑒𝑛𝑡 = 6.5 𝑉.

Page 14: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

14

4.4. Tiempo de conversión

En le figura 8 se indica que es necesario un pulso de reloj para que el registro de aproximaciones sucesivas compare cada bit. Pero también se necesita un pulso de reloj adicional para reiniciarlo antes de llevar a cabo una conversión. El tiempo necesario para una conversión analógica-digital debe estar en función del periodo del reloj 𝑇 y de la cantidad de bits 𝑛. La relación que guarda entre sí es:

𝑇𝐶 = 𝑇(𝑛 + 1)

(13)

Según la ecuación 13 el tiempo de conversión 𝑇𝐶 será tato más largo cuanto mayor sea 𝑛, si se mantiene la entrada de reloj constante.

5. AMPLIFICADOR DE MUESTREO Y RETENCIÓN (SHA)

El muestreo ideal de una señal consiste en tomar su valor instantáneo en un instante

específico. En la práctica, tomar una muestra de tensión lleva un tiempo finito, que debe

ser suficientemente breve para que la incertidumbre en el valor de la tensión muestreada

sea imperceptible para el conversor A/D. El valor máximo permitido para el tiempo de

muestreo es tanto más breve cuantos mayores sean la pendiente de la señal muestreada y

el número de bits del conversor A/D.

Si el ADC tuviera que digitalizar (cuantificar y codificar) la entrada en un tiempo tan breve

como el permitido para el muestreo, la resolución posible sería muy pobre. Por esto, al ADC

le precede un amplificador de muestreo y retención (sample and hold amplifier, SHA) o

también conocido como amplificador seguidor y retenedor, cuya estructura funcional se

muestra en la figura 9. Se puede describir como un interruptor de alta velocidad que se

cierra para cargar un condensador de retención (𝐶𝐻) al valor de la tensión de entrada (𝑉𝑖),

precedido de un amplificador seguidor, para ofrecer alta impedancia de entrada, y con un

seguidor de salida, para no descargar el condensador mientras dure la conversión. El

amplificador de salida se conecta entre una señal de entrada analógica (𝑉𝑂), y la entrada

Ejemplo 7

Mediante un reloj de 1 MHz se excita un ADC de aproximaciones sucesivas de 8 bits.

Calcule su tiempo de conversión.

Solución: El tiempo correspondiente a un pulso de reloj es 1 μs. De la ecuación (13):

𝑇𝐶 = 1𝜇𝑠(8 + 1) = 9𝜇𝑠

Page 15: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

15

del ADC. Los convertidores que integran un amplificador de muestreo y retención se

denominan, en inglés, sampling converters.

Figura 9: Estructura funcional de un amplificador de muestreo y retención. En los SHA

integrados en microcontroladores no suele haber ninguno de los dos seguidores de tensión.

Cuando el SHA está en la fase de muestreo, idealmente debería comportarse como un

amplificador de ganancia unidad. Cuando está en la fase de retención, la tensión en los

bornes del condensador debería mantenerse constante; sin embargo, la corrientes de

entrada del amplificador de salida y las corrientes de fuga del interruptor y del propio

condensador, lo van descargando lentamente.

En la transición de retención a muestreo, el condensador tarda un cierto tiempo en cargarse

al valor de la retención de entrada, denominado tiempo de adquisición. Este tiempo será

tanto más breve cuanto menor sea el valor de 𝐶𝐻, por lo que hay un compromiso entre el

tiempo de adquisición y la velocidad de descarga. Si el tiempo de conversión del ADC es

suficientemente breve, este compromiso se puede resolver utilizando el llamado modo de

seguimiento y retención (tranck and hold): en lugar de tomar una muestra rápidamente y

retener su valor durante un tiempo relativamente largo, se cierra un interruptor durante un

tiempo largo que permite al condensador cargarse y seguir la fluctuaciones de la tensión de

entrada, en un instante dado, se abre el interruptor y se digitaliza la tensión del

condensador durante un tiempo relativamente breve.

El tiempo que se tarda el interruptor en abrirse desde que se da la orden hasta que la

tensión en el condensador se “desconecta” de la entrada, se denomina tiempo de apertura

y conlleva una incertidumbre en el instante en el que se toma realmente la muestra, porque

no es un tiempo constante si no sujeto a fluctuaciones erráticas (y breves). El valor de las

incertidumbres del tiempo de apertura de los amplificadores SHA comerciales es inferior a

50 ns.

Page 16: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

16

6. MÓDULO DE CONVERSIÓN A/D EN LOS MICROCONTROLADORES PIC

6.1. Arquitectura del módulo de conversión A/D

Los microcontroladores PIC de Microchip pueden incorporar un módulo de conversión de

señal analógica a señal digital. Los PICs de gama media tienen convertidores A/D de

aproximaciones sucesivas, normalmente de 10 bits. Para el estudio de estos conversores se

va a tomar como referencia el PIC16F877A cuya estructura interna simplificada se muestra

en la figura 10. Los componentes principales de este módulo son:

Multiplexor analógico de 8 canales de entrada.

Amplificador de muestreo y retención SHA (sin seguidor de entrada ni salida).

Convertidor A/D de aproximaciones sucesivas, de 10 bits.

Registros para controlar el modulo (ADCON0 y ADCON1) y para almacenar el

resultado de conversión A/D (ADRESH y ADRESL)

Figura 10: Arquitectura del módulo conversor A/D del PIC16F877A.

El número de entradas analógicas o canales depende del PIC en particular. Para el

PIC16F877A se tiene 8 entradas analógicas, disponibles en los terminales del puerto

paralelo A (RA0/AN0, RA1/AN1, RA2/AN2/VREF-, RA3/AN3/VREF+ y RA5/AN4) y los tres

terminales de puerto E para las entradas analógicas AN5, AN6 y AN7. La selección de canal

se realiza con los bits CHS2:CHS0 del registro ADCON0, según se muestra en la tabla 1.

Page 17: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

17

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)

Tabla 1: Bits de selección del canal

El amplificador de muestreo y retención SHA está compuesto básicamente por un

condensador (sin amplificadores de entrada ni salida), que empieza a cargarse en cuanto se

selecciona en el multiplexor el canal deseado. La tensión en el condensador sigue la

evolución de la tensión de entrada (modo track and hold), y cuando se da una orden el

condensador se desconecta de la entrada analógica y empieza la conversión

El resultado de una conversión A/D se deposita en los registros ADRESH y ADRESL. Dentro

del espacio de 16 bits conformado por este par de registros, los 10 bits resultantes de una

conversión se pueden depositar justificados “a la izquierda” o “a la derecha” según el estado

del bit ADFM del registro ADCON1, tal y como muestra la figura 10. Si el bit ADFM = 0 el

resultado queda “justificado a la izquierda”, por lo que en ADRESH quedan los 8 bits más

significativos de la conversión y los 6 bits menos significativos de ADRESL son leídos como

'0', caso contrario si ADFM = 1 el resultado queda “justificado a la derecha”, con los 8 bits

menos significativos en ADRESL y los 6 bits más significativos de ADRESH son leídos como

'0'.

La tensión de referencia para la conversión A/D puede ser la tensión de alimentación del

microcontrolador (𝑉𝐷𝐷) o una tensión externa que se aplique entre los terminales

AN3/VREF+ y AN2/VREF-. La selección se hace por software, con bits PCFG3:PCFG0 del

registro ADCON1. Entonces la resolución de este ADC viene dada por

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 = 𝑉𝑖𝐹𝑆

2𝑛 − 1=

𝑉𝑅𝐸𝐹+ − 𝑉𝑅𝐸𝐹−

210 − 1=

𝑉𝑅𝐸𝐹+ − 𝑉𝑅𝐸𝐹−

1024

(14)

En el caso de que 𝑉𝑅𝐸𝐹+ = 𝑉𝐷𝐷 = 5 𝑉 y 𝑉𝑅𝐸𝐹− = 𝑉𝑆𝑆 = 0 𝑉 entonces la resolución es:

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 = 5 𝑉 − 0𝑉

1024= 4.8 𝑚𝑉/𝐿𝑆𝐵

Page 18: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

18

de esta forma si la lectura hecha por el microcontrolador es de D = 512 LSB (valor decimal

de la salida digital del ADC), la tensión analógica leída es:

𝑉𝑖 = 𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 𝑥 𝐷 = 4.8 𝑚𝑉

𝐿𝑆𝐵 𝑥 512 𝐿𝑆𝐵 = 2.4576 𝑉

Las tensiones a convertir siempre son positivas.

Como ya se mencionó los bits PCFG3:PCFG0 configuran los terminales del microcontrolador

utilizados por el módulo de conversión A/D como entradas analógicas del módulo o como

terminales digitales de los puertos paralelos correspondientes. A modo de ejemplo, la tabla

3 muestra los valores que toman los bits en un PIC16F877A.

Tabla 2. Asignación de funciones a los terminales de la entrada del puerto A y E en un

PIC16F877A mediante los bits PCFG3:PCFG0 del registro ADCON1. A: entrada analógica,

D: E/S digital, C/R: número de canales/número de voltajes de referencia.

Después de un reset, los bits PCFG3:PCFG0 quedan en el valor 0, por lo que los terminales

del puerto A y E están asignados al módulo de conversión A/D y la tensión de referencia se

toma de la alimentación de microcontrolador. Para asignar como digitales los terminales de

estos puertos, hay que programar la opción correspondiente en el registro ADCON1.

Las conversiones A/D se realizan en sincronismo con una señal 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

Page 19: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

19

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 selección de la señal de reloj.

ADCON1 ADCS2

ADCON0 ADCS1:ADCS0

FRECUENCIA DEL RELOJ

0 00 𝐹𝑂𝑆𝐶/2

0 01 𝐹𝑂𝑆𝐶/8

0 10 𝐹𝑂𝑆𝐶/32

0 11 𝐹𝑅𝐶

1 00 𝐹𝑂𝑆𝐶/4

1 01 𝐹𝑂𝑆𝐶/16

1 10 𝐹𝑂𝑆𝐶/64

1 11 𝐹𝑅𝐶

Tabla 3: Selección de la frecuencia del reloj para la conversión A/D.

Para iniciar una conversión A/D hay que activar el bit del control GO. Cuando ha terminado

la conversión, se activa el bit del estado 𝐷𝑂𝑁𝐸 . En realidad, GO y 𝐷𝑂𝑁𝐸 están realizados

en un mismo bit: el bit 𝐺𝑂/𝐷𝑂𝑁𝐸 del registro ADCON0 (figura 10). El programador debe

poner a 1 ese bit para iniciar una conversión A/D y cuando este bit toma el valor de 0, el

resultado de la conversión está disponible en ADRESH y ADRESL. Cuando finaliza una

conversión A/D, se activa también el bit ADIF del registro PIR para solicitar interrupción. Si

el bit ADIE del registro PIE está activo y el sistema de interrupción del microcontrolador está

habilitado (el bit GIE del registro INTON es 1), la solicitud de interrupción se hace efectiva.

Resumen

Mediante los registros de funciones especiales ADCON0 y ADCON1 en un PIC16F877A, se controla la operación del módulo de conversión A/D.

En canal de la entrada analógica 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 módulo de conversión A/D como entradas analógicas del módulo o como terminales digitales de los puertos paralelos A y E (ver tabla 2)

Page 20: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

20

En el registro ADCON0 el par de bits ADCS1:ADCS0 y en el registro ADCON1 el bit ADCS2, permiten seleccionar la fuente del reloj del convertidor A/D y su frecuencia, según la tabla 3.

𝐺𝑂/𝐷𝑂𝑁𝐸 es el bit de control/estado para iniciar una conversión A/D y conocer si ha finalizado.

El bit ADON = 1 habilita el funcionamiento del módulo de conversión A/D del microcontrolador.

En el registro ADCON1, el bit ADFM determina la justificación (a la derecha o a la izquierda) del resultado de la conversión A/D en los registros ADRESH y ADRESL.

6.2. Tiempos de una conversión A/D

La digitalización de una señal analógica se realiza en dos etapas sucesivas: el muestreo y

retención, que tiene lugar en el circuito de igual nombre, y la conversión A/D. Cada una de

estas etapas de estas dura un tiempo determinado.

En los PIC de la gama media, el condensador de retención 𝐶𝐻 es de 120 pF y el tiempo que

demora su carga con respecto a la tensión de entrada es el tiempo de adquisición (𝑻𝑨𝑪𝑸).

Una vez transcurrido ese tiempo puede comenzar la conversión en el convertidor A/D de

10 bits, que dura un tiempo 𝑻𝑪𝑶𝑵𝑽 (tiempo de conversión). La figura 11 muestra esos

tiempos.

Figura 11: Tiempos relacionados con la digitalización de una señal analógica en el

módulo de conversión A/D. 𝑇𝐴𝐶𝑄: tiempo de adquisición, 𝑇𝐴𝐷: tiempo de conversión

de un bit en el convertidor A/D, 𝑇𝐶𝑂𝑁𝑉: tiempo de conversión A/D de un dato, 𝑇𝐷𝐼𝐺 :

tiempo de digitalización.

Según el fabricante, el tiempo de adquisición en los PIC de gama media está entre 10 µs y

20 µs, es decir,

10µs ≤ 𝑇𝐴𝐶𝑄 ≤ 20µs (15)

Page 21: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

21

La falta del seguidor de tensión de entrada mostrado en la figura 9 hace que 𝑇𝐴𝐶𝑄 dependa

mucho de la resistencia de la salida (𝑅𝑆) de la fuente de tensión 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, según el fabricante, el tiempo

de conversión de un dato de 10 bits es 11.5 veces el tiempo de conversión de un bit:

𝑇𝐶𝑂𝑁𝑉 = 11.5 × 𝑇𝐴𝐷

(16)

Donde 𝑇𝐴𝐷 es el tiempo de conversión de un bit (ver figura 12).

Figura 12: Ciclos de conversión del ADC.

Para la operación correcta del convertidor A/D, el fabricante recomienda:

𝑇𝐴𝐷 > 1.6 µ𝑠

(17)

Para 𝑇𝐴𝐷 = 1.6 µ𝑠, el tiempo de conversión A/D de 10 bits es 𝑇𝐶𝑂𝑁𝑉 = 18.4 µ𝑠.

El valor de 𝑇𝐴𝐷 es igual al periodo del reloj del convertidor A/D. Dado que el reloj del

convertidor A/D se puede obtener del oscilador principal del microcontrolador (tabla 3), el

valor de la frecuencia de este oscilador debe establecerse de modo que se cumpla la

condición expresada en (9.26). La tabla 4 señala el valor máximo de la frecuencia del

oscilador principal del microcontrolador PIC16F877A en las diferentes configuraciones

posibles.

Las notas de la tabla 4 indican que:

1. La fuente RC tiene un 𝑇𝐴𝐷 típico de 4 μs, pero puede variar entre 2 μs y 6 μs.

2. Estos valores violan el mínimo tiempo requerido de𝑇𝐴𝐷.

3. Para conversiones más rápidas se recomienda utilizar otra fuente de reloj.

Page 22: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

22

4. En PICs con frecuencias superiores a 1 MHz, el modo RC sólo es recomendable en

modo SLEEP.

ANCON1 Y ANCON0 ADCS2:ADSCS1:ADCS0

𝑻𝑨𝑫 𝑭𝑶𝑺𝑪 𝑭𝑶𝑺𝑪

(para 𝑻𝑨𝑫 = 𝟏. 𝟔 𝝁𝒔 )

000 2/𝐹𝑜𝑠𝑐 2/𝑇𝐴𝐷 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 (máximo) que debe tener la frecuencia (𝐹𝑜𝑠𝑐) del oscilador principal

del PIC16F877A para que el tiempo de adquisición (mínimo) por bit (𝑇𝐴𝐷) sea de 1.6

µs, en las diferentes configuraciones.

La suma de los tiempos de adquisición y conversión constituye el tiempo de digitalización

(𝑇𝐷𝐼𝐺) de la señal analógica,

𝑇𝐷𝐼𝐺 = 𝑇𝐴𝐶𝑄 + 𝑇𝐶𝑂𝑁𝑉

(18)

Puede calcularse que, en los PIC, el menor valor de 𝑇𝐷𝐼𝐺 está entre 20.4 µs y 38.4 µs.

Si una señal analógica se digitaliza periódicamente con un periodo 𝑇𝑆, denominado periodo

de muestreo, la frecuencia de muestreo es 𝐹𝑆 =1

𝑇𝑆. 𝑇𝑆 debe ser mayor o igual que la

duración del proceso de digitalización. Se recomienda esperar un tiempo igual a 2𝑇𝐴𝐷

segundos antes de comenzar una nueva conversión A/D. Por tanto:

𝑇𝑆 ≥ (𝑇𝐷𝐼𝐺 + 2𝑇𝐴𝐷) (19)

En términos de la frecuencia de muestreo, esta expresión se convierte en

𝐹𝑆 ≤1

𝑇𝐷𝐼𝐺+2𝑇𝐴𝐷 (20)

Page 23: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

23

6.3. Proceso de conversión del módulo ADC

El módulo de conversión A/D se puede atender utilizando las técnicas de entrada por

consulta o espera, o por interrupción. Los pasos que hay que seguir para medir la tensión

analógica en un canal de entrega son:

1. Configurar el módulo de conversión A/D:

a. Configurar los terminales de los puertos A y E como entradas analógicas,

referencias de tensión, o entradas o salidas digitales, colocando los valores

apropiados en los bits PCFG3:PCFG0 de ADCON1 y en los registros TRISA y

TRISE.

Ejemplo 8

Calcule del tiempo de digitalización para una conversión A/D de 10 bits en un

PIC16F877A con un oscilador principal de 4 MHz

Solución: Si la frecuencia del oscilador principal es 𝐹OSC = 4MHz , teniendo en cuenta

la tabla 4, se selecciona la configuración dada por los bits ADCS2:ADCS0 = 001, con lo

cual resulta 𝑇𝐴𝐷 =8

𝐹𝑂𝑆𝐶=

8

4 𝑀𝐻𝑧= 2.0 µ𝑠 que cumple con la condición expresada en la

expresión 17. El tiempo de una conversión A/D de 10 bits es entonces

𝑇𝐶𝑂𝑁𝑉 = 11.5 × 𝑇𝐴𝐷 = 11.5 × 2.0 µ𝑠 = 23 µ𝑠

Si se considera el peor tiempo de adquisición, es decir, 𝑇𝐴𝐶𝑄 = 20 µ𝑠, que corresponde

al caso que la resistencia de salida del sistema medio sea la más alta posible (10kΩ), el

tiempo de muestreo resultante es

𝑇𝐷𝐼𝐺 = 𝑇𝐴𝐶𝑄 + 𝑇𝐶𝑂𝑁𝑉 = 20 µ𝑠 + 23µ𝑠 = 43 µ𝑠

Si la conversión A/D se realiza periódicamente, el muestreo de la señal analógica debe

hacerse a una frecuencia menor o igual que 1

(𝑇𝐷𝐼𝐺+𝑇𝐴𝐷)Hz, de donde resulta que 𝐹𝑆 ≤

22222 𝐻𝑧.

Si se considera el mejor tiempo de adquisición, es decir, 𝑇𝐴𝐶𝑄 = 10 µ𝑠, que corresponde

al caso en que la resistencia de salida del sistema medio sea de 50 Ω, el tiempo de

muestreo resultante es

𝑇𝐷𝐼𝐺 = 𝑇𝐴𝐶𝑄 + 𝑇𝐶𝑂𝑁𝑉 = 10 µ𝑠 + 23 µ𝑠 = 33 µ𝑠

En estas condiciones, si la conversión A/D se realiza periódicamente, la frecuencia de

muestreo debe ser inferior a 28 571 Hz.

Page 24: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

24

b. Configurar el formato del resultado de la conversión A/D con el bit ADFM del

registro ADCON1.

c. Seleccionar la procedencia del reloj del módulo de conversión A/D y el valor

apropiado del tiempo de conversión por bit (𝑇𝐴𝐷) mediante los bits

ADSC1:ADSC0 de ADCON0 y el bit ADSC2 del registro ADCON1.

d. Seleccionar el canal analógico 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 interrupción, configurar la interrupción del módulo de

conversión A/D.

a. Poner a 0 el indicador de interrupción del convertidor A/D, que es el bit ADIF

del registro PIR.

b. Habilitar la interrupción del convertidor A/D, poniendo a 1 el bit ADIE del

registro PIE.

c. Habilitar el sistema de interrupción del PIC, poniendo a 1 el bit GIE del

registro INTCON.

3. Esperar el tiempo de adquisición (𝑇𝐴𝐶𝑄) requerido.

4. Comenzar la conversión A/D al poner en 1 el bit 𝐺𝑂/𝐷𝑂𝑁𝐸 del registro ADCON0.

5. Esperar que se complete la conversión A/D:

a. Si el tratamiento es por consulta o espera: cuando el bit 𝐺𝑂/𝐷𝑂𝑁𝐸 del

registro ADCON0 vaya a 0 o el bit ADIF de registro PIR vaya a 1.

b. Si el tratamiento es por interrupción: cuando se produce la interrupción del

convertidor A/D.

6. Leer el resultado de la conversión en los registros ADRESH y ADRESL. Poner el bit

ADIF a 0 si fuese necesario.

7. Para realizar otra adquisición, ir a los pasos 1, 2 o 3 en función de lo que se necesite.

Esperar al menos un tiempo igual a 2𝑇𝐴𝐷 antes de comenzar otra adquisición (esto

no es necesario para el PIC16F877A debido a que el interruptor de muestreo se

cierra en cuanto se obtiene el resultado).

Page 25: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

25

7. MANEJO DEL MÓDULO DE CONVERSIÓN A/D CON EN COMPILADOR C

En el compilador C las funciones para manejar el convertidor AD son las siguientes:

setup_adc (modo);

modo: para la configuración del módulo conversor A/D correspondientes a los bits

ADCS1:ADCS0 del ADCON0 y el bit ADCS2 del ADCON1. modo selecciona la fuente del reloj

y programa el divisor de frecuencia si la fuente es el oscilador principal del

microcontrolador, de acuerdo a la tabla 5. Las opciones para el PIC16F877A son:

ADCON1 ADCS2

ADCON0 ADCS1:ADCS0

FRECUENCIA DEL RELOJ setup_adc (modo)

0 00 𝐹𝑂𝑆𝐶/2 ADC_CLOCK_DIV_2

0 01 𝐹𝑂𝑆𝐶/8 ADC_CLOCK_DIV_8

0 10 𝐹𝑂𝑆𝐶/32 ADC_CLOCK_DIV_32

0 11 𝐹𝑅𝐶 ADC_CLOCK_INTERNAL

1 00 𝐹𝑂𝑆𝐶/4 ADC_CLOCK_DIV_4

1 01 𝐹𝑂𝑆𝐶/16 ADC_CLOCK_DIV_16

1 10 𝐹𝑂𝑆𝐶/64 ADC_CLOCK_DIV_64

1 11 𝐹𝑅𝐶 ADC_CLOCK_INTERNAL

Tabla 5: Posibles valores de la función setup_adc (modo) del PIC16F877A.

También existe la opción ADC_OFF para indicar que no se utilizará el módulo ADC del

microcontrolador.

setup_adc_ports (valor);

Esta función configura los pines del ADC para que sean analógicos, digitales o alguna

combinación de ambos. Las combinaciones permitidas varían, dependiendo del

microcontrolador.

valor: definición de las entradas analógicas correspondiente a los bits PCFG3:PCFG0 del

ADCON1 de acuerdo a la tabla 6.

Page 26: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

26

Tabla 6: Posibles valores de la función setup_adc_ports (valor) del PIC16F877A.

set_adc_channel (canal);

Especifica el canal a utilizar por la función read_adc ( ).

canal: selección del canal analógico correspondiente a los bits CHS2:CHS0 de ADCON0 (ver

tabla 7). El número de canal empieza en 0. Es preciso esperar un corto espacio de tiempo

(generalmente 10 𝜇𝑠) después de cambiar el canal de adquisición, antes de que se puedan

obtener lecturas de datos válidos.

CHS2:CHS0 CANAL set_adc_channel (canal)

000 Canal 0, (RA0/AN0) 0

001 Canal 1, (RA1/AN1) 1

010 Canal 2, (RA2/AN2) 2

011 Canal 3, (RA3/AN3) 3

100 Canal 4, (RA5/AN4) 4

101 Canal 5, (RE0/AN5) 5

110 Canal 6, (RE1/AN6) 6

111 Canal 7, (RE2/AN7) 7

Tabla 7: Posibles valores de la función set_adc_channel (canal) del PIC16F877A.

Page 27: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

27

valor = read_adc (modo );

Esta función lee el valor digital (entero de 16 bits) del conversor analógico digital. Deben

hacerse llamadas a setup_adc (modo), setup_adc_ports (valor) y set_adc_channel (canal)

en algún momento antes de la llamada a esta función.

Para utilizar esta función se debe incluir la información del tipo de conversor A/D que se

está utilizando, por ejemplo, para el PIC16F877A se debe añadir la directiva #device adc =

10.

modo es un parámetro opcional y admite tres modos de funcionamiento, según se

describen en la tabla 8.

ADC_START_AND_READ Si no se indica nada en modo, esta es la opción por defecto. Permite iniciar y leer el convertidor.

ADC_START_ONLY Sólo inicia la conversión.

ADC_READ_ONLY Sólo lee los registros del convertidor.

Tabla 8: Posibles modos de funcionamiento de la función read_adc (modo ).

Ejemplo 1: Realizar la lectura de una tensión analógica (5 V) dada por un potenciómetro de

1 𝑘Ω. Utilizar el canal AN0 (figura 13).

Figura 13: Lectura del voltaje de un potenciómetro.

Page 28: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

28

PROGRAMA:

7.1. Sensor de temperatura LM35

El sensor de temperatura LM35 es un sensor de alta precisión, cuya tensión de salida es

linealmente proporcional a la temperatura medida en grados Celsius (centígrados); además

consume sólo 60 μA de la fuente de alimentación.

Page 29: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

29

El LM35 está diseñado para funcionar en un rango de temperatura de -55° a +150 °C. En el

LM35 se obtiene una tensión de salida de 10 mV por cada grado centígrado, es decir, 10

mV/°C lo que da un rango de -0.55 V para los -55 °C hasta los 1.5 V para los 150 °C.

Figura 14: a) Conexiones básicas del sensor LM35 y b) Conexión recomendada

Según se muestra en la figura 14, el voltaje de alimentación 𝑉𝑆 del sensor LM35 puede tener

un rango de variación entre 4 V a 20 V. El valor de la resistencia 𝑅1 se elige en función de la

ecuación 𝑅1 = 𝑉𝑆/50 𝜇𝐴, por ejemplo, para una fuente de alimentación de 5 V se tendría

un valor de 𝑅1 = 5 𝑉/50 𝜇𝐴 = 100 𝑘Ω.

El sensor LM35 está disponible en varios tipos de encapsulados herméticos, uno de los más

utilizado es el paquete TO-92 que se muestra en la figura 15.

Figura 15: Sensor LM35 a) Distribución de los pines, vista inferior b) Apariencia física

Junto con el sensor LM35 se suele utilizar una etapa de adaptación 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).

Page 30: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

30

Figura 16: Etapa de adaptación para el sensor LM35.

La tensión de salida de la etapa de adaptación en función de la tensión del LM35 (𝑉𝐿𝑀35) es:

𝑉𝑜 =𝑅6

𝑅4𝑉𝐿𝑀35 −

𝑅6

𝑅5𝑉𝑃𝑂𝐿

𝑉𝑜 debe ser 0 V para una entrada de -0.55 V y de 5 V para una entrada de 1.5 V. La tensión

de polarización (𝑉𝑃𝑂𝐿) 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 función de lo señalado por el fabricante del LM35, tal y como

se ha indicado anteriormente.

La salida de la etapa de adaptación se puede conectar al PIC y tan sólo es necesario aplicar

el escalado en el software para determinar la temperatura (ver figura 17).

Figura 17: Nuevos rangos de funcionamiento del sensor LM35.

Page 31: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

31

La pendiente de la recta de la figura 17 está dada por:

𝑚 =𝑦2 − 𝑦1

𝑥2 − 𝑥1=

150 − (−55)

5 − 0= 41

Si la pendiente 𝑚 de una recta y el punto (𝑥0, 𝑦0) de la recta son conocidos, entonces la

ecuación de la recta puede ser encontrada usando:

𝑦 − 𝑦0 = 𝑚(𝑥 − 𝑥0)

Si se toma como punto inicial 𝑥0 = 0 y 𝑦0 = −55, y se renombran las variables 𝑦 = 𝑇𝑒𝑚𝑝

y 𝑥 = 𝑉𝑜 entonces la ecuación de la recta de la figura 17 está dada por:

𝑇𝑒𝑚𝑝 = 41 𝑥 𝑉0 − 55

Utilizando la ecuación anterior se puede determinar la conversión del voltaje 𝑉0 a su

correspondiente equivalencia de temperatura en grados centígrados.

Ejemplo 2: Realizar la lectura de un sensor de temperatura LM35 y mostrar en un LCD el

valor de la temperatura medida, haciendo uso del canal AN0 (figura 18).

Figura 18: Lectura de la temperatura de un sensor LM35.

Page 32: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

32

PROGRAMA:

Page 33: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

33

7.2. Ajuste de resolución

En algunas aplicaciones es interesante acortar el rango de tensiones de medida de tal forma

que se aumenta la resolución. Si por ejemplo se prevé que la tensión a medir oscilará entre

1.5 V y 1.7 V se puede utilizar una 𝑉𝑅𝐸𝐹− de 1.5 V y una 𝑉𝑅𝐸𝐹+ de 1.7 V. La resolución del

conversor A/D está dada por:

𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 =𝑉𝑅𝐸𝐹+ − 𝑉𝑅𝐸𝐹−

2𝑛 − 1=

1.7 − 1.5

1023= 0.195𝑚𝑉/𝐿𝑆𝐵

La tensión que mide el PIC se calcula con:

𝑉𝑖 = 𝑟𝑒𝑠𝑜𝑙𝑢𝑐𝑖ó𝑛 𝑥 𝐷 + 1.5

Ejemplo 3: Realizar la lectura de una señal analógica que oscila entre 1.5 V y 1.7 V. Realizar

las conexiones mostradas en la figura 19 con la finalidad de mejorar la resolución del

conversor A/D. Utilizar el canal AN0 para el proceso de adquisición y mostrar en un LCD el

valor de la tensión medida.

Figura 19: Lectura de un voltaje variable entre 1.5 V y 1.7 V.

La fuente PULSE está ubicada en la opción Generator Mode al lado izquierdo de la ventana

principal del ISIS de Proteus. Para configurar los valores de tensiones mínima y máxima en

la fuente PULSE se da doble clic sobre el ícono del circuito y se colocan los valores mostrados

en la figura 20.

Page 34: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

34

Figura 20: Ingreso de datos de la fuente PULSE.

PROGRAMA:

Page 35: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

35

8. CONVERSIÓN D/A CON EN COMPILADOR C

En la mayoría de los PIC no hay disponible ningún módulo convertidor de señal digital a

analógica (DAC - Digital to Analog Converter) por lo que es necesario utilizar sistemas

externos para realizar dicha conversión.

Existen varias posibilidades, la más obvia es utilizar un convertir DAC externo pero también

existen formas donde el PIC interviene de forma directa mediante elementos pasivos

externos, como por ejemplo, crear redes de resistencias externas para la conversión.

8.1 DAC externo

Todos los DAC funcionan a través de comunicación paralelo o serie (SPI o I2C). En este

apartado se trabajará con un DAC paralelo.

Ejemplo 4: Realizar la Conversión Digital Analógica (señal de -1.5 V a 1.5 V) haciendo uso de

un DAC externo de 8 bits. (figura 21).

Page 36: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

36

Figura 21: Uso de un DAC externo para generar un señal de -1.5 V a 1.5 V.

El DAC utilizado es un modelo genérico 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 señal de

-1.5V a +1.5 V utilizando un dato de 8 bits (de 0 a 255). En este DAC se puede modificar la

conversión mediante el menú de la figura 22.

Figura 22: Códigos de conversión.

Page 37: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

37

Los resultados según el tipo de conversión se muestran en la siguiente tabla (para una

referencia de ±1,5 V).

Tabla 7: Posibles valores de salida del DAC externo en función del modo de salida configurado.

PROGRAMA:

8.2. Redes de resistencia externa

Está basado en la teoría de convertidores DA mediante red R-2R. El arreglo de resistencias

R-2R, permite hacer la conversión de un número binario a un valor proporcional de voltaje.

Este arreglo permite implementar un número indeterminado de bits, esto quiere decir que

con el arreglo R-2R, se pueden hacer conversiones de 8, 16, 32, 64, o un número n de bits

en función de la cantidad de pines disponibles en un microcontrolador. La implementación

Page 38: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

38

del convertidor R-2R, es de fácil 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 más bits, posea la conversión mayor será su resolución y por

consiguiente mayor la calidad de la señal 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 gráfica se puede apreciar la configuración de las resistencias

para una conversión de 8 bits:

Figura 23: Circuito R-2R.

Este arreglo puede ser expandido con la misma arquitectura para conseguir hacer un

convertidor de mayor resolución, aumentando el número de entadas D, o lo que es igual el

número de bits. Otra característica de este tipo de conversión es que no requiere de

librerías especializadas, solo basta con colocar el valor numérico a convertir en un puerto,

y el valor análogo 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.

Ejemplo 4: Realizar la Conversión Digital Analógica (señal de 0 V a 5 V) haciendo uso de un

DAC de 8 bits formado por una red de resistencias R-2R. (figura 24).

Se obtiene un rango de 0 a 5 V (fondo de escala es 5/256, es decir 4.98 V) para un valor

digital de 8 bits (0 a 255).

Page 39: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

39

Figura 24: Uso de una red R-2R para generar un señal de 0 V a 1.5 V.

PROGRAMA

Page 40: Conversor AD & DA

Sistemas Microprocesados I UPS Autor: Ing. Junior Figueroa

40

9. BILIOGRAFÍA

[1] R. COUGHLIN, F. DRISCOLL, “Amplificadores operacionales y circuitos integrados

lineales”, Editorial Prentice Hall, Quinta Edición, México, 1999, 552 páginas.

[2] F. VALDÉS, R. PALLÁS, “MICROCONTROLADORES FUNDAMENTOS Y APLICACIONES CON

PIC”, Editorial Marcombo, Primera Edición, España, 2007, 340 páginas.

[3] E. GARCÍA, “Compilador C CCS y Simulador Proteus para Microcontroladores PIC”,

Editorial Marcombo, Segunda Edición, México, 2012, 340 páginas.

[4] CCS C, “CCS C Compiler Manual”, Edición noviembre del 2013, 403 páginas.