Autor Tema: Consulta Puerto paralelo PIC 18f4550  (Leído 2281 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado bloxons

  • PIC10
  • *
  • Mensajes: 15
Consulta Puerto paralelo PIC 18f4550
« en: 14 de Octubre de 2016, 10:10:54 »
Buenas, estoy tratando de leer un puerto paralelo basado en las normas IEEE1284 con un pic18f4550, por lo que lei en el datasheet el pic posee un puerto paralelo (Streaming Parallel Port) pero este puerto actua como maestro.
Mi duda esta en, si yo conecto el STROBE del dispositivo al pin RBO para reconocer la interrupcion por flancos y la rutina que atiende esta interrupcion lee el registro del SPPDATA, al mismo tiempo asigno un pin para que copie el valor del bit SPPBUSY (con esto le indico al dispositivo que no envie mas datos ), funcionara el hankshaking de esya forma? Alguno puede detectar algun error?

Hace rato que vengo pensandolo y no estoy seguro si funcionara.

Desde ya muchas gracias.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Consulta Puerto paralelo PIC 18f4550
« Respuesta #1 en: 14 de Octubre de 2016, 10:31:00 »
Basicamente estas intentando hacerlo por software.

La pregunta que creo que te interesa es :

¿Cumple los tiempos especificados?

Si los cumple, no veo el porque no deberia funcionar.

Desconectado bloxons

  • PIC10
  • *
  • Mensajes: 15
Re:Consulta Puerto paralelo PIC 18f4550
« Respuesta #2 en: 14 de Octubre de 2016, 10:51:32 »
Claro tenes razon, estoy haciendolo por soft pero me evito tener que acomodar el dato a la entrada ya que me lo cargaria en el registro. En cuanto a los tiempos, segun la norma IEEE 1284 y yo he comprobado, el pulso de Strobe dado por el dispositivo tiene que ser mayor a 5 useg, con un osciloscopio observe que ronda los 7 useg, luego de eso seria el pic el que controla los tiempos al poner el busy en alto.
Estoy usando el oscilador interno en 8 Mhz con lo cual tendria un clk de 125 nanoseg. deberia reconocer perfectamente el flanco.

Mi duda es como hace el SPP para saber que tengo un dato valido? es decir, el dispositivo me coloca el dato en los pines y esa dato pasa directo al registro y entonces puedo leer el registro?
Aca envio una captura del diagrama de tiempo de esa parte.


Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Consulta Puerto paralelo PIC 18f4550
« Respuesta #3 en: 14 de Octubre de 2016, 14:45:17 »
Estoy usando el oscilador interno en 8 Mhz con lo cual tendria un clk de 125 nanoseg. deberia reconocer perfectamente el flanco.

En realidad el CLK es de 500ns, ya que los PIC usan una frecuencia que es Fosc/4. En la imagen que pasaste incluso aparece asi.

Citar
Mi duda es como hace el SPP para saber que tengo un dato valido? es decir, el dispositivo me coloca el dato en los pines y esa dato pasa directo al registro y entonces puedo leer el registro?

Imagino que vas a tener que conocer los tiempos del dispositivo destino o implentar la lectura de un pin externo. Ya que todas las señales de control que posee el SPP son salidas.
Y viendolo no se hasta que punto se podria aprovechar el SPP en este caso, casi que lo estarias usando como si fuera enteramente por software. y un puerto con pullups como es el PORTB usado para los datos.