Montaje del prototipo 2 del ZX-Uno

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
alt
Amiga 2500
Amiga 2500
Mensajes: 4161
Registrado: 07 Sep 2004, 21:52
Ubicación: madrid
Gracias dadas: 1029 veces
Gracias recibidas: 1749 veces
Contactar:

Re: Montaje del prototipo 2 del ZX-Uno

Mensajepor alt » 27 Dic 2014, 13:46

Creo que me he cargado el Xilinx de mi prototipo; pero antes de contarlo, voy a contar hasta dónde he llegado.

El fin de semana pasado, después de terminar de soldar todos los componentes, me asombré de que Impact me reconociera el dispositivo a la primera. Eso sí, lo primero que conseguí fue una pantalla parecida a la de Jepalza:

Imagen

Él describía el mismo fallo, y lo solucionó resoldando las líneas que iban de U1 a la RAM, y eso mismo hice yo. Después de eso, empecé a pasar tests con resultados parecidos a los del resto...

Imagen

...aunque seguía teniendo un fallo: Impact reconocía la EPROM, pero daba un error cuando intentaba grabar en ella un .mcs.

Así que esta semana repasé las líneas que van de U1 a U2, y, ya que estaba, le dí con un poco de malla a las patillas que van de la 73 a la 109, las del lado de abajo del chip (según se ven las serigrafías). Y ahí la cagué, no sé cómo, porque aún no he dado con el fallo: la siguiente vez que conecto el prototipo con el cable se enciende el led normalmente, le doy a program, y me salta un error de que el cable de voltaje de referencia, el Vref, no está conectado. Como mi interfaz es de los baratos y Vref y GND tienden a dejar de hacer contacto porque se desmonta el conector (no es broma, el cable se me sale del conector tal cual), pienso que ha ocurrido eso. Miro el cable, y todo está bien. Miro el prototipo, y el led ya no está encendido. Desenchufo la alimentación, la enchufo, y nada.

Desenchufo todo, y como el error ha salido de Vref, miro la continuidad entre la patilla de U1 que va a esa línea y la patilla de J8, y hay continuidad. Y en ese momento, por casualidad, porque rozo con la sonda del polímetro en el metal del conector de PS2, me doy cuenta de que esa patilla, que es +3,3V, está en corto con masa. Miro el resto de patillas de la alimentación, ¡y todas en corto con masa!

Pienso que la he cagado cuando he resoldado la última fila de patillas, y miro con el microscopio: no hay ningún corto visible, ninguna patilla toca con otra. Por si acaso levanto la que va a Vref, la 90 si no recuerdo mal, y sigo teniendo en corto la alimentación.

Lo siguiente que me tocaría hacer sería levantar todas las patillas de alimentación de esa fila (son tres o cuatro más) para ver si arreglo algo, pero no las tengo todas conmigo: a vista de microscopio no hay nada (ya he utilizado uno del curro para comprobarlo), y empiezo a pensar de que me he cargado el integrado. La solución, en ese caso, pasaría por cambiar U1 (no me da miedo hacerlo y tengo el dedo listo para pedirlo en RS :-D), pero antes tenía que contaros mis cuitas y escuchar vuestras posibles recomendaciones :-D
Última edición por alt el 28 Dic 2014, 00:19, editado 1 vez en total.

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

Re: Montaje del prototipo 2 del ZX-Uno

Mensajepor antoniovillena » 27 Dic 2014, 19:58

Mi recomendación es que no des la FPGA por muerta. Dentro de tus posibilidades lo que peor remedio tiene es reemplazar la FPGA, porque tendrías que desoldarla sin llevarte una pista de por medio y soldar una nueva.

Así que yo trataría de resolver el corto sin tocar la FPGA, o como mucho repasar los pines de la FPGA sólo con el soldador (sin estaño ni malla de soldar). Lo primero que haría sería repasar una a una (con flux) las soldaduras de todos los componentes que pueden estar involucrados en un corto de la alimentación, incluidos los condensadores 0603. Si después de esto el corto continúa, probaría a desoldar elementos por orden de dificultad (yo desoldaría los condensadores 0603 antes que el regulador de 3.3V).

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: Montaje del prototipo 2 del ZX-Uno

Mensajepor mcleod_ideafix » 27 Dic 2014, 23:25

PRUEBAS DE VGA

A todo aquel que pueda participar (poseedor de un prototipo V2 del ZX-Uno, con alguna de las dos plaquitas para VGA que se enchufan en el conector RGB/JTAG, y por supuesto, una interfaz JTAG de Xilinx).
Hay disponible en el repositorio, carpeta cores/spectrum_v2_spartan6/vgatest1 un core experimental para probar la VGA.

Esto NO es un core de Spectrum. Lo único que hace este core es sacar una imagen estilo carta de ajuste en la salida VGA. No sacará nada visible en RGB o video compuesto.

Este core funciona incluso aunque no haya buena conexión entre la memoria RAM y la FPGA. De hecho sólo usa recursos internos de la FPGA.

El core funciona de la siguiente forma: una vez cargado, muestra una imagen muy similar a ésta:
Imagen

La única diferencia visible entre la imagen que obtendreis y la que he puesto en la foto es que la vuestra mostrará 8 tonos de azul, en lugar de 4.

La imagen en realidad se compone de un fondo amarillo que ocupa, o debe ocupar, la totalidad del espacio destinado a la imagen en la pantalla. Esto son 800x600 puntos. Centrado en ese cuadro amarillo hay un marco de color magenta. El marco ocupa 704x576 puntos, y es ahí donde realmente estará la pantalla total del Spectrum (en el core de Spectrum, el fondo amarillo será negro).

Dependiendo de cómo funcione el autoajuste en vuestro monitor, es posible que veais las franjas amarillas arriba y abajo, pero no a izquierda y derecha, o viceversa.

Inscrito en el marco magenta (que tiene el mismo tamaño que el borde estándar del Spectrum) hay un gráfico de gradiente mostrando los tres colores primarios en sus 8 tonalidades. El core también vale para comprobar que se muestran correctamente. Este gráfico de gradiente ocupa 512x384 píxeles, que es la resolución con la que trabajaremos en el scandoubler.

Este gráfico puede visualizarse a varias frecuencias de refresco, seleccionables con el teclado, usando las teclas del 1 al 8 (fila superior del teclado alfabético). Las frecuencias de refresco vertical asociadas a cada tecla son:
1. 50Hz, timming 48K
2. 50,9Hz, timming 128K
3. 52Hz, timmings 48/128K
4. 55Hz, timmings 48/128K
5. 60Hz, timmings 48/128K <-- con esta configuración arranca el core
6. 65Hz, timmings 48/128K
7. 70Hz, timmings 48/128K
8. 75Hz, timmings 48/128K
La frecuencia de refresco horizontal en cada caso se calcula fácilmente multiplicando la frecuencia de refresco vertical por 0,625. El resultado está en kHz. Estos datos sirven para que podais comprobar, manual del monitor en mano, qué modos de pantalla se espera que funcionen y cuáles no.

En caso de que vuestra pantalla no acepte alguno de estos modos, hay dos formas de comprobar que el core sigue funcionando:
- Cada vez que se pulsa una tecla, el led de actividad luce. Cuando se suelta, se apaga.
- Por la salida de sonido suena un tono que depende de la tecla pulsada. Este tono no es más que una versión dividida de la frecuencia patrón que se está generando. Cuanto mayor es el número elegido, más agudo es el tono.

Lo que pido que comprobeis es:
- Para todos los monitores VGA que tengais a vuestro alcance (monitores de ordenador, televisores con entrada VGA, conversores de VGA a HDMI, proyectores, etc), mirad qué modos dan imagen y cuáles dan error. De los que den imagen, probad cuáles de ellos necesitan ajuste de la posición de la pantalla, cuáles de ellos aun ajustando la posición no se ven centrados, etc.
- El generador de reloj usa ahora el nuevo PLL de la Spartan 6. Esto significa que en el interior de la FPGA, y en un pequeño espacio de ésta, se generan frecuencias del orden de los 1,5GHz. Si al seleccionar alguno de los modos de pantalla el core deja de funcionar, o deja de responder el teclado y el sonido comienza a oirse como con "gallos", significa que el PLL está recibiendo demasiado ruido y no es capaz de mantener adecuadamente esa frecuencia. En ese caso, probad con algún otro tipo de fuente de alimentación para el ZX-Uno. También notareis algo que no ocurría hasta ahora en el clon: que la FPGA se calienta un poquito.
- El driver de teclado lo estoy rediseñando, para dar cabida al modo bidireccional, desde el que el host (ZX-Uno) podrá enviar comandos al teclado. En este mismo core incluiré por primera vez esos cambios (aún no están), así que cuando estén, os pediré que probeis el core con teclados USB con el adaptador sencillito éste para pasar de USB a PS/2 ya que esos deberían ya funcionar también.

Opcional, quien quiera ponerse con ello:
- Usad el ISE Webpack para cargar el código fuente del core. Hay un fichero que es videosyncs.v que es el generador de señales de sincronismos. En forma de parámetros están todos los valores que definen el modo de pantalla que estoy usando. Popdeis experimentar tocando los valores del front porch, backporch, o cualquier otro, usando la calculadora de modos de video del enlace que aparece en el propio código fuente. Así podeis ver si tocando alguno de los parámetros conseguis obtener una imagen más estable en algún modo que se os resista. Los parámetros que aparecen ahí se usan con todos los modos. El objetivo es tener una imagen VGA estable en los modos de pantalla 1 y 2 (que son los de 50Hz). Recordad que el área activa debe ser de 800x600, y que la frecuencia de reloj varía en cada uno de los modos.

Las frecuencias base que se generan en el PLL son, para cada modo:
1. 28MHz
2. 28,5MHz
3. 29,63MHz
4. 31,35MHz
5. 34,21MHz
6. 36,9MHz
7. 40MHz
8. 43,1MHz

Todo en el core irá "acelerado" cuando se use una frecuencia que no sea la 1 (48K) o la 2 (128K). Por ejemplo, si necesitas usar la salida VGA a 60Hz, eso significa que la interrupción del retrazo vertical no irá a 50Hz, sino a 60Hz, y que por tanto la CPU irá a 3.5MHz * (34,21 / 28) = 4,2MHz. El AY-3-8912 también irá más acelerado y cuanto mayor sea la frecuencia, más se notará. En el modo 8, con 75Hz de retrazo vertical, la CPU del core irá a 5,38MHz, es decir, un 54% más rápida que en un Spectrum 48K. No sé si la memoria RAM irá bien o no a estas frecuencias, por ello sería deseable que consiguiéramos la máxima compatibilidad posible con monitores usando modos bajos (1,2 y 3 como mucho). En el core no obstante estarán disponibles todos los modos de pantalla que funcionen sin problemas con el driver de memoria RAM y que no ocasionen conflictos de timming con otras partes del core.

Las pruebas que he hecho en casa, con un monitor HP TFT planito, un HPx2301, FullHD etc etc, me da que soporta los 8 modos. En una TV LCD de Samsung, que uso habitualmente con el ZX-Uno en video compuesto, pero que tiene entrada VGA, me soporta todos los modos excepto el modo 1.

GRACIAS :)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
yombo
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 190
Registrado: 01 Ago 2014, 22:52
Sistema Favorito: Spectrum +2
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: TV Games/Pong Clone
Primera consola: TV Games/Pong Clone

Re: Montaje del prototipo 2 del ZX-Uno

Mensajepor yombo » 27 Dic 2014, 23:39

Mañana me pondré a soldar la plaquita VGA y lo probaré, que ya me compré hace poco el cable VGA que no tenía.

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: Montaje del prototipo 2 del ZX-Uno

Mensajepor Mejias3D » 28 Dic 2014, 19:45

Este es el diseño de la nueva versión de carcasa "Spectrum Style"

Características:

- El conjunto de elementos se pueden imprimir sin necesidad de material soporte. Se recomienda color negro para la carcasa y la tapa frontal de esta.

- El logo ZX-Uno ahora puede ser impreso en un color diferente. Se recomienda color blanco. Se puede unir a la parte superior del cuerpo principal sin necesidad de pegamento, gracias a que incluye unos puntos de fijación, tipo "macho-hembra"

- También es posible imprimir la decoración anexa al logo en 4 colores diferentes. Idealmente: rojo, amarillo, verde y azul. También se pueden fijar, uno a uno, de la misma forma que el logo.

- La base de la carcasa incluye 4 puntos de apoyo para darle más estabilidad.

- La base incluye también rejilla de ventilación.

- El interior de la carcasa incluye los nombres de las personas que forman El Equipo ZX-Uno.

- La PCB es muy fácil de instalar por el acceso frontal del cuerpo principal, simplemente la deslizas hacia el interior de forma horizontal.

- Una vez colocada la PCB, cierras la carcasa usando la tapa frontal que solo necesita 2 tornillos M3 de 5 mm de largo, de cabeza plana, para ser fijada al cuerpo principal.

- Podéis apreciar un pequeño canal, en forma de "8", en la parte superior del cuerpo principal, en la esquina superior derecha, habilitado para deslizar en el un par de trocitos de cable de fibra óptica, que mostrarán la luz que emiten el par de diodos leds SMD de la PCB. Se recomienda que esto se haga después de tener la PCB instalada en el cuerpo principal y la tapa frontal debidamente atornillada: Introduce los 2 trozos de cable de fibra óptica de 2,2 mm de diámetro cada uno, deslizándolos hasta que hagan tope contra los leds. Después corta el sobrante con un cutter, justo a nivel de superficie de la carcasa, para conseguir un acabado perfecto.

Aquí tenéis algunas capturas de pantalla del modelo 3D en cuestión:

Imagen

Imagen

Imagen

En breve estarán los modelos disponibles para su descarga en mi cuenta de Thingiverse.

El enlace para las descargas es este http://www.thingiverse.com/thing:594804 y aquí puedes encontrar una pequeña descripción de los 3 modelos publicados http://zonadepruebas.com/viewtopic.php?f=26&t=5812&p=52312#p52312
Última edición por Mejias3D el 29 Dic 2014, 15:26, editado 2 veces en total.
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: 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: Montaje del prototipo 2 del ZX-Uno

Mensajepor mcleod_ideafix » 28 Dic 2014, 20:08

¡Qué chulada! Y recuerda justo lo necesario al diseño del ZX Spectrum original, para que los de Vega no se mosqueen :)
Lo del Thingiverse.... ¿es para pedir allí mismo que te los impriman en 3D?
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

JULIO
Commodore 128
Commodore 128
Mensajes: 121
Registrado: 22 Feb 2013, 18:58
Sistema Favorito: Spectrum +2
primer_sistema: Spectrum 16Kb/48Kb
Primera consola: TV Games/Pong Clone

Re: Montaje del prototipo 2 del ZX-Uno

Mensajepor JULIO » 28 Dic 2014, 20:17

Esta tarde me he puesto con la plaquita VGA, he programado el vgatest1, solo el bit para el spartan sin mcs.
En la primera prueba, un monitor pc viejo que admite 50hz (creo) y 800x600.
ha salido esto:
Imagen

voy a probar en otro monitor mas moderno, a ver que tal.
[editado]
Probado en otro monitor, me dice que en horizontal tengo 16Khz, en vertical 50Hz, fuera de rango:
Imagen

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: Montaje del prototipo 2 del ZX-Uno

Mensajepor Mejias3D » 28 Dic 2014, 21:12

mcleod_ideafix escribió:¡Qué chulada! Y recuerda justo lo necesario al diseño del ZX Spectrum original, para que los de Vega no se mosqueen :)


Esa es la idea, aunque debo reconocer que recuerda mucho más a un Sinclair ZX Microdrive, pues hasta parece tener el huequito frontal de entrada de los cartuchos microdrive...

Imagen



mcleod_ideafix escribió:Lo del Thingiverse.... ¿es para pedir allí mismo que te los impriman en 3D?


No, en Thingiverse no se dedican a eso. Para encargos de impresión 3D puedes visitar la página de Shapeways, aunque yo mismo también me dedico a ello en mi empresa, desde el 2009.
Última edición por Mejias3D el 28 Dic 2014, 21:38, editado 1 vez en total.
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: 8 veces

Re: Montaje del prototipo 2 del ZX-Uno

Mensajepor antoniovillena » 28 Dic 2014, 21:20

A mí también me ha gustado mucho, sobre todo la solución para el logo.

Avatar de Usuario
Sinclair
MSX Turbo R
MSX Turbo R
Mensajes: 323
Registrado: 19 Jun 2013, 00:00
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Atari 2600
Primera consola: Sony PlayStation 1
Gracias dadas: 8 veces
Gracias recibidas: 1 vez

Re: Montaje del prototipo 2 del ZX-Uno

Mensajepor Sinclair » 28 Dic 2014, 21:48

La verdad es si, esa caja ha quedado chulísima.
© 1982 Sinclair Research Ltd


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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