Interfaz para Puerto Paralelo - SistemSoft ST.ca -

Anuncio
Interfaz para Puerto Paralelo
IPP01
Esta interfaz permite controlar dispositivos y obtener datos directamente desde
el puerto paralelo de la PC. Posee 4 entradas del tipo TTL para toma de datos
y 8 salidas del tipo TTL para la salida de datos. Además las salidas TTL 0 a 6
se encuentran también disponibles en un puerto de alta potencia mediante la
amplificación con transistores Darlington, pudiendo manejar cargas de hasta
500 mA.
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 lectura será devuelta en un byte en donde el bit 6 corresponde al pin
10, el bit 5 corresponde al pin 12, el bit 4 corresponde al pin 13 y el bit 3
corresponde al pin 15.
En la siguiente tabla se puede ver lo antedicho en una forma más gráfica:
Escritura: Salida de Datos
Escritura en dirección 0x378 (LPT1) o 0x278 (LPT2)
DATO
BIT 7 BIT 6 BIT 5 BIT 4 BIT 3 BIT 2 BIT 1
BIT 0
DB25
Pin 9 Pin 8 Pin 7 Pin 6 Pin 5 Pin 4 Pin 3
Pin2
CN5
TTL 7 TTL 6 TTL 5 TTL 4 TTL 3 TTL 2 TTL 1 TTL 0
No
Usado
CN4
HP 6 HP 5 HP 4 HP 3 HP 2 HP 1
HP 0
Lectura: Entrada de Datos
Lectura en dirección 0x379 (LPT1) o 0x279 (LPT2)
DATO
BIT 7 BIT 6
En DB25
No usar
Pin 10 Pin 12 Pin 13 Pin 15
No
Usado
Input 3 Input 2 Input 1 Input 0
CN6
BIT 5
BIT 4
BIT 3 BIT 2 BIT 1 BIT 0
No usar No usar No usar
No
Usado
No
Usado
No
Usado
Interfaz
En la siguiente página (pag. 4) podemos apreciar el circuito correspondiente a
la interfaz.
La IPP01 provee 8 salidas TTL, 7 salidas de potencia (500mA) y cuatro
entradas TTL.
Es importante tener en cuenta que las salidas TTL entregan una tensión de 5v
y solo se les puede exigir un mínimo de corriente, apenas suficiente para
activar un transistor o bien un par de compuertas TTL.
Así mismo las entradas TTL deben ser alimentadas con una tensión máxima de
5v o de lo contrario el chip resultará dañado. Esta tensión se obtiene desde
VDD a través del regulador U1 (78L05).
Las 7 salidas de potencia no son mas que la amplificación mediante un array
de transistores Darlington (ULN2003) de las salidas TTL 0 a 6 (la salida 7 no es
usada). Este chip puede drenar una corriente máxima de 500ma, lo que es
suficiente para activar un LED, un relé y hasta un motor DC de bajo consumo
(tipo motor de grabador).
1
2
VDD
VCC
CN1
VR1
7805
1N4148
1
2
3
1
CN2
Vin
3
Vout
D1
GND
C2
0.1uF
2
C1
0.1uF
VCC
1
2
GND
GND
VDD
VHH
4
3
D
D
Salidas High Power (500mA)
CN4
U1
1
2
3
4
5
6
7
8
IN 1
IN 2
IN 3
IN 4
IN 5
IN 6
IN 7
COMMON
OUT 1
OUT 2
OUT 3
OUT 4
OUT 5
OUT 6
OUT 7
CLAMP
16
15
14
13
12
11
10
9
1
2
3
4
5
6
7
HP6
HP5
HP4
HP3
HP2
HP1
HP0
ULN2003
20
VCC
CN3
U2
18
17
16
15
14
13
12
11
B1
B2
B3
B4
B5
B6
B7
B8
GND
CN5
TTL7
1
TTL6
2
TTL5
3
TTL4
4
TTL3
5
TTL2
6
TTL1
7
TTL0
8
VCC
C
G
DIR
A1
A2
A3
A4
A5
A6
A7
A8
19
1
2
3
4
5
6
7
8
9
VCC
10
74HC245
VCC
VCC
20
1
2
3
4
5
Array1
4x R10K
B
Input 0
Input 1
Input 2
Input 3
18
17
16
15
14
13
12
11
4
3
2
1
B1
B2
B3
B4
B5
B6
B7
B8
GND
VCC
U3
CN6
G
DIR
A1
A2
A3
A4
A5
A6
A7
A8
C
1
14
2
15
3
16
4
17
5
18
6
19
7
20
8
21
9
22
10
23
11
24
12
25
13
19
1
2
3
4
5
6
7
8
9
DB25 Macho
B
10
74HC245
A
A
Title
Size
Interfaz para Puerto Paralelo
Number
Revision
A4
Date:
File:
1
2
12-Oct-2001
C:\Mis documentos\Circuito\paralelo.ddb
3
Sheet of
Drawn By:
4
La teoría de funcionamiento es muy simple, solo se usan unas compuertas TTL
del tipo Buffer (U2, U3) para poder conectarnos con seguridad al puerto
paralelo, y un array de transistores Darlington (U1) para brindar una salida de
mayor potencia.
Las entradas Input 0 a Input 3, se encuentran conectadas a VCC mediante el
array de resistencias (Array 1). Estas hacen la función de Pull-Up, por lo tanto
las entradas que no estén conectadas serán siempre leídas como en estado
"1". Solo serán leídas como "0" cuando sean conectadas externamente a GND.
Cabe aclarar que los dos integrados TTL (U2 y U3) se alimentan del regulador
de voltaje 7805, el cual se encarga de reducir la tensión de entrada (VDD) a 5v
(VCC). La tensión VDD debe estar comprendida entre 9 y 12v.
La tensión de entrada VHH alimenta directamente al ULN2003 (U1) para
obtener mayor voltaje en caso de querer manejar un relé o bien un pequeño
motor. La tensión VHH debe estar comprendida entre 3 y 15v. VHH podrá
conectarse directamente a VDD (y de esa forma usar solo una fuente de
alimentación) siempre que esto no provoque problemas de ruido.
En el siguiente diagrama se puede apreciar un ejemplo de conexionado de un
LED , un Relé y un micromotor de continua (D.C.) a las salidas de potencia.
CARACTERISTICAS TECNICAS:
Tensión de alimentación (VDD)
Tensión de alimentación alta potencia (VHH)
Tensión de Salida VCC
Capacidad de carga de la salida VCC
Cantidad de entradas TTL
Niveles aceptables para entradas TTL
Cantidad de salidas TTL (TTLx)
Capacidad de carga en salidas TTL
Cantidad de salidas de alta potencia (HPx)
Capacidad de carga en salidas de alta potencia
Dimensiones
9 a 12 volts D.C.
0 a 15 volts
5 Vcc regulados
1A
4
0v a 5v
8
2 mA
7
500 mA
150mm x 100mm
Programa para manejo de la interfaz:
En el archivo " paralelo.bas " encontraremos un programa hecho en Qbasic en
donde se puede apreciar como se debe trabajar con el puerto paralelo y como
se puede sacar provecho de la interfaz.
El archivo " paralelo.exe " es el anterior programa ya compilado.
El funcionamiento de este software es muy simple y básico. Primero le
solicitará que elija el puerto a usar (LPT1 o LPT2). Luego puede elegir "Leer
Port" para recuperar el estado de los pins de entrada (0 a 3) o bien "Escribir
Port" para cambiar el estado de los pins de salida (0 a 7). Recuerde que si
cambiamos el pin de salida 0 , también se altera el mismo pin en la salida de
potencia (solo pins 0 a 6, el 7 no tiene salida de potencia).
Mediante el análisis de este programa Basic se puede intentar hacer
programas mas elaborados en otros lenguajes.
Así mismo en el “ archivo vb-ipp01.zip “ podremos encontrar un programa
realizado en Visual Basic para poder controlar esta interfaz.
Estos programas puede hallarlos en el disket provisto con la interfaz, o bien
descargarlos gratuitamente de la sección PROYECTOS:
http://www.todorobot.com.ar/proyectos/paralelo/paralelo.htm
DIAGRAMA DE CONEXIONES:
El siguiente es un diagrama de conexionado de la Interfaz para Puerto paralelo.
NOTA 1: VHH es la tensión de alimentación para la salida de alta potencia. Cuando
esta tensión está dentro del rango de 9 a 12v , puede conectarse directamente a VDD. En
caso de ser superior o inferior a VDD, entonces se debe alimentar en forma
independiente.
NOTA 2: Como se aprecia en la fotografía, todas las conexiones poseen un doble tipo
de conector. Uno tipo bornera ajustable con tornillo superior y otro tipo pinera recta
para usar con conectores enchufables. De esta forma la interfaz es totalmente versátil,
ya sea para experimentación como para poner en producción.
NOTA 3: Se incluye cable paralelo de 1mts. de longitud como el presentado en la
fotografía.
Conclusión:
Esta interfaz es tan sencilla como útil, ya que nos permite realizar todo tipo de
pruebas sin la necesidad de usar un microcontrolador. Y de paso nos permite
tomar experiencia en el manejo de señales mediante equipos microprocesados.
Podemos por ejemplo conectar un pequeño robot y tomar datos de sus
sensores y analizar las decisiones a tomar mediante un programa hecho en
cualquier lenguaje de PC actual.
EJEMPLO DE UTILIZACIÓN:
Se pueden encontrar muchos ejemplos de uso de la interfaz IPP01 en nuestra sección
PROYECTOS:
http://www.todorobot.com.ar/proyectos/proyectos.htm
IMPORTANTE
•
•
•
•
Nunca se debe sobrepasar la tensión de alimentación de los rangos indicados.
Bajo ningún concepto se debe superar los niveles TTL ( 0 a 5 volt) en las entradas
TTL.
Tener especial cuidado al conectar la alimentación al módulo. Una alimentación
inversa dañará el mismo.
Para conectar o desconectar la interfaz con el puerto paralelo de la PC, ambos
equipos (interfaz y PC) deben estar apagados, de lo contrario alguno de los
elementos puede resultar.
Descargar