ADC e rumore

Oct 24, 2008 5 Replies

Buongiorno!



Sto montando un prototipo per una applicazione un po' particolare (un termostato che utilizza la resistenza elettrica dell'elemento riscaldante per stimarne la temperatura). Ho già delle schede funzionanti, ma in occasione di un rework sto modificando un po' di cose, anche come scusa per usare i CortexM3 :-)



La questione è: da specifica ho un binario di alimentazione a 120Vdc da cui viene prelevata la corrente necessaria alla resistenza e la sorgente di alimentazione del controller. Per esclusione mi sono orientato sullo switching che faccia la conversione da +120Vdc alle tensioni che mi servono (+15, -15, +5, +3,3), regolate tramite dei lineari low dropout. Fino a qui tutto bene, ma i dolori iniziano quando devo leggere l'ADC: appena applico una ddp all'ingresso dei differenziali (tramite un generatore di segnale) a monte dell'ad vedo degli spikes di tensione (giusto giusto alla frequenza di commutazione dell'alimentatore, 60kHz) e la lettura è rumorosa. Dei 16 bit dell'adc quattro se ne vanno in rumore, e non è che mi piaccia. La cosa buffa è che i differenziali stessi prendono dentro i disturbi, provano ad inseguirli e si vede che hanno dei problemi di saturazione o di slew rate: uno spiffero in ingresso divrenta un disturbo a triangolo in uscita (se ce la faccio posto un dump dell'oscilloscopio) :-(



Tutti gli zeri si uniscono in un punto solo nei dentro alla sezione di alimentazione, ci sono bypass ovunque e le tensioni di alimentazione dei compoenenti analogiche sono filtrate con degli LC (470uH+10uF). Qualche suggerimento?



[FIDOCAD] MC 175 115 0 0 580 TY 140 65 5 3 270 0 0 * Sezione di potenza RV 120 55 155 135 MC 135 55 3 0 010 MC 135 135 0 0 045 LI 175 65 160 65 LI 160 65 155 65 LI 175 75 155 75 LI 175 115 155 115 LI 175 125 155 125 MC 190 75 0 0 045 MC 190 125 0 0 045 TY 195 130 5 3 0 0 0 * 0A TY 195 80 5 3 0 0 0 * 0A MC 205 70 0 0 080 RV 240 65 270 125 TY 245 115 5 3 0 0 0 * ADS8361 TY 245 110 5 3 0 0 0 * ADC MC 245 65 3 0 010 MC 245 125 0 0 045 MC 265 125 0 0 045 MC 265 65 3 0 010 MC 220 75 1 0 170 MC 220 85 0 0 045 LI 200 70 205 70 LI 215 70 240 70 LI 220 75 220 70 SA 220 70 MC 205 120 0 0 080 MC 220 125 1 0 170 MC 220 135 0 0 045 LI 215 120 240 120 LI 220 125 220 120 SA 220 120 LI 200 120 205 120 TY 220 90 5 3 0 0 0 * 0A TY 220 140 5 3 0 0 0 * 0A TY 245 130 5 3 0 0 0 * 0A TY 165 80 5 3 0 0 0 * INA128 TY 165 130 5 3 0 0 0 * INA128 MC 185 60 3 0 010 TY 185 55 5 3 90 0 0 * +15VA MC 190 65 3 0 020 TY 190 60 5 3 90 0 0 * -15VA MC 175 65 0 0 580 MC 185 110 3 0 010 TY 185 105 5 3 90 0 0 * +15VA MC 190 115 3 0 020 TY 190 110 5 3 90 0 0 * -15VA TY 245 60 5 3 90 0 0 * +5VA TY 265 60 5 3 90 0 0 * +3V3D TY 135 50 5 3 90 0 0 * +120VP TY 135 140 5 3 0 0 0 * 0P TY 265 130 5 3 0 0 0 * 0D RV 310 65 375 125 TY 315 115 5 3 0 0 0 * MICRO MC 365 65 3 0 010 TY 365 60 5 3 90 0 0 * +3V3D MC 370 125 0 0 045 TY 370 130 5 3 0 0 0 * 0D LI 270 75 310 75 LI 270 80 310 80 LI 270 85 310 85 TY 285 70 5 3 0 0 0 * SPI

Puoi sincronizzare le acquisizioni dei convertitori con un multiplo (o sottomultiplo) della frequenza degli alimentatori switching (o viceversa)? Puoi ottenere una reiezione molto alta ai disturbi, in questo caso.

Darwin ha scritto:

Interessante! Al livello di singola scheda è un'ottima soluzione, ma probabilmente molte schede lavoreranno contemporaneamente condividendo lo stesso bus dc, e non saprei come sincronizzare gli switching delle varie schede. Altro vincolo: dimensioni ridottissime (temo che non ci sarà affatto spazio, alla fine), quindi non posso mettere a monte di ogni alimentatore gli oportuni filtri per evitare che il rumore di commutazione si propaghi nel bus di alimentazione. Per rispettare le norme di emissione mi hanno proposto di mettere un unico filtro a monte del bus, ma questo è un altro problema che per fortuna non mi riguarda direttametne ;-)

Molto bella la soluzione di Darwin, io ne ho una un po' più becera. Non mi è chiaro quale sia la banda della tua acquisizione (parli di temperature e poi di segnali a 60kHz...). Comunque se vedi degli impulsi sulle letture dell'ADC (ok, le vedi a monte, ma l'ADC cosa dice?) puoi provare ad usare un filtro mediano*, eventualmente aumentando la frequenza di campionamento.

*È un filtro non lineare tipicamente usato in trattamento dell'immagine per togliere il rumore "sale e pepe". In pratica in una finestra di N campioni (possibilmente dispari), si sostituisce il picco con il valore mediano. Il valore mediano è il valore che sta al centro una volta ordinati i valori. Se N è pari, il "valore che sta al centro" è la media dei due valori intorno al centro. Ahem...Chiaro, no?

Ciao

Pasu

"SilverLeo" ha scritto nel messaggio news: snipped-for-privacy@mynewsgate.net...

... snip...

Gli SMPS sono delle brutte bestie che generano una discreta quantita' di rumore di modo comune. Gli amplificatori di misura che usi hanno impedenze di ingresso (sia differenziali che verso massa) molto grandi e i disturbi di modo comune non trovando un percorso verso terra influenzano pesantemente le misure.

Il datasheet dell'INA128 consiglia di aggiungere un paio di resistenze sugli ingressi verso massa (pag. 10).

Facci sapere.

Saluti GG

GG ha scritto:

sugli

Ho polarizzato gli ingressi con due resistenze da 1MOhm verso lo zero, ma forse sono troppo elevate. Potrei abbassare di uno o due ordini di grandezza (la sorgente ha una impedenza dalle parti del kOhm).

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required