Uploader 1.0

Actualizado el 22/02/2005

Uploader
Prototipo de Luiz Cressoni Filho


Introducción

Programar un cartucho para el I-Cybie no es una tarea difícil, pero todas las soluciones encontradas por Internet siempre se necesita por lo menos dos de las siguientes cosas:

  • Un I-Cybie modificado (con puerto de serie). Detalles en http://www.aibohack.com/icybie/sic_rs232.htm
  • Un cartucho que funcione (esto es obvio), pero os recuerdo que el que se entrega con el I-Cybie es una placa de baquelita vacía 🙁 .
  • Alguna manera de conectar el cartucho al PC, esto es posible siguiendo el punto 1 o usando el downloader.

Todo esto se puede adquirir fácilmente para una persona que viva en USA o Europa (imagino…), Pero en Brasil en materia de electrónica es bastante difícil importar material, Aquí los I-Cybies eran vendidos por Estrela pero solo era posible adquirir el I-Cybie con su caja original, cargador, mando a distancia y la batería de NiCD.

Cuando me decidí a cambiar la personalidad de mi perro me metí en un callejón sin salida, pues la mejor solución que me parecía buena para comenzar era utilizar el ‘SIC’, pero entonces necesitaba de una cartucho preprogramado (CROMINST)….Prefecto!!: Para poder escribir cualquier cosa en el cartucho necesito otro cartucho ya con algo escrito en el, el gran dilema del huevo y la gallina….

Pero avía otra razón que me pedía hacerlo y debo confesarlo: QUIERO HACERLO!!! lol. era algo que no sabría explicar y que hasta hacia ponerme nervioso.

Entonces fue cuando decidí fabricarme mi propio programador de cartuchos basado en la poca información disponible y en los datasheets de los componentes (tenéis links al final de la pagina)

Y aquí esta!!!!!. El I-Cybie uploader. Me resulta difícil de creer pero funciona!

Proyecto i-Cybie Uploader

1) El Cartucho El cartucho del I-Cybie – tengo uno original- tiene dos integrados de 1Mbit SST39vf010 de memoria flash en el, esto hace 256Kbytes – 2Mbits y no 2Mbytes, como otras veces he leído. Como cualquier otra memoria, las direcciones del bus son (17 bits), el bus de datos (8), 3 señales de control (write enable, output enable y chip select) y power. Leyendo esto veras que funciona como cualquier otro chip de memoria pero para escribir y borrar el integrado requiere de un protocolo especial, igual que cualquier otra memoria ;).Todo esto esta documentado en el datasheet, le puedes echar un ojo si quieres profundizar en el tema.

Las imágenes que tenéis aquí debajo corresponden a las dos caras de un cartucho, estas imágenes están sacadas de site de Danh Trinh’s, www.imaginerobots.com.

side Aside B

Los integrados de SST son realmente baratos, y si eres hábil con el tema de la soldadura, si te haces con una lupa, puedes fabricártelo tu mismo utilizando la placa de baquelita vacía de la que te hablaba antes, en la placa tienes varios componentes SMD para soldarlos seguro que te ayuda los kits que venden en las tiendas especializadas, para la gente que esta acostumbrada a reparar TV y radios posiblemente dispongan del equipo necesario para hacerlo si no…lo tendrás muy difícil…

Una vez soldados los componentes en el cartucho, el próximo paso es fabricarse el programador.


2) El programador del cartucho.

SI, es mas fácil y barato usar el SIC y si (estoy reinventando la rueda), pero hay varias opciones por las que fabricarse este cartucho es una buena opción:

  • Si no tienes manera de conseguir un cartucho con el CROMINST;
  • Si no quieres tener que desmontar el I-Cybie;
  • O tan solo si no estas dispuesto a comprar el Downloader.

Aquí tenéis el esquema del programador, usa una PIC18F876A, corriendo a 10MHz, un MAX232CPE, tres buffers y algún que otro componente pasivo. El circuito trabaja a 3V, lo cual hace que pueda alimentarse gracias a dos pilas tipo AA y se comunica con el PC por el puerto de serie a una velocidad de 57.6 Kbps.

No te preocupes si te resulta difícil ver los detalles del circuito, aun así podrían estar incluso anticuados.

Al final de la pagina tienes un fichero .zip con información detallada y actualizada de todo el proyecto.

La PCB es de simple cara y sus dimensiones son 90x70mm:

 

Un componente a fabricar “caseramente” será el conector del cartucho. Si le hechas un vistazo y le prestas atención veras que la distancia entre pines es exactamente igual a las de un conector PCI de PC, por lo que lo único que necesitaras es un slot PCI, el cual deberás recortar con el mismo tamaño que el cartucho (dos filas de 20 pins) después de esto tendrás que soldar cable plano (tipo IDE) a los pins del Slot PCI quedando como muestra la foto de os pongo a continuación.

El cable RS232: Otra parte que puedes fabricarte tu mismo utilizando el esquema que pongo a continuación o comprando en cualquier tienda un cable null modem, por cierto el conector para la PCB es la misma que puedes encontrar en cualquier placa de PC (DB9)


3) Software
Existen dos ficheros, uno que es con el que tienes que programar el microcontrolador (PIC18F876A) y otro que es el que debes ejecutar en tu ordenador. El fichero para la PIC esta escrito en C con el SouceBoost y el soft de PC esta escrito en MS Visual Basic 6.0. Todos los códigos fuente, binario, y paquetes de instalación los tienes disponibles al final de la pagina.
3a El fichero para la PIC: La función que desempeña es la de recibir las instrucciones que le llegan desde el PC y las ejecuta tratándolas para el SST, no necesitas conocer la sintaxis de estas instrucciones (excepto en el modo debug), ya que el programa que ejecutas desde el PC lo hace por ti. Los comandos disponibles son:

  • Cartridge Erase (Borrar cartucho): Borra los dos integrados de memoria..
  • Cartridge Read (Leer cartucho): Lee los dos integrados del cartucho y envía los datos a tu PC, el tiempo estimado es de unos 50 segundos.
  • Cartridge Write (Escribir en el cartucho): Escribe en los integrados los datos desde el PC, el tiempo estimado es de unos 8 minutos.
  • Firmware version (Version del firmware): Envía esta información al PC, se utiliza para comprobar que existe comunicación..
  • Debug Mode (Modo debug): Este es un comando especial para detectar posibles fallos de hardware, Para usarlo necesitas utilizar un programa de comunicaciones por ejemplo como el Hyperterminal.

3b. El Software del PC: Es por ultimo el programa que mas utilizaras al ser la interface con la que programaras el cartucho su aspecto es este:

Los botones de cada comando son (de izquierda a derecha):

  • Carga fichero de personalidad: Carga los ficheros H y L .bin de tu ordenador
  • Grabar fichero de personalidad: Graba en tu ordenador los datos leídos del cartucho.
  • Borrar Cartucho.
  • Carga datos en el cartucho..
  • Graba datos al cartucho. Este comando lo que hace es grabar en el cartucho cualquier cosa primero borra el cartucho y finalmente los datos que le hayas especificado cargar.
  • Verifica el cartucho. Compara los datos cargados en el buffer del PC con los datos grabados en el cartucho.
  • Chequea la comunicación entre el cartucho y el PC.

Los mas importante que debes saber es:

  • Configuración – Puerto de serie, debes indicar el puerto de serie donde tengas conectado el programador, y estas obligado a ponerlo la primera vez que ejecutes el programa.
  • Configuración – Verificar después de grabar, chequea esta opción para que el programa automáticamente verifique que has grabado bien los datos en el cartucho.


4) Ficheros

Aviso: El autor de este proyecto no aceptara ninguna responsabilidad sobre los daños resultantes por el uso de esta información, no tiene ningún tipo de garantía o representación implicada, este software se entrega en modo “AS IS” y tu como usuario asumes todos los riesgos al realizar lo aquí expuesto.


Aquí tienes los ficheros que necesitaras para construir y poder usar el programador:

  • Hardware: Esquemas PCB layout lista de componentes. (actualizado 16/02/2005)
  • Software bins: PIC binario y pack de instalación para el PC
  • Código fuente . PC Visual Basic y PIC SourceBoost projects.


5) Links

6) DebugMode
Si algo no funciona, prueba a conectar el grabador usando un programa tipo Hyperterminal, conectado a través del puerto de serie con esta configuración:

  • Bits por segundo: 57600
  • Bits de datos: 8
  • Paridad: none (nada)
  • Bits de parada: 1
  • Flujo de control: none (nada)

Una vez conectado, pon la alimentación en el grabador, deberás ver en la ventana del terminal esto:

 

I-Cybie Uploader 1.0
Absolutely NO warraties of any kind.


Si no es así, échale un vistazo a los componentes del circuito que se encargan de la comunicación y comprueba si la PIC funciona, si te funciona, los comandos que puedes utilizar son (pulsando una sola tecla):

    • ‘W’ – activa el write enable line. Hasta la pulsación de una tecla.
    • ‘O’ – (letra O) activa output enable line. Hasta la pulsación de una tecla.
    • ‘0’ – (numero cero) activa chip select 0 line. Hasta la pulsación de una tecla
    • ‘1’ – activa chip select 1 line. Hasta la pulsación de una tecla.
    • ‘A’ – activa las direcciones de A0 a A16, una por una a medida que vayas presionando una tecla.
    • ‘C’ – activa latch clock lines (las 3 líneas). Te devolverá el control al pulsar una tecla.
    • ‘X’ – Sale del modo debug.
    • ‘D’ – entra en modo debug

7) Lista de componentes:

  • 2 SST39VF010-70-4C-WH – 1Mbit flash memory, TSOP package2 0.1uF bypass capacitor (SMD) – Puedes encontrar este componente en cualquier ordenador viejo.
  • Cartucho
  • Programador
Cantidad
Referencia
Valor
2
R1, R2
120R
5
R3-R7
10K
5
C1, C5-C8
1uF 16V
2
C2, C3
22pF cerámico
1
C4
0.1uF cerámico
3
U1-U3
40174
1
U4
PIC16F876A
1
IC1
MAX232CPE
1
D1
LED verde
1
D2
LED rojo
1
CC1
Conector/Slot cartucho Cybie
(ver texto)
1
X1
10MHz cristal
1

RS232 conector
(ver texto)

8) Fotos (tomadas con una Palm Zire 71):

Asembled PCB

PCB completamente montada. Nota el RS232 esta al final del cable plano que tenéis debajo a la izquierda, utilice este cable de una placa vieja de PC.

El alambre negro que lleva fue para corregir un error que tuve, y el cual ya esta subsanado en la información aquí publicada,
y corte las esquinas de la PCB para que entrase en la caja que tenéis aquí debajo.

Uploader box

La caja: Utilice la caja de una vieja disquetera de 3 1/2″ y le hice los agujeros que veis.

De izquierda a derecha, 2 LEDS, el slot del cartucho y el conector DB9.

Uploader front
Así es como se ven las conexiones.

uploading

Grabador funcionando.

El LED amarillo indica que que se están grabando datos en el cartucho, y el LED verde se enciende cuando se leen datos del cartucho.

8 Comentarios

  1. hola me gusta toda tu informacion. pero que te parece si antes de cada uno de los temas explicas para que es? (en algunos casos), que hace?

Deja un comentario