Newsgroup: it.hobby.elettronica.digitale
Titolo: Risoluzione ADC

Devo leggere un sensore che fornisce una tensione varabile tra 7 e 14 mVolts
con incrementi di 0,1mV.
Che risoluzione deve avere un adc per avere una precisione di lettura di 0,1
millivolt?
Bastano i 10 bit del 16f876? o serve piů preciso?
Grazie
Fabio

 con incrementi di 0,1mV.
Ammesso che tu abbia condizionato il tuo segnale portandolo in scala
adeguata con 10 bit hai una risoluzione di
(14-7)/1024=0.007 mV
Per cui, si ce la fai.
Devi pero' ancora considerare quanto rumore introduci condiziando il tuo
segnale e inoltre devi anche considerare fattori ambientali quali la
temperatura.
Magari ti tocca correggere credo che per quei valori, ma se guardi sulle
specifiche del pic e' meglio, la temperatura influisca parecchio sulla
conversione.
Potresti pero' ovviare convertendo la caduta di tensione ai capi di un
diodo, componente che varia le sue caratteristiche con la tensione, e
correggere cosi' l'errore dovuto alla temperatura.
Ciao.

...


Guarda,  a mio avviso l'unica e' usare qualcosa di questo tipo.
http://pdfserv.maxim-ic.com/arpdf/MAX1460.pdf
Ciao.

Prova con un raziometrico tipo il tlc549 o tlc 1549, settando bene con
opportuna circuiteria i 2 pin dei riferimenti
Saluti
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Forse c'è un modo per amplificare questa tensione e renderla più "pulita"?
Riguardo alla precisione dell'adc, se hai 7 mV di range del segnale e ti
basta
una precisione di 0,1 mV, cioé 1 parte su 70, significa che ti servono poco
piú
di 6 bit.  Perció, se converti a 10 bit, hai precisione da vendere.
Invece l'amplificatore che hai usato é veramente scarso, peró dovrebbe
essere
essere sufficiente per la precisione che richiedi. Bisognerebbe anche vedere
che frequenza ha il segnale che ti interessa, l'impedenza del sensore, lo
schema
che hai usato e soprattutto il tipo di cablaggio. Con segnali cosí deboli é
facile
prendere del rumore in giro. Comunque lo verifichi molto facilmente con un
oscilloscopio all'uscita dell'amplificatore.

oscilloscopio all'uscita dell'amplificatore.
il cavo a cui è attaccato è lungo circa 80 cm , 1 metro massimo e le prove
le stò facendo con un cavo (è vero) non schermato, però
all'uscita dellìamplificatore la lettura sul voltmetro è stabile
ma facendo la conversione con il 16f876 e visualizzandola sul display lcd
questo numero "grezzo" si muove continuamente
(non di molto in verità, ma convertendolo via software nel numero che mi
interessa il valore fornito non è "usabile")
Non ho la possibilità di verificare con l'oscilloscopio per ora perchè sono
fuori dal mio laboratorio e non ne ho la disponibilità (per ora).
Inoltre gli altri canali dell'adc, RA1 e RA2 sono attivi , ma scollegati da
altri sensori (in totale dovrebbero essere 3) però se collego il sensore su
RA0 si leggono valori simili al canale 0 anche sui canali 1 e 2 ?!?
Perchè?
Grazie
Fabio


Teoricamente hai bit di avanzo.
In realtà, se vuoi la massima precisione, devi conoscere il rumore bias del
tuo circuito ed il rumore di lettura (readout) dell' ADC.
Il bias lo ottieni cortocircuitando a massa l'ingresso ( 0 volt), prendendo
almeno 9 letture e ricavandone la mediana (non la media).In tal modo hai
ottenuto un bias master. Effettua tale operazione per almeno dieci-quindici
temperature diverse dell'ADC e ricava una tabella nella quale ogni bias
master è riferito ad una data temperatura.
Ottieni il readout inserendo all'ingresso una tensione sul cui valore sei
assolutamente certo.Visto che vuoi una precisione di 0,1 mV, l'ideale
sarebbe fornire in entrata una tensione di 0,05 mV (legge di Nyquist del
campionamento doppio).
Poi:
1- ottieni nove letture
2- da ogni lettura sottrai il valore mediano del bias master relativo alla
temperatura presente in quel momento
3- ricava la mediana dalle nove letture "pulite" ed annotala nella tabella,
a fianco del corrispondente bias per una data temperatura.
A questo punto puoi avere un'idea ben chiara della precisione ottenbile:
secondo me 10 bit sono appena sufficienti, perchè vedrai che almeno 3 bit te
li porta via il bias ed 1 l'imprecisione del readout..
Il processo di lettura, poi, dovrà sempre prevedere una mediana di almeno
nove letture, ad ognuna delle quali sottrarrai sempre preventivamente il
bias secondo la tabella che ti sarai costruito.
E' tassativo che tu conosca la T° del momento. Un'opzione diversa è quella
di raffreddare l'ADC con una Peltier, alimentata separatamente dall'ADC.
Enzo Franchini

Mi sembra di avere molto da fare....,pensavo fosse più semplice in verità
Grazie per i preziosi consigli, è tempo di studiare
Fabio M.

 cortocircuitare l'ingresso con una resistenza da 10k e basta.
I 10K servono per far si che la corrente erogata dalla pila provochi sulla
resistenza una cdt nel range 7-14mV.
Per cui devi cercare di non variare quel carico, diversamente le tensioni
che prelevi sono diverse, gia' l'usare una resistenza con una tolleranza del
5% ti comporta un errore in partenza di 0.7 mV.
Inoltre la corrente che prelevi per effettuare la misura deve essere la piu'
piccola possibile, sempre per non falsare il sensore, quindi elevata
impedenza di ingresso.
Per cui conviene amplificare  usando un amplificatore. per strumentazione o
3 O.A.  nella configurazione per strumentazione.
Ma se la fai te devi usare resistori di precisione.
Poi c'e' tutto il discorso del sample & hold, della stabilizzazione del
sensore (mi pare ci voglia un ora perche' arrivi a regime)
Ad ogni modo, una lettura interessante e' questa
http://www.dei.unipd.it/~oboe/papers/Cap3.pdf
Altra soluzione...prodotti semi-custom.
Ciao


Probabilmente perché il valore analogico resta bloccato nella capacitá
interna del convertitore. Non conosco per niente quel micro, ma non
vedo altra spiegazione.

 di raffreddare l'ADC con una Peltier, alimentata separatamente dall'ADC.
ROTFL!!!

...


 in effetti mi sembra un pò macchinoso, ma gli esperti siete voi...
Ascolta, ragiona con la tua testa. Se fosse vero che bisogna raffreddare
un ADC per leggere una tensione continua di 6 bit, allora vorrebbe
dire che un volgare multimetro da 3 cifre e mezza (12 bit) potrebbe
funzionare soltanto dentro l'azoto liquido!
In poche parole, quello che ha scritto Enzo Franchini non ha senso.
Tu fai la prova con il condensatore in ingresso come ti ho detto
e poi dimmi i risultati.

 ha scritto nel messaggio
news:tpP0a.91933$YG2.2...@twister1.libero.it...

Prima di parlare a vanvera informati. Se si entra nel campo della lettura di
segnali debolissimi e difficili esiste anche il raffreddamento dell'ADC. La
piastra di Peltier viene posta o sopra o sotto il chip ADC, a diretto
contatto: sulla faccia libera ( o su un fianco) si appoggia il sensore
temperatura.
Sicuramente non è il caso di Fabio e della stragrande maggioranza dei casi.
Se fosse necessaria una buona precisione della lettura, il procedimento di
calibrazione e correzione che ho descritto è obbligatorio. E probabilmente,
visto che la risoluzione che Fabio chiede è di 1 mV, dovrà anche amplificare
il segnale, aggiungendo il bias dell'amplificatore.
Oggi siamo fortunati: 20 anni fa, quando cominciai a trattare in digitale
segnali analogici, il bias e il readout si portavano via 4 dei soli 8 bit
allora disponibili.
Enzo Franchini

 allora disponibili.
Fabio deve progettare il suo circuito oggi, non 20 anni fa.
Comunque anche 20-25 anni fa si usavano normali ADC integrati a
12 e 16 bit auto azzeranti e funzionanti in range di temperatura
industriale.
E i 12 bit erano con un errore di +/-1 bit.


Nel readout sicuro. Ripeto: prima di sentenziare prova a calibrare. Vedrai
che opinione conserverai dei tuoi ADC a 24 bit a basso costo.
Le mie necessità sono di risalire con la massima precisione possibile
all'esiguo numero di elettroni che mi arrivano da un ccd industriale.
Visto che il discorso sta assumendo l'aspetto di un flame, la piantiamo qui.
Che ne dici?
Ciao
Enzo Franchini

Si ragazzi,
non volevo "accendere" questa discussione,non almeno in questi termini :-)
I vostri consigli sono stati comunque preziosi, soprattutto a farmi scoprire
qualcosa di più sulla conversione a/d.
Ps:
mi è venuto un dubbio sulla routine di conversione a/d che forse non
funziona a dovere.
Ho verificato l'amplificatore e inserito il condensatore come mi avete
suggerito, ma non è cambiato niente.
Stò riguardando il sorgente della funzione  adc.
Grazie ancora
Fabio M.