MOS 6522
Il MOS 6522 Versatile Interface Adapter (VIA) è un circuito integrato prodotto da MOS Technology come controller input/output per la famiglia di microprocessori MOS 65xx che abbina al controllo parallelo offerto dal MOS 6520 PIA un timer e un registro a scorrimento per le comunicazioni seriali. Prodotto inizialmente solo da MOS Technology, fu in seguito concesso in licenza anche ad altri produttori, tra cui Rockwell e Synertek.
Il 6522 fu molto popolare negli home computer degli anni ottanta, soprattutto in quelli prodotti da Commodore, che lo usò anche in alcune periferiche quali l'unità dischi C1541[1], e nell'Apple III e nel Macintosh 128/512K prodotti da Apple e nel BBC Micro e fu praticamente ubiquitario nelle unità di controllo, persino industriale (quelle basate sul 6502 erano particolarmente diffuse tra il 1976 e i tardi anni '80).[senza fonte]
Porte di I/O
[modifica | modifica wikitesto]Il VIA contiene 20 linee di I/O organizzate in 2 porte bidirezionali (PA e PB) a 8 bit (usabili anche come 16 linee di I/O di uso generico) e 4 linee di controllo (per la generazione dei segnali di handshake e di interrupt). La direzione di tutte le 16 linee di uso generale (PA0-7 e PB0-7) può essere programmata in modo indipendente; le linee di controllo possono essere programmate per generare un interrupt quando attivate (tutte e 4), si può bloccare lo stato della corrispondente porta di I/O (solo le porte CA1 e CB1), si possono generare automaticamente segnali di handshake per i dispositivi, o inviare in output un livello di segnale alto ("HIGH") o basso ("LOW").
Timer
[modifica | modifica wikitesto]Il VIA fornisce 2 timer/contatori a 16 bit che possono essere utilizzati in modalità monostabile, libera (divisore) o come contatore di impulsi: in questa modalità il contatore controlla il 7° bit della rispettiva porta di I/O (PA6 o PB6) e conta quanti cambiamenti di stato sono effettuati. Ogni contatore può generare un interrupt quando raggiunge il valore zero e generare un'onda quadra sull'8° bit della rispettiva porta di I/O (PA7 o PB7).
Registro a scorrimento
[modifica | modifica wikitesto]Il registro a scorrimento del VIA è bidirezionale e largo 8 bit. Può scorrere sia con un segnale di clock generato dal 2° timer, sia con il clock della CPU oppure con un segnale esterno letto sulla linea CB1. L'input/output seriale è sulla linea CB2 e la CB1 può essere programmata anche per inviare un clock a dispositivi esterni.
Difetti del chip
[modifica | modifica wikitesto]Il MOS 6522 VIA è affetto da alcuni bug sul registro a scorrimento.[senza fonte]
Il primo colpiva i chip usati con CPU che non usavano un bus di sistema compatibile con quello della famiglia 65xx, come il Motorola 68000. Se le linee di indirizzo cambiavano mentre il pin di selezione del chip era inattivo ma il pin di input del clock di Φ2 (Phase 2) era attivo, il contenuto del registro poteva essere cambiato nonostante il chip non fosse selezionato.
Un bug più noto riguardava il salto di lettura dei dati su CB1. Se il segnale su CB1 calava nel giro di pochi nanosecondi dalla caduta del segnale di Φ2 (Phase 2) della CPU, lo stato di CB1 veniva ignorato perdendo il bit. Ciò causava la corruzione dei successivi dati.
Questi problemi furono risolti da alcuni produttori nelle proprie versioni CMOS del chip, come California Micro Devices con il suo G65SC22.
Note
[modifica | modifica wikitesto]- ^ Dettagli del MOS 6522 usato nel Commodore 1541 Floppy Disk Drive, su htu.tugraz.at. URL consultato il 22/02/2011 (archiviato dall'url originale il 6 luglio 2011).
Bibliografia
[modifica | modifica wikitesto]- (EN) MCS6522 Versatile Interface Adapter - Preliminary data sheet (PDF), su archive.6502.org, novembre 1977. URL consultato il 22 febbraio 2011 (archiviato dall'url originale il 24 luglio 2011).
- Interfaccia per C64 veramente... versatile (JPG), in Super Commodore 64-128, anno 6, n. 25, Milano, Gruppo Editoriale Jackson, maggio 1989, pp. 30-31, OCLC 955393932.
- "VIA" (JPG), in LIST, anno 2, n. 5, Roma, EDICOMP, settembre/ottobre 1984, pp. 93-94, OCLC 955780660.
Voci correlate
[modifica | modifica wikitesto]Altri progetti
[modifica | modifica wikitesto]- Wikimedia Commons contiene immagini o altri file su MOS 6522