News
Programmazione
Login
QTube
Video Id mancante!
|
|
|
|
  Circuiti Applicativi  In questa pagina presento qualche piccolo circuito applicativo utile per fare le prime esperienze con la porta parallela. Ho già detto del rischio di danni al PC e quindi vi invito nuovamente a prestare la massima attenzione alla realizzazione del circuito e ad evitare di effettuare modifiche al circuito con il PC acceso. Accensione di un ledUn paio di circuiti veramente semplici per accendere un led permettono di vedere come usare la parallela. È necessario disporre di una resistenza di circa 3,3k ed ovviamente di un led e, limitatamente al secondo circuito, di una batteria o un alimentatore da 5 volt (ma va bene anche una batteria da 4,5V). Â
Il primo schema non necessita di particolari spiegazioni: quando il pin 2 viene posto alto, il led si accende, quando viene posto basso, si spegne. Il codice relativo è banale: outportb (DATA, 0x01); // accendo il led collegato al pin 2 (D0) Ho sottointeso la dichiarazione delle varabili utilizzate, peraltro già riportate nelle righe di codice già presentate nella Parte 3° . E' bene evidenziare che, una volta acceso il led, esso rimane tale fino allo spegnimento del PC o finché viene esplicitamente spento dal programma, indipendentemente dal fatto che il programma stesso sia o meno in esecuzione: lo stato del led è infatti memorizzato dall'hardware. La connessione utilizzata in questo primo circuito (il led è acceso dalla corrente uscente dal pin della porta parallela) ha il vantaggio di non richiedere nessuna alimentazione esterna ma il difetto che su alcune porte parallele (in particolare vecchie o di PC portatili) potrebbe non funzionare a causa del fatto che la corrente di source è troppo piccola. Il secondo circuito utilizza una sorgente di alimentazione esterna e dovrebbe funzionare con tutte le porte parallele. In questo caso è lo zero che accende il led. Per aumentare la luminosità del led è possibile diminuire il valore della resistenza anche a valori molto più piccoli, quale 330 ohm. Ovviamente i due circuiti possono essere ampliati connettendo altri sette led agli otto pin di dato. Simile il discorso per i pin connessi al registro di controllo. L'unica nota è riferita al fatto che, nel caso di uscite a collettore aperto potrebbe essere necessario per il primo circuito diminuire il valore della resistenza o addirittura toglierla (quest'ultima è un'operazione rischiosa e che personalmente sconsiglio in quanto non è una configurazione adatta alla generalità delle LPT). Collegamento a grossi carichiIl precedente circuito è utile solo se sono richieste correnti molto piccole (pochi mA al massimo) e una tensione di 5V massimo. In altri casi, quale l'accensione di una lampadina da 12V o di un relè, è necessario l'utilizzo di un transistor di adeguata potenza e di un'alimentazione esterna. Â
Lo schema mostra la connessione di un relè (osservate il diodo di ricircolo, che deve essere di tipo veloce) e di una lampadina. La Vcc è la tensione continua richiesta per il funzionamento della lampadina e della bobina del relè. Eventuali carichi in AC richiedono sempre la presenza di un relè o di un altro interruttore adeguato. Ovviamente nel dimensionamento del transistor e della resistenza di base occorre tenere conto delle effettive tensioni e correnti in gioco (in particolare, nel caso di grossi teleruttori o lampade ad elevato assorbimento, si rende necessario l'uso di transistor darlington) ma, con le dovute cautele, è possibile gestire lampade a bassa tensione da diverse decine di watt. L'uso di interruttoriNello schema seguente sono illustrati tre modi per connettere un interruttore alla porta parallela. In tutte e tre i casi l'interruttore chiuso viene letto come tensione di 0 volt, l'interruttore aperto come tensione di circa 5 volt. Â
Lo schema utilizzato con S1 richiede la presenza di una batteria esterna da 5V. Per conoscere lo stato dell'interruttore è sufficiente leggere lo stato del bit Error nel registro di controllo (oppure di un altro bit dello stesso registro se connesso ad un altro pin). È possibile la connessione con uno qualunque dei bit gestiti attraverso il registro di controllo. In certi casi questo circuito funziona anche senza batteria e senza resistenza ma l'estrema semplicità si paga con errori di lettura occasionali, soprattutto in ambiente rumoroso. Lo schema usato per S2 è simile al precedente, con la differenza che la tensione non viene prelevata da una batteria ma da uno dei pin della porta dati, posto preventivamente a uno logico. Lo svantaggio è quello di richiedere due pin della porta parallela, oltre la massa. Lettura di otto bitIl seguente schema permette di leggere otto bit anche da porte non bidirezionali o senza uscite open collector. Viene utilizzato un multiplexer 74157 comandato dall'uscita di strobe, leggendo quattro bit alla volta. Â
Il difetto di tale metodo deriva dalla relativa lentezza (richiede due letture e due scritture della porta) e dal fatto che è ovviamente richiesta un integrato esterno e relativo circuito di alimentazione (quest'ultimo non disegnato nello schema). Il vantaggio è che funziona con qualunque tipo di porta senza modifiche. Il codice da eseguire è il seguente: outportb(CONTROL, 0x01);           // Seleziono il nibble basso Ovviamente se la porta è bidirezionale oppure se è possibile usare in ingresso i quattro bit associati al registro di controllo vi sono minori problemi, pagati con una minore compatibilità . La soluzione più razionale nel caso in cui serva l'input di una quantità significativa di dati è però quella di adottare una porta EPP, sicuramente più standardizzata e veloce. Collegare una stampanteQuesto non è un circuito applicativo ma la schematizzazione dei segnali presenti sulla parallela durante il suo funzionamento più "naturale", cioè collegata ad una stampante secondo l'handshake centronics. Una premessa: le temporizzazioni mostrate sono solo indicative in quanto non ho trovato standard a cui riferirmi e le varie pubblicazioni riportano dettagli differenti; forse tale standard neppure esiste e quello mostrato è solo una consuetudine più o meno rispettata. Il controllo è completamente effettuato dal software, in genere dalla routine del BIOS o del sistema operativo invocata per la stampa. È ovviamente possibile scrivere da sé il software per la gestione, magari da usare su un microcontrollore. Â
In rosso ho indicato i segnali che vanno dal PC alla stampante, in verde quelli che hanno percorso inverso. Non ho indicato i segnali non coinvolti nella comunicazione.
La linea Ack, proveniente dalla stampante in genere è ignorata dal PC (almeno in ambiente DOS e Windows). Alcuni documenti riportano la linea Ack ritardata rispetto al Busy (il fronte di discesa di Ack coincidente con quello di Busy) ma non mi risulta che ciò sia corretto. La Porta Parallela - Introduzione - Parte 1° La Porta Parallela - Come Individuare la Porta Parallela - Parte 2° La Porta Parallela - Scrivere Software per Usare la Porta Parallela - Parte 3° La Porta Parallela - Circuiti Applicativi - Parte 4° |







Nel caso di rottura del transistor o di errori di connessione è possibile che la tensione di batteria si presenti alle uscite della porta parallela mettendo a rischio non solo la porta parallela ma anche l'intero PC; nel caso di tensioni elevate, vi è rischio anche per l'incolumità delle persone e quindi sconsiglio questi circuiti a persone non adeguatamente qualificate.


