Dopo aver affrontato la parte video di Alex80 con il controller VGA, il passo successivo era naturale: dare al sistema una voce e un ingresso da tastiera. In questo episodio vediamo come le due funzioni siano state riunite su un’unica scheda, dato che le porte di espansione disponibili sono soltanto due e la scheda audio, rispetto a quella VGA, occupa comunque uno spazio logico molto più contenuto.
Il cuore della scheda è l’AY-3-8910, un chip sonoro tipico dell’epoca con tre canali di generazione del suono più un generatore di rumore, utile sia per effetti percussivi sia per i classici rumori da videogioco. Questa versione dispone anche di due porte di ingresso/uscita (IOA e IOB) che in questo progetto restano inutilizzate: erano pensate a suo tempo come possibili porte joystick, ma su Alex80 le linee di I/O non mancano di certo. Restano comunque collegate sulla scheda, per eventuali usi futuri.
Il chip lavora a 5V, in piena compatibilità con il resto del sistema, e viene pilotato tramite i segnali BDIR, BC2 e BC1, oltre a due ingressi (A8 e A9) che vengono fissati rispettivamente a massa e a VCC. Il meccanismo di indirizzamento segue una logica a latch: si seleziona prima il registro interno bloccandolo, poi si legge o si scrive il suo contenuto, a seconda della combinazione di BDIR e BC1. Per generare questi segnali a partire dall’indirizzamento di Alex80 si è scelto di riutilizzare il decoder 6 già presente nel sistema, accettando in cambio qualche cavo volante in più: una scelta coerente con la natura sperimentale della scheda.
La funzione booleana che lega i segnali di indirizzamento (decoder, read/write, A1, A0) a BDIR e BC1 è stata semplificata passo dopo passo con mappe di Karnaugh e le leggi di De Morgan, fino ad arrivare a una soluzione realizzabile con soli tre integrati TTL: un 7408 per le porte AND, un 7400 per le NAND e un 7404 per gli inverter.
Un aspetto a parte riguarda il clock del chip audio, necessario per la generazione di toni, rumore e inviluppi, e indipendente dal clock di sistema: deve stare tra 1 e 2,5 MHz. Il clock di Alex80 è di 3,6864 MHz, che diviso per due dà 1,8432 MHz, valore perfetto per l’AY-3-8910. Pensando anche a versioni future di Alex80 con clock raddoppiato (7,3728 MHz), sulla scheda è stato previsto un selettore che permette di scegliere tra divisione per due o per quattro, ottenendo comunque lo stesso valore di clock corretto. La divisione è realizzata con due flip-flop di tipo D (un 7474) usati in cascata.
Sulla scheda trova posto anche la parte di controller da tastiera, già discussa in un video precedente: per ora viene gestita tramite il SIO, ma in questo episodio ci si concentra soprattutto sull’audio, rimandando il collaudo della tastiera a un prossimo approfondimento.
Per l’uscita audio si è scelta una soluzione semplice, ripresa direttamente da uno degli schemi proposti nel datasheet dell’8910: i tre canali vengono sommati insieme in modo analogico e inviati, con un minimo filtro a condensatore, verso delle piccole casse amplificate, senza bisogno di stadi di amplificazione aggiuntivi.
Il collaudo, prima su breadboard, è partito da un modulino di visualizzazione esadecimale collegato tramite porta di I/O: scrivendo un valore in un registro dell’AY-3-8910 e rileggendolo, si verifica che l’indirizzamento sia corretto, confermato dalla comparsa del valore 7A sul display. Superato questo test, si è passati alla generazione di un tono da 440 Hz, ottenuto impostando il divisore di frequenza a 12 bit calcolato a partire dal clock diviso per 16 (115.200 Hz su Alex80) e dividendo ulteriormente per 262. Un terzo test, con un breve motivetto, ha confermato il corretto funzionamento del chip, che una volta impostato continua a riprodurre il suono in autonomia, lasciando il processore libero di fare altro.
Passata la fase di breadboard, si è proceduto con la saldatura del PCB definitivo: prima le resistenze, poi gli zoccoli degli integrati (AY-3-8910, 7474, 7408, 7404, 7400), i connettori PS/2 e audio, i condensatori di filtro da 100 nF e infine il condensatore elettrolitico sull’uscita audio. Montati gli integrati e collegata la scheda ad Alex80, gli stessi test eseguiti su breadboard sono stati ripetuti con successo sul PCB: indirizzamento corretto, tono da 440 Hz e motivetto riprodotti correttamente.
Con questa scheda, Alex80 si avvicina sempre di più a un piccolo computer completo, con video, audio e presto anche tastiera. Per tutti i dettagli pratici, dallo schema elettrico alla saldatura passo passo, vi rimando al video completo.
