Es una nueva versión del interface MEGAFLASH para Amstrad CPC.
¿Qué diferencias hay con la versión anterior?. Pues básicamente las siguientes:
1ª - Incorpora interface de lowerROM. Esto es útil para no tener que abrir y desoldar la ROM interna para sustituir por la ROM que permite aprovechar las 32 ROMs.
2º - Incorpora un conector de 26 pins para conectar el interface de floppy multisistema.
3º - Incorpora un conector para alimentar la disquetera desde el CPC.
4º - Incorpora huella para soldar un conector EDGE (para conectar directamente al CPC) o un conector IDC50 (para conectar a una placa MX4)
Una lowerROM siempre va ligada a una versión de Basic, por lo que en realidad necesitamos un total de dos huecos de los 32 de que disponemos en la memoria flash para cada lowerROM.
El interface permite almacenar dos lowerROM con su BASIC correspondiente, por lo que ocuparemos un total de 4 huecos para las lowerROM con sus correspondientes BASIC, dejando 28 huecos para rellenar con UpperROMs.
Las dos lowerROMs son seleccionables mediante un selector, ocupando la primera de ellas los huecos (0=BASIC, 7=lowerROM) y la segunda (30=lowerROM, 31=BASIC).
Aquí os dejo una foto del prototipo en funcionamiento (v0.1)
La placa definitiva tendrá este aspecto:
ARCHIVOS NECESARIOS PARA EL MONTAJE
Esquema:
Pinchar aquí para ver en detalle
Archivos GERBER
Archivos EAGLE
Archivo JED
Archivos ABEL
Partlist
Ecuaciones de la GAL:
ROM_NO_OE = ( NO_ROMEN );
ROMA14 = ( A15 & D0
# !A15 & !LOWER_ROM_SELECTED
# A15 & !D5_o_D6_o_D7 & !D4 & !D3 & !D2 & !D1
& LOWER_ROM_SELECTED & !INT_LOWROM_ENAB );
ROMA15 = ( !A15
# D1
# !D5_o_D6_o_D7 & !D4 & !D3 & !D2 & !D0 & LOWER_ROM_SELECTED
& !INT_LOWROM_ENAB );
ROMA16 = ( !A15
# D2
# !D5_o_D6_o_D7 & !D4 & !D3 & !D1 & !D0 & LOWER_ROM_SELECTED
& !INT_LOWROM_ENAB );
ROMA17 = ( A15 & D3
# !A15 & LOWER_ROM_SELECTED
# !D5_o_D6_o_D7 & !D4 & !D2 & !D1 & !D0 & LOWER_ROM_SELECTED
& !INT_LOWROM_ENAB );
ROMA18 = ( A15 & D4
# !A15 & LOWER_ROM_SELECTED
# !D5_o_D6_o_D7 & !D3 & !D2 & !D1 & !D0 & LOWER_ROM_SELECTED
& !INT_LOWROM_ENAB );
ROMDIS = !( !A15 & INT_LOWROM_ENAB
# A15 & D5_o_D6_o_D7 & WRITE_DISABLE
# A15 & !D4 & !D3 & D2 & D1 & D0 & WRITE_DISABLE
# !D4 & !D3 & !D2 & !D1 & !D0 & INT_LOWROM_ENAB & WRITE_DISABLE );
ROM_NO_CE = ( !A15 & INT_LOWROM_ENAB
# A15 & D5_o_D6_o_D7 & WRITE_DISABLE
# A15 & !D4 & !D3 & D2 & D1 & D0 & WRITE_DISABLE
# !D4 & !D3 & !D2 & !D1 & !D0 & INT_LOWROM_ENAB
& WRITE_DISABLE );
ROM_NO_WE = !( A15 & !WRITE_DISABLE & !NWR
# !INT_LOWROM_ENAB & !WRITE_DISABLE & !NWR );
De momento con esto ya deberíais ser capaces de realizar el montaje, pero cuando tenga un rato haré un tutorial algo más detallado.
EDITO: Añado algunos comentarios para el montaje de los kits.
Aunque todavía no tengo el manual hecho, como es muy sencillo y ya he empezado a enviar paquetes, sí que hago un par de apreciaciones necesarias para el montaje (modifico también en el primer mensaje del hilo)
- Aunque en la placa el valor de R4 es 4k7, hay que soldar una resistencia de 1K. He tenido que cambiar este valor porque el buffer que viene con el kit es un 74LS374 en lugar del 74HC374 con el que hice las pruebas del prototipo. Pensaba que no iba a tener influencias, pero al montar el primero con todos los nuevos componentes comprobé que no funcionaba con ese valor de resistencia y tuve que bajar el valor al actual 1K.
- Los selectores son para soldar en placa. Para poder usar una caja y que tanto el led como los selectores queden accesibles se pueden usar dos métodos:
1. Aunque los selectores son rectos, se pueden soldar como si fueran acodados, bien soldándolos directamente en superficie o bien haciendo que entren un poco los pins y luego doblándolos, dejando que tanto el led como los selectores sobresalgan por arriba de la placa (ver foto).
El resultado será que se podrá agujerear la caja por la parte superior para permitir el paso de estos.
En el caso del selector DPDT (el de 6 patillas), hay que hacer un cambalache adicional, se insertan ligeramente solo los tres pines de uno de los datos, y los otros tres se dejan rectos. En los kits he incluido una tira de 3 pins para soldar en el hueco dejado por esos tres pins. Después deberemos soldar los pines libres del selector con los de la tira de pines que hemos soldado a la placa y cortamos lo que sobra.
Por último el selector de abajo se puede dejar dentro de la caja ya que su uso es muy esporádico (solo sirve para deshabilitar el interface).
2. Soldar todos los selectores por el lado de las pistas, de esta manera los selectores y el led sobresaldrán por el frontal de la caja. El único que no se puede soldar así es el selector inferior ya que tropezaría con el CPC.
Para los que he montado yo he adoptado la primera solución, pero quizás sea más sencilla la solución número 2.
Recordad también que el conector EDGE va soldado por el lado contrario que el resto de los componentes.
USO DE LOS SELECTORES:
Tenemos un total de 4 selectores en la placa. Seguidamente describo su funcionalidad y el significado de cada posición con el interface conectado y mirando de frente al CPC.
JP2. Es el selector de más a la derecha. Inicialmente servía para seleccionar entre la lowerROM 0 ó la 1 de las dos que debería albergar la memoria flash. Aunque temporalmente no funciona ya que solo podemos tener una lowerROM en la flash, he decidido mantenerlo por si en el futuro sacara una actualización de las ecuaciones de la GAL que permitieran usar esta funcionalidad.
JP1, nos permite seleccionar entre la lowerROM interna del CPC o la de la memoria Flash. Cuando está situado hacia la izquierda se activa la lowerROM de la memoria flash, mientras que si está hacia la derecha se activa la lowerROM del CPC.
S1, nos permite activar o desactivar el modo de escritura. Para evitar corromper accidentalmente el contenido de la memoria flash, es muy importante tener siempre situado hacia la izquierda (led apagado) el selector a no ser que nos lo pida el sistema durante una operación de escritura en la memoria flash.
JP3. Está situado en la parte de abajo a la derecha y sirve para deshabilitar la funcionalidad del interface. El interface está desactivado cuando el selector está hacia abajo y activado cuando está hacia arriba. Es muy importante saber que para desactivar completamente el interface deberemos tener también deshabilitada la lowerROM de la memoria flash (JP1 hacia la derecha), en caso contrario no arrancará el CPC.
La GAL y la memoria flash os los mando programadas para que sea pinchar y empezar a trabajar con el interface.
La memoria flash lleva incorporado el programa ROMAN que ya conocemos de la versión anterior del megaflash y una versión del Megaflash ROM Manager especial para funcionar con el CPC464 que me modificó el programador (TFM), ya que la otra versión solo funcionaba con 128Kb. Está última deberemos cargarla con el comando MODE 2:|RMS.
Pongo aquí algunas fotos para los que eligieron el conector IDC. No son muchos pero es importante saber como debe quedar soldado el conector IDC.
Aquí como queda conectado en la placa MX4.
Esta desde fuera para que se vea mejor
Desde la parte trasera.
Detalle de la zona del conector que he tenido que cortar paran que no tropiece con la resistencia y el diodo.