tranZPUter FusionX Manuale Utente
Panoramica
Il tranZPUterFusionX (FusionX) e un PCB compatto e ad alte prestazioni che sostituisce la CPU Z80 in una gamma di computer domestici vintage. Inserendosi direttamente nello zoccolo DIP-40 Z80 della macchina host, il FusionX assume il pieno controllo del bus host fornendo al contempo un ambiente di calcolo moderno completo basato su Linux — il tutto invisibile al firmware e al software originale della macchina host.
La scheda e costruita attorno al SigmaStar SSD202D System-on-Module (SOM), che integra un processore ARM Cortex-A7 dual-core a 1,2 GHz, 128 MB di LPDDR2 DRAM, 256 MB di SLC NAND Flash e una radio WiFi SSW101B 2,4 GHz 802.11 b/g/n integrata. Il SOM esegue un kernel Linux 4.9-rt in tempo reale (con patch PREEMPT_RT), fornendo simultaneamente un ambiente Linux completamente funzionale e il livello di emulazione Z80.
L'emulatore Z80 funziona esclusivamente sulla CPU1, isolata dallo scheduler Linux all'avvio tramite il meccanismo
isolcpus del kernel. Un modulo kernel dedicato (z80drv) gestisce il ciclo di emulazione e fornisce il timing preciso al ciclo necessario per eseguire correttamente il software Z80 originale. L'emulatore e controllato dallo spazio utente tramite l'utility da linea di comando z80ctrl.
Il timing a livello di bus e la logica di interfaccia sono implementati in un CPLD Altera MAX7000AE, che fornisce un'interfaccia precisa al ciclo Z80 tra il SOM e i bus di indirizzo, dati e controllo della macchina host. Il CPLD e compilato in varianti separate per ciascuna macchina host supportata, garantendo il corretto timing del bus e il condizionamento del segnale per ogni piattaforma target.
Il FusionX supporta molteplici personas di macchina — la variante CPLD e la configurazione software determinano quale macchina host viene emulata a livello hardware. Schede figlia opzionali collegano le uscite video e audio del FusionX ai circuiti di visualizzazione e all'altoparlante interno della macchina host, utilizzando multiplexer analogici SPDT per commutare in modo pulito tra l'output nativo dell'host e quello generato dal FusionX.
Nota: L'interfaccia di gestione web e attualmente in costruzione e non e disponibile nel firmware distribuito. Tutte le attivita di gestione e configurazione vengono eseguite tramite la console USB-seriale e l'utility da linea di comando z80ctrl.
Panoramica della scheda
Il FusionX e un PCB compatto a 4 strati nella revisione hardware v1.0. Le dimensioni della scheda sono progettate per rientrare nell'impronta di uno zoccolo IC DIP-40 standard ospitando al contempo il SOM SigmaStar SSD202D e il CPLD Altera MAX7000AE sopra di esso. Tutti i connettori e le intestazioni sono accessibili dalla parte superiore o posteriore della scheda quando installata nella macchina host.
Connettori e intestazioni
- Intestazione JTAG a 10 pin — Utilizzata per la programmazione in-system (ISP) del CPLD Altera MAX7000AE tramite un programmatore JTAG compatibile (ad es. USB-Blaster). Consultare la Guida Tecnica per i dettagli di programmazione.
- Connettore USB-Seriale (CH340E) — Un connettore micro-USB o intestazione pin instradato attraverso un ponte USB-UART CH340E integrato. Fornisce accesso diretto alla console seriale Linux a 115200 baud, 8N1. Questa e l'interfaccia di gestione principale durante la configurazione iniziale e l'amministrazione quotidiana.
- Porta USB 2.0 (SOM) — Una porta host USB 2.0 Type-A standard esposta dal SOM SSD202D. Questa porta puo essere utilizzata per collegare storage di massa USB, adattatori USB-Ethernet o altre periferiche USB supportate dal kernel Linux.
- Slot scheda SD (SOM) — Uno slot micro-SD collegato all'interfaccia SDIO del SOM. La scheda SD e utilizzata per storage aggiuntivo, contenente immagini ROM, file programma MZF e immagini di aggiornamento firmware OTA.
- Connettore antenna WiFi — Un connettore coassiale IPEX/U.FL per un'antenna WiFi esterna a 2,4 GHz, collegato al modulo wireless SSW101B integrato del SSD202D.
Indicatori di stato
La scheda FusionX e dotata di un piccolo numero di LED di stato per assistere nella diagnostica e confermare il corretto funzionamento:
- LED di alimentazione — Si illumina quando l'alimentazione a 3,3 V e presente sulla scheda.
- LED di attivita — Pilotato dal SOM; indica l'attivita del kernel Linux e dell'emulazione Z80.
- LED CPLD — Pilotato dal CPLD; indica l'attivita del bus sull'host Z80.
Alimentazione
Il FusionX trae tutta l'alimentazione dall'alimentazione a 5 V della macchina host, disponibile sul pin VCC DIP-40 Z80 (pin 11). Un convertitore step-down sincrono TLV62569DBV regola l'ingresso a 5 V fino a 3,3 V per il SOM, il CPLD e tutta la logica integrata.
Schede figlia
Tre schede figlia specifiche per l'host sono disponibili per il FusionX:
- Scheda figlia MZ-80A — Interfaccia le uscite video e audio del FusionX con il display interno e i circuiti audio dello Sharp MZ-80A.
- Scheda figlia MZ-700 — Interfaccia le uscite video e audio del FusionX con il display interno e i circuiti audio dello Sharp MZ-700.
- Scheda figlia MZ-2000 — Interfaccia le uscite video e audio del FusionX con il display interno e i circuiti audio dello Sharp MZ-2000.
Ogni scheda figlia contiene multiplexer analogici SPDT che commutano i segnali di visualizzazione e audio tra la sorgente nativa dell'host e la sorgente generata dal FusionX. Cio consente al FusionX di presentare la propria uscita video e audio attraverso il display e l'altoparlante integrati della macchina host senza modificare permanentemente i circuiti dell'host.
L'Amstrad PCW-8256 non richiede una scheda figlia. La variante CPLD PCW-8256 si interfaccia direttamente con la paginazione della memoria e l'I/O Z80 standard del PCW senza richiedere multiplexing video o audio.
La scheda figlia corretta deve essere installata prima dell'installazione nella macchina host.
Macchine host supportate
Il FusionX supporta attualmente le seguenti macchine host. La variante CPLD deve corrispondere esattamente alla macchina host target.
| Macchina host | Scheda figlia | Variante CPLD | Note |
|---|---|---|---|
| Sharp MZ-80A | Scheda figlia MZ-80A | MZ80A | Modalita display 40/80 colonne; supporto ROM Filing System (RFS); caricamento file MZF da scheda SD |
| Sharp MZ-700 | Scheda figlia MZ-700 | MZ700 | Commutazione banchi; emulazione video e tastiera; mappa di memoria MZ-700 completa |
| Sharp MZ-2000 | Scheda figlia MZ-2000 | MZ2000 | Supporto memoria estesa; modalita video avanzate; decodifica I/O MZ-2000 |
| Amstrad PCW-8256 | Non richiesta | PCW8256 | Paginazione memoria; I/O Z80 standard; nessuna scheda figlia video/audio necessaria |
Configurazione iniziale
Seguire attentamente questi passaggi per installare e configurare il FusionX nella macchina host per la prima volta.
Costruire dai sorgenti (opzionale). Una scheda pronta all'uso arriva con il firmware del CPLD e del SOM gia programmato, quindi la maggior parte degli utenti puo passare direttamente al Passaggio 1. Se si desidera costruire da soli il firmware, le ROM, i bit stream del CPLD o l'immagine SD Linux, il repository include uno script di setup autonomo per ogni piattaforma —
setup_FusionX.sh (Linux / macOS) oppure setup_FusionX_windows.cmd / setup_FusionX_windows_native.ps1 (Windows 10/11, senza WSL2). Ciascuno installa gli strumenti, clona il repository con i suoi sottomoduli, scarica il bundle di contenuti ed esegue il primo build tramite build.sh. Consultare la Guida Tecnica e la Guida dello sviluppatore per il riferimento completo su setup automatizzato e build.
Passaggio 1 — Verificare la variante CPLD [Comune]
Prima di installare il FusionX, confermare che il CPLD sia programmato con la variante corretta per la propria macchina host.
Passaggio 2 — Installare la scheda figlia corretta [Specifico per host]
Se la macchina host e uno Sharp MZ-80A, MZ-700 o MZ-2000, e necessario installare la scheda figlia appropriata sulla scheda principale FusionX prima dell'installazione. Se la macchina host e un Amstrad PCW-8256, saltare questo passaggio.
Passaggio 3 — Installare nella macchina host [Comune]
Spegnere completamente la macchina host e scollegarla dalla rete elettrica. Aprire il case della macchina host per accedere alla scheda madre. Individuare la CPU Z80 nel suo zoccolo DIP-40. Rimuovere con cura la CPU Z80. Inserire la scheda FusionX nello zoccolo DIP-40 liberato. Il pin 1 della scheda FusionX deve essere allineato con il pin 1 dello zoccolo.
Passaggio 4 — Collegare l'adattatore USB-Seriale [Comune]
Collegare un cavo USB dal PC al connettore USB-seriale CH340E sulla scheda FusionX. Configurare l'emulatore di terminale con le seguenti impostazioni:
- Baud rate: 115200
- Data bits: 8
- Parita: Nessuna
- Stop bits: 1
- Controllo di flusso: Nessuno
Passaggio 5 — Accensione [Comune]
Con il FusionX installato, la scheda figlia collegata (se applicabile) e il cavo USB-seriale collegato, ricollegare la macchina host alla rete e accenderla. Il SOM FusionX iniziera immediatamente l'avvio di Linux. La sequenza di avvio completa richiede circa 10-15 secondi.
Passaggio 6 — Accedere alla console Linux [Comune]
Una volta che il SOM ha completato l'avvio, aprire l'emulatore di terminale e connettersi alla porta USB-seriale. Dovrebbe apparire il prompt di login Linux. La tastiera e il display della macchina host sono anche mappati su un dispositivo terminale virtuale Linux
/dev/ttymz0 tramite il driver del kernel ttymzdrv.
Modalita di avvio della macchina
Il FusionX fornisce tre script di avvio che configurano l'ambiente di emulazione Z80 per diverse modalita operative.
Avvio generale — start_FusionX.sh
sudo /opt/fusionx/start_FusionX.sh
Modalita ROM Filing System — startZ80_RFS.sh
Questo script avvia l'emulazione Z80 in modalita ROM Filing System (RFS), progettata principalmente per lo Sharp MZ-80A.
sudo /opt/fusionx/startZ80_RFS.sh
Modalita tranZPUter Filing System — startZ80_TZFS.sh
sudo /opt/fusionx/startZ80_TZFS.sh
Passaggio tra le modalita di avvio
z80ctrl --stop sudo rmmod z80drv sudo /opt/fusionx/startZ80_TZFS.sh
Utilizzo dell'emulatore Z80
L'utility da linea di comando
z80ctrl e l'interfaccia utente principale per controllare il motore di emulazione Z80 in esecuzione nel modulo kernel z80drv.
Caricare un'immagine ROM
z80ctrl --loadrom /path/to/rom.bin --addr 0xE800 --size 0x2000
Aggiungere un dispositivo hardware virtuale
z80ctrl --adddev --device mz80a
Avviare e arrestare l'emulazione
z80ctrl --start z80ctrl --stop
Ispezionare la memoria
z80ctrl --dump --addr 0x0000 --size 256
Caricare un programma MZF
z80ctrl --loadmzf /sd/programs/test.mzf
Passaggio tra console Z80 e Linux
Il FusionX utilizza un approccio a livelli per condividere la tastiera e il display della macchina host tra la sessione di emulazione Z80 e la console Linux. Il driver del kernel
ttymzdrv presenta la tastiera e il display come il dispositivo terminale Linux /dev/ttymz0. Il daemon arbitro sharpbiter arbitra tra i due consumatori.
Riprendere la sessione Z80
sharpbiter --resume
Configurazione WiFi
Il SOM SigmaStar SSD202D integra il modulo WiFi SSW101B 802.11 b/g/n (2,4 GHz). Una volta configurato, il WiFi fornisce accesso SSH all'ambiente Linux del FusionX.
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
network={
ssid="YourNetworkName"
psk="YourNetworkPassword"
key_mgmt=WPA-PSK
}
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf sudo udhcpc -i wlan0
Scheda SD e gestione file
Il SOM SigmaStar SSD202D include uno slot micro-SD collegato tramite l'interfaccia SDIO. La scheda SD fornisce storage espandibile per immagini ROM, file programma MZF e immagini di aggiornamento firmware OTA.
sudo mkdir -p /mnt/sd sudo mount /dev/mmcblk1p1 /mnt/sd
Risoluzione dei problemi
L'host non si avvia / display vuoto
- Verificare che il pin 1 della scheda FusionX sia allineato con il pin 1 dello zoccolo DIP-40.
- Confermare che tutti i 40 pin della scheda FusionX siano completamente e correttamente inseriti nello zoccolo.
- Se si utilizza una scheda figlia, confermare che sia correttamente installata.
- Confermare che la variante CPLD corrisponda alla macchina host.
Nessuna console Linux su USB-Seriale
- Confermare che il driver USB-seriale CH340E/CH34x sia installato sul PC.
- Confermare che l'emulatore di terminale sia impostato a 115200 baud, 8 bit dati, nessuna parita, 1 bit di stop, nessun controllo di flusso.
- Confermare che il cavo USB sia in grado di trasferire dati (non un cavo di sola ricarica).
Siti di riferimento
| Risorsa | Posizione |
|---|---|
| Pagina progetto tranZPUter FusionX | /tranzputer-fusionx/ |
| Guida tecnica FusionX | /tranzputer-fusionx-technicalguide/ |
| Guida dello sviluppatore FusionX | /tranzputer-fusionx-developersguide/ |
Avviso normativo wireless
Questo dispositivo incorpora un ricetrasmettitore wireless SSW101B 2,4 GHz IEEE 802.11 b/g/n (integrato nel SOM SigmaStar SSD202), rendendolo un emettitore intenzionale secondo le normative sulle radiofrequenze a livello mondiale.
Sebbene il modulo SOM possieda certificazioni normative preesistenti, tali certificazioni a livello di modulo non si estendono automaticamente a un prodotto finito che incorpora il modulo.
Responsabilita del costruttore
E responsabilita esclusiva del costruttore assicurarsi che qualsiasi dispositivo costruito sulla base di questi progetti sia conforme a tutte le normative sulle radiofrequenze applicabili nella propria giurisdizione.
E responsabilita esclusiva del costruttore assicurarsi che qualsiasi dispositivo costruito sulla base di questi progetti sia conforme a tutte le normative sulle radiofrequenze applicabili nella propria giurisdizione.