PiZx: Clon barato de spectrum con FPGA (WIP)

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
na_th_an
Amiga 1200
Amiga 1200
Mensajes: 1273
Registrado: 10 Oct 2012, 11:17
Sistema Favorito: (Otro)
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Sega Master System
Gracias dadas: 18 veces
Gracias recibidas: 15 veces

Re: Idea: Clon barato de spectrum con FPGA

Mensajepor na_th_an » 30 Jul 2013, 13:53

Jodó, esto suena genial. Y si, además, le metéis ULA+ tendré que decir eso de SHUT UP AND TAKE MY MONEY!!!
Imagen

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
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: 53 veces
Contactar:

Re: Idea: Clon barato de spectrum con FPGA

Mensajepor mcleod_ideafix » 30 Jul 2013, 14:30

Otra cosa que se puede hacer: usar un Z80 de verdad y una FPGA pequeñita, como la Spartan 3AN-50.

Resulta que el Z80 CMOS, aunque en las especificaciones dice que se alimenta a 5V, puede alimentarse y funcionar a 3.3V . Esto significa que tenemos un Z80 real compatible en voltaje con la FPGA. Se puede quitar la implementación del Z80 de la FPGA y dejar a ésta únicamente para lo que es E/S y pantalla.

Ventajas: podemos usar la versión más pequeña de la Spartan 3AN, que usa VQ100. Al ser 3AN no hay que incorporar la ROM SPI, así que espacio y dinero que se ahorra respecto a usar cualquier otra familia de Spartan. Por otra parte, al usar un Z80 real no tenemos los problemas de timmings en E/S que tiene el core T80: son pocos los fallos, pero los tiene, y afecta a algún que otro juego, como Starion, tal y como descubrió Josef Laszo, la persona que implementó el clon de Spectrum con salida HDMI usando el core de la ULA de OpenCores.

Inconvenientes: es añadir otro chip más al reducido espacio de la placa, y añadir su precio a la BOM. Además, limitaría el uso de esta plaquita para quien quiera implementar un sistema no basado en Z80. Aunque el objetivo principal sea tener un clon barato de Spectrum, se conseguirán más interesados si se deja abierta la posibilidad a que cada cual implemente cualquier otra cosa, basada o no en Z80, que pueda caber en la FPGA.

¿Qué opción cogería yo? De las dos (Z80 + Spartan 3AN-50 versus Spartan-otrotipo + SPI ROM) escogería la más barata.
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: 8 veces

Re: Idea: Clon barato de spectrum con FPGA

Mensajepor antoniovillena » 30 Jul 2013, 15:09

Haciendo una comparativa de precios, de modo orientativo ya que nos tenemos que ceñir a los precios del fabricante que se encargue del montaje:

XC3S50AN, $4.38 http://www.aliexpress.com/item/Free-shi ... 37156.html
XC3S200, $4.40 http://www.aliexpress.com/item/XC3S200- ... 68387.html
AT45DB041D, $0.39 http://www.aliexpress.com/item/Free-Shi ... 54666.html
Z80C0020, $1.45 http://www.ebay.com/itm/10x-ZILOG-Z84C0 ... 53f1a64222

Así que la opción 1 (S50AN+Z80) sale por $5.83 y la opción 2 (S200+AT45) por $4.79. El precio es muy parecido, solo varía $1, puede que con las tarifas del fabricante la cosa cambie. Habría que sopesar los pros y los contras.

-- Actualizado 30 Jul 2013, 14:19 --

El XC3S50AN no existe en TQ100, el que he enlazado es TQ144

Avatar de Usuario
jotego
Atari 1040 STf
Atari 1040 STf
Mensajes: 657
Registrado: 16 Ene 2013, 23:25
Sistema Favorito: Atari ST
primer_sistema: Amstrad CPC
consola_favorita: Sony PlayStation 2
Primera consola: Atari Lynx
Ubicación: Valencia (España)
Gracias dadas: 27 veces
Gracias recibidas: 44 veces
Contactar:

Re: Idea: Clon barato de spectrum con FPGA

Mensajepor jotego » 30 Jul 2013, 15:32

mcleod_ideafix escribió:O Resulta que el Z80 CMOS, aunque en las especificaciones dice que se alimenta a 5V, puede alimentarse y funcionar a 3.3V . Esto significa que tenemos un Z80 real compatible en voltaje con la FPGA. Se puede quitar la implementación del Z80 de la FPGA y dejar a ésta únicamente para lo que es E/S y pantalla.


El sacar el Z80 fuera de la FPGA es una buena idea pero no tengo tan claro que vaya a funcionar de forma estable a 3.3V. Una cosa es intentarlo en un prototipo al que le vas a exigir poco y otra ponerlo en una placa a posta y venderlo. Si en la hoja de datos no pone que va a 3.3V, no hay que usarlo a 3.3V en un producto.

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

Re: Idea: Clon barato de spectrum con FPGA

Mensajepor antoniovillena » 30 Jul 2013, 15:46

También está el encapsulado PLCC44 para el Z80, aunque sale algo más caro $2.58 http://www.ebay.com/itm/10PCS-IC-Z84C00 ... 43b5f82c2f

En el caso de que elijamos la opción sólo FPGA también existe la posibilidad de meterle un Z80 en una placa adicional, posiblemente tan pequeña que se pueda cerrar la carcasa.

-- Actualizado 30 Jul 2013, 14:50 --

jotego escribió:El sacar el Z80 fuera de la FPGA es una buena idea pero no tengo tan claro que vaya a funcionar de forma estable a 3.3V. Una cosa es intentarlo en un prototipo al que le vas a exigir poco y otra ponerlo en una placa a posta y venderlo. Si en la hoja de datos no pone que va a 3.3V, no hay que usarlo a 3.3V en un producto.


En las especificaciones de los circuitos CMOS normalmente te dan un rango amplio de alimentación, y los parámetros te vienen en función de cómo lo alimentes. Por ejemplo en lugar de decirte Voh de 4.8V, te dicen de Vcc-0.2V. Así si lo alimentas con 5 será de 4.8 y si lo alimentas con 3.3 será 3.1. No digo que se pueda o que no se pueda, habría que analizar el datasheet del Z80 en profundidad.

-- Actualizado 30 Jul 2013, 15:02 --

En el datasheet pone entre 4.5V y 5.5V, vamos que estaríamos fuera de las especificaciones. Aún así, si hay evidencias de que se puede alimentar a 3.3V sin problemas, se podría poner.

Avatar de Usuario
jotego
Atari 1040 STf
Atari 1040 STf
Mensajes: 657
Registrado: 16 Ene 2013, 23:25
Sistema Favorito: Atari ST
primer_sistema: Amstrad CPC
consola_favorita: Sony PlayStation 2
Primera consola: Atari Lynx
Ubicación: Valencia (España)
Gracias dadas: 27 veces
Gracias recibidas: 44 veces
Contactar:

Re: Idea: Clon barato de spectrum con FPGA

Mensajepor jotego » 30 Jul 2013, 16:07

antoniovillena escribió:En las especificaciones de los circuitos CMOS normalmente te dan un rango amplio de alimentación, y los parámetros te vienen en función de cómo lo alimentes. Por ejemplo en lugar de decirte Voh de 4.8V, te dicen de Vcc-0.2V. Así si lo alimentas con 5 será de 4.8 y si lo alimentas con 3.3 será 3.1. No digo que se pueda o que no se pueda, habría que analizar el datasheet del Z80 en profundidad.


Por donde fallará es por temperatura y frecuencia. El chip se ha diseñado y probado para cierto rango de voltaje, temperatura y frecuencia. Si le bajas el voltaje, como es todo digital, seguirá funcionando pero más lento. Puede que no lo notes a temperatura ambiente, pero cuando lleve un ratito encendido y se caliente fallará. Puede que un chip te vaya bien 20 horas, pero a lo mejor otro, falla a las 5 horas. A lo mejor ejecutando cierto programa que lo calienta menos no falla, pero con otro que lo calienta más sí.

Cuando hice la plaquita para explorar el YM2151 probé las dos cosas: alimentarlo a 3V como la FPGA, y a 5V con unas resistencias en serie para limitar posibles corrientes hacia la FPGA. Sabía que ninguna de las dos cosas era una solución completa al problema de tener cada chip fabricado para un voltaje pero esperaba que bastase para hacer unas cuantas medidas caseras. No hubo suerte. A 3V el YM2151 tiene problemas para leer del bus de datos y a 5V las protecciones ESD de la FPGA saltan en cuanto ésta se calienta un poco. Al final me ha tocado comprar unos traductores de nivel, que todavía no me han llegado.

Si hubiese un Z80 a 3V, que puede que lo haya, entonces sí es una buena opción. Con el de 5V, sin conversores de nivel, mejor no intentarlo.

jepalza

Re: Idea: Clon barato de spectrum con FPGA

Mensajepor jepalza » 30 Jul 2013, 21:15

Conmutar entre sistemas os podéis olvidar desde ahora, por que entonces, el precio se dispara. Ademas, ya existe (leer esta PRUEBAque hice hace un tiempo). Es inventar la rueda de nuevo.
Si se hace un Spectrum, que sea un Spectrum. Si se quiere luego un ZX81, se borra todo, y se graba un ZX81. Hacer que se pueda cargar algo diferente exige una FPGA mas compleja, que deje tener un BOOT de inicio para elegir uno u otro (como en la revisión que acabo de indicar).
Si se quiere barato y pequeño, tiene que se monosistema sí o sí.

:pacman:
Por cierto, la gente ya está pidiendo de apuntarse a algo inexistente, así que, por favor, no pongaís lo de "apúntame un kit completo" que aquí no se habla de eso, esto no es una lista de apuntados, es solo una idea de base. Si un día esto ve la luz, se pondrá un lista formal.

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
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: 53 veces
Contactar:

Re: Idea: Clon barato de spectrum con FPGA

Mensajepor mcleod_ideafix » 30 Jul 2013, 23:39

jotego escribió:
antoniovillena escribió:En las especificaciones de los circuitos CMOS normalmente te dan un rango amplio de alimentación, y los parámetros te vienen en función de cómo lo alimentes. Por ejemplo en lugar de decirte Voh de 4.8V, te dicen de Vcc-0.2V. Así si lo alimentas con 5 será de 4.8 y si lo alimentas con 3.3 será 3.1. No digo que se pueda o que no se pueda, habría que analizar el datasheet del Z80 en profundidad.


Por donde fallará es por temperatura y frecuencia. El chip se ha diseñado y probado para cierto rango de voltaje, temperatura y frecuencia. Si le bajas el voltaje, como es todo digital, seguirá funcionando pero más lento. Puede que no lo notes a temperatura ambiente, pero cuando lleve un ratito encendido y se caliente fallará. Puede que un chip te vaya bien 20 horas, pero a lo mejor otro, falla a las 5 horas. A lo mejor ejecutando cierto programa que lo calienta menos no falla, pero con otro que lo calienta más sí.


Bueno, el chip es CMOS, no NMOS, y su frecuencia máxima es de 20MHz. Muy probablemente no funcione correctamente a 20MHz si se alimenta con 3,3V pero en el Spectrum está funcionando a 3.5MHz, menos de la cuarta parte de la frecuencia máxima, así que seguramente incluso alimentado a 3.3V es estable a esa frecuencia. Además, es estático. No se calienta nada a 5V, menos aún a 3.3V , ¿no?

Me da que la viabilidad del funcionamiento a 3.3V venga del hecho de que en los CMOS-CMOS, el voltaje umbral para 1 y 0 está en función de la tensión de alimentación, y en los CMOS compatibles TTL, ese umbral está fijo (2V mínimo para que se considere un 1, y 0.8V máximo para considerar un 0). Si bajas la tensión de alimentación, esos umbrales no se reajustan como lo harían con un CMOS de los de alimentación variable, sino que siguen siendo los mismos. Aun así, a 3.3V aún estarían dentro de los márgenes con los que se opera en LVTTL.

O también podría pasar que el chip fuera completamente funcional a 3.3V y Zilog se lo calle para no dañar las ventas de sus familias Z8 y Encore, que sí van a 3.3V

Con todo, el único testimonio que tenemos es el de este hombre, y yo porque no tengo tiempo ahora, pero es una idea que me gusta bastante, eso de poder hacer un Spectrum LV (Low Voltage).

En definitiva, esto es sólo información extra gratis que os paso, y que debe ser tratada con cautela :D Que sea viable, conveniente, o barato, eso ya es otra cosa.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
radastan
Amiga 2500
Amiga 2500
Mensajes: 4542
Registrado: 11 Jun 2007, 19:29
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Sega Genesis/Megadrive
Primera consola: TV Games/Pong Clone
Ubicación: Córdoba
Gracias dadas: 9 veces
Gracias recibidas: 40 veces
Contactar:

Re: Idea: Clon barato de spectrum con FPGA

Mensajepor radastan » 30 Jul 2013, 23:41

jepalza escribió:Por cierto, la gente ya está pidiendo de apuntarse a algo inexistente, así que, por favor, no pongaís lo de "apúntame un kit completo" que aquí no se habla de eso, esto no es una lista de apuntados, es solo una idea de base. Si un día esto ve la luz, se pondrá un lista formal.


Vaaaaale, pues que sea la placa solamente.

<XX <XX <XX <XX <XX <XX <XX <XX <XX

Venga, ya fuera coñas, es evidente que no se está tomando nota de quien pide un kit, pero nos sirve para saber el interés de la peña. No pasa nada, siempre que se tenga en mente que luego habrá que apuntarse formalmente a una lista y pagar por adelantado, por supuesto.

-- Actualizado 30 Jul 2013, 22:48 --

mcleod_ideafix escribió:Bueno, el chip es CMOS, no NMOS, y su frecuencia máxima es de 20MHz. Muy probablemente no funcione correctamente a 20MHz si se alimenta con 3,3V pero en el Spectrum está funcionando a 3.5MHz, menos de la cuarta parte de la frecuencia máxima, así que seguramente incluso alimentado a 3.3V es estable a esa frecuencia. Además, es estático. No se calienta nada a 5V, menos aún a 3.3V , ¿no?


Hombre, rizando el rizo se podría dar compatibilidad para los clones rusos (Pentagon) que si no mal recuerdo tienen frecuencias de trabajo superiores.

Entonces ya creáis el SuperSpectrum y todos nos vamos de borrachera hasta las tantas cuando el proyecto finalice y tengamos el clon en casa. Habríais creado el Spectrum que siempre todos hemos querido tener.

Y si encima lo convertís en Sam Coupé... compro dos, uno para Spectrum y otro para Sam. Sería la repanocha, el acabose, la quinta esencia de los 8 bits.
Yo tengo una máquina del tiempo, se llama ZX Spectrum, siempre me devuelve a los buenos momentos.
(\.../) (\.../) (\.../) (\.../)
( *.*) ('.'= ) ('.'= ) ('.'= )
(")_(") (")_(") (")_(") (")_(")
╔═══╦═══╦═══╦══╦══╗
║╔═╗║╔═╗║╔═╗╠╣╠╩╣╠╝
║║─║║╚══╣║─╚╝║║─║║
║╚═╝╠══╗║║─╔╗║║─║║
║╔═╗║╚═╝║╚═╝╠╣╠╦╣╠╗
╚╝─╚╩═══╩═══╩══╩══╝

Avatar de Usuario
scooter
Amiga 1200
Amiga 1200
Mensajes: 1031
Registrado: 17 Jul 2012, 09:25
primer_sistema: C64
Ubicación: Alicante

Re: Idea: Clon barato de spectrum con FPGA

Mensajepor scooter » 31 Jul 2013, 02:26

mcleod_ideafix escribió:O también podría pasar que el chip fuera completamente funcional a 3.3V y Zilog se lo calle para no dañar las ventas de sus familias Z8 y Encore, que sí van a 3.3V

No tengo ni idea de lo que hace zilog, pero si sirve de orientación usé unos max233 para hacer unos adaptadores RS232 para pdas palm y oficialmente no funcionan a 3,3V porque para eso está el max3233 pero todos los que probé funcionaban a la perfección, probé mas de quince tanto de maxim como sypex y todos los que pillé. Seún el datasheet no funciona por debajo de 4,2V o así osea que 3,3V y solo 30mA que daba el PDA es exigente.
Me imagino, solo me imagino, que saldrá mas barato fabricar solo el 3233 que también funciona a 5V y luego etiquetarlos según demanda.
Así que también me imagino que igual son el mismo z80 con distinta serigrafía, por si acaso leería el datasheet del que va a 3,3 a ver que frecuencia dice que soporta a 3,3.


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 14 invitados