Conector expansión Spectrum para ZX-Uno

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 7 veces

Conector expansión Spectrum para ZX-Uno

Mensajepor antoniovillena » 02 Ene 2015, 17:52

Vamos a hacer 2 diseños. El primero que muestro es el mío, que está hecho a base de lógica discreta. Más tarde McLeod hará otro de dimensiones más reducidas basado en un CPLD. Me he basado en este circuito para los pines bidireccionales, un divisor de tensión para las entradas y los propios registros (alimentados a 5V) para las salidas. No sé si estará bien, ni si quiera si es posible tener pines bidireccionales en la FPGA, a ver qué dice McLeod. Por otro lado no he hecho la PCB porque me falta la huella del conector de expansión del ZX Spectrum en Eagle, a ver si alguien la tiene por ahí o sabe cómo se hace.

Nota: los mosfets son BSS138 (no 123 como aparecen en la imagen) y tengo pensado poner cuatro 74hc574 en lugar de dos y dos 74hc174 como hay ahora. Ocupan más PCB pero son más baratos.

unoedge.png
unoedge.png (35.27 KiB) Visto 3716 veces
Adjuntos
unoedge.zip
(55.25 KiB) Descargado 146 veces

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5310
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 46 veces
Contactar:

Re: Conector expansión Spectrum para ZX-Uno

Mensajepor mcleod_ideafix » 02 Ene 2015, 18:02

antoniovillena escribió:Por otro lado no he hecho la PCB porque me falta la huella del conector de expansión del ZX Spectrum en Eagle, a ver si alguien la tiene por ahí o sabe cómo se hace.

Yo le tengo cogido el truco al editor de librerías de Eagle. Te estoy haciendo una. Supongo que tu versión de Eagle más moderna podrá leer ficheros de librería de la versión 5.4.0, ¿no?
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Quest
Atari 1040 STf
Atari 1040 STf
Mensajes: 900
Registrado: 18 Jul 2013, 22:20
Sistema Favorito: Commodore Amiga
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo SNES
Primera consola: Nintendo NES/Clónica
Gracias dadas: 9 veces
Gracias recibidas: 13 veces

Re: Conector expansión Spectrum para ZX-Uno

Mensajepor Quest » 02 Ene 2015, 18:12

Qué buena noticia que esteis ya con esto :D :D

Pensando en las dimensiones y forma finales que pueda tener la placa/as del puerto de expansión, quizá debería tener un tamaño y forma que permita cierta versatilidad, dependiendo del uso final que le quiera dar el usuario:

- Que se pueda poner en una carcasa original de spectrum gomas / spectrum plus (para lo cual imagino que hará falta que tenga un conector propietario, o de tira de pines para ponerle un cable de "faja" hasta el zxuno, y así poder ubicar el zx-uno en la posición que se desee dentro de la carcasa) y con agujeros para poder atornillarlo donde se quiera.

- O que se pueda poner en una cajita externa, mecanizada, a parte de la del zx-uno, conectado también a él mediante el mismo tipo de cable plano.

- O una plaquita (supongo que esta sí tendría que tener una forma diferente) que se conecte directamente al zx-uno sin cables (como está ahora la plaquta de VGA o la del Z80).

Supongo que todo dependerá un poco de cómo los usuarios vayan a usarlo... A mí personalmente me gusta más la primera opción, para meterlo en una carcasa real y posteriormente adaptar el teclado real para que funcione en el zx-uno. Pero es cuestión de gustos. Otros preferirán una solución más compacta con una plaquita directa.

Estaremos atentos al hilo a ver cómo avanza :)

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5310
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 46 veces
Contactar:

Re: Conector expansión Spectrum para ZX-Uno

Mensajepor mcleod_ideafix » 02 Ene 2015, 18:47

Quest escribió:Qué buena noticia que esteis ya con esto :D :D

Pensando en las dimensiones y forma finales


De momento, y dado que las dimensiones del producto final aún estan por detallar, esta placa se hará con fines de testeo y prototipado, como todo lo que se está haciendo hasta ahora. En mi caso particular eso significa que probablemente, y para no complicarme la vida, lo haga todo en una sola placa, aun a riesgo de que el conector de expansión no quede a ras de superficie como debería ser, sino unos centímetros en el aire. Dado que esto es para probar el diseño, a mi me vale, pero obviamente no lo haría así para un producto final.

Para una versión final lo que pensaba era usar dos placas, conectadas como habías pensado, con un conector de faja. La placa que contenga el conector de bus trasero llevaría un par de tornillos para poder anclarla en una carcasa aparte, si es menester. De hecho había pensado incluso en aprovechar cables ATA-66 paralelo para el cable-faja, ya que llevan una señal de GND entre cada dos de datos, y eso para apantallar señales me vale. Claro que por otra parte, probablemente cada vez sea más difícil encontrar cables ATA de ese estilo, y quizás no tenga suficientes pines de señales. En el Spectrum original no era raro encontrarse interfaces con la faja de cables como parte del conector, pero esto funcionaba con el Spectrum porque eran señales que venían de un circuito NMOS, que tiene unos tiempos de subida lentos y no provocan demasiado ruido de conmutación. El ZX-Uno es CMOS, y los tiempos de subida/bajada son muy pequeños (1-2 ns), lo que ocasiona más ruido de conmutación, y es posible que un diseño con un cable-faja en medio dé problemas a algunos periféricos. El diseño con CPLD lo haré configurando a la CPLD para que dé señales con "slow slew-rate" para paliar en la medida en que se pueda esto.

-- Actualizado 02 Ene 2015, 18:53 --

mcleod_ideafix escribió:
antoniovillena escribió:Por otro lado no he hecho la PCB porque me falta la huella del conector de expansión del ZX Spectrum en Eagle, a ver si alguien la tiene por ahí o sabe cómo se hace.

Yo le tengo cogido el truco al editor de librerías de Eagle. Te estoy haciendo una. Supongo que tu versión de Eagle más moderna podrá leer ficheros de librería de la versión 5.4.0, ¿no?

Ya está hecha. Mira en el repositorio, una nueva carpeta que se llama "hardware". Tienes permiso de escritura en ella.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 7 veces

Re: Conector expansión Spectrum para ZX-Uno

Mensajepor antoniovillena » 03 Ene 2015, 00:43

Gracias. Ya he actualizado el diseño y lo he subido al repositorio. A ver si mañana me pongo a rutear.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5310
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 46 veces
Contactar:

Re: Conector expansión Spectrum para ZX-Uno

Mensajepor mcleod_ideafix » 03 Ene 2015, 01:08

Una cosita: veo que estás usando el montaje de SparkFun con el MOSFET para la conversión de voltajes. Ten en cuenta que lo que hace este diseño es saturar al MOSFET en cuanto alguno de los dos extremos pone un 0, transmitiéndose al otro extremo, o bien cortar el MOSFET en cuanto alguno de los extremos pone un 1, en cuyo caso en el otro extremo lo que aparece es el estado de alta impedancia, que con el pullup correspondiente hace que aparezcan los 5V o los 3,3V

Pues bien, ahí está el detalle: que el pullup para la línea de 5V que aparece en el artículo y que es el mismo que tú has usado es de 10K, lo que da una corriente de 0,5mA en cada línea del bus de datos vista por los periféricos. En cuanto pinches una interface de Spectrum que use cargas TTL, el bus de datos se te va a venir abajo del todo por la poca capacidad de corriente que tiene y el periférico no va a funcionar. Tienes que bajar bastante esa resistencia de pullup. Idealmente a 250 ohmios, para una corriente de 20mA. Como eso va a hacer que el consumo se dispare, prueba con pullups no mayores de 1K (esto sólo para la línea de 5V, para la de 3,3V no es necesario que bajes el pullup porque quien recibe esos datos es un dispositivo CMOS, que no carga casi nada la línea)

Otra opción (mejor incluso) es dejar los pullups como están, e incorporar un transceiver 74HCT245 a la salida de este conversor. Es decir, entre el conversor y el slot de expansión del Spectrum. La señal /OE la llevas a nivel bajo permanente, y la señal /DIR la llevas al pin de /RD del procesador. Cablea el 74HCT245 de forma que cuando DIR valga 0, el sentido sea desde el slot de expansión hacia la batería de MOSFETs, y que cuando DIR sea 1, el sentido sea al contrario: desde la batería de MOSFETs hacia el slot de expansión.

NOTA: En rigor, el transceiver debería también reconocer la combinación /IORQ + /M1 de forma que cuando ambas valieran 0, dejar pasar el dato que hubiera en el exterior hacia la batería de MOSFETs, para que así un periférico externo pueda poner un dato en el bus durante el ciclo de INTACK, pero sólo conozco un periférico que haga eso: una interface MIDI o algo así, y no la tengo, así que no podría hacer pruebas con ella.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 7 veces

Re: Conector expansión Spectrum para ZX-Uno

Mensajepor antoniovillena » 03 Ene 2015, 02:01

Pues la verdad es que no tengo nada de experiencia en este tipo de circuitos. Digamos que me he tirado a la piscina a sabiendas que iba a ser rescatado. Si no te importa ponme el circuito para uno de los 8 pines bidireccionales, que yo ya lo replico (es que no me he enterado muy bien).

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5310
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 46 veces
Contactar:

Re: Conector expansión Spectrum para ZX-Uno

Mensajepor mcleod_ideafix » 03 Ene 2015, 02:41

antoniovillena escribió:Pues la verdad es que no tengo nada de experiencia en este tipo de circuitos. Digamos que me he tirado a la piscina a sabiendas que iba a ser rescatado. Si no te importa ponme el circuito para uno de los 8 pines bidireccionales, que yo ya lo replico (es que no me he enterado muy bien).

Ya tienes eso hecho. Hay dos versiones del "apaño": la v1 es bajando las resistencias de pullup en la parte de 5V. La v2 es dejando el circuito tal cual, pero añadiendo el transceiver para tener más "fuerza" en las líneas del bus de datos.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 7 veces

Re: Conector expansión Spectrum para ZX-Uno

Mensajepor antoniovillena » 03 Ene 2015, 13:33

Gracias, ya estoy ruteando.

¿Qué te parece si ponemos este chip...

http://www.ti.com/lit/ds/symlink/sn74lvc4245a-ep.pdf

...o alguno similar en lugar del 74hc245 y los level shifters a base de transistores?

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5310
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 46 veces
Contactar:

Re: Conector expansión Spectrum para ZX-Uno

Mensajepor mcleod_ideafix » 03 Ene 2015, 15:46

antoniovillena escribió:Gracias, ya estoy ruteando.

¿Qué te parece si ponemos este chip...


Sí. Justo ese es el que estaba buscando en lugar del HCT, pero no recordaba cómo se llamaba.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 4 invitados