tranZPUterFusionX

Descripcion general

El tranZPUterFusionX es un concepto derivado de la serie tranZPUter. Comparte el mismo proposito: reemplazar el Z80 fisico en un sistema Sharp o similar y proporcionarle funcionalidades como un procesador mas rapido, mas memoria, dispositivos virtuales, carga rapida de aplicaciones desde tarjeta SD y, mediante el uso de una placa hija, mejores graficos y sonido.
La placa FusionX tambien puede utilizarse para alimentar CPUs alternativas en el host para pruebas, desarrollo y para proporcionar una plataforma de software y aplicaciones completamente diferente. Puede utilizar el teclado, monitor e I/O del host subyacente y adicionalmente los graficos y sonido mejorados proporcionados por el FusionX.
Comparte similitudes con el tranZPUterFusion pero en lugar de realizarlo en hardware mediante un FPGA, lo realiza en software como una aplicacion. Esto es posible gracias a un SOM (System On a Module), no mucho mas grande que un dispositivo FPGA pero que proporciona una abundancia de funcionalidades: CPU ARM Cortex-A7 de doble nucleo a 1,2 GHz, 128 MB de RAM, 256 MB de FlashRAM, WiFi, video HD, tarjeta SD, puerto USB y sistema operativo Linux.
Utilizando el mismo diseno base que el tranZPUterFusion, incorpora un CPLD para interfacer el host Z80 con el SOM y proporcionar temporizado Z80 preciso al ciclo. El SOM se interfaza con el CPLD a traves de un canal SPI de 72 MHz y un bus de 8 bits para consultar el estado de las senales e iniciar transacciones Z80.
En la configuracion Z80, un controlador del kernel Linux instancia una emulacion Z80 que realiza una CPU Z80 en software, la cual a su vez puede comandar y controlar el sistema host. El controlador del kernel, junto con una aplicacion de control, puede proporcionar una gran cantidad de funcionalidades al host a traves de este mecanismo. El SOM tambien esta conectado a una unidad SD y un puerto USB 2.0, por lo que no hay limite a las funcionalidades que se pueden proporcionar.
Al igual que el tranZPUterFusion, el tranZPUterFusionX puede proporcionar video y sonido mejorados al host. El SOM incorpora doble DAC de audio y una GPU 2D con resoluciones configurables, conmutadas a las salidas de video y audio del host bajo control de software.
La placa FusionX es ideal para cualquier desarrollador que desee programar fisicamente e interactuar con hardware retro usando una plataforma Linux con conectividad WiFi y puerto USB/serie.
Para la mayoria de los usuarios retro, en las primeras etapas del desarrollo del FusionX, la placa no tendra mucho uso. A medida que el proyecto madure, se puede obtener una placa e instalarla en el zocalo Z80 de su sistema Sharp o similar basado en Z80 (siempre que haya espacio suficiente para alojar esta placa) y utilizar las funcionalidades mejoradas, como:
  • Especificaciones originales del host
    - la maquina se comporta como si tuviera un Z80 fisico en su interior. Puede haber ligeras diferencias en la funcionalidad del Z80 ya que esta implementado en software, pero la temporizacion del hardware Z80 es precisa.
  • Acelerador
    - el Z80 puede funcionar a velocidades mucho mayores gracias a la abundancia de memoria y al procesador de doble nucleo de 1,2 GHz, lo que tipicamente veria un rendimiento equivalente a un Z80 de 500 MHz.
  • Emulacion
    - emulacion de todas las maquinas de la serie Sharp MZ, experimentandolas a traves del teclado, monitor e I/O del sistema host.
  • Graficos
    - todos los modos graficos originales Sharp MZ, independientemente del host, incluyendo resoluciones adicionales hasta HD, estan disponibles a traves de la configuracion de la GPU y pueden ser seleccionados y programados en el host en lenguajes como Basic.
  • Sonido
    - el host tendra acceso a los convertidores DAC estereo, que pueden reproducir sonido de calidad CD a 48 KHz o emular el SN76489 o el sonido basico bit/timer de la serie Sharp. La grabacion de sonido tambien es posible a traves de la entrada de microfono.
  • Procesadores
    - existen muchas implementaciones de CPU por software que pueden portarse para funcionar en esta plataforma, por ejemplo las emulaciones de CPU ARM de la plataforma BBC PiCoPro pueden portarse facilmente. Esto a su vez permite potencialmente a otras maquinas, usando los graficos y sonido avanzados del SOM segun sea necesario, ejecutar emulaciones de maquinas como el BBC en este host Sharp.
  • Linux
    - usando el teclado, altavoz, monitor, etc. del host, se puede utilizar una version completa de Linux, incluyendo WiFi, en la consola del host.

Hardware

La version 1.0 es la primera publicacion oficial del diseno del tranZPUterFusionX.
La placa FusionX se basa en una interfaz host Z80 probada que utiliza el dispositivo CPLD Altera 7000A MAX. El CPLD no solo interfaza las senales host Z80 de 5V con las senales de 3,3V de los dispositivos mas recientes, sino que tambien incorpora la logica para realizar una temporizacion Z80 precisa usando un reloj de 50 MHz para muestrear el reloj host Z80 y activar senales de acuerdo con los diagramas de estado publicados del Z80.
Ademas, el FusionX incluye un System-On-a-Module de SigmaStar, un pequeno dispositivo tipo estampilla de 29mm x 29mm que incorpora una CPU Cortex-A7 de doble nucleo, 128 MB de DRAM, 256 MB de FlashNAND y un transceptor WiFi. El SOM SigmaStar es capaz de producir graficos 2D en formato RGB 888 con resolucion seleccionable hasta formato HD. Tambien es capaz de salida de audio DAC estereo a 48 KHz. Haga clic para ver la hoja de producto completa del SigmaStar.
El diseno de hardware se centra en una placa de circuito principal que contiene todos los circuitos primarios y un numero de placas hija, cada placa hija dedicada a un host (es decir, MZ-700, MZ-80A, MZ-2000). La placa hija intercepta el subsistema de video/audio del host y soporta la conmutacion del video/audio del host y de la placa principal hacia el monitor/altavoz del host. La placa principal puede usarse sin placas hija; estas ultimas solo se usan cuando se requiere el video/audio del SOM.
Esta seccion describe los esquemas y el diseno de la placa de circuito principal del tranZPUterFusionX.

Esquemas

Esquema 1 - Zocalo host Z80 a CPLD
El esquema interfaza el Z80 al CPLD. El CPLD es tolerante a 5V y opera internamente a 3,3V. Las salidas se seleccionan como TTL de bajo voltaje, lo que significa que un '1' esta representado por 3,3V en lugar de 5V en el sistema host. Las especificaciones del TTL de 5V situan el umbral de conmutacion a aproximadamente 2,4V, por lo que el CPLD es capaz de manejar circuitos de 5V con corriente de manejo suficiente de 25 mA por pin.

FusionX Schematic2

Esquema 2 - I/O (Audio, UART, USB)

FusionX Schematic2

Esquema 3 - Video (VideoDAC, DAC de contraste)

FusionX Schematic4

Esquema 4 - Fuente de alimentacion (3,3V, USB)

FusionX Schematic5

Esquema 5 - Interfaz CPLD

FusionX Schematic6

PCB

El PCB fue disenado con el tamano minimo como requisito principal para las diversas maquinas en las que seria instalado. Tambien tenia que ser compatible con el tranZPUterFusion para la intercambiabilidad.
Vista superior del PCB

FusionX PCB Top

Vista inferior del PCB

FusionX PCB Bottom

Vista general del enrutamiento de 4 capas del PCB

FusionX Routing

PCB ensamblado

FusionX Assembled

FusionX Assembled

Colocacion de componentes y lista de materiales del PCB
Haga clic aqui para ver un diagrama interactivo de colocacion de componentes y la lista de materiales.

Para la documentacion tecnica completa sobre el CPLD, el software, la arquitectura, el emulador Z80, las placas hija, los sitios de referencia, los manuales, las vistas previas del proyecto, los creditos, las licencias y el aviso regulatorio inalambrico, consulte la pagina del proyecto en ingles, que contiene todas las especificaciones tecnicas detalladas, los esquemas de la FSM del bus, las descripciones de la interfaz SOM, las instrucciones de compilacion, las configuraciones de los modulos del kernel, las placas hija para MZ-700/MZ-2000/MZ-80A y los videos de demostracion.


Configuracion y compilacion automatizada (recomendado)

La forma mas sencilla de compilar el FusionX desde el codigo fuente es el script de configuracion automatizado para su plataforma. Instala toda la cadena de herramientas (el toolchain ARM Linaro, Java y la imagen Docker de Quartus), descarga el paquete de contenido y compila las ROM Z80 / TZFS / CP-M, los bitstreams del CPLD y la imagen completa de la tarjeta SD Linux SigmaStar SSD202.
Script Plataforma Notas
setup_FusionX.sh Linux / macOS Nativo en Linux, Docker en macOS. Instala el toolchain y compila.
setup_FusionX_windows.cmd Windows 10/11 Lanzador de doble clic (ROM/CPLD nativos, partes Linux en WSL1).
setup_FusionX_windows_native.ps1 Windows 10/11 PowerShell (winget + Git + JRE + WSL1).
chmod +x setup_FusionX.sh
./setup_FusionX.sh          # despues, para recompilar: ./build.sh
Variables de entorno: `FUSIONX_REPO_URL`, `FUSIONX_METHOD=native|docker`, `FUSIONX_DIR`, `FUSIONX_FILES_URL`, `FUSIONX_WSL_DISTRO`. Las salidas son `software/roms/*.bin` (incl. `cpm223_*.bin`), el `.pof` del CPLD y la imagen SD de Linux. Consulte la Guia del desarrollador para conocer todos los detalles.


Creditos

La emulacion Z80 utilizada en el FusionX es (c) 1999-2022 Manuel Sainz de Baranda y Goni, licenciada bajo la licencia LGPL v3, el codigo fuente se encuentra en Gitea.
El sistema de compilacion SSD202/SOM2D0X esta basado en Linux con extensiones de SigmaStar e Industio, las licencias se encuentran en sus archivos fuente actualizados.

Licencias

Este diseno, hardware y software (componentes atribuibles excluyendo el software con licencia separada) esta licenciado bajo la GNU Public Licence v3 y es libre para uso, adaptacion y modificacion por parte de individuos, grupos e institutos educativos.
No se debe hacer ningun uso comercial de este diseno o cualquier componente de hardware/firmware sin el permiso expreso del autor.

Aviso regulatorio inalambrico

Este dispositivo incorpora un transceptor inalambrico SSW101B 2,4 GHz IEEE 802.11 b/g/n (integrado en el SOM SigmaStar SSD202), lo que lo convierte en un emisor intencional bajo las regulaciones de radiofrecuencia a nivel mundial (incluida la FCC Part 15 Subpart C en los Estados Unidos y la Directiva de Equipos de Radio 2014/53/EU en la Union Europea).
Aunque el modulo SOM cuenta con certificaciones regulatorias preexistentes, dichas certificaciones a nivel de modulo no se extienden automaticamente a un producto terminado que incorpore el modulo. La exencion de modulo pre-certificado permite a los aficionados individuales construir un numero limitado de dispositivos para uso personal, experimental o educativo sin obtener una autorizacion de equipo separada.
Responsabilidad del constructor
Es responsabilidad exclusiva del constructor asegurar que cualquier dispositivo construido a partir de estos disenos cumpla con todas las regulaciones de radiofrecuencia aplicables en su jurisdiccion. El autor proporciona estos disenos para uso personal, educativo y de aficion y no garantiza que un dispositivo construido a partir de ellos satisfaga los requisitos regulatorios para la distribucion comercial.