ELEC DIGITAL
JOSGUAR9 de Enero de 2012
4.322 Palabras (18 Páginas)473 Visitas
El Conversor Analógico Digital ADC0804CN y el puerto Paralelo
Si se desea capturar señales analógicas en el orden de los 0 a 5 voltios, es posible utilizar el conversor Analógico / Digital ADC0804CN
Para ello se propone el esquema eléctrico de un conversor analógico-digital básico como el de la siguiente figura:
Esquema del interfaz de control de entradas analógicas mediante p. paralelo
Dicho circuito se alimenta a +5v y convierte señales analógicas en el intervalo entre 0 y 5v. Como núcleo se utiliza el circuito integrado ADC0804CN, un conversor A/D de 8 bit, barato y habitualmente disponible. Por defecto, el intervalo de entrada está entre 0 y +5V pero, usando una referencia externa y/o elevando la señal Vin- respecto a GND, se puede conseguir un amplio intervalo de niveles de entrada. Trabaja con una frecuencia máxima de 8 kHz, de modo que se puede utilizar incluso con señales de audio de baja calidad.
A efectos de prueba, la señal analógica a convertir proviene del potenciómetro R2; variando éste se modifica la señal entre 0 y 5 voltios. Dicha señal se introduce en el conversor ADC0804. Una vez convertida, el valor digital es presentado en las líneas D0 a D7 y deberá ser leído a través del puerto paralelo según el protocolo explicado a continuación.
Para el correcto funcionamiento de la conversión se debe respetar un protocolo entre el PC y el conversor.
Básicamente es el siguiente:
• Petición de comienzo de conversión: el PC debe enviar esta petición al ADC. Para ello se activa la señal CS (a nivel bajo) y, dentro del período de activación, se activa la señal WR durante un mínimo de 100 ns. El conversor activará la línea INTR (la señal es activa a nivel bajo) para indicar que ha terminado la conversión (ver figura siguiente). A partir de ese momento el PC puede leer el dato.
Diagrama de tiempos para el inicio de la conversión
• Proceso de lectura: se selecciona el conversor a través de la línea CS y se envía un pulso negativo por la línea RD. Tras unos 200 ns (tACC: tiempo de acceso) el dato está disponible para lectura y se desactiva la señal de lectura.
Diagrama de tiempos para la lectura del dato
Los ciclos anteriores se repetirán tantas veces como datos se quieran capturar.
Con objeto de simplificar la circuitería y, puesto que se cuenta con un solo ADC, se puede mantener permanentemente la señal CS a nivel bajo conectándola directamente a tierra
ADC0804
Este circuito integrado forma parte de una familia de conversores A/D fabricados por National Semiconductor, compuesta por los ADC0801, ADC0802, ADC0803 y ADC0804.
Tabla de contenidos
[esconder]
1 Características
2 Pinout
3 Instrucciones
4 Autor
[editar] Características
Estos convertidores de aproximaciones sucesivas son muy utilizados por su relación velocidad / precio.
Disponen de 8 bits de salida con posibilidad de triestado, lo que facilita su conexión a un microprocesador, dado que pueden conectarse varios en un bus, y elegir solo uno de ellos a la vez por medio de un "1" en uno de sus pines.
El que sea un conversor A/D de 8 bits en la practica se traduce en que el valor medido (una tensión de entre 0 y 5voltios) será un numero binario entre 00000000 y 11111111 (en decimal, un numero entre 0 y 255). Podemos calcular la "resolución" del conversor haciendo el cociente
5 voltios / 256 = 0.0195 volt.
Es decir que podremos discernir variaciones de unas dos décimas de volt usando este chip.
Tiene un tiempo de conversión de 100 nanosegundos (es decir, se pueden hace 10 millones de conversiones por segundo). Los dispositivos trabajan con una tensión de alimentación de + 5 V y disponen de un reloj interno, si bien admite que se conecte uno externo.
[editar] Pinout
Su pinout puede verse en el figura siguiente:
Pinout del ADC0804
El pin 1, denominado CS (Chip Select - Seleccionar Chip) es el habilita al chip a ser utilizado. Si este pin esta a nivel alto (5V, o un "1" logico) el chip se encuentra deshabilitado, sus salidas se comportan como si estuvieran desconectadas del bus de datos (en nuestro caso, de la PC). Si ponemos este pin a masa (0 Volt o "0" lógico) el chip queda seleccionado.
El segundo pin, RD, es el que permite la lectura de los datos convertidos. WR activado durante al menos 100 us es el que le pide al chip que comience con la conversión. Esto le lleva aproximadamente unos 200 us, durante los cuales INTR pasa a nivel alto. El chip informa que se completo poniendo en bajo nuevamente el pin 5 (INTR).
Los pines 6 y 7 son los que "leen" el valor analógico a convertir. Estas entradas analógicas Vin(+) y Vin(-), están protegidas contra sobrecargas, pero para un correcto funcionamiento, las señales aplicadas deben estar comprendidas entre 0V y la tensión de alimentación.
El dato en forma binaria se hará presente en las salidas, pines 11 al 18 (D7 a D0). El pin 11 es el que contiene el MSB (Most Significative Bit - Bit mas significativo). Estas salidas tienen un latch que mantienen su valor hasta que se peticione una nueva conversión. Si se deja el pin 9 (Vref / 2) en circuito abierto, la tensión de referencia que se obtiene internamente es la mitad de la tensión de alimentación, en nuestro caso serian 2.5v (5V / 2).
[editar] Instrucciones
Las instrucciones del ADC0804 son: CS (Chip Select) - Autoriza el funcionamiento del convertidor. En nuestro caso, como solo tendremos un conversor conectado al bus, pondremos este pin a masa directamente.
WR (Write) - Da la orden de inicio del conversor.
RD (Read) - Efectúa la lectura de los datos.
INTR - Indicador fin conversión.
Con CS y WR en "1" el convertidor A/D se bloquea y no actúa.
La conversión empieza con la llegada de un pulso "1" a la entrada de WR si la entrada de CS esta a 0.
Durante la transición de "1" a "0" de la señal en la entrada del WR o del CS, se resetean el controlador interno, y el registro de datos y la salida del INTR se pone a "1"
Después de que la conversión se completa el pin INTR realiza una transición de "1" a "0" , esto puede ser usado para interrumpir un microprocesador o señalar la posibilidad de un nuevo resultado para otra conversión.
Una operación de lectura del RD con CS a "0" limpia la INTR y autoriza los latch de salida.
Los periodos entre transiciones de "0" a "1" o de "1" a "0" deben ir precedidos de unos periodos de tiempo en espera de 0,5 milisegundos para permitir la adecuación de todos los circuitos internos del conversor A/D. Este tiempo puede ser menor aunque es cuestión de controlar las tablas de tiempos según el proceso que se este realizando
Para conseguir una conversión en continuo CS y RD deben de estar a 0 y el pin INTR conectada a la entrada de WR. Esta conexión INTR/WR fuerza a "0" el pin WR y asegura la operación del circuito.
Usando el puerto paralelo de una PC
Proyecto: Interfaz para el Puerto Paralelo
Fecha: 3 de Setiembre de 2000
Autor: Todorobot
IMPORTANTE: Ya está disponible la nueva versión del software de control para Windows 9x, NT, 2000 y XP
Introducción:
El puerto paralelo de una PC es ideal para ser usado como herramienta de control de motores, relés, LED's, etc. El mismo posee un bus de datos de 8 bits (Pin 2 a 9) y muchas señales de control, algunas de salida y otras de entrada que también pueden ser usadas fácilmente.
Las PC's generalmente poseen solo uno de estos puertos (LPT1) pero con muy poco dinero se le puede adicionar una tarjeta con un segundo puerto paralelo (LPT2).
En reglas generales la dirección hexadecimal del puerto LPT1 es igual a 0x378 (888 en decimal) y 0x278 (632 en decimal) para el LPT2. Esto se puede verificar fácilmente en el setup de la PC o bien en el cartel que generalmente la PC muestra en el momento del booteo. Puede darse el caso que el LPT1 asuma la dirección 0x3BC (956 en decimal) y el LPT2 0x378, en ese caso habrá que tratar de corregir el setup y/o los jumper de las tarjetas en caso que sea posible. De lo contrario se puede modificar el software que veremos mas adelante para aceptar esas direcciones.
Breve descripción del puerto paralelo:
El puerto paralelo de un PC posee un conector de salida del tipo DB25 hembra cuyo diagrama y señales utilizadas podemos ver en la siguiente figura:
Si deseamos escribir un dato en el bus de salida de datos (pin 2 a 9) solo debemos escribir el byte correspondiente en la dirección hexadecimal 0X378 (888 en decimal) cuando trabajamos con el LPT1 y 0x278 (632 en decimal) cuando trabajamos con el LPT2. Los distintos pins (bits) de salida correspondientes al bus de datos no pueden ser escritos en forma independiente, por lo que siempre que se desee modificar uno se deberán escribir los ocho bits nuevamente.
Para leer el estado de los pins de entrada (10, 12, 13 y 15) se debe realizar una lectura a la dirección hexadecimal 0x379 (889 en decimal) si trabajamos con el LPT1 o bien leer la dirección 0x279 (633 en decimal) si trabajamos con el LPT2. La
...