Cacharreando con el prototipo 2 del 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

Cacharreando con el prototipo 2 del ZX-Uno

Mensajepor antoniovillena » 01 Ene 2015, 21:10

Este hilo es continuación de la saga:

PiZx: Clon barato de spectrum con FPGA (WIP)
ZX-Uno, clon barato basado en FPGA
Montaje del ZXUNO
Sintetizando un Spectrum con el ZX-Uno
Teclado para ZX-Uno (fork)
Avances en el desarrollo del ZX-Uno
Novedades acerca del ZX-Uno
Creando videos en formato "Radastaniano" para reproducirlos con ZX-Uno
Prototipo 2 del ZX-Uno
Montaje del prototipo 2 del ZX-Uno




Pdf con todo para revisar

Listado de componentes

Repositorio de McLeod:
http://www.atc.us.es/svn/zxuno/
Usuario: guest
Contraseña: zxuno




Listado para PCB+kit, segundo lote
  • enkonsierto CD0CRH0000002460041010V entregado
  • flopping CD0CRH0000002530046015W entregado
  • Hark0 CD0CRH0000002450008940P entregado, reenviado a web8bits CD0CRH0000003150008940Y
  • Quest CD0CRH0000002520050019T entregado
  • wilco2009 CD0CRH0000002530046015W entregado
  • web8bits
  • Sinclair CD0CRH0000002490002600E entregado
  • BCH CD0CRH0000002470008025G entregado
  • Angriff CD0CRH0000002430008970D entregado
  • garvidal CD0CRH0000002480045004A entregado
  • radastan CD0CRH0000002510014014V entregado
  • celestinox CD0CRH0000002500047164M entregado
  • Mejias3D CD0CRH0000002440007009W entregado
  • JonS (WOS) RR756320818ES entregado
  • aowen RR756320676ES entregado
  • Eselchen (WOS) RR756320985ES
  • javu61 CD0CRH0000003160046989E entregado

Listado para PCB+kit, tercer lote (3 unidades)
  • stratotrasto (va-de-retro.com)
  • Ben-kenobi (va-de-retro.com)
  • jrodriguezv (va-de-retro.com) RESERVADO para sustitución hasta finales de Febrero
Última edición por antoniovillena el 15 Feb 2015, 19:12, editado 17 veces en total.

Avatar de Usuario
Mejias3D
Commodore 128
Commodore 128
Mensajes: 97
Registrado: 07 Dic 2014, 20:05
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Videopac
Primera consola: Videopac
Ubicación: Palma de Mallorca
Contactar:

Re: Cacharreando con el prototipo 2 del ZX-Uno

Mensajepor Mejias3D » 02 Ene 2015, 00:00

TallerSeverino escribió: ¿No sería mejor incluirlo en la pcb aunque la caja sea más grande?


Pienso que incluirlo nos aleja demasiado del proyecto original.

mcleod_ideafix escribió: Respecto a incluir esto como parte del diseño final: es tentador, pero no lo veo por varias razones:
- El Z80 es caro, comparado con el resto de chips de la placa. Una de las metas del proyecto es mantenerlo barato.
- Una placa mas grande nos aleja del otro objetivo: que se puedan aprovechar carcasas de Raspberry Pi, que las hay de muchas formas, colores... y precios
- Este Z80 se está usando fuera de sus especificaciones. Que funcione mejor o peor puede que varie de un chip a otro.
- La razon fundamental por la que hice esta plaquita es poder aislar problemas de compatibilidad del ZX-Uno, y detectar los que sean responsabilidad de la CPU para solucionarlos en el core T80. Es cierto que mientras haya errores en el core, esta plaquita asegura mayor compatibilidad con todo el software del Spectrum.

De todas formas, sí que veo esta plaquita como un añadido disponible a todos los que la quieran comprar aparte, para, de alguna forma, expandir las posibilidades del ZX-Uno. Lo mismo que la placa que se haga para dotar al ZX-Uno de un slot de expansion compatible Spectrum, o incluso la plaquita para obtener salida VGA.


Coincido en tu opinión, salvo en mantener a toda costa las dimensiones de la PCB solo por la cuestión de la disponibilidad de las carcasas de Raspberry Pi. La impresión 3D "RepRap" no es prohibitivamente cara.

TallerSeverino escribió: Pues sí, pero si es un añadido muy bueno para el proyecto, yo creo que con las cajas que se están diseñando no habría ningún problema, además liberar espacio en la fpga puede aportar muchos beneficios. Estoy con el core del AY y por ejemplo esto vendría muy bien, ya que para simular las tres salidas prácticamente hay que triplicar el core y por lo tanto (a grosso modo) ocuparía tres veces más en la fpga. Si es para aislar problemas perfecto, pero a mi me da que esto es un añadido que había en mente desde la v1 y luego no se siguió la idea porque surgió el problema de que se quedaba pequeña la fpga. Tan solo una idea, no se lo que opina el resto.


Sí, opino como tú que es un añadido muy atractivo, pero que alargaría aún más el tiempo de desarrollo y la publicación de la versión final. El proyecto puede llegar a eternizarse y eso es poco deseable :-k

Respecto al tema de diseño de cajas contad con mi ayuda y con los cambios que hagan falta :)

mcleod_ideafix escribió: Como añadidos para comprar aparte, se me ocurren:
- Esta plaquita con el Z80.
- La plaquita con la salida VGA
- Plaquita para dar un slot de expansion compatible con perifericos existentes del Spectrum
- Plaquita con Spectranet "lite", esto es, un Spectranet con casi todos sus recursos en la FPGA, dejando fuera solamente el chip Wiznet y alguna cosa más
- Un adaptador externo que tenga tres puertos USB: uno para teclado/ratón (para los dispositivos compuestos), otro para ratón, y otro para joystick, y que se conecte directamente al puerto PS/2 y al DB9. La idea es poder usar estos dispositivos, en version USB HID sin problemas con el ZX-Uno, y asi disfrutar de teclados inhalambricos pequeñitos, que los hay no muy caros en version con nanorreceptor USB, para jugar con el clon sin cables por enmedio :)


Todos estos añadidos me parecen interesantes, pero me atraen especialmente la plaquita con salida VGA y la plaquita para slot de expansión compatible. Diría incluso que son prioritarios.

Quest escribió: Me parece genial la idea de los add-ons aparte :D y laplaquita del z80 tambien. Para gente como yo que nunca ha querido meter el zx-uno en una escueta carcasa de RPi, y por el contrario darle la libertad de expandirse hasta el infinito (para mi gusto mucho más práctico que guardar una estética contenida). Siempre de manera opcional, para que haya para todos los gustos. Además la idea de liberar de espacio a la fpga para hacer cosas más tochas me llama mucho. Este puede llegar a ser uno de los proyectos más versatiles que hay sobre sistemas en fpga.


Exactamente Quest! Hacer que sean add-ons y no parte integrada en la PCB hace que este proyecto sea aún más versátil y llegue a más gente.

Ahora os comento algo que no ha sido considerado aún:

Por una parte, existe la posibilidad de crear moldes partiendo de una matriz de impresión 3D, para no depender tanto de las impresoras 3D ajenas y por otra parte, ¿sabéis que un kit DIY de impresora 3D RepRap se va por los +/- 300 euros y que el kilo de filamento plástico se puede conseguir solo por unos 19 euros? Os aseguro que merece la pena, pues salen muchas carcasas con un kilo de material.

Otra posibilidad es que os animéis a hacer un pedido conjunto para reducir presupuesto, comparando precios en diferentes proveedores.
El mundo cambia con tu ejemplo no con tu opinión (Paulo Coelho)
El premio es el placer de descubrir (Richard Feynman)

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: Cacharreando con el prototipo 2 del ZX-Uno

Mensajepor mcleod_ideafix » 02 Ene 2015, 00:20

Mejias3D escribió:Otra posibilidad es que os animéis a hacer un pedido conjunto para reducir presupuesto, comparando precios en diferentes proveedores.

Será barato el kilo de plástico, pero hacer cada carcasa es leeeeeento. Hacer una puede que no parezca lento, pero multiplca el tiempo de una carcasa por 300 o por 500, a ver quien tiene paciencia para ponerse a hacer eso. A mi lo que me gustaría saber es lo que costaría hacerlo de forma profesional, usando moldes, o inyección o lo que quiera que se use para esas cosas.

De todas formas, desde el principio hemos querido alejarnos del tema precisamente para no tener que meter el coste NRE de hacer carcasas de plástico en el proyecto. Y por eso lo de mantener el tamaño de una Raspi. Luego, y al igual que ha pasado con la Raspi, si un usuario (pongamos tú, o jepalza) quiere hacer un diseño de caja más personalizado, con espacio para addons, un miniteclado, un anclaje VESA para atornillarlo detrás de una tele LCD, o cualquier cosa de estas, y ofrecerlo para que cada uno se lo imprima, o incluso hacer un miniproyecto a la sombra del ZX-Uno y vender las carcasas, pues por mi perfecto.

-- Actualizado 02 Ene 2015, 01:49 --

antoniovillena escribió:Hace falta multiplexar, por lo que 3 chips 74hc244 o algo similar no nos lo quita nadie. Yo estoy hablando de un addon puerto de expansión sin Z80

Sí, esa era mi idea inicial. Si hablé de ello a propósito de la plaquita del Z80 fue porque esa plaquita ya tenía casi casi todas las señales que se rutan al bus trasero, y de haber tenido más pines, pues hubiera añadido las que faltan, pero en ningún mmento he pensado en hacer la placa del bus trasero con un Z80 real.

Para adecuar las señales desde el exterior al core, y además implementar el multiplexor y todo lo necesario, usaré una CPLD, y así mato dos pájaros de un tiro :)
Bueno, una CPLD no es exactamente un level shifter. Esta trabaja a 3.3V pero sus entradas son tolerantes a 5V, y en cuanto a las salidas, aunque sean a 3.3V, son rail a rail, y lo curioso es que precisamente en el Spectrum, por usar un Z80 NMOS y no tener buffereadas sus señales, lo que se ve en el bus de expansión son señales en el rango de aproximadamente 0V a 3V. A efectos de compatibilidad con entradas TTL no hay problemas :)

Las señales que pretendo poner en el bus trasero (excluyo alimentación) son:
- Todas las señales del Z80 excepto HALT, BUSRQ y BUSAK. ¿Alguien conoce alguna interface, aparte del MB-02, que las use? (35 señales)
- La señal ROMCS. No creo que haga falta implementar ROMOE1 y ROMOE2, a menos que haya alguna interface que deshabilite de forma selectiva una de las dos ROMs. (1 señal)
- La señal /Y (luminancia invertida). La usa la interfaz Spectra. En realidad la señal que va a aparecer por ahí será la de sincronismo compuesto, invertida (pulsos positivos). (1 señal)
- La señal IORQGE (o IORQULA como se la llama por ejemplo en Harlequin). Se usa en algunas interfaces de teclado PS/2 (la de JROK por ejemplo) y en mi cacharro adaptador de video MSX (1 señal)

Total: 38 señales. Hay 33 señales disponibles en el conector del ZX-Uno, si he contado bien:
- Señales del bus de datos: D0-D7. Se rutan tal cual, usando la CPLD como level shifter: 8 señales
- Señales del bus de control: MREQ, IORQ, RD, WR, INT, NMI, CLK, RFSH, M1, RESET, WAIT. Lo mismo. 11 señales
- Señales accesorias: ROMCS, /Y, IORQGE. Lo mismo. 3 señales.
- Señales del bus de direcciones: A0-A15. Candidatas a ser multiplexadas. Usando el reloj de 28MHz, y multiplexando 2 en 1, se usan 8 señales para el bus de direcciones, más 1 señal de selección y otra de reloj del multiplexor: 10 señales.

Total: 8+11+3+10 = 32 señales desde el core a la CPLD, y 38 de salida de la CPLD al bus trasero. Total, 70 señales. Con un XC9572XL-TQ100 deberían poder caber todas muy justitas (72 pines de I/O). Cuando escriba el core para la CPLD lo podré saber seguro.
http://es.aliexpress.com/item/10PCS-XC9 ... 70776.html

Me falta comprobar cómo quedan los ciclos de bus si el bus de direcciones tiene un retraso de 71ns respecto a las señales de control. No debería haber problemas con la mayoría de periféricos, pero me pregunto si para aquellos que hacen sniffer del bus del Z80 (como Spectra) supondrá algún problema el que la dirección aparezca un poquitín después de lo esperado.

En caso de problemas de rutado dentro de la CPLD o similares, las señales que se caerán de este listado serán, por orden: RFSH, /Y y IORQGE. Pongo RFSH primero aunque /Y e IORQGE no existan de hecho en el bus trasero del +2A, porque al menos estas dos últimas señales sé seguro que se usan en al menos un periférico existente. Respecto de RFSH, no sé si hay alguna interface que las use.

Aparte de esto, este bus trasero tendrá algunas características especiales, para interactuar de la mejor forma posible con los periféricos integrados en ZX-Uno. A saber:
- Un RESET que venga desde el bus trasero reiniciará sólo el procesador (equivalente a Ctrl-Alt-Supr)
- La señal INT será bidireccional: ZX-Uno indica con ella, como salida, que se está produciendo un retrazo vertical, y como entrada, un periférico podrá emitir interrupciones al micro. Hay una interfaz MIDI que usa este sistema, y alguna otra cosa más que no recuerdo.
- La señal ROMCS, si se fuerza a nivel alto, provocará que el espacio de memoria 0000-3FFF se quede completamente a merced de lo que ponga el periférico en el bus de datos. Es decir, se deshabilita la ROM del sistema, la ROM del ESXDOS, y la página de RAM que estuviese presente ahí, si estamos en el modo all-RAM del +2A/+3. Además, si se fuerza ROMCS a nivel alto, la interfaz DivMMC interna se deshabilita por completo, permitiendo a un periférico con ROM externa tomar el control de la NMI. Respecto a esto, se me ocurre otra alternativa: que mediante el teclado (una tecla de función por ejemplo) se permita o prohiba que un periférico externo tome el control de la NMI y el espacio de ROM. Así, se puede tener DivMMC habilitado para cargar cualquier cosa, un juego por ejemplo, y luego deshabilitar DivMMC y habilitar un periférico externo, por ejemplo un pokeador, para que sea él quien tome el control vía NMI y permita introducir pokes, o un transtape para hacer una copia de un juego a Microdrive o a disco, etc.
- Las señales NMI y M1. Se comportarán de acuerdo a lo explicado en el punto anterior. Si un periférico externo no tiene permiso para adueñarse del espacio de ROM, estas señales (junto con A15) siempre estarán a nivel alto.

Bueno, pues esa de momento es mi propuesta para este otro add-on.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Mejias3D
Commodore 128
Commodore 128
Mensajes: 97
Registrado: 07 Dic 2014, 20:05
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Videopac
Primera consola: Videopac
Ubicación: Palma de Mallorca
Contactar:

Re: Cacharreando con el prototipo 2 del ZX-Uno

Mensajepor Mejias3D » 02 Ene 2015, 01:59

mcleod_ideafix escribió:Será barato el kilo de plástico, pero hacer cada carcasa es leeeeeento. Hacer una puede que no parezca lento, pero multiplca el tiempo de una carcasa por 300 o por 500, a ver quien tiene paciencia para ponerse a hacer eso. A mi lo que me gustaría saber es lo que costaría hacerlo de forma profesional, usando moldes, o inyección o lo que quiera que se use para esas cosas.

De todas formas, desde el principio hemos querido alejarnos del tema precisamente para no tener que meter el coste NRE de hacer carcasas de plástico en el proyecto. Y por eso lo de mantener el tamaño de una Raspi. Luego, y al igual que ha pasado con la Raspi, si un usuario (pongamos tú, o jepalza) quiere hacer un diseño de caja más personalizado, con espacio para addons, un miniteclado, un anclaje VESA para atornillarlo detrás de una tele LCD, o cualquier cosa de estas, y ofrecerlo para que cada uno se lo imprima, o incluso hacer un miniproyecto a la sombra del ZX-Uno y vender las carcasas, pues por mi perfecto.


Tienes razón, la impresión 3D es lenta.

En mi experiencia de 5 años, recuerdo por ejemplo la "pintoresca" experiencia de un pedido de 3000 unidades de unas piezas con forma de monedas, logo incluido, a entregar en solo 15 días #-o También puedo decir que en Retrocables están bien contentos con mis carcasas DB9 para su cable Adaptador Kempston(Atari) a Sinclair(SJS), entre otras cosas, y no son pedidos pequeños lo que le sirvo.

Desde luego, si de lo que se trata es de mantener el precio bajo, lo mejor es usar las carcasas existentes para Raspberry Pi y dejarse de líos con impresiones 3D, eso sin duda.

Por otra parte, por si puedo ayudar con mi opinión, sé por algunos clientes a los que les hago diseños de productos para producción en masa, y que envían al matricero para que pueda hacer su estudio previo de viabilidad, que os va a resultar casi imposible que os atiendan para pedidos menores a 5000 unidades.

Dicho todo esto, seguid contando con mi ayuda desinteresada en los diseños de carcasas y en todo lo que pueda :) No estoy aquí para vender nada y me mueve solo mi agradecimiento a vosotros, por todo lo que estáis haciendo.
El mundo cambia con tu ejemplo no con tu opinión (Paulo Coelho)
El premio es el placer de descubrir (Richard Feynman)

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

Re: Cacharreando con el prototipo 2 del ZX-Uno

Mensajepor antoniovillena » 02 Ene 2015, 02:00

Pues más o menos era la idea que tenía yo, sólo que utilizando lógica discreta en vez de CPLD. Creo que lo suyo es que abramos un hilo aparte (si quieres hazlo tú). Como son plaquitas pequeñas van a caber más de una en el espacio de 10x10cm, así que si no te importa hazlo en Eagle como yo (es el único que más o menos domino) y luego juntamos los dos diseños en una misma PCB.

Avatar de Usuario
TallerSeverino
Amstrad PC 1640
Amstrad PC 1640
Mensajes: 517
Registrado: 12 Abr 2013, 09:55
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo NES/Clónica
Primera consola: Nintendo NES/Clónica
Ubicación: Cádiz
Gracias dadas: 17 veces
Gracias recibidas: 15 veces

Re: Cacharreando con el prototipo 2 del ZX-Uno

Mensajepor TallerSeverino » 02 Ene 2015, 07:17

antoniovillena escribió:Pues más o menos era la idea que tenía yo, sólo que utilizando lógica discreta en vez de CPLD. Creo que lo suyo es que abramos un hilo aparte (si quieres hazlo tú). Como son plaquitas pequeñas van a caber más de una en el espacio de 10x10cm, así que si no te importa hazlo en Eagle como yo (es el único que más o menos domino) y luego juntamos los dos diseños en una misma PCB.

Ya sabéis que si se trata de pcb's yo echo una mano, además seedstudio, a requerimiento popular admite por fin ficheros de altium, incluso ha sacado un script para garantizar que no haya errores. :D

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: Cacharreando con el prototipo 2 del ZX-Uno

Mensajepor mcleod_ideafix » 02 Ene 2015, 07:38

antoniovillena escribió:si no te importa hazlo en Eagle como yo (es el único que más o menos domino) y luego juntamos los dos diseños en una misma PCB.

Lo haré en Eagle, más que nada porque no tengo otro software instalado, y además es el que mejor conozco. He puesto la versión 7.0.2 a ver si no da pegas. Si las da, me vuelvo a la 5.4.0 que esa sé que me funciona bien con todo lo que tengo :)
Pero antes de hacer la placa tengo que hacer el core que va en la CPLD, ya que de la complejidad del mismo depende el tipo y patillaje de CPLD que use, y esto último afecta directamente a la placa que se diseñe.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
gamer80
Atari 1040 STf
Atari 1040 STf
Mensajes: 687
Registrado: 31 Oct 2011, 19:34
Ubicación: ESPARTA
Gracias dadas: 15 veces
Gracias recibidas: 19 veces
Contactar:

Re: Cacharreando con el prototipo 2 del ZX-Uno

Mensajepor gamer80 » 02 Ene 2015, 09:13

Hey, perdonen que interrumpa. He visto la plaquita con el Z80 exterior, y una de las ventajas (aparte de los timings perfectos), es que queda parte de la fpga o cpld que emplea libre, y según Mcleod, se podría implementar un MSX o un Amstrad, lo que me parecería fantástico.
La verdad, no me importaria pagar más por el añadido si además del spectrum, tengo un Amstrad (siempre que pueda cargarle Roms, claro).
"Hazlo o no lo hagas, pero no lo intentes" -Maestro Yoda-

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: Cacharreando con el prototipo 2 del ZX-Uno

Mensajepor mcleod_ideafix » 02 Ene 2015, 15:01

gamer80 escribió:según Mcleod, se podría implementar un MSX o un Amstrad, lo que me parecería fantástico.

En el ZX-Uno, tal como está, sin placa externa, cabe un MSX 1 o un CPC normal. No sé si cabría un MSX 2+ o un CPCplus, pero seguro que con la plaquita sí que caben. A eso me refería. El ZX-Uno, sin plaquita, da aún mucho juego ;)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
gamer80
Atari 1040 STf
Atari 1040 STf
Mensajes: 687
Registrado: 31 Oct 2011, 19:34
Ubicación: ESPARTA
Gracias dadas: 15 veces
Gracias recibidas: 19 veces
Contactar:

Re: Cacharreando con el prototipo 2 del ZX-Uno

Mensajepor gamer80 » 02 Ene 2015, 15:18

mcleod_ideafix escribió:
gamer80 escribió:según Mcleod, se podría implementar un MSX o un Amstrad, lo que me parecería fantástico.

En el ZX-Uno, tal como está, sin placa externa, cabe un MSX 1 o un CPC normal. No sé si cabría un MSX 2+ o un CPCplus, pero seguro que con la plaquita sí que caben. A eso me refería. El ZX-Uno, sin plaquita, da aún mucho juego ;)

Ok. Yo es que ya estoy con "los dientes largos" \:D/
"Hazlo o no lo hagas, pero no lo intentes" -Maestro Yoda-


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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