# Lectura de datos del puerto paralelo



## Fercho3333 (Jun 14, 2006)

Un par de dudas:

1º
Me gustaría saber la manera de leer datos del LPT1, los cuales ingresan por los pines de Status del mismo.

2º
Cómo le ingreso la tensión a estos pines de Status (pin 10-11-12-13-15) , porque mido con un tester y hay 5V, como si fuera una salida, y no se si se pueden llegar a quemar si lo fuerzo poniendoles masa.
¿Puede ser que este en modo salida y lo tenga que setear para que sea entrada?

Gracias por responder...


----------



## maunix (Jul 20, 2006)

La respuesta es "depende".

Si el puerto está como SPP, algunos pines son salida y algunos entrada

Si está como bidireccional no dañaras nada, por mas que lo pongas a masa (no importa si estan como salida o entrada).

Lo que sí, por supuesto, deberás configurar el puerto a través de los registros correspondientes para que puedas lograr lo que pretendes.

Has leído algo del tema? 

En que lenguaje piensas programar?

Te lo digo porque hay muchos foros y páginas que tratan del tema, con componentes ya hechos que funcionan a la perfección.

Sauldos


----------



## MaMu (Jul 22, 2006)

Fercho3333 dijo:
			
		

> Un par de dudas:
> 
> 1º
> Me gustaría saber la manera de leer datos del LPT1, los cuales ingresan por los pines de Status del mismo.
> ...



1º . La manera de leer los datos, es enmascarando dichas entradas para saber realmente cual es el pin activo que quieres identificar.

2º . Siempre vas a tener 5V en cada una de las entradas, ya que estas se presentan en nivel alto. Lo más sencillo para hacer, es un cierre digital, es decir, la entrada que quieres utilizar la referencias a la masa del puerto mediante un pulsador, queda en tu diseño utilizar alguna resistencia de pull up o pull down, segun tu diseño. Otra cosa que debes tomar en cuenta y como regla fundamental, es que asi utilices una sola entrada, las restantes no deben quedar sin conectar o "al aire" puesto a que se te presentaran poblemas de interpretación de la logica de tu software, llamese señales espureas. Queda en el diseño de la circuiteria el buen funcionamiento del bus de estado del puerto paralelo.

Saludos.


----------



## sangreaztk (Dic 17, 2008)

Saludos!

Estaba experimentando con el puerto paralelo, con los tres buses -Datos, Status, Control- los buses de Datos y de Control funcionan correctamente, pero con el de Status cuando lo leí, estando todos los pines referenciados a masa con resistores de 10K, conseguí el valor de 126(decimal), luego conecte además de los resistores microswitchs con una alimentación de 5V tomada de un conector USB del mismo computador, obteniendo pesos significativos de 8, 16, 32 y 64, el pin Busy al cambiar a estado alto o bajo no presentaba ningún cambio en la lectura del valor.
Después de eso, lo desconecte por un momento y lo volví a conectar para más pruebas encontrándome con la mala sorpresa de que ya no leí más que el valor de 126, medí con un voltmetro el estado de los pines y todos estaban a 3.5V, también la tensión de las salidas (Datos y Control) cuando están en alto entregan una tensión de 3.5V.
El punto es, se puede dañar el bus Status aunque los otros buses se encuentren bien o estaré haciendo algo mal? Sera acaso el lenguaje que estoy usando (Python)? debo de alimentar a Status con una tensión de 5V o a 3.5V?
Espero que me puedan ayudar o al menos unas pistas!
Gracias por leer mi mensaje!
Buena Vibra!


----------



## Tratante (Dic 29, 2008)

Una pregunta, que direccion de memoria estas leyendo para encontrar el byte status de la impresora en cuestion?, un puerto de impresora puede dañarse como cualquier otro dispositivo de una computadora, el IC de soporte es alguno compatible con el 8255A5 y si he visto algunos dañados, sobre todo por daños de sobrecarga si lo configuras de salida, no hay garantia de que se dañe solo el pin, puede dañar el puerto completo o el integrado. Un corto podria generarse si conectas un pin de salida a tierra, si alimentas las entradas con mas de 5 volts tambien lo dañaras, si interconectas dos pines de salida entre ellos y uno toma un valor alto y el otro bajo tambien tendras un corto.

Cuando uses el puerto LPTx en algun experimento toma tus precausiones, no carges demasiado las salidas (algunos integrados compatibles con el 8255A5 no soportan mas de 1.5mA), vigila los cortos aun entre los pines, ojo con los valores que usas para configurar el 8255A5 (byte de control).

Saludos !


----------



## sangreaztk (Dic 29, 2008)

Las direcciones que use fueron la 0x378 (bus datos), 0x378+1 (bus estado) y la 0x379+2 (bus control).
Como solo eran pruebas, cometí la tontería de no usar un IC auxiliar, sino que conecte los pines del paralelo directo a resistencias y a la alimentación. Pero creo que queme el puerto de estado por alimentarlo a 5V, ya que como mencione anteriormente todas las mediciones de tensión que lei de los pines de los diferentes buses era de 3.5V. Todavia tengo esa duda si la alimentación deben ser 5 o 3.5 volts!
Moraleja: usar un chip auxiliar y tener todas las precauciones que menciona 'Tratante'.
Buena Vibra!


----------



## Tratante (Dic 29, 2008)

Solo para no dejar al aire esto, que valor estas colocando en el puerto de control para configurarlo?
Respecto a tu duda si debe ser 3.5 o 5 volts para alimentar las entradas lo correcto es 5v,,,,al encender una PC el puerto esta configurado como salida (esto a nivel sistema operativo, a nivel componente el 8255A5 esta configurado como entrada), si no tomas la precaucion de asegurarte antes de colocar cualquier voltaje en algun pin seguro se daña, es decir, primero debes configurar como entrada antes de intentar leer un valor si usas el puerto de datos como entrada, si usas las lineas de control para impresora como la señal BUSY, ACKNOLEDGE, PAPEROUT que son naturalmente como entrada no habra mayor problema.

Ese valor que estas leyendo en los pines pareciera que esta "flotando", es posible que este configurado como entrada. Aunque pequeña la posibilidad es posible que no estes configurando correctamente los puertos (ojala sea eso).

Saludos !


----------



## sangreaztk (Dic 29, 2008)

.....................!
no entendí mucho, el 8255A5 es el integrado de la mainboard (o alguna tarjeta) encargada del control del puerto paralelo?
cuando hice las pruebas, el bus de control lo utilice como salidas, algunas estaban en lógica inversa.
No sé como tengo que configurar el puerto para que el bus de estado sea de entrada, si me das una mano te lo agradecería. Espero que mi puerto siga funcionando.
Cuando los pines son de entrada, presentan 'alta impedancia'? si es así, con esto seria menos probable que se quemaran?
Gracias por la ayuda y el interés!
Buena Vibra!


----------



## Tratante (Dic 30, 2008)

Asi es, originalmente las PC nacieron con el 8255A5, seguramente las tarjetas de PC actuales traen alta integracion y un chip integra los paralelos, seriales IDE etc. pero en si se dicen IBM compatibles deben emular las funciones basicas. Las entradas siempre presentan idealmente alta impedancia, pero ojo seguro tu puerto LPT estaba configurado como salida. 

Dame el valor que estas cargando en el puerto de control para analizar lo que puede estar pasando. Que configuracion necesitas? Seguro el modo 0 es el que te serviria para controlar un dispositivo y leer algunos valores con las señales de busy, ack y paperout.

Saludos !


----------



## sangreaztk (Dic 30, 2008)

Pss no le estoy cargando ningún dato en especifico al bus de control, sígnica entonces que no puedo utilizar simultáneamente el bus de datos y de control como salidas y el bus de estado como entrada?
Si le cargo cierto dato al bus de control puedo hacer que el bus de datos sea de entrada?
Tienes a la mano algún link o información que mencione acerca de todos estos 'modos'?, siempre que busco en internet información encuentro solamente como manipular el bus de datos como entrada.
En este momento no necesito una configuración especifica, es solo que quiero 'jugar' un poco con las entradas del puerto paralelo.
De nuevo, gracias bro!
Buena Vibra!


----------



## Tratante (Dic 30, 2008)

El puerto de status solo se puede usar como entrada, el de datos puede ser de entrada y salida dependiendo del tipo de implementacion que use tu PC (en la actualidad casi todas o todas traen esta posibilidad), el puerto de control se usa unicamente para configurar los modos del 8255a5 o equivalente, no tiene "mapeo" de hardware hacia el exterior y es equivalente al puerto de configuracion del 8255a ok?

Lee estos links, si estudias con paciencia seguro te volveras un guru de los puertos de impresoras !.

http://www.lvr.com/parport.htm
http://www.epanorama.net/circuits/parallel_output.html

espero no estar violando las reglas de este foro, si es asi, señores administradores es por una buena causa...

saludos !


----------



## sangreaztk (Dic 30, 2008)

jejejejeje!
mucha información, estaré un rato ocupado! 
La neta que te agradezco mucho la información que me diste!
Gracias bro!


----------

