Autor Tema: ¿Comunicar C64 con un pic?  (Leído 6046 veces)

Dr.Fred

  • Commodoremaníaco
  • ****
  • Mensajes: 144
    • Ver Perfil
¿Comunicar C64 con un pic?
« en: Mayo 27, 2013, 20:51:31 »
Hola.

Pues me estaba preguntando si alguno sabe dónde puedo encontrar información sobre como hacer que un C64 lea los datos de un pic (o cualquier otro microcontrolador). No necesito nada complicado. Simplemente que a través de las patas del microcontrolador, se le mande un dato, y el C64 lo reciba almacenándolo en memoria.

He estado echando un ojo al manual del programador, y este tema viene muy escueto, o al menos a mi no me aclara mucho.

Cualquier información será bienvenida! Muchas gracias!

Jeff

  • Commodore Master
  • *****
  • Mensajes: 614
  • RUN/STOP + RESTORE
    • Ver Perfil
Re:¿Comunicar C64 con un pic?
« Respuesta #1 en: Mayo 27, 2013, 21:46:32 »
R Tape Loading error
« última modificación: Diciembre 17, 2019, 23:11:15 por Jeff »
Press ANY key (¿Donde esta la tecla ANY???)

Dr.Fred

  • Commodoremaníaco
  • ****
  • Mensajes: 144
    • Ver Perfil
Re:¿Comunicar C64 con un pic?
« Respuesta #2 en: Mayo 28, 2013, 00:24:36 »
Bueno, tampoco tengo ningún proyecto en mente... simplemente trastear. Lo que querría sería que el Commodore leyera los datos que le proporcione un PIC. Por ejemplo, que el PIC gestione un sensor de temperatura, y el pic le mande el dato (la temperatura en ºC) al Commodore.

Toda la parte del PIC, sé hacerlo, pero me falta cómo hacer para comunicarse con el C64. Imagino que tendré que enviar la señal a una frecuencia determinada para empezar y también que habrá una serie de bits de control, de acknoledge y ese tipo de cosas, sólo que en el manual viene un poco escueto... Si pudiera ver algún ejemplillo para orientarme.

Muchas gracias!

Jeff

  • Commodore Master
  • *****
  • Mensajes: 614
  • RUN/STOP + RESTORE
    • Ver Perfil
Re:¿Comunicar C64 con un pic?
« Respuesta #3 en: Mayo 28, 2013, 01:04:15 »
R Tape Loading error
« última modificación: Diciembre 16, 2019, 22:49:11 por Jeff »
Press ANY key (¿Donde esta la tecla ANY???)

Dr.Fred

  • Commodoremaníaco
  • ****
  • Mensajes: 144
    • Ver Perfil
Re:¿Comunicar C64 con un pic?
« Respuesta #4 en: Mayo 28, 2013, 22:10:50 »
Vale, no se por qué tenía en mente que la transmisión debía ser en serie, pero claro, en paralelo me ahorro muuucho tinglado.

"The Commodore 64 gives you complete control over Port B on VIA chip #1. Eight lines for input or output are available, as well as 2 lines for handshaking with an outside device. The I/O lines for Port B are controlled by two locations. One is the port itself, and is located at 56577 ($DD01 hex). Naturally you PEEK it to read an input, or POKE it to set an output. Each of the eight I/O lines can be set up as either an input or an output by setting the data direction register properly. It is located at 56579 ($DD03 hex)."

Vale, o sea, que según esto, uso el puerto B del commodore con un puerto del pic, y le paso los bits tal cual. Configuro la dirección $DD03 como entrada, y simplemente con un peek en $DD01, leo los datos que le estén llegando al puerto... así de fácil?

Y una pregunta boba... si quiero mandar los datos en palabras de 8 bits. Es decir, madar 8 bits, el C64 los lee, otros 8 bits, el C64 lee, etc... Hay alguna manera sencilla de saber cuándo el Commodore ha leído, para mandarle otros 8 bits? Algún Flag o algo por el estilo?? Tiene algo que ver con esto?  as well as 2 lines for handshaking with an outside device

Muchas gracias, Jeff. Me ha sido muy útil!

Jeff

  • Commodore Master
  • *****
  • Mensajes: 614
  • RUN/STOP + RESTORE
    • Ver Perfil
Re:¿Comunicar C64 con un pic?
« Respuesta #5 en: Mayo 29, 2013, 09:07:24 »
R Tape Loading error
« última modificación: Diciembre 16, 2019, 22:49:00 por Jeff »
Press ANY key (¿Donde esta la tecla ANY???)

Dr.Fred

  • Commodoremaníaco
  • ****
  • Mensajes: 144
    • Ver Perfil
Re:¿Comunicar C64 con un pic?
« Respuesta #6 en: Mayo 29, 2013, 18:32:07 »
Vale. Bueno, como decía, la temperatura no era más que un ejemplo. Realmente sólo me apetece trastear un poco, pero me ha sido muy útil. Empezaré mandando datos a capón con un PIC, a ver si soy capaz de leerlos, y si todo va bien, a ver si puede salir alguna cosa chula.

Leyendo en la guia de programador, veo que también dejan el bit 2 del puerto A para "handshaking", o sea, que lo podría usar a mi antojo como un flag generado por mi, y olvidarme de protocolos y todo, como bien dices.

Para la temperatura, usaría un sensor analógico y con el propio convertidor del pic (suelo usar el 16F877), ya le pasaría la señal digital por el puerto... Así a grandes rasgos, pero vamos. Ya digo que era sólo por nombrar un ejemplo.

Muchas gracias! A ver si consigo hacer algo!

Dr.Fred

  • Commodoremaníaco
  • ****
  • Mensajes: 144
    • Ver Perfil
Re:¿Comunicar C64 con un pic?
« Respuesta #7 en: Diciembre 07, 2013, 12:41:32 »
Ayer me puse un ratito por fin, y conseguí comunicarlos con un programilla muy muy sencillo.

Lo que hice fue lo siguiente. Un programa en el pic, que dependiendo de los datos de entrada que recibiera, encenderia y apagaria un led a frecuencias distintas. Luego desde el Commodore, le madaba esos datos a través del puerto.

Todo ha salido perfecto. Os dejo un video que grabé.
Como digo esto es muy simple, pero se me ocurre que podria dar pie a hacer muchas cosas inútiles que podrian molar (sensores, rtc, etc...)

Pic en c64
« última modificación: Diciembre 07, 2013, 13:28:30 por josepzin »

josepzin

  • Administrador
  • Commodore Master
  • *****
  • Mensajes: 13313
  • Commodoreador web
    • Ver Perfil
    • Mi blog
Re:¿Comunicar C64 con un pic?
« Respuesta #8 en: Diciembre 07, 2013, 13:29:53 »
Parece "mágico" :)

www.retroinvaders.com | www.commodoreplus.org  | josepzin.blogspot.com