Se lavori con elettronica vintage o progetti retro-computing, prima o poi ti trovi davanti a un chip GAL (Generic Array Logic) o PLD (Programmable Logic Device) da riprogrammare. Il problema? I programmatori commerciali costano un po’ e i vecchi strumenti richiedono porte LPT ormai scomparse. La soluzione si chiama Afterburner: un programmatore GAL open source basato su Arduino UNO.
Cos’è una GAL e perché programmarla
Una GAL è un dispositivo di logica programmabile a basso costo, usato per implementare funzioni logiche combinatorie e sequenziali su un singolo chip. I modelli più comuni sono la GAL16V8 e la GAL22V10, entrambe ancora presenti in molti progetti hardware e schede vintage da restaurare. A differenza dei CPLD e FPGA moderni, le GAL si programmano via JTAG o con protocolli proprietari che richiedono tensioni di programmazione specifiche (tipicamente 10–14 V), rendendo necessario un hardware dedicato.
Il progetto Afterburner
Afterburner è un progetto open source sviluppato da ole00 su GitHub che trasforma un semplice Arduino UNO in un programmatore GAL funzionale. Il software lato PC gira su Linux, Windows e macOS, e comunica con Arduino tramite porta seriale usando un protocollo testuale semplice. Arduino esegue lo sketch afterburner.ino che gestisce i pin GPIO e genera le tensioni e i segnali necessari alla programmazione del chip.
I chip supportati includono: GAL16V8, GAL18V10, GAL20V8, GAL20RA10, GAL20XV10, GAL22V10 e le equivalenti ATF di Atmel/Microchip.
Hardware necessario
Per costruire il programmatore servono:
- Arduino UNO (con sketch afterburner.ino caricato via Arduino IDE 1.8.x o 2.x)
- PCB Afterburner (gerber files disponibili nel repository GitHub per ordinarlo online)
- Modulo boost MT3608 per generare la tensione di programmazione, con il pin 4 (EN) collegato a un GPIO di Arduino per il controllo software
- Componenti passivi secondo la BOM (Bill of Materials) del progetto
- Zoccolo DIP per il chip GAL
Software e flusso di lavoro
Il flusso completo per programmare una GAL prevede tre fasi:
- Scrittura della logica in formato PLD con tool come GALasm (open source su GitHub)
- Compilazione del file .pld in un file .jed (formato JEDEC standard)
- Flashing del file .jed sul chip tramite lo strumento CLI afterburner e l’Arduino collegato via USB
Il file .jed è testo ASCII che codifica lo stato di ogni fuse del chip. Lo sketch Arduino funge da bridge hardware, mentre il software PC gestisce la logica di controllo e il trasferimento dati.
Montaggio e calibrazione
Il montaggio richiede attenzione particolare al circuito di boost per la tensione di programmazione. Il modulo MT3608 va modificato per esporre il pin di abilitazione (EN), permettendo ad Arduino di attivare la tensione di programmazione solo nei momenti necessari. È possibile usare il PCB ufficiale del progetto, acquistabile come shield Arduino già assemblato e calibrato, oppure costruirlo su breadboard o millefori seguendo gli schematici inclusi nel repository.
Conclusioni operative
Con meno di 20€ di componenti e un Arduino UNO, hai un programmatore GAL completo e aggiornato. Il progetto Afterburner è attivamente mantenuto ed è la soluzione più pratica per chi lavora su hardware retro, decoder di indirizzi o qualsiasi progetto che richieda logica programmabile su chip classici. Il video mostra tutto il processo nel dettaglio, dalla BOM all’uso pratico.
