ZX-Uno, clon barato basado en FPGA

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

Re: ZX-Uno, clon barato basado en FPGA

Mensajepor antoniovillena » 30 Ago 2013, 15:17

mcleod_ideafix escribió:
antoniovillena escribió:Estoy haciendo cuentas. De los 108 pines disponibles al usuario de la FPGA, 28 de ellos son sólo entrada. Si a estos 28 le restamos las 12 que no pertenecen al puerto de expansión: Joy1..Joy7, EAR, PS2_DATA, PS2_CLK, FLASH_MISO, CS_MISO... nos quedan 16 señales. Desgraciadamente de las 40 señales del puerto de expansión sólo 5 son "sólo entradas" (BUSRQ, WAIT, INT, NMI y RESET) por lo que tenemos que sacar 11 pines de algún lugar.


Multiplexa internamente el bus de direcciones y el de datos, de forma que en lugar de sacar 24 líneas, saques 17: 16 del bus de direcciones/datos y una línea ALE de salida, que indique, por ejemplo a nivel alto, que lo que hay en ese momento en el bus multiplexado es una dirección. Al comienzo de cada ciclo de máquina, durante el primer ciclo de reloj se pone la dirección, y en los demás ciclos se pone el dato. Sería un poco lo que hace el 8086, o el 8080 que sacaba también el bus de direcciones y datos multiplexado. Dentro de la FPGA los buses estarían demultiplexados. Quien necesite el bus de expansión tendría que añadir un latch para demultiplexar el bus de nuevo.

-- Actualizado 30 Ago 2013, 14:05 --

Otra opción sería irse al encapsulado PQ208.


Pues entonces ya está resuelto. De los 11 pines que nos faltan tenemos:
  • Dos pines con las señales NTSC y PAL que de momento no se usan.
  • Dos pines que nos sobran al cambiar el led RGB por uno normal.
  • Siete pines por tu propuesta de multiplexar el bus.

-- Actualizado 30 Ago 2013, 14:37 --

También estoy haciendo las cuentas y creo que podemos prescindir de los 3 transistores. Si dejamos el circuito tal cual lo tiene Superfo (sin los transistores) estos serían los datos:

Código: Seleccionar todo

Impedancia de salida del DAC:    271.5 Ohm
Impedancia de entrada del AD725:    75 Ohm
Ganancia DAC/Video Compuesto:    21.64% = 75/(271.5+75)


Si conectamos el cable de RGB, ponemos otra resistencia de 75 ohm en paralelo con la anterior, por lo que la ganancia sería:

Código: Seleccionar todo

Nueva impedancia de entrada:      37.5 Ohm  = 1/(1/75+1/75)
Ganancia DAC/RGB:                12.14%     = 37.5/(271.5+37.5)
Brillo respecto a V.Compuesto:      56%     = 12.14/21.64


Es decir, en la pantalla veríamos la imagen RGB con un 56% del brillo normal. Pero es que podemos cambiar a nuestro antojo los valores de las resistencias del DAC y del AD724 para que esta atenuación sea aún menor. Veamos lo que pasa si reducimos las resistencias a la mitad:

Código: Seleccionar todo

Ganancia DAC/Video Compuesto:    21.64% = 37.5/(135.75+37.5)
Nueva impedancia de entrada:        25 Ohm  = 1/(1/75+1/37.5)
Ganancia DAC/RGB:                15.55%     = 25/(135.75+25)
Brillo respecto a V.Compuesto:      72%     = 15.55/21.64


En resumen, que con el cable RGB tendríamos casi 3/4 partes de brillo y sin usar los transistores.

-- Actualizado 30 Ago 2013, 18:34 --

Voy a hacer un recuento de los pines:

Total 108 pines de los cuales:
  • 28 pines IP (sólo entrada).
    De los cuales:
    • 12 en interior: Joy1..Joy7, EAR, PS2_DATA, PS2_CLK, CS_MISO, CLK
    • 9 en expansión: EX_BUSRQ, EX_WAIT, EX_INT, EX_NMI, EX_RESET, EX_ROMCS, EX_ROMOE1, EX_ROMEO2
    • 1 pin sin usar (M2)
    • 6 pines libres
  • 80 pines no-IP (entrada/salida).
    De los cuales:
    • 48 en interior: XA0..XA18, XD0..XD7, WR, SD_CS, SD_SCK, SD_MOSI, FLASH_CS, FLASH_SCK, FLASH_MOSI, FLASH_MISO, R0..R2, G0..G2, B0..B2, CSYNC, LEFT, RIGHT, LED
    • 27 en expansión: EX_A8..A15, EX_AD0..AD7, ALE, EX_CLK, EX_IORQULA, EX_HALT, EX_IORQ, EX_MREQ, EX_RD, EX_WR, EX_RFSH, EX_BUSACK, EX_M1
    • 3 pines sin usar (M0, M1, INIT_B)
    • 2 pines libres

-- Actualizado 31 Ago 2013, 09:47 --

I have created my proposition for the expansion connector pinout. Let me know if someone finds something better.

expansion.png
expansion.png (4.38 KiB) Visto 7627 veces


-- Actualizado 31 Ago 2013, 09:54 --

Another suggestion

expansion2.png
expansion2.png (2.04 KiB) Visto 7627 veces

-- Actualizado 31 Ago 2013, 12:05 --

Adjunto también la última revisión de los esquemáticos.
Adjuntos
ZX-Uno_1.1.zip
(120.44 KiB) Descargado 445 veces

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

Re: ZX-Uno, clon barato basado en FPGA

Mensajepor scooter » 01 Sep 2013, 23:18

Me parece que hacer el conector simétrico es una buena idea anti orejadas. Igual conectas algo y no va pero no se romperá nada.

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

Re: ZX-Uno, clon barato basado en FPGA

Mensajepor antoniovillena » 02 Sep 2013, 12:27

scooter escribió:Me parece que hacer el conector simétrico es una buena idea anti orejadas. Igual conectas algo y no va pero no se romperá nada.


La idea es poder conectar hasta 2 periféricos a la vez (estoy hablando de periféricos genéricos para FPGAs que funcionen a 3.3V, no de periféricos de spectrum) y que todos los periféricos tengan la alimentación en el mismo lugar. Sería algo parecido a las "Papilio Wings".

http://papilio.cc/index.php?n=Papilio.Hardware#Section4

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

Re: ZX-Uno, clon barato basado en FPGA

Mensajepor antoniovillena » 11 Sep 2013, 01:10

Tengo buenas y malas noticias. La buena es que Superfo ya ha terminado la PCB y en cuanto la revise/revisemos y le demos el visto bueno la podemos enviar a fabricar.

La mala es que el servicio PCBA de seeedstudio no nos sirve: tan sólo te montan los componentes que están en esta lista.

De los cuales muy pocos (condensadores y reguladores) coinciden con los que tenemos en nuestra placa. Así que la mejor opción que veo para hacer los prototipos es (a no ser que a alguien se le ocurra una idea mejor) es que yo compre todos los componentes y distribuya el kit+componentes a cada uno, luego los tendríamos que soldar por nuestra cuenta.

Os recuerdo que la intención es hacer una tirada pequeña de 10 prototipos, y luego una tirada mayor de 50 ó 100 unidades (éstos evidentemente ya montados). No sé vosotros pero mi experiencia en cuanto a componentes SMD se refiere es muy muy escasa, tan sólo he soldado AD724 (muy fácil) y la RAM de la MOD-VGA. He estado viendo tutoriales, y el que más me convence es el de Reflow Toaster. Viene a ser lo que hizo McLeod con la tostadora para soldar su reemplazo de ULA, pero aplicando la pasta soldadora con una máscara.

Y para los valientes que se atrevan, abro oficialmente la lista de prototipos. Como no creo que haya mucha gente interesada y los componentes serán con diferencia más caros que la PCB, las PCBs que sobren las repartiré de nuevo de tal forma que los "manazas" como yo podamos tener un segundo intento con otra PCB. Los precios los iré diciendo a medida que los sepa, la PCB creo que son unos 2 euros y los componentes no tengo ni idea pero no creo que lleguen a 30. También tengo pensado pedir unas máscaras para aplicar la pasta soldadora aquí, así que los que os apuntéis a la lista tenéis como única opción pedir o no pedir máscara. En principio repartiré una PCB por cabeza, a no ser que seamos 5 o menos, en ese caso repartiré dos. Las que sobren las guardaré y en caso de accidente reenviaré una segunda PCB.

-- Actualizado 11 Sep 2013, 00:19 --

Como primer fallo en la serigrafía pone ZX-ONE en lugar de ZX-Uno, fallo mío porque olvidé decirle a Superfo que hicimos una segunda encuesta para concretar el nombre.
Adjuntos
ZX-Uno_final.zip
(30.97 KiB) Descargado 329 veces
all.png
all.png (141.64 KiB) Visto 7492 veces
comp.png
comp.png (30.41 KiB) Visto 7492 veces
bot.png
bot.png (101.53 KiB) Visto 7492 veces
top.png
top.png (65.97 KiB) Visto 7492 veces

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: ZX-Uno, clon barato basado en FPGA

Mensajepor mcleod_ideafix » 11 Sep 2013, 04:19

Una pregunta: los componentes pasivos SMD que veo (resistencais y condensadores) ¿son 0805, 0603 o 0402?

En cuanto a la FPGA, no desesperarse los que la vayais a soldar: es cuestión de paciencia. Eso sí: si no teneis a mano una estación de aire caliente o un hot plate infrarrojo para quitarla en caso de fallo, mirad 5 y 10 veces que esté perfectamente en su sitio antes de soldarla. Soldar es fácil... desoldarla... no tanto.

Recordad que el método de la plancha de asar, al que se refiería Antonio Villena y que usé con decentes resultados en el reemplazo de la ULA, necesita además que se le aplique a la placa pasta de soldadura. No confundir con flux. La pasta de soldadura es de color gris oscuro (y lleva flux, cierto, pero también lleva microbolitas de estaño)

Yo lo que tengo entre manos es soldar un PQ208 (¡gulp!). En mi departamento hemos soldado en el pasado circuitos con este tipo de encapsulado, más tupido incluso que el TQ144 de esta FPGA, y se ha hecho sin plancha ni pasta de soldadura: una vez fijado el componente, se echa flux buenecito por los 4 lados, y seguidamente se pasa el soldador estañado por los cuatro lados, dejado que el estaño fluya siguiendo las pistas y el propio patillaje de la FPGA. La malla desoldadora te evita disgustos y te ayuda a retirar el estaño sobrante.
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: ZX-Uno, clon barato basado en FPGA

Mensajepor antoniovillena » 11 Sep 2013, 04:42

mcleod_ideafix escribió:Una pregunta: los componentes pasivos SMD que veo (resistencais y condensadores) ¿son 0805, 0603 o 0402?


Son todos 0805 excepto los condensadores de 100nF, que al ser tantos daban problemas de espacio y son 0603. Yo con paciencia podría hacerlo casi todo a base de soldador, excepto con la FPGA, con la que no me atrevo. Así que mi idea es comprar un poco de pasta "Kester Easy 256" o similar, aplicarla con una máscara de plástico que encargue a Polulu o un sitio parecido, y hacer reflow con una tostadora plancha de asar. Algunos componentes tendré que soldarlos a mano porque están en la otra cara (resistencias, condensadores, reguladores, SPI Flash, zócalo SD), pero así me aseguro de que la FPGA, la RAM y el AD724 queden bien soldados.

También puedo "arriesgarme" y hacerlo todo con el soldador, porque tengo claro que si me equivoco no tengo medios para desoldar. Si lo primero que sueldo es la FPGA, el error me cuesta una PCB (2 euros) y una FPGA (6 euros), que no es tanto pero tampoco hay garantías de que al segundo intento vaya a ir bien.

No sé, ¿cómo lo soldarías tú? ¿Todo a mano con el soldador?

-- Actualizado 11 Sep 2013, 03:47 --

Por cierto, ¿qué entiendes por flux buenecito? (qué marca me aconsejas). Nunca he usado flux porque el estaño que uso tiene núcleo de resina y para componentes throw hole (que es lo que suelo soldar) nunca he tenido problemas.

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: ZX-Uno, clon barato basado en FPGA

Mensajepor mcleod_ideafix » 11 Sep 2013, 05:07

antoniovillena escribió:No sé, ¿cómo lo soldarías tú? ¿Todo a mano con el soldador?

¿Un TQ144? Con el soldador, a mano, y usando una lupa binocular que tengo en el laboratorio, usando un flux que tenemos precisamente para soldadura SMD. No sé decirte qué marca es. Basicamente es un flux que aplico con una jeringa, del tipo no-clean, y de consistencia cremosa (no es el flux líquido marca JBC que se aplica con pincel). En soldadura SMD te hace falta porque no puedes ir con el hilo de estaño pin a pin, sino que es el soldador el que está estañado y lo aplicas a cada pin, o a un grupo de ellos deslizando la punta del soldador por todo el lado del componente. Para esta operación, como el estaño ya está en el soldador y por tanto ha evaporado el flux que tiene originalmente en el hilo, tienes que dárselo externamente.

Esta placa, por ejemplo, la soldé "a mano" (y sin la lupa del laboratorio). Otra igual la soldé con la plancha. En cuanto a tiempo, creo que tardé lo mismo de una forma que de otra. El chip es un TQ144.
Imagen
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
Hark0
Amiga 1200
Amiga 1200
Mensajes: 1695
Registrado: 11 Jul 2012, 23:44
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: (Otro)
Primera consola: (Otro)
Ubicación: Cornellà de Llobregat - Barcelona
Contactar:

Re: ZX-Uno, clon barato basado en FPGA

Mensajepor Hark0 » 11 Sep 2013, 07:36

¿Podeis pregunta a Superflo QUE formato necesita (supongo que vector) para que le pase el logotipo bueno y lo ponga en la placa para sustituir ese texto tan sencillo/cutre?

Lo subiré el jueves por la mañana,...

Gracias! ;)
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA.

superfo
Dragon 32
Dragon 32
Mensajes: 18
Registrado: 21 Abr 2013, 09:01
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Nintendo GameBoy

Re: ZX-Uno, clon barato basado en FPGA

Mensajepor superfo » 11 Sep 2013, 07:40

Please use DXF format.

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

Re: ZX-Uno, clon barato basado en FPGA

Mensajepor antoniovillena » 11 Sep 2013, 12:08

Buenas. Llevo toda la mañana buscando componentes por internet. Como todavía no sé cuántos vamos a ser para el prototipo he hecho las cuentas pidiendo un lote de 10 y lo que está entre paréntesis es pidiendo un lote de 5. Todos los precios están en dólares. Todavía me faltan muchos componentes, aunque los que quedan son baratos.

2.5 (4.2) PCB ...... http://www.seeedstudio.com/depot/fusion ... p-835.html
0.65 ..... Oscilador http://www.aliexpress.com/item/SMD-50MH ... 61800.html
6.83 (6.83) FPGA .. http://www.aliexpress.com/item/Free-Shi ... 88838.html
3.19 (3.59) SRAM .. http://www.aliexpress.com/item/100-NEW- ... 30402.html
0.50 ... SPI Flash .. http://www.aliexpress.com/item/Free-Shi ... 87318.html
0.78 (1.07) AD724 . http://www.aliexpress.com/item/AD724JR- ... 55992.html
0.49 ...... PS2 zoc. http://www.aliexpress.com/item/PS2-sock ... 21155.html
0.38 ...... DB9 zoc. http://www.ebay.com/itm/171074490727
0.26 .. EAR y Audio http://www.ebay.com/itm/281146896040
0.10 ..... microUSB http://www.ebay.com/itm/161103445938
0.20 ...... BC846 .. http://www.ebay.com/itm/360588566972
0.11 ...... Reg 3.3V http://www.ebay.com/itm/231000557600
0.17 (0.26) Reg 2.5V http://www.ebay.com/itm/141022618840
....................... http://www.ebay.com/itm/261270029651
0.12 ...... Reg 1.2V http://www.ebay.com/itm/130953939414
0.12 .... JTAG/RGB http://www.ebay.com/itm/251118499342
0.43 ...... RCA ..... http://www.ebay.com/itm/170875565393
0.10 ..... Expansion http://www.ebay.com/itm/251331969987
0.38 .... Cond 0603 http://www.ebay.com/itm/220983892826
0.69 .. Resistencias http://www.ebay.com/itm/171054292122
....................... http://www.ebay.com/itm/181154155459
0.41 ...... LEDs .... http://www.aliexpress.com/item/Free-Shi ... 72516.html
0.11 ... Cond 220uF http://www.ebay.com/itm/321164693553
0.20 ... Cond 4.7uF http://www.ebay.com/itm/300813920908
0.50 ... Resto Cond http://www.ebay.com/itm/251319589875
0.33 .... Cristal PAL http://www.ebay.com/itm/400523048607
0.30 ....... Zóc. SD http://www.aliexpress.com/item/free-shi ... 50765.html
-------------------------------------------------------
19.64 (28.12)

Para dar un precio aproximado, todo (PCB+componentes) saldría por unos 20 euros si somos 10, o unos 25 euros si somos sólo 5. Los gastos de envío van aparte, serían (si empleo correo ordinario) 0.90 euros si pesa menos de 100gr (lo más probable) ó 2 euros si pesa más de 100gr.

Por ahora tengo problemas con dos componentes: el socket micro-USB y el conector EAR mono. A no ser que encontremos alguno que tenga la misma huella que ha usado Superfo, tendríamos que cambiar la huella para adaptarlo a los conectores que he encontrado. El conector EAR que he encontrado es estéreo, pero no importa porque podemos usar uno de los 2 canales, lo esencial es que sea un conector más estrecho que quepa en el reducido tamaño.

-- Actualizado 11 Sep 2013, 12:36 --

¿Para el conector JTAG/RGB que preferís, conectores con el tope de plástico u os lo recorto de una tira de pines? Decidido, la opción barata

0.40 http://www.ebay.com/itm/171048620177
0.12 http://www.ebay.com/itm/251118499342

-- Actualizado 11 Sep 2013, 12:40 --

mcleod_ideafix escribió:usando un flux que tenemos precisamente para soldadura SMD. No sé decirte qué marca es. Basicamente es un flux que aplico con una jeringa, del tipo no-clean, y de consistencia cremosa (no es el flux líquido marca JBC que se aplica con pincel)


¿Me valdría este?

http://www.ebay.com/itm/180926712742
Última edición por antoniovillena el 14 Sep 2013, 10:18, editado 6 veces en total.


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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