- Messaggi: 30
- Ringraziamenti ricevuti 0
Configurazione modulo ADC
4 Anni 7 Mesi fa - 4 Anni 7 Mesi fa #1
da MicheleO.
Configurazione modulo ADC è stato creato da MicheleO.
Buona sera a tutti,
vorrei utilizzare gli ingressi analogici per 'leggere' la tensione di carica di una batteria e la corrente che eroga (tramite sensore). Ottengo valori oscillanti: misurando la tensione di una batteria da 1,5 V (a vuoto) ottengo oscillazioni anche di +-75 mv.
Credo di sbagliare ad impostare il modulo ADC.
Sto utilizzando un PIC18f4550 con quarzo a 4 MHz. Le impostazioni sono:
ADCON1=0b00001100;
ADCON0=0b00000100;
ADCON2 = 0b10010100;
ADCON0=ADCON0+0b00000101;
in modo da avere un tempo di conversione leggermente superiore ai 0.8 μs ed un tempo di acquisizione maggiore di 2.25 μs.
Corretto? Sto sbagliando qualcosa?
Grazie mille,
buona serata.
vorrei utilizzare gli ingressi analogici per 'leggere' la tensione di carica di una batteria e la corrente che eroga (tramite sensore). Ottengo valori oscillanti: misurando la tensione di una batteria da 1,5 V (a vuoto) ottengo oscillazioni anche di +-75 mv.
Credo di sbagliare ad impostare il modulo ADC.
Sto utilizzando un PIC18f4550 con quarzo a 4 MHz. Le impostazioni sono:
ADCON1=0b00001100;
ADCON0=0b00000100;
ADCON2 = 0b10010100;
ADCON0=ADCON0+0b00000101;
in modo da avere un tempo di conversione leggermente superiore ai 0.8 μs ed un tempo di acquisizione maggiore di 2.25 μs.
Corretto? Sto sbagliando qualcosa?
Grazie mille,
buona serata.
Ultima Modifica 4 Anni 7 Mesi fa da MicheleO..
Si prega Accedi o Crea un account a partecipare alla conversazione.
- MicheleO.
- Autore della discussione
- Junior Member
Riduci
Di più
4 Anni 7 Mesi fa #2
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Configurazione modulo ADC
Salve Michele,
i tempi di conversione vengono a dipendere dall'impedenza della sorgente di tensione che stai misurando.
Per quantificare l'errore che vedi bisognerebbe vedere anche lo schema elettrico.
Dal lato software puoi usare LTlib .
Saluti,
Mauro
i tempi di conversione vengono a dipendere dall'impedenza della sorgente di tensione che stai misurando.
Per quantificare l'errore che vedi bisognerebbe vedere anche lo schema elettrico.
Dal lato software puoi usare LTlib .
Saluti,
Mauro
Ringraziano per il messaggio: MicheleO.
Si prega Accedi o Crea un account a partecipare alla conversazione.
4 Anni 7 Mesi fa #3
da MicheleO.
Risposta da MicheleO. al topic Configurazione modulo ADC
Grazie mille per la risposta,
avendo problemi con i collegamenti originali, attualmente la batteria è collegata direttamente al pin del PIC. Assumo quindi la resistenza Rs (pag. 263 del datasheet) zero.
Quindi, Tc vale circa 0.6μs ed il Tacq vale circa 2μs.
Il clock dell'ADC è quindi 4 volte il tempo Tosc; il tempo d'acquisizione può essere 2Tacq. Considerando una resistenza minima di filo, contatto ecc di 200 ohm dovrei già settare 4Tacq. Quindi imposto 4Tacq. Corretto fin qui?
Consultando la guida 'XC8 Step by Step', le librerie ed il datasheet del PIC non ho trovato errori nel settare il registro ADCON2.
Grazie mille.
avendo problemi con i collegamenti originali, attualmente la batteria è collegata direttamente al pin del PIC. Assumo quindi la resistenza Rs (pag. 263 del datasheet) zero.
Quindi, Tc vale circa 0.6μs ed il Tacq vale circa 2μs.
Il clock dell'ADC è quindi 4 volte il tempo Tosc; il tempo d'acquisizione può essere 2Tacq. Considerando una resistenza minima di filo, contatto ecc di 200 ohm dovrei già settare 4Tacq. Quindi imposto 4Tacq. Corretto fin qui?
Consultando la guida 'XC8 Step by Step', le librerie ed il datasheet del PIC non ho trovato errori nel settare il registro ADCON2.
Grazie mille.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- MicheleO.
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 30
- Ringraziamenti ricevuti 0
4 Anni 7 Mesi fa #4
da Mauro Laurenti
Risposta da Mauro Laurenti al topic Configurazione modulo ADC
Salve Michele,
un collegamento diretto non e' in generale cosa buona.
Per vedere gli effetti di R della tua sorgente nonché la capacita' della stessa di caricare C interno al sample ed hold dell'ADC, puoi mettere al massimo il tempo di acquisizione e conversione dell'ADC, piuttosto che cercare un tempo breve (minimo) come stai facendo.
Se allungando i tempi di acquisizione/conversione, il valore differenza rispetto a 75mV e' quello che puoi imputare al fatto che hai collegato direttamente la tua sorgente all'ADC.
Altro errore grande, anche se ora non lo hai specificato i dettagli del tuo schema,viene da Vref usata per l'ADC.
Se usi Vcc come riferimento, vuol dire che la tua accuratezza e' legata a Vcc ovvero al tuo LDO, che tipicamente puo' avere una tolleranza del 5%. Vcc=5V vuol dire 0.25V per cui il valore del tuo quanto e' diverso da quello che pensi.
Tutte le caratteristiche dell'LDO si ripercuotono/riflettono poi sulla tua accuratezza.
Per migliorare questo dovresti usare Vref esterna.
Vref dovrebbe anche avere un buffer al fine di poter supportare i picchi di corrente tipici dei convertitori SAR.
Le operazioni matematiche che usi per il calcolo di V e il modo con cui le tronchi, si sommano anche come errore.
Analizzando oltre, ci sono altri errori...
Saluti,
Mauro
un collegamento diretto non e' in generale cosa buona.
Per vedere gli effetti di R della tua sorgente nonché la capacita' della stessa di caricare C interno al sample ed hold dell'ADC, puoi mettere al massimo il tempo di acquisizione e conversione dell'ADC, piuttosto che cercare un tempo breve (minimo) come stai facendo.
Se allungando i tempi di acquisizione/conversione, il valore differenza rispetto a 75mV e' quello che puoi imputare al fatto che hai collegato direttamente la tua sorgente all'ADC.
Altro errore grande, anche se ora non lo hai specificato i dettagli del tuo schema,viene da Vref usata per l'ADC.
Se usi Vcc come riferimento, vuol dire che la tua accuratezza e' legata a Vcc ovvero al tuo LDO, che tipicamente puo' avere una tolleranza del 5%. Vcc=5V vuol dire 0.25V per cui il valore del tuo quanto e' diverso da quello che pensi.
Tutte le caratteristiche dell'LDO si ripercuotono/riflettono poi sulla tua accuratezza.
Per migliorare questo dovresti usare Vref esterna.
Vref dovrebbe anche avere un buffer al fine di poter supportare i picchi di corrente tipici dei convertitori SAR.
Le operazioni matematiche che usi per il calcolo di V e il modo con cui le tronchi, si sommano anche come errore.
Analizzando oltre, ci sono altri errori...
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
4 Anni 7 Mesi fa #5
da MicheleO.
Risposta da MicheleO. al topic Configurazione modulo ADC
Effettivamente ho utilizzato Vcc come Vref.
Ho impostato i tempi massimi ma ottengo ancora errori elevati.
Ho inserito una resistenza tra batteria e piedino analogico del PIC da 2000 ohm. Le oscillazioni del valore sono ancora 'importanti'. Non riesco a stabilizzare la lettura anche cambiando valore della resistenza.
Successivamente ho applicato sul piedino Vref una tensione di 5 V. Ho verificato con l'oscilloscopio l'assenza di ripple di tensione. Ho abilitato da software il nuovo riferimento. Sui registri ADRESL e ADRESH rivelo ancora continue oscillazioni.
Come operazioni matematiche faccio una media. Ma per valutare il valore 'puro' del convertitore, attualmente leggo un solo campione in modo da non fare praticamente operazioni matematiche.
Grazie mille.
Ho impostato i tempi massimi ma ottengo ancora errori elevati.
Ho inserito una resistenza tra batteria e piedino analogico del PIC da 2000 ohm. Le oscillazioni del valore sono ancora 'importanti'. Non riesco a stabilizzare la lettura anche cambiando valore della resistenza.
Successivamente ho applicato sul piedino Vref una tensione di 5 V. Ho verificato con l'oscilloscopio l'assenza di ripple di tensione. Ho abilitato da software il nuovo riferimento. Sui registri ADRESL e ADRESH rivelo ancora continue oscillazioni.
Come operazioni matematiche faccio una media. Ma per valutare il valore 'puro' del convertitore, attualmente leggo un solo campione in modo da non fare praticamente operazioni matematiche.
Grazie mille.
Si prega Accedi o Crea un account a partecipare alla conversazione.
- MicheleO.
- Autore della discussione
- Junior Member
Riduci
Di più
- Messaggi: 30
- Ringraziamenti ricevuti 0
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.