Monitoraggio di alimentatori a singolo canale con rilevazione della temperatura in remoto

Molte applicazioni con un singolo regolatore di potenza possono trarre vantaggio dalle funzioni di monitoraggio e controllo di un dispositivo di gestione dell’alimentatore, ma la maggior parte dei circuiti integrati di tale dispositivo ha più di un canale. In un’applicazione con un solo alimentatore, vi sarà un set inutilizzato di pin di conversione D/A e di conversione A/D; anziché lasciare sprecare il canale inutilizzato, è possibile usare questi pin e alcune righe di codice del microcontroller per rilevare la temperatura in remoto. LTC2970 è un dispositivo di monitoraggio e controllo di alimentatori che presenta 2 canali, ciascuno dei quali è dotato di convertitori A/D a 14 bit per eseguire misure di tensione e corrente, e di un convertitore D/A a 8 bit per utilizzare come servo la tensione dell’alimentatore. Può pilotare un transistor a giunzione bipolare (BJT) collegato per eseguire una misura ΔVBE e il microcontroller può utilizzare le tensioni misurate per calcolare la temperatura. Il costo dei componenti aggiuntivi è bassissimo, dell’ordine di alcuni centesimi di dollaro. 

Il circuito

Per ottenere un sensore di temperatura in remoto con LTC2970, bisogna applicare due correnti diverse (ILOW e IHIGH) attraverso il transistor e misurare VBE per entrambe le correnti (VBE_LOW e VBE_HIGH); la differenza tra le due misure di VBE (∆VBE) è una funzione diretta della temperatura. Usare l’equazione 1 per calcolare la temperatura nel BJT.

eq1Illustrato nella Figura 1, LTC2970 ha tutto ciò di cui si ha bisogno in uno dei suoi due canali. L’uscita IDAC può comandare una corrente programmabile tra 0µA e 255µA. Uno degli ingressi di conversione A/D può misurare direttamente VBE ai capi del BJT, mentre l’altro ingresso di conversione A/D può misurare un utile valore indiretto per la corrente campionando la tensione ai capi di un resistore. Questa configurazione evita numerosi problemi tradizionali correlati ai sensori di temperatura a semiconduttore, il primo dei quali è sapere quanta parte della tensione VBE misurata è dovuta alla caduta di tensione nel cablaggio fra il generatore di corrente e il transistor. Qui si misura VBE direttamente al terminale del transistor anziché al pin di uscita del convertitore D/A, per cui la resistenza nella linea diventa meno importante (anche se la resistenza interna del transistor influirà leggermente sulla misura). Il secondo problema consiste nel sapere qual è il rapporto preciso delle correnti ILOW e IHIGH. Poiché la tensione viene misurata ai capi di un resistore, invece di dipendere dalla precisione dell’uscita IDAC si conosce con ottima precisione il rapporto delle correnti. Non è necessario sapere se il convertitore D/A fornisce rapporti precisi di correnti né quale sia il valore effettivo del resistore; la tensione ai suoi capi sarà una funzione della sola corrente e il rapporto di due tensioni sarà uguale al rapporto delle due correnti.

Programmazione

Il dispositivo LTC2970 è programmabile: contiene registri di controllo della corrente IDAC e di documentazione delle letture del convertitore A/D, ma il calcolo della temperatura esterna deve essere eseguito con il software. Una piattaforma predisposta per tale software è Linduino®, un clone di Arduino con alimentazione isolata, prodotto da Linear Technology. Linduino comunica con LTC2970 tramite il bus I2C/SMBus, e con appena alcune righe di codice C (figura 2), esegue i calcoli della temperatura necessari. Qualsiasi sistema simile che possa comunicare con LTC2970 attraverso il bus I2C/SMBus può eseguire il software C e calcolare la temperatura mediante questo metodo. La Figura 3 mostra un diagramma di flusso relativo al semplicissimo algoritmo per eseguire misure di temperatura. Il blu indica transazioni del bus I2C, il rosso indica un ritardo e il verde, un calcolo. Non sono rappresentate le fasi necessarie per filtrare i risultati relativi alla temperatura; il filtro è separato e viene illustrato come argomento separato più avanti nel presente documento. La Figura 2 mostra un estratto del codice Linduino. Le righe sono codificate a colori per indicare la funzione, corrispondenti al diagramma di flusso della Figura 3. Fondamentalmente, l’algoritmo applica due correnti diverse e misura le tensioni che ne derivano, quindi risolve l’equazione che fornisce la temperatura.  LTC2970 utilizza un convertitore A/D con un front-end multiplexer per eseguire misure in corrispondenza di ciascuno di sette ingressi, che vengono campionati con tecnica round-robin, e il tempo tra campioni successivi di un ingresso dipende dal numero di ingressi selezionati per il campionamento nel registro ADC_MON. Quando il convertitore A/D round-robin viene programmato per campionare ogni ingresso, ciascun ingresso viene campionato una volta ogni 240ms. Il circuito LTC2970 fornisce un “nuovo” indicatore a bit singolo in ciascun registro del convertitore A/D per indicare che i dati non sono stati ancora letti. Ogni volta che il convertitore A/D memorizza un nuovo risultato della conversione, il bit “nuovo” viene impostato e ogni volta che il registro viene letto, il bit viene cancellato.

Figura 1. Circuito esterno di rilevazione della temperatura con l’LTC2970

Figura 1: Circuito esterno di rilevazione della temperatura con l’LTC2970

 

Figura 2. Codice Linduino per il calcolo della temperatura

Figura 2: Codice Linduino per il calcolo della temperatura

 

Figura 3: Diagramma di flusso della rilevazione della temperatura con l’LTC2970

Figura 3: Diagramma di flusso della rilevazione della temperatura con l’LTC2970

HARDWARE DI TEST

L’hardware di verifica è molto semplice. In linea di principio consiste solo di un BJT e di un resistore collegati direttamente all’LTC2970, ma in pratica vanno fatte ulteriori considerazioni. Il problema principale è il rumore: poiché il circuito misura la temperatura in remoto, vi sono interconnessioni che possono rilevare il rumore accoppiato attraverso le capacità e alterare le misure. Aggiungere filtri di rumore aiuta, ma inoltre rallenta i tempi di assestamento analogico e prolunga l’esecuzione delle misure. L’approccio ottimale consiste nell’usare linee di rilevazioni brevi in modo differenziale, con isolamento e schermatura adeguati contro le linee rumorose sulla scheda; si riducono così le costanti di tempo dei filtri necessari e il tempo di assestamento del circuito di figura 1. Poiché le misure richiedono due punti operativi diversi e livelli di tensione inferiori ai millivolt, è necessario un compromesso tra l’uso dei filtri di rumore e il tempo di misura.  Ai fini della valutazione e taratura dei sensori, un bagno d’olio fornisce un ambiente a temperatura stabile e controllata con precisione.  La scheda di misura ospita otto LTC2970 e i corrispondenti sensori, ed è sufficientemente piccola da poter essere collocata nella camera d’olio. I soli cavi che raggiungono la scheda sono +5V, GND, SDA e SCL (alimentazione e comunicazioni). Questi sono tutti alimentati dalla piattaforma Linduino che controlla l’algoritmo. La Figura 4 mostra uno schema di uno degli otto dispositivi sottoposti a test sulla scheda, mentre la Figura 5 mostra come si presenta la scheda prima di essere introdotta nel bagno d’olio (figura 6). La routine di conversione della temperatura deve programmare ciascuna nuova corrente, quindi attendere due eventi: le tensioni devono assestarsi e il loop round-robin del convertitore A/D deve aggiornare tutte le letture del convertitore stesso. Per quanto riguarda il primo evento, si può solo attendere dopo avere scritto sul registro IDAC; questo tempo di attesa deve essere pari ad almeno 90ms (9 costanti di tempo nel caso peggiore). Invece, per quanto riguarda il secondo evento è possibile leggere il “nuovo” bit nel registro dei risultati del convertitore A/D affinché il risultato sia aggiornato. Si usa una semplice funzione “READ_NEW” per eseguire un loop sulla lettura di un registro finché il “nuovo” bit non viene impostato, indicando un nuovo valore di conversione A/D. Il codice scritto tenendo presenti questi due requisiti attende 350ms fra le operazioni di programmazione dei valori di corrente e ciascuna lettura di temperatura richiede due impostazioni di corrente, così che il tempo totale di campionamento è pari a 700ms.

Figura 4: Schema del test di temperatura con l’LTC2970 – Uno di otto sulla scheda

Figura 4: Schema del test di temperatura con l’LTC2970 – Uno di otto sulla scheda

 

Figura 5: Scheda di test della temperatura in bagno d’olio con otto LTC2970

Figura 5: Scheda di test della temperatura in bagno d’olio con otto LTC2970

 

Figura 6: Bagno d’olio per il test di temperatura

Figura 6: Bagno d’olio per il test di temperatura

RISULTATI DEL TEST

Valore dell’incremento di temperatura

È necessario verificare numerose proprietà di questo sistema. Anzitutto, il valore dell’incremento di temperatura: è necessario verificare che gli incrementi di temperatura corrispondano a quelli calcolati con lo schema teorico (presentato più avanti) nelle equazioni 10 – 14. In secondo luogo, si deve verificare la precisione assoluta, eseguendo misure sul circuito in un intervallo completo di temperature.  Per verificare i valori previsti degli incrementi di temperatura, si fa variare la temperatura in un ampio intervallo affinché il convertitore A/D misuri costantemente nuovi valori per IHIGH, ILOW, VBE_HIGH e VBE_LOW; si prevede di ottenere i valori calcolati degli incrementi di temperatura, in varie combinazioni di VBE, ILOW e IHIGH. Nella Figura 7, la temperatura viene fatta variare da +120°C a –10°C alla massima velocità consentita dalla strumentazione, mentre vengono eseguite ripetutamente misure. Il grafico mostra le misure eseguite da un LTC2970; appena visibili, a questa scala, sono gli incrementi di misura discreti.  La Figura 8 mostra i valori degli incrementi di temperatura durante la variazione veloce della temperatura da +120°C a –10°C. Si osservi che gli incrementi non sono distribuiti in modo continuo, ma piuttosto raggruppati intorno a valori discreti previsti dai calcoli di sensibilità: ±2,3°C e ±0,25°C, causati dagli incrementi del bit meno significativo (LSB) del convertitore A/D in campioni VBE e ILOW. Alcuni incrementi di temperatura nella Figura 8 includono due incrementi del bit meno significativo del convertitore A/D, per cui il loro valore è prossimo a 4,5°C. Queste previsioni vengono discusse più avanti nella sezione Teoria.

Figura 7: Temperature calcolate durante una “spazzolata” di temperature da +120°C a –10°C

Figura 7: Temperature calcolate durante una “spazzolata” di temperature da +120°C a –10°C

 

Figura 8: Valore dell’incremento di temperatura (°C) durante una “spazzolata” di temperature da +120°C a –10°C

Figura 8: Valore dell’incremento di temperatura (°C) durante una “spazzolata” di temperature da +120°C a –10°C

Precisione della temperatura

Per valutare la precisione assoluta della misura si usa il bagno d’olio che presenta una temperatura stabile a lungo termine. Ciascuno degli otto LTC2970 sulla scheda viene sottoposto a misura separatamente. I dati vengono raccolti per ciascuna parte con due incrementi per il calcolo della media. Il primo include 40 campioni del sensore con variazioni (dithering) della corrente IDAC di ±1LSB per eseguire uno scrambling delle sorgenti di rumore; usando la media calcolata su 40 campioni si eliminano le irregolarità. La seconda media viene calcolata su 50 delle misure eseguite con dithering della corrente. I grafici che seguono mostrano la media e l’intervallo degli errori di temperatura (differenza tra la temperatura misurata e quella effettiva) a temperature comprese fra –15°C a 125°C. La traccia rossa indica l’errore tra la media di tutte le misure e la temperatura dell’olio effettiva. Il blu e il verde corrispondono alle deviazioni standard degli errori di misura a ciascuna temperatura (lo scarto di ogni misura di temperatura rispetto al valore effettivo). Il valore medio di tutti i campioni (traccia rossa) è entro 1,2°C della temperatura effettiva, indicando che gli errori analogici del sistema (numero di transistor, errori del convertitore A/D, dispersione, ecc.) sono piccoli rispetto al rumore di misura del convertitore A/D. Le tracce blu e verdi delimitano la temperatura entro 2,3°C da quella effettiva (±1LSB). Queste misure mostrano che, anche in un circuito non tarato, il sistema è limitato principalmente dalla precisione del convertitore A/D, e altri aspetti non teorici sono secondari per LTC2970 in questa configurazione. Le distribuzioni delle tracce nella Figura 9 non sono ripetibili; sono casuali. Si osservi che vi sono alcune temperature in corrispondenza delle quali gli errori sono maggiori; ciò è dovuto al fatto che queste temperature producono tensioni alle quali il convertitore A/D è prossimo a un limite di bit, e molto sensibile al rumore. Ad altre temperature, le tensioni sono lontane dai limiti di bit e quindi meno sensibili al rumore. Si vedrà che una combinazione di aliasing e quantizzazione produce una variazione (wander) del segnale, anche dopo il calcolo della media, tra i limiti di un LSB del convertitore A/D; questo è un artefatto inevitabile del valore dell’incremento del convertitore A/D.

Figura 9: Valori statistici dell’errore di temperatura durante una “spazzolata” di temperature

Figura 9: Valori statistici dell’errore di temperatura durante una “spazzolata” di temperature

TEORIA

Per un transistor a giunzione bipolare (BJT), VBE dipende dall’ampiezza della corrente e dalla temperatura; è una funzione diretta della corrente, IC = βIB, e una funzione inversa della temperatura.  La Figura 10 mostra la relazione funzionale tra VBE e IC in un BJT ideale. Le prestazioni effettive del BJT sono limitate dalla dispersione al limite inferiore (osservabile come un appiattimento della curva) e da resistenze al limite superiore. Si osservi che ad una determinata corrente (linea orizzontale), VBE varia in proporzione inversa alla temperatura. È utile poter contare sul fatto ben noto che a una particolare corrente, IC(0), la tensione VBE del transistor varia linearmente con la temperatura (di circa –2mV/°C). A un primo sguardo questa proprietà non è ovvia secondo l’equazione base della corrente del transistor:

eq2che può essere semplificata per valori tipici di IC:

eq3

Da questa equazione ci si aspetta che all’aumentare della temperatura, VBE aumenti anziché ridursi; ma IS(T) non è costante, bensì ha una notevole dipendenza funzionale dalla temperatura, fra altre variabili, e domina la dipendenza dalla temperatura del dispositivo. Inoltre, le “altre variabili” che influiscono su IS(T) sono correlate al processo di fabbricazione e causano variabilità da un componente all’altro. Un modo migliore per considerare la situazione è illustrato nella Figura 11, che mostra gli effetti della temperatura su VBE per numerosi valori di corrente Si noti che moltiplicando la corrente nel transistor si aumenta la tensione VBE, ottenendo un ∆VBE positivo; si noti pure che la variazione è inferiore a temperature più basse anziché a temperature più alte. Questa è un’osservazione molto utile; comandando il transistor con due correnti diverse, la differenza tra i valori VBE ad alta temperatura è maggiore rispetto a quando la temperatura è inferiore: ∆VBE è una funzione diretta della temperatura.  La Figura 12 mostra due transistor diversi funzionanti con due correnti di polarizzazione diverse e aventi tensioni VBE diverse. È possibile usare due transistor come illustrato o pilotare un transistor con due correnti diverse; ciascun approccio ha i suoi vantaggi. È semplice risolvere l’equazione del transistor per ottenere la relazione funzionale della temperatura:              eq4

Figura 10: Corrente di collettore in funzione della tensione base-emettitore di un BJT

Figura 10: Corrente di collettore in funzione della tensione base-emettitore di un BJT

 

Figura 11: VBE in funzione della temperatura in un BJT

Figura 11: VBE in funzione della temperatura in un BJT

 

Figura 12: Rilevazione della temperatura mediante la ∆VBE di un BJT

Figura 12: Rilevazione della temperatura mediante la ∆VBE di un BJT

Errori di quantizzazione

Il BJT produce una tensione analogica continua, ma è necessario misurarla con un convertitore analogico-digitale per quantizzare sia la tensione che il tempo. Come si è visto a proposito dei dati misurati, ciò ha implicazioni per quanto riguarda la precisione delle misure di temperatura. Un convertitore A/D è un dispositivo a risoluzione finita,  ossia l’uscita è un valore di precisione finita prossimo, ma non uguale, alla tensione d’ingresso. Genera incrementi di valore finito (∆) e non può rappresentare una tensione con precisione superiore rispetto al valore degli incrementi. La differenza tra la tensione effettiva e quella misurata è l’errore di quantizzazione, mostrato nella Figura 13, ed è necessario comprendere come tale errore influisca sulla temperatura da misurare. L’equazione fondamentale da risolvere per convertire la tensione VBE in una temperatura è l’equazione 8. Il calcolo dipende da ciascuno dei parametri misurati con il convertitore A/D. Gli errori o le incertezze di ciascuna misura influiscono sulla temperatura calcolata, secondo la sensibilità di ciascun parametro. La sensibilità è definita come la pendenza della curva in risposta a variazioni di un parametro. La carica di un elettrone e la costante di Boltzman non variano, così che il rapporto q/k è costante. Il valore di n per il transistor viene considerato costante per un determinato dispositivo ma può variare da un dispositivo all’altro e certamente dipende dalla famiglia di dispositivi (2N3904, 2N3906, ecc.). L’equazione per il calcolo della temperatura è inoltre sensibile al valore del fattore di non idealità del transistor, n. I valori di queste costanti sono:

q = 1,60217662 • 10–19 coulomb

k = 1,38064852 • 10–23 m2 kg s–2 K–1

n = 1,016 (valore tipico per un 2N3906)

∆VBE è la differenza tra i valori di VBE a due correnti di polarizzazione diverse: VBE_LOW e VBE_HIGH. Le due correnti di polarizzazione sono ILOW e IHIGH e sono ben note, ma il loro rapporto preciso è più importante del loro valore assoluto.  La precisione finita del convertitore A/D introduce incrementi finiti nel calcolo della temperatura. Ciascuna misura di tensione ha una sensibilità diversa. Possiamo calcolare la sensibilità determinando la derivata dell’equazione 8 rispetto alla variabile di interesse. La sensibilità corrispondente al valore ∆VBE misurato è data da:        eq9

∆VBE a temperatura ambiente è prossima a 66mV con IHIGH e ILOW pari, rispettivamente, a 255µA a 20µA; il rapporto di queste correnti è 255µA/20µA = 12,75 e il logaritmo naturale è ln(12,75) = 2,5455. Assumendo un valore nominale di n=1,016 la sensibilità è quindi:

eq10

Il convertitore A/D LTC2970 può risolvere incrementi di 500µV. Moltiplicando per un incremento ∆VBE 1-LSB (variazione nel valore alto o basso di VBE) di 500µV si ottiene: 2,28°C/LSB (vedere Tabella 1). Analogamente, il calcolo è sensibile alle correnti misurate, IHIGH e ILOW. Poiché IHIGH è pari circa a 10 • ILOW, si determina che il valore calcolato di temperatura è circa 10 volte più sensibile a variazioni di ILOW che di IHIGH. In genere, la sensibilità al rapporto delle correnti (∆r) è:

eq11Assumendo una ∆VBE nominale prossima a 66mV, si determina che la sensibilità è uguale a circa:

eq12

Si noti che l’equazione 12 rappresenta la sensibilità al rapporto delle correnti.  La sensibilità alla sola corrente più elevata (IHIGH ) è:

eq13dove ILOW corrisponde effettivamente ad una tensione misurata ai capi di un resistore, per cui il valore misurato è ILOW_EFFETTIVA • R.  Assumendo ILOW = 25µA • 10kΩ = 0,25 A e un incremento LSB del convertitore A/D di 500µV si ottengono incrementi di temperatura pari a 0,0236°C/LSB (vedere Tabella 1). Analogamente, la sensibilità alla corrente inferiore (ILOW ) è:

eq14Assumendo IHIGH = 255µA • 10kΩ = 2,55 A e un incremento LSB del convertitore A/D di 500µV si ottengono incrementi di temperatura pari a –0,241°C/LSB (vedere Tabella 1). Tutti i risultati relativi alla sensibilità sono riportati nella Tabella 1. Questi sono i parametri misurati dal convertitore A/D, per cui la sensibilità è espressa in gradi Celsius a volt. Le correnti vengono misurate in base alla tensione ai capi del resistore di rilevazione.

Figura 13: Errore di quantizzazione del convertitore A/D

Figura 13: Errore di quantizzazione del convertitore A/D

 

Figura 14: Non linearità integrale (INL) del convertitore A/D dell’LTC2970

Figura 14: Non linearità integrale (INL) del convertitore A/D dell’LTC2970

 

Figura 15: Percorso di dispersione all’ingresso del convertitore A/D

Figura 15: Percorso di dispersione all’ingresso del convertitore A/D

Precisione del circuito

La precisione del sensore di temperatura è limitata da numerosi fattori. Fondamentalmente, l’equazione 8 è sensibile al valore del fattore di non idealità del transistor oltre che ai valori misurati di tensione e di corrente. Vi sono anche numerose sensibilità e non linearità “nascoste”, che non compaiono nell’equazione 8: errori nelle misure del convertitore A/D – non linearità integrale (INL, integral nonlinearity), non linearità differenziale (DNL, differential nonlinearity), guadagno e offset – nonché il fattore di non idealità non costante del transistor, n.

Errori del convertitore A/D

Sono numerosi ed elencati nella scheda dati; si tratta di errori nei valori misurati causati da imperfezioni analogiche del convertitore A/D.

Guadagno del convertitore A/D

Nel caso ideale questo guadagno dovrebbe essere pari a 1,0. La scheda dati dell’LTC2970 dichiara che l’errore di guadagno è < 0,4%; nel peggiore dei casi si ottiene quindi un guadagno di 1,004. Per misure di VBE pari a 0,574V e 0,640V (a temperatura ambiente), le tensioni misurate con l’errore di guadagno sarebbero:

VBE = 0,574 • 1,004 = 0,57630 V

VBE = 0,640 • 1,004 = 0,64256V

Ciò fa variare ∆VBE da 66,0mV a 66,264mV. La differenza di 264µV è pari a circa metà di 1LSB di 500µV; questo è equivalente ad un errore di temperatura di circa 1,2°C.

Offset del convertitore A/D

È effettivamente un valore costante aggiunto ad ogni programma; è pari all’uscita del convertitore A/D quando l’ingresso è uguale a 0. Per il calcolo della temperatura, la misura più sensibile è di gran lunga quella di ∆VBE. Poiché ∆VBE è il risultato di una misura differenziale, costanti come l’offset del convertitore A/D vengono eliminate dalla sottrazione:

eq15Gli offset influiscono sulle misure di correnti raziometriche; tuttavia, l’effetto è piccolo poiché la sensibilità al rapporto delle correnti è bassa.

INL del convertitore A/D

La scheda dati dell’LTC2970 mostra che la INL è una funzione della tensione d’ingresso, con valori tipici di 1LSB per tensioni prossime a 1V e uguali a quasi 0LSB per tensioni d’ingresso prossime a 0V. Questo implica che per misure di VBE prossime a 0,6V occorre aspettarsi un errore INL di quasi 0,6LSB e una variazione di circa 1LSB/V ossia 500µV/V. Vedere Figura 14. La curva INL del convertitore A/C ha lo stesso andamento in ogni parte, così che si può trattare la INL come un errore di guadagno, con un effetto inferiore di un ordine di grandezza rispetto all’effettivo errore di guadagno del convertitore A/D calcolato sopra. Ne dovrebbero conseguire errori di temperatura minori di 0,13°C.

DNL del convertitore A/D

La scheda dati dell’LTC2970 specifica un valore di DNL (errori del valore dell’incremento da codice a codice) minore di 0,5LSB, ossia 250µV. Tale valore è dello stesso ordine del termine di guadagno del convertitore A/D, comportando errori di temperatura <1,2°C; questi errori sono causati da disadattamenti casuali e assoggettabili a scrambling con un generatore di dithering che faccia variare la corrente del BJT applicata e successiva rimozione tramite calcolo della media.

Dispersione all’ingresso del convertitore A/D

I pin d’ingresso del convertitore A/D dell’LTC2970 non hanno impedenza infinita, ma presentano una piccola dispersione, per cui la corrente che attraversa il resistore di rilevazione non circola nel BJT. Questa corrente rilevata costituisce principalmente un problema per il rapporto di corrente e non per la VBE misurata. L’ampiezza delle correnti di dispersione è < 0,1µA. Vi sono due canali d’ingresso del convertitore A/D collegati ad un’estremità del resistore, per cui si usa il massimo di 0,2µA. L’errore nel rapporto di corrente è:

eq16

L’errore di temperatura risultante è di –0,85°C. La scheda dati dell’LTC2970 non lo dichiara, ma questo errore è peggiore ad alte temperature, per cui corrisponde a un errore di guadagno di temperatura non lineare.

PROPRIETÀ DEL TRANSISTOR

Variazioni di n

Il fattore di non idealità (n) è essenzialmente costante per un dato transistor, ma varia da un transistor all’altro. In una determinata famiglia (2N3906), le variazioni di n da un dispositivo all’altro sono piccole, mentre le differenze tra famiglie (2N3906 vs 2N3904) sono più rilevanti. È importante usare un valore preciso per n nei calcoli e nel codice C. La sensibilità a errori di piccola entità nel fattore di non idealità del transistor è data da questa equazione:

eq17Per una variazione di n uguale a 0,001 ci si può aspettare una variazione di –0,0228°C.

β non costante

L’equazione del transistor alla base di tutti i calcoli che interessano ai fini del presente articolo è:

eq19Ma IC non è identica alla corrente d’ingresso, IIN, poiché una parte di quest’ultima entra nella base del transistor, mentre la parte rimanente attraversa il collettore; la somma, pari alla corrente d’ingresso, è la corrente di emettitore.

eq20Si sta misurando la corrente entrante nel BJT e calcolando il rapporto delle correnti misurate (il rapporto delle IE):

eq22Nei limiti in cui β non vari con la corrente applicata, il rapporto delle correnti rimane invariato, ma se βLOW ≠ βHIGH il rapporto varia, alterando la misura di temperatura; Se βHIGH = 44 e βLOW = 40, la temperatura calcolata avrà un’imprecisione di circa 0,33°C. Per valori maggiori di β, l’errore di temperatura sarà minore. Il set completo di temperatura è riportato nella Tabella 1. Si tratta di valori specifici per l’LTC2970 funzionante con un transistor 2N3906.

Parametro** Sensibilità (°C/V) Errore: OC per LSB del convertitore A/D
∆VBE (VBE(LOW) oppure VBE(HIGH)  ) 4559 2,28 (°C/LSB)
IHIGH 47,2 0,0236 (°C/LSB)
ILOW -482 -0,241 (°C/LSB)
Parametro Sensibilità (°C/unità) Errore (°C)
Guadagno del convertitore A/D - < 1,2
INL del convertitore A/D - < 0,13
DNL del convertitore A/D - < 1,2
Dispersione all'ingresso del convertitore A/D - > -0,85
Fattore di non idealità (n) - > -0,0228
β del transistor - < 0,33

Tabella 1: Sensibilità dei parametri di temperatura calcolati (**presuppone determinate correnti di polarizzazione)

QUANTIZZAZIONE E RUMORE

Normalmente, il campionamento eseguito da un convertitore A/D è soggetto a due tipi di errore: quantizzazione del tempo e quantizzazione della tensione. Il primo è dovuto al fatto che il segnale viene campionato solo a istanti di tempo discreti, non misurati continuamente, mentre il secondo dipende dal fatto che il convertitore A/D può rappresentare solo un numero finito di livelli e la tensione d’ingresso ricade sempre tra due livelli, non corrisponde mai precisamente a un certo livello.

Quantizzazione della tensione

Un metodo tipico di rappresentazione dell’uscita di un convertitore A/D utilizza il valore del segnale a cui si aggiunge un certo livello di rumore:

Codice[i] del convertitore A/D = Guadagno • (Tensione d’ingresso + e[i])    (23)

dove Guadagno = 2N/VFONDO_SCALA e e[i] è l’errore in corrispondenza del numero i del campione. Il termine dell’errore di quantizzazione, e[i], rappresenta la differenza tra la tensione d’ingresso e la tensione del codice del convertitore A/D più vicina. Il valore massimo di questo errore può essere ±∆/2, quando l’ingresso ha un valore intermedio fra i due codici del convertitore A/D. Vedere Figura 13.  Per un ingresso CC senza rumore, e[i] è identico per tutti i valori di i. Tutte le uscite del convertitore A/D saranno identiche e avranno errori identici. Nessun volume di operazioni di post-elaborazione ridurrà l’errore; calcolando la media di 100 campioni si otterrà un risultato con errore uguale a quello che si otterrebbe acquisendo un solo campione.  Se è presente rumore, esiste una probabilità finita che il convertitore A/D scelga un codice diverso da quello che sceglierebbe nel caso di assenza di rumore. In tale circostanza, Codice[i] del convertitore A/D ≠ Codice[i – 1] del convertitore A/D e calcolando la media di numerosi campioni del convertitore A/D si può ottenere una risposta più precisa, poiché si cancella parte dell’errore di quantizzazione. Affinché il calcolo della media sia efficace, il rumore deve essere dinamico in funzione del tempo, non correlato all’ingresso (veramente casuale) e presentare una distribuzione simmetrica intorno alla media zero. Inoltre dovrebbe avere ampiezza maggiore rispetto a un LSB del convertitore A/D. Quando ciò è vero, calcolando la media di un numero adeguatamente elevato di campioni (N) si può ridurre il rumore base ad un livello inferiore ad un LSB del convertitore A/D, in modo tale che il valore dell’incremento minimo calcolato con la media si avvicini a:

eq24Ciò è possibile poiché il rumore fa sì che l’uscita del convertitore A/D “comunichi” fra codici adiacenti, ma il rumore in sé e per sé ha media zero, per cui scompare dalla media. Il valore medio rimanente sarà più preciso della misura in assenza di rumore. Per capire perché questo è vero, si esamini la Figura 16. Il margine di rumore sull’asse Y è uguale all’ampiezza del rumore necessario per produrre un’uscita del convertitore A/D diversa dato l’ingresso CC sull’asse X. Se l’ingresso è a ∆/2 dalla tensione di soglia del convertitore A/D più vicina, per modificare il codice è necessario un evento di rumore maggiore di ∆/2. Se la tensione d’ingresso è sovrapposta direttamente alla transizione del codice, qualsiasi rumore causerà una modifica del codice. È possibile calcolare la probabilità che un evento di rumore causi una modifica dell’uscita del convertitore A/D applicando questo margine di rumore alla funzione densità di probabilità del rumore (se nota). La probabilità di disturbo è uguale all’integrale che misura l’area sotto la curva fuori dell’intervallo definito da µ + NM e µ – NM, dove µ è la media (presumibilmente µ = 0). Vedere Figura 17. Facendo variare la tensione d’ingresso del convertitore A/D in un intervallo si produce un “ripple” ripetitivo di probabilità che un evento di rumore disturbi la lettura del convertitore A/D. Vicino alle transizioni del codice la probabilità è elevata e presso il centro del codice la probabilità ha un valore minimo. Si noti che l’andamento preciso dipende dal valore statistico del rumore. Qui lo si è rappresentato come gaussiano, ma è più probabile che abbia una distribuzione multimodale a causa delle frequenze discrete di rumore. In ogni caso, la natura ripetitiva illustrata nella Figura 18 rimane valida anche se l’andamento esatto è differente. Applicando due tensioni d’ingresso CC diverse al convertitore A/D (per la misura di temperatura) si ottengono due probabilità differenti di disturbo del valore misurato (i due punti nella Figura 18). Poiché la misura di temperatura consiste di più letture del convertitore A/D, ci si aspetta che alcune temperature siano più sensibili di altre e mentre si fa variare la temperatura in un determinato intervallo, ciascuna lettura del convertitore A/D diventerà a sua volta rumorosa mentre si avvicina alla soglia del codice del convertitore A/D più vicina.

Figura 16: Margine di rumore per la tensione d’ingresso del convertitore A/D (normalizzata rispetto a un LSB del convertitore A/D)

Figura 16: Margine di rumore per la tensione d’ingresso del convertitore A/D (normalizzata rispetto a un LSB del convertitore A/D)

 

Figura 17: Distribuzione del rumore e probabilità di disturbo

Figura 17: Distribuzione del rumore e probabilità di disturbo

 

Figura 18: Probabilità di un disturbo di rumore in funzione della tensione d’ingresso del convertitore A/D

Figura 18: Probabilità di un disturbo di rumore in funzione della tensione d’ingresso del convertitore A/D

Quantizzazione del tempo

Alle misure si sovrappone rumore aggiuntivo poiché il convertitore A/D acquisisce campioni a istanti di tempo discreti ed è necessario che campioni un segnale non limitato in banda entro la larghezza di banda di Nyquist. Per capire perché ciò sia vero, si osservi che l’algoritmo per misure di temperatura genera incrementi discreti fra i valori massimo e minimo della corrente, e che il convertitore A/D deve misurare con precisione le tensioni assestate per ciascun incremento. Affinché la tensione si assesti tra letture del convertitore A/D, deve esistere un ritardo di almeno 9 costanti di tempo (imposto dalla risoluzione di 500µV del convertitore A/D); la costante di tempo RC del circuito deve essere minore di 1/9 del tempo intercorrente fra campioni del convertitore A/D, TSAMPLE. La larghezza di banda di questo circuito è quindi:

eq25La teoria del campionamento afferma che per l’energia a frequenze maggiori di

eq26vengono generate per aliasing frequenze inferiori che diventano parte del segnale campionato in banda base e diventa impossibile distinguere il rumore d’ingresso prossimo alla CC da rumore prossimo a multipli della frequenza di campionamento. Ciò significa che tutto il rumore del circuito che non può essere bloccato con filtri prima del campionamento, comparirà nel segnale campionato. Un filtro digitale a valle di un tale campionatore con aliasing non può eliminare il rumore; ciò è mostrato nella Figura 19.

Figura 19: Aliasing del rumore in un segnale campionato

Figura 19: Aliasing del rumore in un segnale campionato

 

Figura 20: Rumore quantizzato e risultato con l’uso di un filtro

Figura 20: Rumore quantizzato e risultato con l’uso di un filtro

Quantizzazione e applicazione di filtri

Poiché una misura di temperatura è una combinazione di quattro letture del convertitore A/D, due a bassa corrente e due ad alta corrente, esiste una probabilità combinata che una o più delle misure saranno disturbate da rumore. Calcolando la media di numerose misure a una data temperatura si regolarizzerà il rumore in una certa misura. La forma d’onda risultante dall’uscita del quantizzatore del convertitore A/D con rumore e aliasing all’ingresso potrebbe essere simile a quella dell’esempio nella Figura 20. L’uscita del convertitore A/D esegue incrementi fra codici adiacenti più spesso durante tempi più sensibili e meno spesso, o per niente, durante tempi meno sensibili. Il rumore ad alte frequenze viene riprodotto per aliasing a frequenze inferiori e sommato al segnale in banda base. Il convertitore A/D sceglie il codice più vicino alla tensione (rumorosa) presente al suo ingresso. Quando il convertitore A/D rimane a uno stesso codice per molti campioni di uscita, il filtro si assesta su uno stato. Se invece l’uscita del convertitore A/D “comunica” tra due codici differenti, il filtro assume un certo valore intermedio.

Figura 21: Uscita di temperature senza elaborazione

Figura 21: Uscita di temperature senza elaborazione

 

Figura 22: Media mobile delle temperature a temperatura ambiente

Figura 22: Media mobile delle temperature a temperatura ambiente

Limiti del calcolo della media

Esiste un motivo per cui un dispositivo a circuiti integrati con sensore di temperatura dedicato, come LTC2983, utilizza convertitori A/D a 24 bit per misurare valori analogici. I segnali hanno ampiezza bassissima e spesso nascosti dal rumore. In questo circuito si sta usando LTC2970, con un convertitore A/D a 14 bit avente 500µV/LSB. Questo è adeguato per calcoli della temperatura di precisione ragionevole, ma occorre comprenderne i limiti. Si è calcolato in precedenza che un singolo bit rappresenta ~2,3°C per cui ad un incremento che porti da un codice del convertitore A/D al successivo corrisponde un incremento analogo della temperatura. Il grafico di figura 21 mostra misure individuali ripetute, eseguite da un sensore mantenuto a una temperatura costante di 27°C. Non è stata calcolata la media dei dati, così che sono visibili gli incrementi della transizione del convertitore A/D. Non sorprende che questo grafico sia simile all’esempio della Figura 20. In assenza totale di rumore, si potrebbero eseguire 10 misure e queste sarebbero tutte identiche, sebbene tutte con uno scarto di 2,3°C. In un sistema con rumore, esiste la possibilità che le tensioni attraversino confini di bit fra le misure, per cui misure sequenziali alla stessa temperatura differiscono di circa 2,3°C. Per ridurre gli effetti del rumore si possono eseguire più misure e calcolarne la media (o altrimenti usare un filtro). Si riduce così la differenza da una misura alla successiva ma non si annullano gli effetti dell’aliasing, che può produrre frequenze di rumore prossime alla CC che non vengono rimosse dal filtro passa basso digitale. La Figura 22 mostra la media mobile della temperatura documentata per un altro sensore a temperatura ambiente, calcolata su oltre 40 campioni con un aggiornamento su ogni campione. I dati sono meno rumorosi campione per campione rispetto alla Figura 21, ma nel corso del tempo esistono ancora variazioni. Oltre al semplice calcolo della media, un approccio per regolarizzare ulteriormente questo ripple consiste nell’eseguire un dithering delle correnti IDAC alle quali vengono eseguite misure di VR e VBE, variando la corrente di uscita IDAC di uno o due LSB a ciascuna lettura. Sfruttando il calcolo della media, è possibile aumentare e diminuire dinamicamente gli ingressi del convertitore A/D, attuando uno scrambling della distribuzione di probabilità dalla Figura 18 e “appiattendo” la probabilità combinata affinché ogni temperatura abbia una probabilità di rumore più prossima a ciascun’altra. Sebbene questo non rimuova il rumore dalle misure, rende tutte le temperature più vicine tra di loro per quanto riguarda il rumore. Se si aggiunge una componente di dithering alla corrente IDAC per attuare uno scrambling dei valori misurati all’ingresso del convertitore A/D, è possibile rendere il filtro digitale un po’ più efficace. Si fa variare intenzionalmente la corrente del convertitore A/D attraverso il transistor affinché la misura di VBE vari leggermente con ogni campione. La media delle variazioni nell’intervallo corrispondente dovrebbe essere nulla, per cui non si aggiunge un offset nei calcoli.  La Figura 23 mostra un filtro digitale passa basso Butterworth che regolarizza le misure di temperatura eseguite dal sensore con la variazione. La traccia blu mostra le misure di temperatura individuali, mentre la traccia rossa è l’uscita del filtro Butterworth.  Si noti l’intervallo più ampio delle misure di temperatura individuali mentre il dithering modifica l’influenza del rumore del circuito.  L’uso di un filtro con dithering riduce l’intervallo delle letture della temperatura di uscita a circa ±1,25°C, in questo caso. Le differenze principali fra un filtro con media mobile e un Butterworth, o altro filtro digitale con risposta all’impulso non finita, sono due: la media mobile richiede più memoria del microprocessore per conservare valori cronologici ma funzioni matematiche di precisione inferiore, e il filtro IIR richiede meno memoria ma funzioni matematiche di elevata precisione (a virgola mobile o con interi notevoli). Queste differenze, fra altre, influiscono sulla selezione e sul progetto del filtro digitale. Il calcolo della media e l’uso di filtri sono promettenti, ma i risultati sono ancora sensibili al rumore, che dipende dal sistema in cui funziona il componente. Il rumore in banda stretta può essere previsto e bloccato con filtri, ma ciò non è possibile per il rumore a banda larga. Quando si progetta un filtro per regolarizzare le letture di temperatura, è importante considerare i generatori di rumore e l’aliasing.

RILEVAZIONE DI GUASTI AL CIRCUITO

Un circuito aperto o un cortocircuito causano la distorsione di una o più letture del convertitore A/D. I casi ovvi sono quelli in cui il convertitore A/D si scollega o un canale del convertitore A/D è aperto; in entrambi i casi, la lettura del convertitore A/D sarà molto diversa dal valore previsto. Per rilevare un guasto al circuito, il codice C può confrontare individualmente ciascun valore misurato con un intervallo che si sa essere appropriato (VBE dovrebbe essere prossimo a 0,6V mentre VR dovrebbe essere pari al prodotto di una corrente e una resistenza entrambe note: 255µA • 10kΩ = 2,55V). È possibile rilevare guasti al circuito meno evidenti confrontando ∆VBE e il rapporto delle correnti con i valori previsti (∆VBE dovrebbe essere prossimo a 60mV e il rapporto delle correnti dovrebbe essere ben noto poiché è programmato [p. es., 12,75]). Se uno qualsiasi di questi valori è fuori di questo intervallo, si può assumere che la misura sia completamente sbagliata; una serie di tali misure indica un guasto al circuito. Semplici modifiche apportate al codice C permettono di rilevare questi errori e indicare all’utente la presenza di un guasto.

VARIAZIONI INTERESSANTI

In ambienti rumorosi può essere vantaggioso aumentare la tensione VBE applicando una corrente maggiore di 255µA. Il modo più semplice per attuare ciò consiste nell’usare l’uscita di tensione del convertitore D/A dell’LTC2970 anziché l’uscita IDAC. L’uscita di tensione del convertitore D/A è una versione modificata da un buffer della tensione al pin IDAC, che viene determinata da un resistore costante a tale pin. È possibile ottenere una corrente del BJT di 1mA mediante un’uscita di tensione del convertitore D/A a fondo scala di 3,6V (collegando un resistore da 14,2kΩ dal pin di uscita IDAC a massa [GND]) e utilizzando un resistore di rilevazione della corrente da 3kΩ in serie con il BJT. Il valore dell’incremento di temperatura di 2,3°C è limitato dalla misura di ∆VBE, che è un valore piccolo, ed è imposto dal BJT, non dall’ampiezza della corrente. Un modo semplice per aumentare ∆VBE consiste nell’inserire un BJT direttamente sopra un altro; si raddoppia così sia la tensione VBE che ∆VBE. Raddoppiando la tensione si dimezza l’incremento poiché si raddoppia il rapporto segnale/rumore di quantizzazione. La Figura 24 mostra il circuito modificato. Un fattore importante per quanto riguarda il tempo necessario per ciascuna misura è il ritardo necessario per l’assestamento di transitori analogici dopo che si modifica la corrente IDAC. Qui vi sono molte opportunità di miglioramento. Anzitutto, la riduzione del tempo di assestamento. La riduzione del condensatore ai campi del BJT (C1 nella Figura 1 e nella Figura 24), la riduzione del valore del resistore di rilevazione della corrente e la riduzione dell’impedenza per piccoli segnali del BJT applicando a quest’ultimo più corrente, sono tutti accorgimenti che contribuiscono a ridurre i tempi di assestamento. Si è già menzionato l’utilizzo dell’uscita di tensione del convertitore D/A anziché dell’uscita IDAC, che comporterebbe sia l’aumento della corrente che la riduzione del valore del resistore di rilevazione della corrente. Si tenga presente che il problema principale correlato alla riduzione del tempo di assestamento è che aumentando la larghezza di banda del circuito si aumenta la possibilità che aumenti il rumore. Le opportunità più importanti per ridurre il tempo di misura comportano la riduzione della latenza del loop del convertitore A/D. Anzitutto, commutare continuamente tra corrente massima e minima senza annullarla tra una misura e l’altra. In secondo luogo, eseguire misure differenziali prima dalla corrente massima a quella minima e successivamente dalla minima alla massima. Queste operazioni eliminano numerosi periodi di ritardo nel codice C. Infine, programmare LTC2970 in modo che ignori ingressi inutilizzati, abbreviando così il loop di polling eseguito dal convertitore A/D. Usare il registro ADC_MON per deselezionare qualsiasi canale che non occorre campionare con il convertitore A/D; ciascun canale deselezionato comporta una riduzione di 33,3ms. Oltre a ridurre il tempo di campionamento, questi accorgimenti mitigano anche una possibile causa di errore: la deriva di temperatura. Se la temperatura del sistema varia a una frequenza comparabile al tempo intercorrente fra misure di VBE, ne conseguirà un errore di temperatura notevole. Riducendo il tempo di campionamento si riduce quindi l’errore relativo alla deriva di temperatura.

Figura 23: Misure di temperature con dithering elaborate mediante un filtro Butterworth

Figura 23: Misure di temperature con dithering elaborate mediante un filtro Butterworth

 

Figura 24: Circuito esterno di rilevazione della temperatura dell’LTC2970 modificato

Figura 24: Circuito esterno di rilevazione della temperatura dell’LTC2970 modificato

CONCLUSIONE

La versatilità dell’LTC2970 va oltre le applicazioni previste nella scheda dati. Quando un sistema richiede un solo canale di gestione dell’alimentatore, il secondo canale offre l’opportunità di rilevare la temperatura esterna in un transistor collegato correttamente. Alcune righe di codice del microcontroller pilotano LTC2970, leggono le misure del convertitore A/D e calcolano la temperatura con precisione migliore di ±2,5°C. L’applicazione è quasi gratuita e offre ulteriori opzioni per l'integrato LTC2970.

 

di Nathan Enger, Senior Applications Engineer, Linear Technology Corporation

 

 

Una risposta

  1. Maurizio Di Paolo Emilio Maurizio 20 luglio 2016

Scrivi un commento