# Texas Instruments SN76477

L'SN76477 è un generatore sonoro programmabile costruito da Texas Instruments verso la fine degli anni settanta e commercializzato a partire dal 1978. Oggi è fuori produzione. Sono state prodotte 2 versioni, entrambe in formato DIP a 28 piedini, rispettivamente indicate come SN76477N e SN76477NF: la prima presenta il passo (distanza fra i piedini) standard di 2,54 mm (0,1 pollici) mentre la seconda adotta un passo ridotto di 1,78 mm (0,07 pollici).
È stato usato in alcuni videogiochi arcade (ad esempio Space Invaders), home computer (come l'ABC 80) e giochi elettronici realizzati fra la fine degli anni '70 e durante gli anni '80 del XX secolo per generare effetti sonori come spari d'arma da fuoco o suoni spaziali e rumori vari. Il chip ha solo una voce, cioè può generare solo un suono o rumore alla volta.

## Caratteristiche

La programmazione del chip non avveniva con l'inserimento di dati digitali come in altri PSG ma facendo uso di condensatori e resistenze di vario valore e variando opportunamente lo stato logico di alcuni piedini del chip. Il chip era capace di generare forme d'onda complesse (per questo motivo il produttore lo identificava come un "Complex Sound Generator") combinando l'uscita di un oscillatore a bassa frequenza, un oscillatore a frequenza variabile ed una fonte di rumore, modulando il segnale e gestendo poi i periodi di attacco e decadimento.
Internamente il chip presenta diversi stadi:
* un SLF ("Super Low Frequency Oscillator"), un oscillatore a bassa frequenza. Questo oscillatore generava un'onda triangolare e un'onda quadra alla stessa frequenza. La frequenza poteva variare tra 0,1 e 30 hertz, ma teoricamente poteva arrivare anche a 20 kilohertz. La frequenza di questo oscillatore dipendeva dal valore della resistenza applicata al pin 20 e del condensatore applicato al pin 21 del chip.
* Un VCO ("Voltage Controlled Oscillator"), un oscillatore controllato in tensione. La tensione di controllo di questo oscillatore non fa altro che far slittare la frequenza generata dal VCO. Nell'SN76477 la tensione di controllo del VCO poteva avere due fonti: interna, che corrisponde all'onda triangolare del LFO ed esterna, che fa capo al piedino 16 del chip. La fonte poteva essere selezionata attraverso uno 0 o un 1 logico sul pin 22. L'onda generata da questo stadio era quadra. Questo oscillatore disponeva anche di un controllo del duty cycle dell'onda quadra prodotta. Questo controllo era attuato per mezzo di una tensione applicata al pin 19.
* Un generatore di rumore bianco. Questo generatore per produrre rumore faceva uso di un LFSR (registro a scorrimento a retroazione lineare). Questo stadio generava una sequenza di bit casuali, che venivano inviati a un filtro passa basso del primo ordine. All'uscita del filtro si presentava un segnale elettrico che corrispondeva al rumore. Il filtro era, internamente al chip, connesso direttamente all'uscita del LFSR. La frequenza di taglio del filtro poteva essere variata agendo sui valori della resistenza collegata al pin 5 e del condensatore collegato al pin 6 del chip. Il generatore di rumore aveva bisogno di un clock per funzionare. All'interno del chip vi era un generatore di clock la cui frequenza poteva essere variata agendo sul valore della resistenza applicata al pin 4 oppure si poteva usare un clock esterno applicato al pin 3. Il rumore prodotto da questo stadio è identico a quello che si sente da una TV non sintonizzata.
* Un Mixer. Questo mixer era di tipo digitale, non analogico; quindi non si poteva controllare il livello di ogni singolo segnale in entrata ma permetteva solo la miscelazione di varie combinazioni di segnali in ingresso. La miscelazione avveniva facendo un AND logico sugli ingressi selezionati. Gli ingressi del mixer sono l'onda quadra generata dal LFO, l'onda quadra generata dal VCO e il rumore proveniente dall'uscita del filtro del generatore di rumore. La selezione e miscelazione degli ingressi avveniva agendo su tre pin digitali del chip facenti capo ai pin 25, 26 e 27. Dato che per la selezione si usavano tre bit, si potevano avere massimo 8 combinazioni dei segnali all'ingresso del mixer. I segnali selezionati venivano così miscelati e il segnale risultante veniva mandato al generatore d'inviluppo.
* System Enable del chip. Il chip aveva un pin che permetteva l'abilitazione o meno del chip stesso. Questo controllo faceva capo al pin 9. Questo pin controlla anche lo stadio one-shot del chip.
* One-shot. Questo stadio, controllato dal pin 9, generava un impulso la cui durata dipendeva dalla resistenza connessa al pin 24 e dal condensatore connesso al pin 23. Questo impulso comandava il generatore d'inviluppo.
* Generatore d'inviluppo. Questo stadio dava l'inviluppo al segnale proveniente dal mixer. L'attacco e il decadimento potevano essere variate a piacimento agendo sui valori di due resistenze e un condensatore. La resistenza applicata al pin 10 insieme al condensatore applicato al pin 8 determinavano l'attacco, mentre la resistenza applicata al pin 7 e lo stesso condensatore determinavano il decadimento. Il generatore inoltre disponeva di due bit di controllo che facevano capo ai pin 1 e 28: essi determinavano fino a 4 tipi di inviluppo.
* Amplificatore. L'SN76477 disponeva di un piccolo amplificatore di piccola potenza. Questo amplificatore disponeva del controllo del volume del segnale. Il controllo del volume si faceva attraverso una resistenza collegata al pin 11. Inoltre questo stadio richiedeva una resistenza di retroazione collegata tra il pin 12 e l'uscita (pin 13).
* alimentatore. Il chip disponeva di un piccolo regolatore di tensione a bordo. Il chip quindi poteva essere alimentato in due modi:
** si poteva alimentare applicando 9 volt al pin 14 e internamente i 9 volt venivano regolati fino a 5 volt presenti sul pin 15 con una corrente massima di 100 mA;
** si poteva alimentare applicando 5 volt sul pin 15 lasciando il pin 14 scollegato.
Il pin 2 è la massa di tutto il chip, sia per la parte analogica che per la parte digitale.