Grabador de SRAM con PIC 18F4550

PIC 18F4550

1- Introducción

En enero del 2013 se comunicó conmigo un visitante de mis páginas web, Trilo-byte, de México, quien me dijo que había armado mi cartridge de sram para la atari 2600 (https://gamemasterquilpue.000webhostapp.com/2600sramcart.htm), y que le había funcionado correctamente. Me dijo que el podía hacer una versión USB del grabador de sram, usando un microcontrolador PIC, y que me iba a comunicar sus resultados. Bueno, excelente, quedé a la espera de la información.

Casi un año después, en enero del 2014, se comunicó de nuevo, y me dijo que tenía un diseño definitivo, que presentó en este foro:  http://www.forosdeelectronica.com/f26/grabador-memorias-paralelo-usb-110360/

Le prometí a Trilo-byte que iba a construir y testear su grabador de sram USB, en esta página muestro todo el proceso.

2.- El microcontrolador PIC 18f4550

El grabador usa un PIC 18F4550, con conexión directa a un puerto USB. Nunca había usado este PIC, de hecho, nunca usé ningún microcontrolador PIC, así que todo este asunto era territorio por explorar.
Lo primero era grabar el PIC 18F4550. Esto no se puede hacer directamente desde un puerto USB, hay que usar un grabador de PIC, que usa voltajes de programación de 12 volts. En internet busqué por grabadores, y elegí contruir el programador JDM, que está muy bien documentado, se conecta al puerto serial del PC. Aquí hay que tener mucho cuidado, el puerto serial de un PC usa voltajes de +10y -10 volts, estos voltajes podría destruir el pic, si hay errores de conexión. Este programador se puede comprar, en este país cuesta unos 10 mil pesos, pero yo no soy de los que compran, así que lo armé.

3.- El programador JDM

Este es el esquemático de programador JDM que construí, optimizado para grabar el PIC 18F4550:

Esquemático JDM

El circuito es bastante simple, algunos diodos, zeners, condensadores y resistencias. Pero cuidado... Nótese que la masa del PC, es el +5 del PIC. Aquí no vale conectar masa con masa. El positivo de la placa está 5 volts por debajo de 0 volt... Complicado, pero así es. Y funciona, porque lo armé y funcionó.
Esta es una foto de mi placa:

JDM en placa

Después de revisarlo unas 10 veces, lo di por finalizado y listo para conectar.

4.- Software para el programador JDM

Probé varios sofware con programador: wimpic800, icprog, y otros, pero no todos funcionaban, algunos reconocían el PIC, pero funcionaban mal, podía grabar, pero la verificación fallaba, muchos problemas.
Hasta que probé el PICPgm programmer, que funcionó de maravilla. Con este software pude grabar, leer, verificar, una y otra vez el PIC 18f4550. Lo recomiendo.

PICPGM soft

Entonces, ya estábamos listos para programar el grabador de sram.

5.- Construyendo la placa del grabador.

Antes de grabar el PIC, hay que construir la placa del programador de sram, el esquemático es este:

PIC sram programmer

Y esta es la placa que armé:

USB Sram programmer

No hay mayores dificultades en el armado del grabador, hay que tener cuidado con los pines de conector USB (Yo me equivoqué y puse cambiados D+ y D-, cuidado). Usé una sram 6264, en una base en la misma placa, para probar, alimentada por una pila de 3V. Es similar al los cartrides con sram a pila para los atari que hice hace tiempo. La placa tiene un plástico protector, porque la sram siempre está energizada con la pila CR2032. 
Entonces, el grabador está listo para el PIC.


6.- Grabando el PIC 18F4550.

En este punto, usando el programador JDM, ya podemos grabar en el PIC el programa SRAM.HEX , que permite grabar sram.
Pero, lo mejor es usar un Bootloader, y posteriormente, usar el bootloader para grabar el SRAM.HEX, usando la conexión USB. Es más largo y complicado, pero es mejor, porque con bootloader, se puede re-programar el pic directamente por el puerto USB, y no usar más el programador JDM.
Asi que, grabé el bootloader BOOTLOADER.hex en el PIC.
Saqué el PIC del programador JDM, y lo conecté a la placa de programador de sram, y listo, una vez grabado el bootloader, el PIC queda transformado en un dispositivo USB, que el PC debería reconocer inmediatamente, sin necesidad de drivers. Y así fue... Excelente.

7.- Usando el BOOTLOADER.

Una vez armada la placa del grabador de sram, y con el PIC programado enchufado, llega el momento de conectarla a un puerto USB. Estoy usando Windows XP, en un doble núcleo.
Enchufo, y de inmediato el PC reconoce el dispositivo USB, y se instala en el administrador de dispositivos como "Dispositivo compatible con HID" y "Dispositivo de interfaz humana USB".
Aquí, la capura:

Dispositivo USB reconocido por Windows

¡Vamos bien!  Ahora, hay que grabar el programa definitivo, SRAM.HEX.
Para esto, hay que entrar en el "modo bootloader", manteniendo presionando el botón bootloader, pulsar el boton reset. Los led empiezan a parpadear, y ya estamos en el modo bootloader.
Ahora, en el PC, hay que correr el programa "HIDBootLoader.exe", elegir "Abrir hex", seleccionar "SRAM.HEX". Luego "grabar", y listo:

Usando el Bootloader

Ya podemos salir del modo bootlader, resetear la placa, o desconectarla y volverla a conectar.

8.- Usando el programa lector/grabador de sram.

Con la placa enchufada al puerto USB del PC, ya podemos correr el soft "Binario.exe",dando la siguiente bienvenida:

Arrancando el programa "Binario.exe"

El software debe decir "Conectado", y ya se puede elegir el tamaño, y el archivo .bin a grabar en la sram, y grabarlo.
Todo funcionó perfectamente, usé varios archivos de test de 8 KB, y funcionó de maravilla, puede leer y grabar sin problemas. La desconecto del PC, luego la conecto de nuevo, y la data está ahí intacta de nuevo, excelente. Ojo, que esto no es fácil de lograr, ya tengo experiencia con las sram, es común que al conectarlas y desconectarlas, a pesar de tener pila, se corrompen los datos. Pero en este caso, nada, funciona perfectamente.

Binario in action

Se demora 8 segundos en grabar una 6264, y unos 3 segundos en leerla. En el caso de grabar 64 KB, se demora 1:15. Probablemente se demore más de 2 minutos en grabar una de 128K. Un poco lento... Pero para mis propósitos está bien.

9.- Conclusiones finales

- ¿Cuál es la utilidad de todo esto? Este proyecto no es más que un prototipo, pero la idea es fabricar cartridges de sram para viejas consolas de Atari, C64, NES y otras. Tengo muchas sram en mi stock. En cambio, usar memorias más modernas, como eeprom o flash, es mucho más caro, normalmente hay que pagar caro por usarlas. Además, este grabador sí puede grabar eeprom, es cosa de optimizar el software.

- Tengo pensados varios futuros proyectos con este grabador, podría actualizar todos los grabadores de sram por puerto paralelo de mis páginas web a USB, ya se podrían usar PC más modernos para experimentar. Incluso, tengo pensado un recuperador de "Atari memory card" con conexión USB... 

- ¡No power supply! Los dos dispositivos de este proyecto no requieren fuente de alimentación externa, el JDM toma voltaje del puerto serial, y el grabador de sram usa los 5 volts del puerto USB.

- Pienso hacer los adaptadores para mis carts con sram de atari 2600 y Atari XL/XE, es puro alambre, en cuanto me haga un tiempo los voy a armar.

- Por fin uso un puerto USB para algo más que sacar 5 volts jaja

- Me dijo el autor que próximamente iba a actualizar el software, incluso me dijo que el software puede grabar EEPROM, la serie 28xx, pero lo dejó deshabilitado porque quería optimizarlo más.

 - Gracias a Trylo-Byte por su interés en mis proyectos.

- Descargas:

* Software Trilo-Byte
* PicPGM Programmer
* pic 18F4550 pdf

 Si alguien arma todo esto,por favor que me escriba al mail (gamemasterquilpue@hotmail.com) y comente sus resultados, todo feedback es bienvenido.

Home

 FUN WITH PICs !!   Quilpué, 15 de mayo de 2014.-

 

www.000webhost.com