PortIO è un semplice programma scritto per piattaforma Windows che permette di pilotare dell'hardware collegato sulla porta parallela a scopi didattici. L'interfaccia grafica è divisa in quattro parti con funzioni differenti.
RAW output
La prima sezione riguarda l'invio diretto dei dati da presentare sul bus dati della porta parallela, utile nel caso di collegamento manuale di un DAC. Qui è possibile impostare il valore logico (0 o 1) tutti gli 8 bit del registro dati oppure impostare la rappresentazione decimale dell'uscita (in pratica da 0 a 255).
Generazione di funzioni
La seconda sezione riguarda la generazione di funzioni da rappresentare con una risoluzione di 8 bit sul bus dati. Le forme d'onda disponibili sono: triangolare, sinusoidale e quadra. La frequenza è regolabile tramite uno slider ed a seconda della funzione generata può arrivare a 1kHz. Anche questa sezione è particolarmente adatta a pilotare un ADC.
Acquisizione ADC
La terza sezione è invece quella dedicata all'acquisizione di 4 tensioni analogiche da parte di un ADC come l'ADC0808. Il programma è sviluppato attorno a questo particolare ADC nonostante questo presenti ben 8 ingressi analogici multiplexati mentre il programma è sviluppato per gestire solo 4 di questi ingressi. Nella sezione ADC, oltre a visualizzare la rappresentazione decimale letta dal bur dati dalla porta parallela, effettua anche una conversione per mostrare il corretto valore in volt per una scala lineare da 0V a 5V.
LCD Output
Una funzione secondaria è quella di poter pilotare un display con chip HD44780 o compatibili. Una volta inizializzato il display è possibile scrivere del testo arbitrario che verrà immediatamente viasualizzato. Per come effettuare i collegamenti ai giusti pin della porta parallela rimando alla guida di lcd4linux (collegamento winamp). Lo schema del circuito controllato con i relativi cablaggi della porta parallela è disponibile qui. Purtroppo non trovo più il PCB delle scheda ne i relativi sorgenti di OrCAD.
TODO
Il software presenta ancora alcuni bug e soffre di alcune limitazioni:
- La funzione sinusoidale viene calcolata ad ogni istante, genera alcuni problemi su vecchi pc (corretto nella versione Linux)
- Temporizzazione del generatore di funzioni implementata tramite timer si risoluzione massima di 1ms.
- Nella sezione ADC sarebbe carino un filtro IIR per rendere smussate (veramente) le variazioni di tensione
- Non sarebbe male una funzione per registrare ogni tot le variazioni di tensione, dove il tempo è scelto arbitrariamente dall'utente
- Integrare il modulo per il pilotaggio del display con la sezione ADC così da mostrare le tensioni sull'LCD esterno (quindi aggiungere supporto per più porte parallele)
- Port del programma su GNU/Linux con grafica in GTK+ (parzialmente fatto)
- Utilizzare una libreria dinamica invece del driver ISAKerPlug per l'accesso alla parallela incluso
Sezione ADC attivata
Nome | Versione | Note |
---|---|---|
PortIO-2.0.7z (492 KiB) |
2.0 | Contiene i binari e i sorgenti per C++ Builder. |
PortIO-2.0.exe |
2.0 | Archivio autoestraente con i binari per Windows. |
ISAKerPlug.zip (93 KiB) |
2005-02 | Driver per il controllo della porta parallela. |