PortIO

Post imagePortIO è 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
(599 KiB)

2.0 Archivio autoestraente con i binari per Windows.

ISAKerPlug.zip (93 KiB)

2005-02 Driver per il controllo della porta parallela.

CC BY-NC-SA 3.0 2004-2020 Daniele Napolitano — Per informazioni sulla licenza leggere le Note legali