EDIT: Nuevo diseño con 128KB de SRAM
La idea es hacer un cartucho MBC5 con 32Mbit de rom y 32K de RAM con batería, que es casi el máximo de la mayoria de títulos que salieron para la GB/GBC. El MBC5 es retrocompatible con el MBC1 y 2, así que funcionarian también todos los programas basados en estos dos mappers. En principio, para pruebas del programador, he convertido en programable un cartucho MBC1 de 4Mbit + 8K de RAM. Este es el resultado:
Lo siguiente es hacer un cartucho de prueba de 32Mbit, adaptando el cableado igual que el de 4Mbit, y después realizar el diseño de un cartucho personalizado adaptado al pinout de los chips FLASH. Para realizar estos cartuchos, lo ideal es con contar con un chip flash AM29F032 en formato SO44, que sería el más fácil de adaptar y de soldar. Para el modelo fabricado, podría usarse un TSOP40 sin problema. Debido a la mala disponibilidad del chip, haremos un pedido conjunto para ahorrar gastos.
El cartucho de prueba de 32 MBit funciona correctamente. Esta construido partiendo de un Zelda DX, quedando asi un cartucho MBC5 de 32Mbit de Flash y 32Kbit de RAM.
A partir de este cartucho se ha preparado un diseño para la fabricación del PCB preparado para el chip FLASH:
Ya tenemos los primeros prototipos del cartucho, después de algunas modificaciones para mejorarlo, se hará un pedido conjunto de PCB's y componentes:
Cartucho con 128KB de SRAM
A partir del diseño anterior, he creado un diseño para un cartucho con 128KB de SRAM en lugar de los 32 del anterior, esto fué a petición de varios interesados en ejecutar el LSDJ que requiere de esos 128KB de SRAM para guardar los proyectos. El diseño está basado en un chip SRAM de 1Mbit en formato TSOP, que al ser tan diferente, he tenido que cambiar el diseño completo del cartucho. He pedido unos prototipos y ya los he probado, funcionando perfectamente.
Archivos Eagle del cartucho: gbcart_128.zip
La lista de componentes para este último cartucho:
- MBC5, mm1134 y pila, sacadas de un cartucho original de GBC (Comprobar en el listado de cartuchos los cartuchos con MBC5 + RAM + Battery, http://wiki.ladecadence.net/doku.php?id=listados)
- 4x Condensador 10nF SMD 0805
- 1x Resistencia 10K SMD 0805
- 1x AM29F016D / AM29F032D FLASH 16/32 Mbit SMD SO44
- 1x R1LP0108ESA-5SI SRAM 1MBit Bajo consumo SMD 32STSOP (http://es.farnell.com/jsp/search/productdetail.jsp?SKU=2068149)
Cartucho con MBC5 implementado en un CPLD
A partir del diseño anterior, he intentado implementar el funcionamiento del MBC5 en lógica programable. Para ello he elegido un CPLD XC9500 de Xilinx, exactamente el XC9536, compatible con I/O de 5V para simplificar el interfaz con la GB.
El diseño es funcional en parte, funcionando perfectamente en la GBC, pero con problemas de timing en la DMG y Pocket. Después de revisar el diseño, creo que el problema puede venir de no usar los pines de clock del CPLD para las señales críticas y en su lugar usar pines I/O normales, cuyasnseñales pueden distribuirse asimétricamente por el CPLD. Además habría que añadir más filtrado en los pines de alimentación, etc. El diseño en Eagle está disponible aqui: gbcart_128_cpld.zip
Los componentes son los mismos que el cartucho de 128K salvo el CPLD XC9536 en formato TQFP44.
El código VHDL del MBCx (el clon del MBC5 con algún añadido), está disponible en: https://gitorious.org/mbcx/mbcx/