Gameduino (o como meter un ZX Spectrum con ULAplus en...)

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
_ThEcRoW
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 174
Registrado: 05 Oct 2007, 23:06
Sistema Favorito: (Otro)
primer_sistema: Amstrad PCW
consola_favorita: Nintendo SNES
Primera consola: Atari 2600
Gracias dadas: 1 vez

Re: Gameduino (o como meter un ZX Spectrum con ULAplus en...

Mensajepor _ThEcRoW » 05 Ene 2013, 16:26

Pero entonces, es posible la implentación de un speccy bajo este cacharro de manera sencilla?. Lo digo porque como veo que el precio no se sube mucho, y la version con ram me parece también con un precio correcto(y así evito coger el soldador), Por lo tanto, hay alguien de aqui que la tenga ya funcionando y pueda decir cuál es la manera correcta de realizar todo el conjunto?.
Un saludo!!!!

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: Gameduino (o como meter un ZX Spectrum con ULAplus en...

Mensajepor mcleod_ideafix » 05 Ene 2013, 16:32

_ThEcRoW escribió:Pero entonces, es posible la implentación de un speccy bajo este cacharro de manera sencilla?

Depende de lo que consideres "sencillo". Si tienes ya el código que va dentro de la FPGA, implementar el Spectrum con esto lo veo más sencillo que montar un clon como el que hemos hecho hace unos meses. Otra cosa es que para hacértelo tú mismo necesitas otras cosas además del soldador, tal como el programador JTAG.

No, si para tomarme un respiro de la ULAplus seguramente me ponga con el chismito, a ver hasta dónde podemos llegar con el mínimo esfuerzo posible. Me gusta la idea del "wing" de Superfo, así que tiraré por ahí, pero mi "Wing" quiero que tenga además un pequeño bus SPI para integrar un lector de tarjetas SD/MMC, y una interface Kempston :)
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
mike_01
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 142
Registrado: 08 Dic 2012, 00:58
Sistema Favorito: VIC20
primer_sistema: VIC20
consola_favorita: NeoGeo
Primera consola: (Otro)
Ubicación: Valencia

Re: Gameduino (o como meter un ZX Spectrum con ULAplus en...

Mensajepor mike_01 » 05 Ene 2013, 17:50

Pues todo está genial, sobretodo si al final se consigue hacer de manera sencilla. Me hace "ilu" tener un speccy en el Gameduino :D .
La idea que llevaba en mente era ir un poco "más allá", principalmente en tres aspectos:
- Programar el Gameduino con un sketch de Arduino, eliminando la necesidad de utilizar un programador JTAG. Tengo que averiguar cual es el proceso de crear una imagen para flashear la FPGA mediante el Arduino.
- Conseguir o editar el código del speccy utilizado por SuperFo para que pueda leer la memoria SDRAM que lleva clon de Olimex.
- Y de paso, aunque esto puede que sea bastante más difícil, hacer que la salida VGA se comporte como RGB para conectarla a un monitor, y no como una RGB-PAL.
Parece que sea la lista de los Reyes Magos, :christmasrisa:, pero de ilusión también se vive, ¿no?
En fin, ¿qué os parece lo que os comentado?

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

Re: Gameduino (o como meter un ZX Spectrum con ULAplus en...

Mensajepor antoniovillena » 05 Ene 2013, 17:57

mcleod_ideafix escribió:No, si para tomarme un respiro de la ULAplus seguramente me ponga con el chismito, a ver hasta dónde podemos llegar con el mínimo esfuerzo posible. Me gusta la idea del "wing" de Superfo, así que tiraré por ahí, pero mi "Wing" quiero que tenga además un pequeño bus SPI para integrar un lector de tarjetas SD/MMC, y una interface Kempston :)


Pues si te animas a diseñar el Wing cuenta conmigo para que haga el firmware.

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: Gameduino (o como meter un ZX Spectrum con ULAplus en...

Mensajepor mcleod_ideafix » 05 Ene 2013, 17:57

mike_01 escribió: - Programar el Gameduino con un sketch de Arduino, eliminando la necesidad de utilizar un programador JTAG. Tengo que averiguar cual es el proceso de crear una imagen para flashear la FPGA mediante el Arduino.

Y esto... ¿con qué propósito? No lo entiendo. EDITO: aaaah! entiendo ahora: que quieres usar al Arduino como programador.
mike_01 escribió: - Conseguir o editar el código del speccy utilizado por SuperFo para que pueda leer la memoria SDRAM que lleva clon de Olimex.

El código está en Opencores. Superfo ha usado una SRAM, no una SDRAM. Las primeras son mucho más fáciles de usar que la segunda.
mike_01 escribió: - Y de paso, aunque esto puede que sea bastante más difícil, hacer que la salida VGA se comporte como RGB para conectarla a un monitor, y no como una RGB-PAL.

No es difícil, pero tendrás que estudiar Verilog para escribir esa parte, que sería un "scandoubler".
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
mike_01
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 142
Registrado: 08 Dic 2012, 00:58
Sistema Favorito: VIC20
primer_sistema: VIC20
consola_favorita: NeoGeo
Primera consola: (Otro)
Ubicación: Valencia

Re: Gameduino (o como meter un ZX Spectrum con ULAplus en...

Mensajepor mike_01 » 05 Ene 2013, 18:11

...que quieres usar al Arduino como programador.

Exacto. La idea es utilizar el Arduino para programarlo, aunque entiendo que mediante el programador JTAG puedes depurar el funcionamiento de la FPGA, creo. Supongo que lo ideal sería utilizar el programador JTAG para testear y hacer pruebas, y luego el bus SPI (mediante Arduino) para escribir el código definitivo en la PROM.

Superfo ha usado una SRAM, no una SDRAM. Las primeras son mucho más fáciles de usar que la segunda.

Sí, eso es lo que he leído por ahí, pero el hecho de que el clon de Olimex lleve incoporada este tipo de memoria me lleva a intentarlo al menos.

...tendrás que estudiar Verilog para escribir esa parte, que sería un "scandoubler".

De VHDL conozco algo, pero lo del scandoubler ahora mismo no tengo ni idea. De todas formas, muchas gracias por orientarme.

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: Gameduino (o como meter un ZX Spectrum con ULAplus en...

Mensajepor mcleod_ideafix » 05 Ene 2013, 18:19

mcleod_ideafix escribió:
mike_01 escribió: - Programar el Gameduino con un sketch de Arduino, eliminando la necesidad de utilizar un programador JTAG. Tengo que averiguar cual es el proceso de crear una imagen para flashear la FPGA mediante el Arduino.

Y esto... ¿con qué propósito? No lo entiendo. EDITO: aaaah! entiendo ahora: que quieres usar al Arduino como programador.

La FPGA del Gameduino está configurada para arrancar desde una SPI. Lo que tienes que hacer es cablear los pines FLASH_SI, FLASH_SO, FLASH_CS y FLASH_CK a pines libres en alguno de los wings para que el Arduino los vea. Desde Arduino envías comandos SPI a esos pines para leer o escribir en la FLASH. El fichero que tienes que poner ahí creo que es el .BIT .

-- Actualizado 05 Ene 2013, 19:32 --

mike_01 escribió:Sí, eso es lo que he leído por ahí, pero el hecho de que el clon de Olimex lleve incoporada este tipo de memoria me lleva a intentarlo al menos.

No es trivial, pero puede hacerse. Yo montaré la SRAM; no quiero complicarme más la vida con una controladora como la que verás en el enlace de abajo, y al ser muy rápida puedo implementar con mayor facilidad dos memorias independientes con buses separados.

Para la SDRAM puedes partir de un diseño como éste: http://hamsterworks.co.nz/mediawiki/ind ... Controller
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
mike_01
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 142
Registrado: 08 Dic 2012, 00:58
Sistema Favorito: VIC20
primer_sistema: VIC20
consola_favorita: NeoGeo
Primera consola: (Otro)
Ubicación: Valencia

Re: Gameduino (o como meter un ZX Spectrum con ULAplus en...

Mensajepor mike_01 » 05 Ene 2013, 18:55

Por lo que yo tenía entendido era mucho más fácil que eso. Al conectar el Gameduino como wing/shield del Arduino ya tienes la conexión directa a esos pines, y de hecho los ejemplos que lleva el Gameduino ya están enviando comandos mediante esos pines para que dibujen las imágenes, texto, ...

El tema es como, a partir del .BIT, crear un sketch de Arduino que sea capaz de programar la FPGA.
En la página del Gameduino, hay una sección para actualizar el firmware que lleva la FPGA a la versión 1.1, y esto se consigue mediante 5 programas que hay que ejecutar mediante el Arduino, y que consiguen flashearla.
Viendo el código fuente de estos programas, no me queda claro cómo se consigue programar o embeber las imágenes flash dentro del mismo código, y no sé si corresponden exactamente al .BIT. Seguiré investigándolo.

Para la SDRAM puedes partir de un diseño como éste: http://hamsterworks.co.nz/mediawiki/ind ... Controller

Ah! Genial! Había buscado algunas implementaciones para controlar SDRAM, pero ésta parece más incluso adecuada para el Gameduino. ¡Gracias!

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: Gameduino (o como meter un ZX Spectrum con ULAplus en...

Mensajepor mcleod_ideafix » 05 Ene 2013, 19:05

mike_01 escribió:Por lo que yo tenía entendido era mucho más fácil que eso. Al conectar el Gameduino como wing/shield del Arduino ya tienes la conexión directa a esos pines, y de hecho los ejemplos que lleva el Gameduino ya están enviando comandos mediante esos pines para que dibujen las imágenes, texto, ...


El Gameduino originalmente se comunica con el Arduino mediante un puerto SPI. Ese puerto SPI no es el puerto de la Flash SPI, sino un SPI implementado en la propia FPGA con sus propis pines. Tendrías que implementar eso, un puerto SPI cuyos pines coincidieran con los que se usan en el Gameduino original, y que dentro de la FPGA se redirigieran esos pines a los correspondientes pines de la Flash SPI.

mike_01 escribió:El tema es como, a partir del .BIT, crear un sketch de Arduino que sea capaz de programar la FPGA.

En el Arduino tendrás que hacer un programa que lea desde algún sitio el fichero .BIT. Ese fichero lo tendrás que grabar, byte a byte, en la Flash SPI usando el puerto SPI del que hemos hablado antes. Por supuesto, cualquier actualización del firmware de la FPGA debe incorporar ese puerto SPI para que se pueda seguir usando para nuevas actualizaciones.

Ese "algún sitio" puede ser... no sé.... un puerto serie que el Arduino lea y desde un PC se le envíe el .BIT, o si tu Arduino tiene USB y un FT245 o similar, comandar el chip FTDI que sea para que desde el PC se le envíe por USB el fichero... o si tu Arduino incorpora un lector SD/MMC, pues a través de ahí... No tengo ningún Arduino y no conozco mucho de ese tema, así que no puedo ser más explícito.

De todas formas, y salvo que aciertes a la primera, necesitarás el acceso al JTAG para poder testear configuraciones en la FPGA. Además recuerda que la Flash tiene un límite de escrituras, por lo que no es conveniente usarla siempre para guardar tus configuraciones si lo que estás haciendo son pruebas.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
mike_01
Amstrad PCW 8256
Amstrad PCW 8256
Mensajes: 142
Registrado: 08 Dic 2012, 00:58
Sistema Favorito: VIC20
primer_sistema: VIC20
consola_favorita: NeoGeo
Primera consola: (Otro)
Ubicación: Valencia

Re: Gameduino (o como meter un ZX Spectrum con ULAplus en...

Mensajepor mike_01 » 05 Ene 2013, 19:39

Se agradece esta información tan valiosa. No sabía que el Arduino se comunicaba de esta manera con la FPGA, pensaba que la conexión al puerto SPI era directa.
La idea de programar la FPGA mediante el Arduino, es simplemente hacer lo mismo que ha hecho el autor para programar el Gameduino, que es metiendo el firmware como parte del propio sketch o programa de Arduino (o al menos, eso es lo que parece). Creo que lo mejor va a ser preguntarle directamente, por si me puede orientar un poco.

De todas formas, y salvo que aciertes a la primera, necesitarás el acceso al JTAG para poder testear configuraciones en la FPGA. Además recuerda que la Flash tiene un límite de escrituras, por lo que no es conveniente usarla siempre para guardar tus configuraciones si lo que estás haciendo son pruebas.

Ya veo que al final tendré que hacerme con un JTAG para probar todo esto, que es bastante.

En fin, parece que tengo mucho trabajo por delante :lol:. Poco a poco.


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

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