Vai al contenuto
PLC Forum


Porta Parallela - si possono leggere i dati?


Messaggi consigliati

Inserito:

In molti esempi riguardanti hardware (fai da te) connesso alla Porta Parallela, osservo sempre che le linee dati, della porta parallela, vengono sfruttate per la scrittura e mai per la lettura...

1.Desideravo sapere se la motivazione è perchè sfruttano lo standard SPP, oppure ho letto gli esempi sbagliati :( .

Per quanto riguarda lo standard EPP, i pin relativi ai dati vengono descritti come bidirezionali.

Volevo iniziare a sfruttare la parallela pilotandola con il Visual Basic, sia per scrivere che per ricevere.

2.Come faccio a sapere se il mio PC ha la SPP o la EPP?

Per la sperimentazione utilizzo un Pent. II 266 MHz (1998),con sistema operativo W98.

3. Se avete già esperienza con la Porta Parallela e Visual Basic, vi sarei grato se inviaste quello che vi sembra utile (schemi di esempio Hardware, file sorgenti in visual basic,ecc. ecc.)

Vi ringrazio anticipatamente.


Inserita:
2.Come faccio a sapere se il mio PC ha la SPP o la EPP?
Inserita:
Come faccio a sapere se il mio PC ha la SPP o la EPP?
Inserita:

Si puo leggere e scrivere sulla parallela, dipende dall'indirizzo che dai.

Inserita:

Come avevo scritto in un precedente post, il problema del sapere che porta ho è stato risolto, o dal BIOS oppure dal Pannello di controllo...adesso desidererei sapere come faccio a leggere un dato presente ai pin relativi ai dati (pin 2÷9).

Per scrivere non cè problema, ho scaricato una dll (inpout32.dll) e mi avvalgo della funzione(che richiamo col Visual Basic):

OUT PortAddress, Dato
Quando uso la funzione per prelevare un dato, ovvero:
Dato=INP(PortAddress)

succede:

1. Se ancora non ho scritto nulla, quindi non ho eseguito ancora la funzione OUT -> mi da Dato=0

2. Altrimenti Dato=Dato scritto in precedenza, ovvero non preleva il dato dalla porta ma dal buffer di scrittura. Almeno credo...

Voi sapete come risolvere il problema?

Per caso devo agire sugli altri pin della porta, se si quali?

PS:la porta parallela che uso funziona in modalità ECP, anche se può essere settata ad EPP.

Grazie ancora

Inserita:
Si puo leggere e scrivere sulla parallela, dipende dall'indirizzo che dai.
Inserita:

Salve ragazzi, ho risolto il problema...

Per correttezza e completezza espongo la soluzione per chi magari si fosse posto lo stesso quesito...

1.Innanzitutto assicurarsi il tipo di porta Parallela che si ha a disposizione e come esposto nei precedenti post o si controlla dal BIOS o dal pannello di controllo.

2.Verificare che la porta abbia la possibilità di lavorare in modalità Bidirezionale.

2.1 Dal BIOS l'ho impostata "Bi-Directional"

2.2 test mediante un programmino scritto in VB

Il test consiste nel:

1. Porre il pin 2 (bit 0) della porta parallela tramite una resistenza di 1k a massa (pin

25),la R la potete scegliere anche un pò inferiore,ma non troppo.

2. Scrivere un dato(a vostro piacimento)nel registro Dati (indirizzo &H378)

3. Scrivere 0x20(32 decimale ovviamente) nel registro di controllo (indirizzo &H37A),si

sta imponendo la modalità di lettura.

4. Leggere dal registro Dati (&H378)

Se leggete 254,ovvero 1111 1110 (ricordate che avete posto il bit 0 a massa tramite una R?), allora la vostra porta legge bene.

A me è successo che leggevo 255,in quanto il pin 2 non si portava ad un potenziale tale da imporre lo zero logico, per questo ho messo una resistenza leggermente < 1k.

Se continuate a leggere il byte che avevate precedentemente scritto(fase 2 del test),la vostra porta non supporta il modo bidirezionale ovvero, così ho letto in un sito, la modalità bidirezionale è permessa in casi particolari.

OUT &H378,DATO 'INVIO UN GENERICO BYTE NEL REGISTRO DATI,LA VARIABILE DATO è UN INTERO
OUT &H37A,32      'PONGO IL 5° BIT DEL REGISTRO DI CONTROLLO AD 1,MODALITà LETTURA
DATO_LETTO=INP(&378) 'LEGGO LA CONFIGURAZIONE LOGICA PRESENTE AI PIN DELLA PARALLELA
                                     'DATO_LETTO è ANCH'ESSO UN INTERO

Nota: le funzioni OUT e INP, vengono richiamate tramite la inpout32.dll,che basta cercare su internet e si scarica un pò ovunque...poi deve essere copiata nella cartella c:\windows\system.

Ciao a tutti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...