Pagina 1 di 2

quali bit cambia la risoluzione?!

MessaggioInviato: 5 dic 2011, 18:51
da corgan83
Salve spero di riuscire a porre in maniera chiara e comprensibile la mia domanda :)
Sto studiando da qualche giorno un convertitore A/D, volevo sapere che problemi posso avere se per caso nel settare la risoluzione per le mie conversioni, sbaglio ad inviare comando.
Ad es. vorrei una risoluzione di 8 bit, ma per errore invio un comando che la setti a 12. Oltre al fatto che con una risoluzione più alta posso aspirare ad un risultato più accurato, il mio problema è capire quali bit cambiano nella stringa digitale in uscita, cioè c'è una regola che mi dice che cambiano sempre e solo i bit più significativi (o quelli meno significativi) oppure cambiando LSB dell'ADC la stinga digitale a 12 bit può essere totalmente diversa da quella ad 8 bit?

Tutto ciò mi serve a capire quando vado a leggere il risultato della conversione nei registri, che cosa ottengo? considerando che andrò a leggere solo 8 bit. Sballo tutta la lettura!?

Spero di aver reso l'idea :D

aiutooooooooooooooo

Re: quali bit cambia la risoluzione?!

MessaggioInviato: 5 dic 2011, 19:05
da AjKDAP
Si, se cambi la risoluzione a 12bit e poi vai a leggere considerando solo gli 8bit ovviamente non va bene. [-X

Ad esempio:
Se controlli un segnale analogico da 0 a 5V ad esempio, facciamo finta che imposti sbadatamente la risoluzione a 12bit ed il segnale sia a 0.3V, supponendo di ottenere il valore 255, tutti gli 8 bit meno significativi saranno settati ad 1, e se consideri la risoluzione ad 8bit potresti pensare che la tensione in ingresso sia a 5V. invece non è così.

Edit: visto che consideri solamente 8bit, ti potrebbe andar bene solamente per valori da 0 a 255, ovvero tra 0 e 0.3V circa. Valori sopra i 255 fino a 4095 verrebbero persi leggendo solamente gli 8bit meno significativi, oltre che ottenere un risultato errato.

Re: quali bit cambia la risoluzione?!

MessaggioInviato: 5 dic 2011, 19:27
da corgan83
grazie mille :)
chiaro ed esauriente nella risposta :)
:ok:

Re: quali bit cambia la risoluzione?!

MessaggioInviato: 5 dic 2011, 19:31
da corgan83
Se invece sbadatamente la riduco... che succede!? ho effetti catastrofici in egual misura!?

ad es. voglio inviare un comando con risoluzione a 12 bit e per errore la setto a 8 bit....che succede in lettura!?

O_/ O_/ O_/

Re: quali bit cambia la risoluzione?!

MessaggioInviato: 5 dic 2011, 19:38
da AjKDAP
Se setti la risoluzione ad 8 bit e poi vai a leggerne 12, semplicemente i bit oltre all'ottavo saranno a zero.
Quindi leggerai sempre e solo valori compresi tra 0 e 255.

Poi se te ingenuamente pensi di aver 12bit a disposizione, leggi il valore 255 e con gli opportuni calcoli pensi di avere una tensione in ingresso pari a 0.3V invece siccome l'ADC è ad 8bit il valore 255 corrisponde a ben 5V !
(ovviamente sempre pensando ad un range di tensione da 0 a 5V come il precedente esempio).

Ciao

Re: quali bit cambia la risoluzione?!

MessaggioInviato: 5 dic 2011, 22:56
da c1b8
Oltre alla risoluzione impostata si dovrebbe considerare anche l'allineamento dell'output se il tuo ADC lo prevede.
Mi spiego meglio. Alcuni ADC, ad esempio quelli contenuti nei PIC o nei micro C8051xxxx, consentono di specificare se l'allineamento del risultato deve essere a sinistra o a destra. Cosa significa?
Facciamo un esempio: si possiede un ADC a 12 bit, il risultato dovrà essere necessariamente posizionato su 2 registri da 8 bit. Avremmo quindi 4 bit "di troppo", questi 4 bit saranno sempre valorizzati a 0, l'allineamento destra o sinistra ti consente di specificare se vuoi avere questi 4 bit rispettivamente come i 4 bit più significativi o meno significativi del risultato.
Se si sceglie quindi un risultato allineato a sinistra (4 bit meno significativi sempre a zero), leggere 8 bit non comporta alcun cambiamento sia che la risoluzione sia a 8bit sia che sia a 12bit.
Non so se sono stato sufficientemente chiaro...

Re: quali bit cambia la risoluzione?!

MessaggioInviato: 6 dic 2011, 11:22
da corgan83
si si il mio ADC prevede l'allineamento dei dati :) ... che nel data sheet lo chiama giustifica a destra o sinistra.
Questo aspetto mi era chiaro..... grazie lo stesso :)

Per quanto riguarda invece la riduzione inavvertita della risoluzione, mi è poco chiaro l'esempio..... in quanto supponendo sempre i 0.3 V, con 8 bit non avremo mai il cod. 255, ma un altro molto più basso immagino.
In questo caso penso che potremmo parlare di risultato poco accurato, in quanto gli altri 4 bit saranno a 0, ma non credo che gli effetti in fase di lettura saranno catastrofici come il caso in cui per errore aumento la risoluzione.

Non credete!?

Re: quali bit cambia la risoluzione?!

MessaggioInviato: 6 dic 2011, 12:51
da AjKDAP
corgan83 ha scritto:Per quanto riguarda invece la riduzione inavvertita della risoluzione, mi è poco chiaro l'esempio..... in quanto supponendo sempre i 0.3 V, con 8 bit non avremo mai il cod. 255,


nel mio esempio dove si supponeva di ridurre inavvertitamente la risoluzione da 12bit a 8bit (con giustifica a destra) ho considerato in ingresso una tensione da 5V, quindi l'ADC giustamente dovrebbe calcolare il valore massimo 255.
L'utente che legge il valore 255 pensando di lavorare a 12bit andrebbe a pensare che in ingresso siano presenti 0.3V.

forse mi ero spiegato male.

Re: quali bit cambia la risoluzione?!

MessaggioInviato: 6 dic 2011, 14:10
da corgan83
ok... ma comunque non riesco a quantificare gli effetti in lettura, dovuti ad una riduzione inavvertita della risoluzione :(

cioè fissato un valore analogico di ingresso, se per errore lo converto a 8 bit anziché 12 bit cosa cambia sui cod. di uscita!?
al di la del fatto che i 4 bit più significativi sono a 0, secondo me anche in questo caso il risultato di conversione è sbagliato, o no!?

Per me è importante capire gli effetti che si hanno, in lettura, quando si sbaglia ad impostare la risoluzione, sia nel caso di aumentarla ( e ne abbiamo parlato ) sia nel caso di ridurla ( e ne stiamo discutendo).

O_/ O_/ O_/

Re: quali bit cambia la risoluzione?!

MessaggioInviato: 6 dic 2011, 20:05
da AjKDAP
Hmm forse ci stiamo girando attorno,

l'errore viene fatto dall'utente o microcontrollore o chi acquisisce il dato digitale e calcola il valore analogico.

L'ADC che è settato a 8bit con tensione in ingresso 2.5V eseguirà la conversione perfettamente e senza errori, rendendo disponibile in output il valore 127 ad esempio.

Sarai tu che successivamente pensando (erroneamente) che l'ADC sia impostato a 12bit eseguirai la conversione sbagliata:

Codice: Seleziona tutto
Vanalog = ( 5V / 4095step ) * 127step = 0.15V


invece avresti dovuto calcolare la tensione d'ingresso così:

Codice: Seleziona tutto
Vanalog = ( 5V / 255step ) * 127step = 2.49V


Scusa, ma non capisco quale sia il tuo dubbio :-)