Interfaccia TTL per porta LPT

Controllate sempre due volte i circuiti che fate prima di alimentarli! Inoltre c'e' gente che dice che sia necessario montare questo circuito a computer spento.

La porta parallela (LPT) puo' essere utilizzata come dispositivo di IN/OUT per il PC, infatti permette di avere 8 bit in ingresso e 8 bit in uscita con compatibilita' TTL. Naturalmente la cosa non e' cosi' facile come sembra.

Per gestire le uscite (indirizzo classico 0378h) occorre utilizzare un buffer TTL, come il 74LS244, in modo da amplificare la corrente fornita dalla LPT. I pin del connettore DB25 (della parallela) relativi all'uscita sono i seguenti:

D7D6D5D4D3D2D1D0GND
9876543218...25
INDIRIZZO 0378HMassa

Nello schema da me presentato sono stati inseriti anche dei LED che indicano lo stato logico delle uscite e degli ingressi. Le uscite della parallela sono latched cioe' il comando (e quindi il livello) rimane fino ad un nuovo comando del programma. I comandi assembler per far uscire un'informazione contenuta nel registro AL sono i seguenti:

MOV DX,0378H
OUT DX,AL

Schema elettrico del circuito di output:


La gestione degli ingressi e' piu' complicata: alcuni bit sono a logica negativa e quindi devono essere negati via hardware (praticamente attraverso delle NOT TTL). Inoltre gli ingressi utilizzano 2 registri distinti: lo 0379h (5 bit piu' significativi), chiamato Registro di Stato, e lo 037Ah (3 bit meno significativi), chiamato Registro di Controllo, che devono essere combinati per ottenere la parola di 8 bit. Per garantire un minimo di "isolamento" tra l'esterno e la parallela i segnali di ingresso passano attraverso dei latch D (74LS75) che hanno anche l'uscita negata utile per i bit a logica negativa. I pin del connettore DB25 utilizzati come ingresso sono i seguenti:

D7D6D5D4D3D2D1D0GND
11N10N12131516141N18...25
INDIRIZZO 0379HINDIRIZZO 037AHMassa

I bit negati sono quindi D7, D6 e D0. Notare che il pin 17 non viene utilizzato. Naturalmente se ai bit di ingresso devono essere collegati degli interruttori essi devono essere dotati di un dispositivo antirimbalzo. Di seguito riporto alcune linee di codice assembler adatte all'ingresso degli otto bit e alla memorizzazione dell'informazione nel registro AL:

MOV DX,0379H
IN AL,DX
AND AL,0F8H
MOV BL,AL
MOV DX,037AH
IN AL,DX
AND AL,07H
OR AL,BL

Schema elettrico del circuito di input:

L'interfaccia parallela di ingresso funziona solo con LPT di tipo SPP quindi controllate nel BIOS del vostro PC il tipo di LPT che e' installato. Se avete un altro tipo (ECP, EPP) potete cambiarlo in SPP senza causare malfunzionamenti delle periferiche. L'interfaccia di uscita funzione con qualsiasi tipo di LPT.