Multicartridge Atari con CPLD

Schematics

He aquí un nuevo diseño de un multicart Atari. En realidad es el mismo cartridge Atarimax, puede correr las mismas eproms generadas por el software "Maxflash Cartridge Studio", pero es un diseño mucho más compacto y simple, el cpld hace mucho más fácil la construcción del cart.
El diseño se presentó en Atariage:
http://atariage.com/forums/topic/238512-diy-128k512k-cartridge-pcb-files-and-build-instructions/

En ese post le hago varias preguntas molestosas jeje  El autor ofrece el esquemático y el PCB, por si alguien quiere fabricárselo. Y muestra dos archivos xsvf para dos cartridges, uno de 128K y otro de 512K.

Por mi parte, redibujé el circuito con mi old style:

Schematics

Es el mismo del post de Atariage, pero un poco más claro.

El gran problema aquí es la grabación del cpld Xilinx XC9536XL. Probé varios diseños de grabación JTAG por puerto paralelo, pero ninguno sirvió. Descubrí que se necesita un "xsvf player" para grabar los archivos xsvf.
Después de mucho buscar, encontré un video de Youtube donde se muestra como grabar un xsfv en un xc9536xl usando un arduino UNO:
Como programar CPLD mediante un Arduino UNO y python en Windows 7:

El autor dice que es "Una manera fácil y barata para programar CPLD's de Xilinx utilizando ISE 14.7, Python 2.7, Arduino UNO y la libreria gratuita JTAG de mrjimenez." Y es verdad.
Seguí todos los pasos del tutorial, usé Windows 7, instalé Python 2.7, instalé todas las librerías necesarias, seguí todos los pasos, ¡Y funcionó al toque! El único problema que tuve, es que el software no acepta directorios con espacio, como "Mis Documentos" o "Archivos de Programa". Solucionado el problema de las rutas, todo funcionó.

El autor usa Arduino 1.6.12, yo usé la versión 1.6.5 sin problemas.
Este es mi hardware para grabar el cpld con arduino:

Los pines para conectar por JTAG el cpld al arduino son:
TMS - pin 8
TDI - pin 9
TDO - pin 10
TCK - pin 11
VREF - pin 12
VCC 5V y GND.

Mi placa de programación requiere de 5 V, y tiene un regulador de 3.3 V para el cpld. ¡No usar 5 V! El cpld es "5V tolerante" en las señales, pero debe alimentarse con 3.3 v.

Este es el diagrama de mi programador JTAG:

JTAG programmer


El gran problema fue conseguir la base para los cpld, no pude encontrar en este país. Pero pude comprar un adaptador de PLCC44 a DIP40, que usé para el grabador y el cartridge.
Compré este adaptador:

Adaptador PLCC44 a DIP40

 Esta pieza de tecnología china salió mala, tuve que resoldar varios pines, malditas soldaduras chinas free lead.
El problema de este adaptador, es que le faltan 4 pines, justamente dos que se necesitan. Los tuve que cablear a un conector extra, EX1 y EX2. Aqui está la tabla de pines del adaptador.

El software de Python hace el trabajo de grabación muy fácil, se reduce a introducir un comando y listo. Preparé un archivo BAT para hacerlo más fácil todavía.
Una vez grabado, el software muestra el mensaje de SUCCESS:

SUCCESS

Eeeeexito  jeje

Luego, solo queda pasar el cpld al cartridge Atari, y probar con cualquier rom para Atarimax. Funcionó correctamente:

 

Probé los dos archivos xsvf disponibles, todo ok.

Como conclusión final, puedo decir que un cpld es excelente para hacer estos cart atari, prácticamente cualquier combinación de compuertas lógicas y flip flops se puede simular con el chip. En la práctica, se podría fabricar cualquier cart con sólo dos ic's, la eprom y el cpld.
Claro, hay que aprender a programarlo... Esa es la parte difícil.


Links:
http://atariage.com/forums/topic/238512-diy-128k512k-cartridge-pcb-files-and-build-instructions/
https://www.youtube.com/watch?v=x5eW9H1GoeA
https://github.com/mrjimenez/JTAG
Software necesario:
https://mega.nz/#!CQNW1ChR!X4blLtGJTgFEUBtKcmMbiyGRYawVXTR6ZspC7JuQAFo
El ino para Arduino y el software en Python:
https://mega.nz/#!eA1m1TYD!M34ZveT7LFUx83Ylr3du5grzLrT_WAJuD0JDVdQIZJk


Gracias a xt5, por regalarme un montón de xc9536xl.


 Home

        SpaceInvader, 3/2/2017

www.000webhost.com