interfaz 8255 paralelo 3 intento

Hola a todos, gracias Eduardo por tu respuesta, he corregido el error pero sigue sin funcionar.Expongo aquí el código y explico el sencillo esquema para ver si es culpa del esquema, cosa que dudo.

recordando esto /SEL_IN 17 outportb(0x37a,12);//poner /wr a nivel alto 1100

outportb(0x37a,10);//escribir dirección 1010 > outportb(0x37a,11);//bajar /wr 1011 > outportb(0x378,255);//escribir datos 11111111 > outportb(0x37a,10);// volver a subir /wr 1010

como la vez anterior he seguido el programa paso a paso (en el datasheet no te da tiempos máximos para realizar la operación sólo mínimos).Ahora sólo cambia /wr y se mantienen los datos.

El esquema se basa en una fuente de 12v (2A de cebek) conectada a un

7805.Por los terminales de salida se obtiene una salida estabilizada de 4.98v. Un condensador de 470uF está conectado en paralelo y un led y una resistencia al igual que vcc y gnd en paralelo.El modelo del 82C55 es un nec.Los pines del puerto paralelo he conectado los 4 bits de control, los bits de datos y la patita 18 de masa, la 25 no la he conectado puesto que el esquema no lo indica.El resto de patitas está al aire.
Detalle extra, en algunas placas las salidas de control /STROBE ,

/AUTOFEED

, INIT , /SEL_IN necesitan resistencias de pull-up (que estan en

la

impresora).
¿Las resistencias pull up son necesarias? ¿De que valor deberian ser las resistencias pull up?

Si sirve de algo el sistema operativo es windows xp profesional y accedo al puerto paralelo por la última versión de porttalk con c.

Reply to
Jordi
Loading thread data ...
¿Te has asegurado de que el 82C55 tenga alimentación y masa? ¿Has calculado la resistencia limitadora del LED para que la corriente no exceda la máxima que pueden entregar los ports del 82C55 (2.5mA)? ¿Has dejado tiempos de retardo entre cada dos instrucciones de escritura en el puerto paralelo (su tiempo de propagación es alto, del orden de 2us)? ¿Has configurado el puerto paralelo en modo estándar (no bidireccional)?

--

Saludos de Jose Manuel Garcia snipped-for-privacy@terra.es http://213.97.130.124

"Jordi" escribió en el mensaje news: snipped-for-privacy@posting.google.com...

Reply to
Pepitof

"Jordi" escribió en el mensaje news: snipped-for-privacy@posting.google.com...

Deberías continuar el hilo inicial, no abrir uno para cada prueba.

No has programado el modo de operación. Para ello debes escribir 0x80 en A0 = A1 = 1 despues del reset.

Supongo que habras fijado /CS = 0 y /RD = 1 por hardware.

Saludos Miguel Giménez

Reply to
Miguel Gimenez

Son necesarias con 'algunas' placas, ejecutando paso a paso y midiendo que tension tienen en nivel alto te sacas las dudas. Si hacen falta prueba con R de 1K.

Saludos. Eduardo.

Reply to
Eduardo

A0

Con 0x80 se configuran todos los puertos como salida, Jordi esta configurando solo el portA como salida (CW 10001011), le deberia funcionar. Por supuesto que lo logico en esta aplicacion es configurar los tres puertos como salida.

Saludos. Eduardo.

Reply to
Eduardo

Muchas gracias a todos por vuestras respuestas, (después de los fallos al interpretar la gráfica :) ) creo que el problema era la placa ya que monté otra que era prácticamente igual (cambio de algunos bits de control que afectaba al programa) pero llevaba un condensador de 100nF conectado a vcc y luego por el extremo de este se conectaba al reset y a una r de 100k y por el extremo de esta a /cs y a masa

vcc----|C1|----R1-------/CS | | RESET GND

Desconozco porque ponen un condensador si aisla la corriente continua (¿si lo que quieren es un nivle bajo porque no lo conectan directamente a masa?) , pero la cuestión es que funciona.

Saludos Jordi

Reply to
Jordi

"Jordi" escribió en el mensaje news: snipped-for-privacy@posting.google.com...

El condensador inicialmente está descargado y es un cortocircuito a +5V. Se carga a traves de la resistencia y el resultado tras un corto periodo es un nivel bajo. Normalmente se añade un diodo en paralelo con la resistencia para descargar el condensador rápidamente cuando se corta la alimentación.

Tu circuito llevaba el reset controlado por el puerto paralelo, puede ser que te faltasen las resistencias de pullup que te mencionaron.

Saludos Miguel Giménez

Reply to
Miguel Gimenez

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.