Progetto per acquisizione dati

Ciao a tutti, le specifiche per il progetto del precedente post sono variate.

Il sistema che dovrei realizzare legge un valore impostato con una resistenza variabile e lo deve passare al PC via porta seriale. La precisione che mi serve per l'ADC =E8 almeno 4, meglio se 5 bit.

Avevo quindi pensato lo schema a blocchi come: trimmer, adc, pic, max232, pc.

Il problema =E8 che non ho mai utilizzato i pic, e ho soltanto un'idea teorica di come funzionano. Dovendo (immagino!?) realizzare il pacchetto per la trasmissione seriale c'=E8 un'altra soluzione ? Cosa mi consigliate?

Grazie Max

Reply to
Max
Loading thread data ...

"Max" ha scritto nel messaggio news: snipped-for-privacy@w1g2000hsg.googlegroups.com...

Il problema è che non ho mai utilizzato i pic, e ho soltanto un'idea teorica di come funzionano. Dovendo (immagino!?) realizzare il pacchetto per la trasmissione seriale c'è un'altra soluzione ? Cosa mi consigliate? ___________________ comprarlo già fatto

formatting link

saluti simone.bern

Reply to
simone.bern

Ok, ma soluzioni intermedie? Non mi sono registrato, ma immagino che il prezzo non sia proprio trascurabile... :)

Max

Reply to
Max

devi per forza usare la seriale ? tramite la parallela e' relativamente semplice gestire un ADC direttamente

anche tramite la seriale utilizzando le sole linee di handshaking e' possibile gestire ADC anche se questa volta ti serve un max232 che ti faccia da traslatore di livelli ( realizzabile anche con componenti discreti ma tutto sommato non ne vale la pena )

un buon candidato come ADC e' il TLC549, questo come molti altri convertitori 'seriali' ha due ingressi ed una uscita digitale per la trasmissione dei dati per cui puo' essere interfacciato facilmente sia alla parallela che alle linee di handshaking della seriale.

in entrambi casi devi usare la tecnica nota come bit-banging

il SW di gestione dal lato PC e' un pelo piu' complesso rispetto all'uso di una seriale vera ma ti svincoleresti dall'uso di microcontrollori d'interfaccia.

se t'interessa possiamo parlarne e buttare giu' uno schema di principio

Reply to
mmm

Ti ringrazio molto per il tuo intervento. In effetti non ho nessun vincolo sulla porta seriale, posso utilizzare ugualmente la parallela.

Come ho accennato, devo rilevare la posizione di un trimmer e trasferirne il valore in digitale da elaborare con un software (pensavo in VB).

Si tratta di un joystick per un gioco di simulazione: inizialmente, tramite una leva comando il trimmer. Il software di interfaccia (quello che scrivo io), in base alla precedente posizione della leva, calcola "di quanto deve spostare" nel simulatore e svolge l'azione attraverso un timer e una "tastiera virtuale", non ho ancora verificato ma ritengo che in visual basic sia possibile tramite del codice simulare la pressione di tasti da tastiera da inviare al sistema operativo.

Non conosco il bit banging, ma ho visto che in rete c'=E8 documentazione quindi vedo di aggiornarmi.

Grazie anticipate per il tuo interessamento! Max

Reply to
Max

Max ha scritto:

Come già ti hanno consigliato: MAX232 + ADC seriale a 8 bit tipo ADC0831, TLC549 ecc.

Un domani puoi agevolmente portarlo a USB con un bridge USB-UART (esempio quelli della FDTI).

Reply to
[ Frank ]

Ti ringrazio molto per il tuo intervento. In effetti non ho nessun vincolo sulla porta seriale, posso utilizzare ugualmente la parallela.

Come ho accennato, devo rilevare la posizione di un trimmer e trasferirne il valore in digitale da elaborare con un software (pensavo in VB).

Si tratta di un joystick per un gioco di simulazione: inizialmente, tramite una leva comando il trimmer. Il software di interfaccia (quello che scrivo io), in base alla precedente posizione della leva, calcola "di quanto deve spostare" nel simulatore e svolge l'azione attraverso un timer e una "tastiera virtuale", non ho ancora verificato ma ritengo che in visual basic sia possibile tramite del codice simulare la pressione di tasti da tastiera da inviare al sistema operativo.

Non conosco il bit banging, ma ho visto che in rete c'=E8 documentazione quindi vedo di aggiornarmi.

Grazie anticipate per il tuo interessamento! Max

Reply to
Max

Un attimo, ora faccio confusione: ho guardato velocemente il datasheet del TLC549, e mi pare che faccia da ADC e che prepari gi=E0 il "pacchetto" di trasmissione, e quindi non sarebbe sufficiente questo (pi=F9 il MAX232) per la seriale? L'utilizzo della parallela permetterebbe di evitare il passaggio di rappresentare i dati in forma seriale, ma questo problema mi pare risolto gi=E0 dal TLC549... dove sbaglio?

Max

P=2ES.: chiedo scusa per il post ripetuto.

Reply to
Max

si, come ti ho gia' detto, sono sufficienti il '232 e l'ADC ma non utilizzando l'RX[D] della seriale per ricevere ma un ingresso di handshaking della seriale

questo e' necessario perche' l'ADC non 'emette' i dati nel formato voluto dalle seriali del PC d'ora in poi denominato UART

se ci fai caso l'interfaccia dell'ADC e' formata da:

1) ingresso di selezione del dispositivo CS 2) ingresso di clock 3) uscita dei dati

e' si un protocollo seriale, ma sincrono, al contrario del protocollo UART che e' un protocollo asincrono ( senza un clock comune tra i due dispositivi )

difetti e pregi delle parallele delle seriali

parallela :

fornisce 8+4 uscite e 5 ingressi e' semplicemente pilotabile in quanto tutti i pin corrispondono a 3 locazioni di I/O e' gestibile anche da sistemi operativi 'evoluti' tramite apposite dll d'interfaccia che saltano le protezioni di accesso all' hardware ( per NT-200x-XP ) e' sensibile agli errori elettrici ( leggi si scassa piu' facilmente )

seriale fornisce 2 uscite e 4 ingressi piu' TX[D] e RX[D] esce a +/-12 V quindi richiede dei traslatori di livello e' piu' robusta elettricamente il modello di programmazione DIRETTO e' piu' complesso in quanto i bit corrispondenti ai segnali di handshaking sono sparsi tra vari registri se il linguaggio di programmazione lo supporto ( VB6 si ) si possono manipolare direttamente i segnali di handshaking senza usare dll d'interfaccia

visto che mi trovo

bit-banging e' l'operazione di simulare in software attivita' tipiche di una perifericha hardware 'complessa' tramite la manipolazione diretta dei pin di I/O per esempio una UART o una USART, in genere la si utilizza perche' la specififa periferica non e' dispoibile

p.s. scusa per il post 'vuoto'

Reply to
mmm

Max ha scritto:

Si hai ragione, mi sono sbagliato, non c'è bisogno del MAX232, perché sfrutteresi i piedini della seriale, come dei normali piedini di I/O (bit-banging)

No. Potresti anche utilizzare i piedini di I/O della parallela, ma li utilizzeresti sempre in modo seriale: cambierebbe dunque solo l'indirizzo del registro e i PIN da gestire.

Reply to
[ Frank ]

"Max" ha scritto nel messaggio news: snipped-for-privacy@p77g2000hsh.googlegroups.com...

Ok, ma soluzioni intermedie? Non mi sono registrato, ma immagino che il prezzo non sia proprio trascurabile... :)

si, cioè, vabbè che siamo in un niusgrup di hobbisti, ma se un sito HA il listino, uno potrebbe anche scaricarlo invece di immaginare tanto...

Reply to
simone.bern

Max ha scritto:

Qui trovi un buon esempio. Usa il caro vecchio Pascal, ma è facilmente portabile in C o Basic

formatting link

Tieni presente che sotto XP/NT/2k (di Vista non ne so nulla ;-) non puoi accedere direttamente all'I/O e devi dunque usare delle librerie esterne.

Ho usato in passato WinIO e mi sono trovato bene: una volta richiamata puoi usare le normali funzioni di libreria di MS VC++ _out e _inp

formatting link

Reply to
[ Frank ]

simone.bern ha scritto:

Non conosco il prezzo, ma a questo punto andrei su una 6811 della National Instruments: è USB e comunque puoi usare NI-DAQmx e Labview.

Oppure una Labjack:

formatting link

Reply to
[ Frank ]

Ammiravo la mia cresta allo specchio quando "[ Frank ]" ha detto :

78? solo scheda senza alimentatore e case. Direi ottimo prezzo. I prodotti NI sono intoccabili!
--
N1 on zx-6r '04 working in progress...
Cambiassi donna come cambio idea sarei già endorser Hatù
*** www.gladio.org ***
Reply to
N1

non incasinargli la vita, il traslatore di livelli E' NECESSARIO anche per i segnali di handshacking visto che comunque escono con i liverri della RS-232, quello che non serve piu' e' il microcontroller d'interfaccia.

che poi il traslatore di livelli possa essere fatto con un transistor e/o delle semplici resistenze e' un altro discorso.

Reply to
mmm

Max ha scritto:

Se non sei vincolato alla seriale, potresti usare la porta joystick della scheda audio. Sono fatte per leggere e digitalizzare valori di resistenza, non in modo precisissimo, ma comunque meglio di 4 - 5 bit. Potresti forse fare a meno di qualunque cosa interposta tra resistenza da misurare e PC.

Tutte le informazioni necessarie dovrebbero essere su internet.

Tullio

-- Ubi solitudinem faciunt, ibi pacem appellant.

Reply to
Tullio Mariani

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.