Cartucho MSX EEPROM (paso a paso)

Este es un cartucho con una memoria programable hasta 64K, para añadir ROMS de pequeña capacidad que no requieren mapeador. Esta placa admite varios tipos de chip EPROM que son:

  • 27c64 (64Kbits = 8 Kbytes)
  • 27c128 (16 Kbytes)
  • 27c256 (32 Kbytes)
  • 27c512 (64 Kbytes)

Los chips EPROM (Erasable Programable Read Only Memory) son memorias ROM que se pueden borrar mediante luz UV y programar muchas veces, aunque tienen un número limitado de veces que se pueden borrar, no importa cuantas veces sean leídas. Se distinguen fácilmente ya que tienen una ventana en el centro del chip por donde entraría la luz UV.

También acepta los chip OTPROM (ROM que sólo son programables una única vez) incluyendo las mismas series antedichas.

Las memorias OTPROM (One Time Programable Read Only Memory) se fabrican igual que las anteriores pero no tienen ventana. Tienen una numeración idéntica o muy similar, sin embargo no se pueden borrar, vienen borradas de fabrica y una vez grabadas mantienen el programa para siempre. Por supuesto esta opción (aun si es más barata) no es normalmente la deseada, así que hay que estar con ojo si no queremos comprar el tipo equivocado ya que los nombres de chip son iguales.

Y por último acepta el tipo EEPROM W27C512 (512Kbits = 64Kbytes) que es el chip recomendado y con el que guiaremos estas instrucciones.

Las memorias EEPROM (Electrically Erasable Programable Read Only Memory) son memorias ROM que se pueden borrar eléctricamente, por tanto, se pueden regrabar con un programador de memorias (como el TL866) o incluso a veces desde el propio circuito impreso.

A destacar que el tipo de archivo que se puede grabar en estas memorias sólo puede ser de formato ROM de cartucho (BINARIO), normalmente extensión «.ROM». No vale volcar cualquier fichero de un programa otra extensión tipo .DSK o .CAS, ya que no tendrán el formato correcto (a no ser que, mediante algún otro programa externo, se puedan convertir a formato carucho .ROM).

Como accesorio de la placa anterior, hemos diseñado un adaptador que facilita la programación del cartucho sin necesidad de extraer el circuito integrado. El adaptador dispone de unos pines en la parte inferior para poder ser insertado en el zócalo de un programador de EPROM (como el TL866), y dispone de una ranura de cartucho en su parte superior para insertar el cartucho que queramos programar.

Construcción del proyecto:

Este montaje es muy sencillo, el cartucho de juegos apenas está formado por seis componentes electrónicos tipo DIP, con soldaduras THOUGH HOLE.

Los archivos necesarios para completar este proyecto los podéis encontrar en el siguiente link: https://github.com/capsule5000/MSX-EEPROM-Cartridge-64k

MSX EEPROM Cartridge 64k.

1- PCB del circuito.

Descarga el diseño desde: https://oshwlab.com/MSXmakers2/msx-eprom-cartridge-msxmakers_copy

1- EPROM 27C64, 27c128, 27c256, 27c512 o EEPROM W27C512: Cualquiera de las 4 EPROMS son válidas para el montaje con las capacidades de 8k, 16k, 32k y 64k respectivamente, pero en caso de que tengáis que comprar el chip, se recomienda el único reprogramable que es la EEPROM W27C512 (64k).

No confundir con las EPROM 27c512, ya que la diferencia que reside entre las EEPROMS y las EPROMS es que las primeras se puede borrar electrónicamente, y las segundas hay que borrarlas mediante una luz ultravioleta. Dicho esto, voy a recalcar que también funcionarán, a pesar del inconveniente que supone su borrado.

2- Condensador electrolítico de 100 uF.

3- Condensador multicapa de 100nF.

C320C104K5R5TA | Condensador cerámico multicapa MLCC, KEMET, 100nF, ±10%,  50V dc, Montaje en orificio pasante, X7R dieléctrico 2.54 mm | RS Components

4- Resistencia de 1K.

Resistencia 1K Ohm a 1 W - Guatemala

5- LED de 3mm.

Led 3mm Difuso - UNIT Electronics

6- DIP Switch de 12 interruptores.

TRU COMPONENTS DSR-12 DIP switch Number of pins 12 Slide-type 1 pc(s) |  Conrad.com

Adaptador cartucho para programador EPROM.

1- Slot 50 pins.

Master System Slot (50 Pins) | eBay

2- Tira de pines de doble pin.

PASO 2 Montaje de las placas.

Como antes hemos mencionado el montaje de la placa es muy simple ya que tiene pocos componentes y además las soldaduras son TROUGH HOLE.

Como detalle a tener en cuenta en la construcción de la placa, observad la polaridad del condensador electrolítico, del integrado y del diodo LED. Podéis utilizar la imagen anterior como referencia.

Como todo montaje con soldaduras TROUGH HOLE, empezaremos por los componentes de menor a mayor tamaño, empezando por la resistencia de 1K, el condensador de 100nF, el zócalo de 28 pins, el diodo LED, el condensador electrolítico que soldaremos tumbado y por último el «DIP switch» de 12 interruptores.

Esta revisión de placa carece de la resistencia y el led pero el montaje es el mismo.

Hablemos ahora de la placa adaptadora. Para el montaje de esta placa, tan solo tendremos que soldar el conector SLOT 50 PIN, recortar el sobrante de los pines tras la soldadura, y soldar la tira de pins doble cabeza, el lado que se suelda a la placa es la punta más gruesa, dejando la delgada hacia abajo, en el lado que se insertará en el programador.

Como podéis observar en la placa adaptadora, uno de sus laterales tiene serigrafiado el texto de FRONT CARTRIDGE. Como la placa EEPROM CARTRIDGE 64k se puede insertar en este SLOT tanto en un sentido como en el contrario, pero sólo uno es el correcto, por tanto hay que atender a esta indicación y no insertarlo invertido. En caso de conectarse la placa EEPROM CARTRIDGE 64K al revés en este slot, el programa dará un error a la hora de intentar programar cualquier ROM al integrado.

PASO 3. Configuración de los JUMPERS.

Existen ya otras placas similares a esta, que permiten grabar un juego (o programa), pero esta es la que tiene más opciones de configuración de todas las que hemos visto. También es cierto que para su uso recomendado basta con activar 3 de los 11 jumpers de configuración, que serían RD, P1–>A15, P27–>A14.

El resto de interruptores u opciones sirven para poder conectar los otros chips antes mencionados y para combinar más de un juego en el mismo cartucho.

A continuación explicaremos la función de cada jumper:

Puentes conectados al pin 1: P1+, P1- y P1–>A15, conectad solamente uno de los 3. Este pin tiene una función muy diferente en los chips menores de 64K.

P1+ (conecta 5v en el pin 1): Con uno de los chip de máxima capacidad (27c512 o W27c512) este pin es el bit de direcciones más alto (A15), con lo cual poner este bit a +5v equivale a seleccionar la mitad alta del chip solamente. Esto es útil cuando tienes la memoria ROM grabada con 2 o 4 programas distintos. Combinado con el pin CS12 y P27–>A15 puede seleccionar una de dos ROMs de 32Kb y combinado con CS1 y P27+/P27- puede seleccionar un total de 4 juegos (o programas) de 16/8Kb.

P1- (0v al pin 1): Igual que en el caso anterior pero selecciona la mitad opuesta, por tanto conectando este interruptor (o puente) en lugar del anterior antes de encender el ordenador, el MSX ve un juego o el otro.

P1–> A15 (A15 conectada con el pin 1): En este caso, la señal del pin 1 depende de la dirección A15 (el bit de direcciones más alto). Conectado a un chip de 64K, el resultado es que el MSX puede seleccionar todo el chip, aunque depende de la señal conectada al pin 22 (/OE).

Puentes conectados al pin 22 (/OE): CS1, CS2, CS12 y RD, seleccionad solamente uno de los 4. El pin 22 del zócalo conecta la entrada /OE (output enable) en todos los chips compatibles con una de estas señales según el interruptor que está conectado.

CS1 (Chip Select 1): Es la señal que indica que la página 1 de la memoria (rango entre 4000h-7FFFh) está seleccionada, por tanto activa la salida del chip (/OE) sólo en ese caso. Solo muestra un rango de 16Kb al z80, por tanto se puede utilizar con juegos de 16Kb o menores, si su programa funciona en ese rango de memoria.

CS2 (Chip Select 2): Es la señal que indica que la página 2 de la memoria (rango entre 8000h-BFFFh) está seleccionada, por tanto activa la salida del chip (/OE) sólo en ese caso. Solo muestra un rango de 16Kbytes al z80, y por tanto se puede utilizar con juegos de 16Kb o menores, siempre que tu programa inicie en ese rango de memoria.

CS12 (Chip Select 1y2): Es la señal que indica que están seleccionadas las páginas 1 o la 2. (rango entre 4000h-BFFFh), por tanto activa la salida del chip (/OE) sólo en ese caso. Solo muestra un rango de 32Kbytes al z80, por tanto se pueden utilizar programas de hasta 32Kb. Normalmente este es el rango donde se cargaban las ROM de juegos aunque en algunos casos existen juegos de un tamaño mayor.

RD: Es la señal que indica lectura desde cualquier posición de memoria (por tanto las 4 páginas que el z80 puede ver). Incluye por tanto el rango 0000h-FFFFh (64KB) y se debe utilizar con chips de ese tamaño.

Puentes conectados al pin 27: P27+, P27- y P27–>A15, conectad solamente uno de los 3. Este pin tiene otra función en los chips menores de 32K.

P27+ (5v en el pin 27): El pin 27 divide la memoria en fracciones de 16K. Con un chip de 32K o más (27c256 o 27c512) este pin es el mayor bit de direcciones (con un chip de 32K) o el 2º mayor (A14). Por tanto poner este bit a 5v equivale a seleccionar la(s) pagina(s) impar(es) del chip. Esto es útil cuando tienes la ROM programada con 2 o 4 programas distintos. Combinado con el pin CS1/CS2 puede cargar 2 ROMs de 16Kb (en el chip de 32Kb) o 4 combinandolo también con P1+ y P1- (en un chip de 64Kb).

NC: No conectado, no hace nada (no venden bloques de 11 interruptores).

Nota: la siguiente imagen muestra todos los chips de la serie, incluyendo el 27C16 o el 27C32 que sólo tienen 24 pines y por ese motivo no pueden utilizarse en esta placa.

Como veis, a pesar de no ser compatibles con esta placa, tienen muchos pines en común si los colocásemos de la siguiente forma:

PASO 4. Conversión del programa a grabar.

Para poder grabar el programa en estas memorias deberá cumplir unas reglas, que dependerán también de la capacidad del chip a utilizar

Conversión de la ROM (juego) con una memoria de 64Kbytes.

En ciertas ocasiones, sabiendo como funciona el sistema de slots MSX y como están configurados estos programas ROM, bastaría con volcar el contenido al software del programador (en nuestro caso el el XGPRO), aunque esto se antoja complicado por las diferentes variables que se pueden dar, programas de 16K a 64K, configurados para empezar en una u otra dirección de memoria.

Por suerte, hay un programa desarrollado por el grupo RBSC para una placa similar, que nos permite convertir cualquier juego directamente a un fichero de 64Kb y a su vez, nos indica que configuración de jumpers (en la placa diseñada por ellos) que deberíamos seleccionar.

El programa, analiza el fichero que se le carga, busca la cabecera del programa, la dirección de inicio de ejecución y en función de eso transforma el fichero y nos sugiere una configuración.

Se puede descargar desde este enlace, y una vez descargado y descomprimido, encontraremos el ejecutable SGC_ImageCreator.exe, dentro de la carpeta «BINARY».

Programa del grupo RBSC

Este programa tiene un uso muy intuitivo y dispone básicamente de dos botones. El primero es CHANGE MODE que hace referencia a la configuración de los jumpers y el segundo OPEN AND CONVERT, abre la ROM que queramos convertir a 64k.

El modo de operación más sencillo implica seleccionar RD mediante el botón de CHANGE MODE, así haremos funcionar prácticamente cualquier ROM.

Los pasos a seguir para convertir cualquier ROM a 64k serán los siguientes:

Pulsaremos el botón OPEN and CONVERT, saldrá un ventana para navegar a la carpeta donde estén los archivos ROM.

Seleccionaremos cualquier juego, en este caso elegiremos el de 32k, y pulsaremos abrir.

El programa devolverá un mensaje conforme ya tiene preparado el archivo para convertir y tendremos que pulsar en Aceptar.

A continuación vuelve a abrir el directorio donde tenemos las ROMS, pero en este caso deberemos indicar con que nombre guardará el juego convertido a 64k. En nuestro ejemplo lo guardamos con el nombre de Arkanoid64. (Se recomienda guardar el fichero utilizando el nombre de la ROM, seguido del modo elegido para la conversión a 64k. Así sabremos como configurar la placa…….ejemplo: Arkanoid_RD o Arkanoid_CS12 o Arkanoid_CS2 ect.)

Sin todo es correcto nos devolverá un mensaje de «The conversion completed successfylly «, especificando la conversión del archivo y la ruta donde se encuentra

Posibles mensajes de error del programa SGC_ImageCreator .

Tal y como antes mencionábamos, el programa SGC_ImageCreator es muy intuitivo porque delante de cualquier mensaje de error nos da las diferentes soluciones para poder convertir correctamente los archivos ROM.

Convertir un archivo de mayor tamaño con el jumper equivocado: Uno de los errores comunes, es intentar convertir un archivo ROM de 32k, habiendo configurado el programa en la posición CS1 o CS2. Como anteriormente hemos descrito CS1 y CS2 son posiciones de memoria para ROMS no superior a 16Kbytes.

En este caso nos da un error, porque si observáis, la soldadura que se cambia cuando se pulsa el CHANGE MODE, está en la posición CS2 y al convertir un archivo de 32Kbytes en este modo, causará como resultado el mensaje que se observa en la imagen de arriba. Como posibles soluciones el propio mensaje ya recomienda cambiar a RD, CS12 que son posiciones de memoria superior a 16Kbytes.

Convertir un archivo en una posición de memoria diferente al jumper seleccionado: Este mensaje de error nos comunica que estamos convirtiendo un archivo de 16Kbytes, con una dirección de memoria que empieza a partir de 0x8000 teniendo seleccionado CS1, cuando CS1 empieza a partir 0x4000. Como posibles soluciones sugiere cambiar el CHANGE MODE a CS2 o RD.

Configuración avanzada.

En circunstancias normales, tenemos un juego de 8 a 64K, tiene las páginas en el orden correcto, seleccionamos la opción correcta y teniendo un chip de 64K… el sistema de conversión funciona correctamente.

En algunos casos las páginas están en desorden o la cabecera del programa está pensada para una página rara (como CS0) pero abordaremos esas cuestiones en una página a parte. También es posible que queráis utilizar una memoria con varios juegos. Todo esto será abordado en…

EEPRPOM configuración avanzada

PASO 5. Grabación de la ROM (juego) mediante un programador.

Una vez ya tengamos el archivo ROM convertido en el paso anterior, el proceso para grabarlo mediante el programador (en nuestro caso el TL866II plus) es abrir el programa del grabador (en nuestro caso XGPRO), seleccionar el tipo de chip correcto (en nuestro caso WinWond W27C512) abrir el fichero convertido en el paso anterior, conectar el chip al programador y quemarlo. Repitamos esto paso a paso.

Para ello primero seleccionaremos desde SELECT IC el tipo de circuito integrado que deseemos utilizar, que en nuestro caso es un 27c512, seguido de la marca del chip que es WINBOND y para finalizar el tipo de encapsulado, que siempre será DIP28.

Una vez tengamos el circuito integrado debidamente seleccionado, se abrirá un explorador de archivos y procederemos a seleccionar el fichero .ROM que deseemos grabar.

Una vez que pulsemos abrir, saldrá otra ventana con una serie de OPCIONES que no debemos tocar y a continuación pulsar OK para cargar la ROM en el programa.

A continuación podemos extraer el chip de la placa para insertarlo en el programador, o bien, si tenemos el adaptador podemos insertar directamente el cartucho entero (para ello seguid las indicaciones en la siguiente foto) y conectar los interruptores que dan acceso completo a esa memoria en nuestro ejemplo P1–A15, RD y P27–A14 en la posicion ON el resto posición OFF. Esta configuración de jumpers es sólo válida cuando queramos grabar una ROM a un chip de 64K (W27C512 o 27C512). Para las configuraciones de chip 27c128/256 deberemos tomar otras opciones.

A continuación volveremos a mirar el PC y pulsaremos el icono «PROG.» de la barra de herramientas para grabar la ROM al chip 27c128/256/512 y finalmente pulsar «PROGRAM«.

Si todo es correcto el programa nos devolverá un mensaje «Programming….Succeeded» confimando que la ROM se ha copiado al chip sin problemas.

El siguiente paso es configurar los jumpers de la placa MSX EEPROM, y seleccionar los jumpers correctos. Si hemos utilizado el programa SGC_ImageCreator del grupo RBSC, hay que seleccionar una opción de jumpers para cada opción de conversión de dicho programa.

programado como RD    ==>   P1=A15   RD     P27=A14
programado como CS12  ==>   P1+     CS12    P27=A15
programado como CS1   ==>   P1+     CS1     P27+
programado como CS2   ==>   P1+     CS2     P27+

Por tanto si hemos convertido una ROM a 64k y la opción «CHANGE MODE» la hemos fijado en RD, la configuración correcta será: P1=A15, RD y P27=A14, si la placa MSX EEPROM la tenemos que configurar de la misma manera antes de insertarla en el SLOT del MSX.

hay que corregir este texto:

NOTA: Se desaconseja hacer experimentos con los jumpers como seleccionar varios a la vez sin saber la función concreta, para evitar daños al cartucho MSX EEPROM, o al ordenador. Como se mencionó anteriormente sólo hay que seleccionar un interruptor de cada grupo:
A) P1+, P1-, P1=A15
B) CS1, CS2, CS12, RD
C) P27+, P27-, P27=A14, P27=A15

Si todo es correcto al insertar el MSX EEPROM 64K en el slot del MSX el juego tendría que funcionar perfectamente.

Capsule5000 MSXmakers member.

Diseña un sitio como este con WordPress.com
Comenzar