Nuevo sistema Multicore para el UnAmiga

Dónde poder conseguir la placa, cómo construirla tu mismo, reparaciones, modificaciones, proyectos derivados

Moderador: jepalza

Responder
benitoss
PLA
Mensajes: 25
Registrado: 07 Oct 2018, 04:53

Nuevo sistema Multicore para el UnAmiga

Mensaje por benitoss » 01 Jun 2019, 06:08

LLego el dia, por fin tenemos el sistema multicore que tanto deseabamos para nuestro querido UnAmiga.
Se basa en el mismo sistema del Multicore 2 de Victor Trucco adaptado a nuestra FPGA.
Codigo fuente extraido del GitLAb de Victor Trucco para su maquina Multicore 2
https://gitlab.com/victor.trucco/Multic ... _firmware
https://gitlab.com/victor.trucco/Multic ... _STM32/SPI
Lo primero queria agradecer publicamente a victor Trucco su inestimable ayuda en la adaptacion del multicore al UnAmiga. Sin su brillante desarrollo y su ayuda en las etapas finales de la adaptacion, este upgrade no habria sido posible.

Este desarrollo se testeo en este sistema.
MC_Amiga_proto.jpg
MC_Amiga_proto.jpg (110.54 KiB) Visto 427 veces

Hardware

El sistema se basa en 2 elementos importantes y totalmente necesarios.

1) La STM32 o conocida vulgarmente como Blue Pill. Microcontrolador ARM Cortex de 32 bits STM32F103C8. Se encargara de dos cosas:
  • Programar el UnAmiga con el core selecconado. Esto elimina la necesidad de usar el USB Blaster
  • Generar el OSD en diferentes cores, incluido el core programador inicial de arranque del UnAmiga
  • En cores avanzados cargara imagenes de archivos ROM a la SRAM. Por ejemplo en el core de Atari 2600, las ROMs se cargan asi (Se necesita la expansion SRAM)
2) Lector de tarjetas micro SD donde iran los cores

Software

1) STM32_for_UnAmiga_MC.bin Es el fichero binario para la STM32 que tendremos que flashear en su memoria. Esto lo podemos hacer de diferentes formas.

2) UnAmiga_MC.jic Es el core programador inicial de arranque del UnAmiga. Este mostrara una lista de cores con extension RBF que son los binarios de los tradicionales archivos SOF de llevamos usando toda la vida.

Conexiones

STM32 - UnAmiga --> Se necesita conectar la STM32 mediante 7 cables o pines al UnAmiga y adidionalmente 6 cables mas a su JTAG (coge la alimentacion 3.3 volt del pin 4 del JTAG y el GND del pin 10)
stm32_pines_UnAmiga.png
stm32_pines_UnAmiga.png (294.15 KiB) Visto 427 veces
Conexion SPI de STM32 - FPGA
Nota:
Los cables de conexion SPI han de ser lo mas cortos posibles para evitar problemas
Las conexiones RX y TX son opcionales y sirven para futuras actualizaciones de la STM32 desde un core especial para actualizarla, mas info aqui

Código: Seleccionar todo

  TM32                 FPGA
-------------------------------
PB12 (CS)     —>       P14
PB13 (SCK)    —>       P15
PB14 (MISO)   —>       R16
PB15 (MOSI)   —>       T15
PA9  (TX)     —>       R14
PA10 (RX)     —>       T14
Reset         —>       R13
STM32 - Lector de SD --> Para simplificar puede utilizar un adaptador de tarjetas micro-SD a SD. En el siguiente diagrama, puedes ver las conexiones de la SD
sdcard-pinout.png
sdcard-pinout.png (109.6 KiB) Visto 427 veces
Conexiones para el lector de SD

Código: Seleccionar todo

 TM32         Lector SD
-------------------------------
PA4     —>    SS/CS
PA5     —>    SCK
PA6     —>    MISO
PA7     —>    MOSI
Conexion STM32 al JTAG
Conecta los cables desde la STM32 siguiendo el diagrama de la web:
http://www.zxuno.com/forum/viewtopic.php?t=432
jtag.png
jtag.png (10.37 KiB) Visto 427 veces

Código: Seleccionar todo

 TM32       JTAG FPGA
-------------------------------
PB0     —>   TCK
PB1     —>   TDI
PB10    —>   TMS
PB11    —>   TDO
VCC3.3  —>   VCC
GND     —>   GND
Instalacion Del Software

1) Programa la STM32 con su archivo bin. Lo puedes hacer con un TLL-USb, o un programador ST-Link. Nuevo: O lo puedes hacer con el core STM32 Updater que pudes ver aqui
2) Programa el UnAmiga con el archivo JIC, esto dejara el core programador grabado en la SPI Flash del UnAmiga y al encender este se mostrara siempre este core prorgamador.

Si no has introducido ninguna tarjeta SD en el lector de tarjetas de la STM32 veras esto
MC_Amiga_menu1.jpg
MC_Amiga_menu1.jpg (30.71 KiB) Visto 427 veces
Al introducir la tarjeta apareceran un listado de cores.
MC_Amiga_menu2.jpg
MC_Amiga_menu2.jpg (65.7 KiB) Visto 427 veces
Podras seleccionar el core con los cursores del teclado y la tecla Enter o bien con las direcciones del Joystick y disparo.

Nota final: La expansion SRAM no es necesaria para el multicore pero si altamente recomendada por dos motivos :
1) para los futuros usos y expansiones que se haran ahora que disponemos de un ARM para generar el OSD
2) Al disponer de multicore tendras la oportunidad de difrutar de todos los cores y ya hay varios que solo funcionan con la expansion SRAM

Espero que disfruteis con este sistema. Ya no teneis escusas a la hora de probar nuevos cores

Archivos necesarios:
Multicore_UnAmiga.zip
(458.58 KiB) Descargado 34 veces

benitoss
PLA
Mensajes: 25
Registrado: 07 Oct 2018, 04:53

Re: Nuevo sistema Multicore para el UnAmiga

Mensaje por benitoss » 21 Jun 2019, 18:40

benitoss escribió:
01 Jun 2019, 06:08
LLego el dia, por fin tenemos el sistema multicore que tanto deseabamos para nuestro querido UnAmiga.
Se basa en el mismo sistema del Multicore 2 de Victor Trucco adaptado a nuestra FPGA.
Codigo fuente extraido del GitLAb de Victor Trucco para su maquina Multicore 2
https://gitlab.com/victor.trucco/Multic ... _firmware
https://gitlab.com/victor.trucco/Multic ... _STM32/SPI
Lo primero queria agradecer publicamente a victor Trucco su inestimable ayuda en la adaptacion del multicore al UnAmiga. Sin su brillante desarrollo y su ayuda en las etapas finales de la adaptacion, este upgrade no habria sido posible.

Este desarrollo se testeo en este sistema.
MC_Amiga_proto.jpg


Hardware

El sistema se basa en 2 elementos importantes y totalmente necesarios.

1) La STM32 o conocida vulgarmente como Blue Pill. Microcontrolador ARM Cortex de 32 bits STM32F103C8. Se encargara de dos cosas:
  • Programar el UnAmiga con el core selecconado. Esto elimina la necesidad de usar el USB Blaster
  • Generar el OSD en diferentes cores, incluido el core programador inicial de arranque del UnAmiga
  • En cores avanzados cargara imagenes de archivos ROM a la SRAM. Por ejemplo en el core de Atari 2600, las ROMs se cargan asi (Se necesita la expansion SRAM)
2) Lector de tarjetas micro SD donde iran los cores

Software

1) STM32_for_UnAmiga_MC.bin Es el fichero binario para la STM32 que tendremos que flashear en su memoria. Esto lo podemos hacer de diferentes formas.

2) UnAmiga_MC.jic Es el core programador inicial de arranque del UnAmiga. Este mostrara una lista de cores con extension RBF que son los binarios de los tradicionales archivos SOF de llevamos usando toda la vida.

Conexiones

STM32 - UnAmiga --> Se necesita conectar la STM32 mediante 7 cables o pines al UnAmiga y adidionalmente 6 cables mas a su JTAG (coge la alimentacion 3.3 volt del pin 4 del JTAG y el GND del pin 10)

stm32_pines_UnAmiga.png

Conexion SPI de STM32 - FPGA
Nota:
Los cables de conexion SPI han de ser lo mas cortos posibles para evitar problemas
Las conexiones RX y TX son opcionales y sirven para futuras actualizaciones de la STM32 desde un core especial para actualizarla, mas info aqui

Código: Seleccionar todo

  TM32                 FPGA
-------------------------------
PB12 (CS)     —>       P14
PB13 (SCK)    —>       P15
PB14 (MISO)   —>       R16
PB15 (MOSI)   —>       T15
PA9  (TX)     —>       R14
PA10 (RX)     —>       T14
Reset         —>       R13
STM32 - Lector de SD --> Para simplificar puede utilizar un adaptador de tarjetas micro-SD a SD. En el siguiente diagrama, puedes ver las conexiones de la SD

sdcard-pinout.png

Conexiones para el lector de SD

Código: Seleccionar todo

 TM32         Lector SD
-------------------------------
PA4     —>    1. SS/CS
PA5     —>    5. SCK
PA6     —>    7. MISO
PA7     —>    2. MOSI
GND     —>    3. MOSI
GND     —>    6. MOSI
3.3v    —>    4. VCC(3.3v)
Conexion STM32 al JTAG
Conecta los cables desde la STM32 siguiendo el diagrama de la web:
http://www.zxuno.com/forum/viewtopic.php?t=432
jtag.png

Código: Seleccionar todo

 TM32       JTAG FPGA
-------------------------------
PB0     —>   TCK
PB1     —>   TDI
PB10    —>   TMS
PB11    —>   TDO
VCC3.3  —>   VCC
GND     —>   GND
Instalacion Del Software

1) Programa la STM32 con su archivo bin. Lo puedes hacer con un TLL-USb, o un programador ST-Link. Nuevo: O lo puedes hacer con el core STM32 Updater que pudes ver aqui
2) Programa el UnAmiga con el archivo JIC, esto dejara el core programador grabado en la SPI Flash del UnAmiga y al encender este se mostrara siempre este core prorgamador.

Si no has introducido ninguna tarjeta SD en el lector de tarjetas de la STM32 veras esto
MC_Amiga_menu1.jpg

Al introducir la tarjeta apareceran un listado de cores.
MC_Amiga_menu2.jpg

Podras seleccionar el core con los cursores del teclado y la tecla Enter o bien con las direcciones del Joystick y disparo.

Nota final: La expansion SRAM no es necesaria para el multicore pero si altamente recomendada por dos motivos :
1) para los futuros usos y expansiones que se haran ahora que disponemos de un ARM para generar el OSD
2) Al disponer de multicore tendras la oportunidad de difrutar de todos los cores y ya hay varios que solo funcionan con la expansion SRAM

Espero que disfruteis con este sistema. Ya no teneis escusas a la hora de probar nuevos cores

Archivos necesarios: Multicore_UnAmiga.zip

antoniovillena
GAL
Mensajes: 72
Registrado: 17 Ago 2018, 10:09

Re: Nuevo sistema Multicore para el UnAmiga

Mensaje por antoniovillena » 05 Jul 2019, 16:57

Ya estoy repartiendo los addon multicore. Para los que tengáis carcasa es necesario hacer una ranura para la nueva microSD. Yo lo he hecho con una dremel y un disco, pero también se puede con una broca o una lima de mano.
Adjuntos
photo_2019-07-05_16-54-43.jpg
photo_2019-07-05_16-54-43.jpg (148.18 KiB) Visto 161 veces
photo_2019-07-05_16-55-18.jpg
photo_2019-07-05_16-55-18.jpg (64.11 KiB) Visto 161 veces
photo_2019-07-05_16-55-25.jpg
photo_2019-07-05_16-55-25.jpg (133.23 KiB) Visto 161 veces

pitercio
Veroboard
Mensajes: 6
Registrado: 17 Ago 2018, 19:10

Re: Nuevo sistema Multicore para el UnAmiga

Mensaje por pitercio » 09 Jul 2019, 18:27

Recibido y en uso!! Solo comentar que la caja que diseñó Edu Arana al principio del proyecto no es necesario modificarla, la nueva ranura SD del addon coincide con la ranura para el cable del USB-Blaster rotulada "JTAG".

Enhorabuena por el resultado, Antonio y Fernando!!

Responder

Volver a “Hardware”