Leggere le termocoppie con TI MSP430

Nuovo appuntamento con la Rubrica Firmware Reload di Elettronica Open Source. La Texas Instruments propone un circuito di riferimento per la lettura delle termocoppie mediante i microcontrollori della famiglia MSP430. Vediamone nel dettaglio le funzionalità e le maggiori caratteristiche sia dal punto di vista hardware che software per comprendere al meglio il suo utilizzo.

INTRODUZIONE

Nel 1821 Thomas Johann Seebeck scoprì che in un sistema formato da due conduttori di natura differente, sottoposto a un gradiente di temperatura, si instaura una differenza di potenziale. Tale fenomeno venne chiamato effetto Seebeck in suo onore e sfruttato per realizzare le termocoppie. Com’è chiaro, il fenomeno non può sussistere in un sistema formato da un solo conduttore omogeneo; perciò, una termocoppia è costituita da una coppia di conduttori elettrici di diverso materiale uniti tra loro in un punto, mentre il valore di potenziale elettrico formatosi è funzione diretta della differenza di temperatura presente, secondo una data legge. Esiste una grande varietà di termocoppie, distinguibili in base ai due conduttori elettrici che compongono la giunzione e legate al campo di applicazione: industriale, scientifico, alimentare, medico e via dicendo; le termocoppie vanno scelte in base al valore medio di temperatura da misurare, infatti, se la temperatura è relativamente bassa vengono utilizzate termocoppie dall’elevato coefficiente termoelettrico come ad esempio il tipo J (ferro-costantana).

Perciò, in questi casi, termocoppie meno sensibili avrebbero un segnale in uscita piuttosto scarso, difficile da trattare in modo preciso, mentre per temperature più alte si usano ad esempio le termocoppie K (chromel-alumel) o anche quelle tipo R (platino-platino/ rodio) che però sono molto costose. Vediamo come implementare un’interfaccia per una termocoppia mediante l’utilizzo del microcontrollore MSP430F5529 della Texas Instruments (TI). Tale micro ha molteplici caratteristiche tra cui una potenza assorbita molto bassa, struttura a 16 bit, integrazione di un convertitore analogico-digitale a 12 bit ad alte prestazioni (ADC) che può essere utilizzato per convertire la tensione della termocoppia in valori digitali, per poi memorizzarli. Nella trattazione successiva ipotizziamo di utilizzare una termocoppia di tipo K e la temperatura misurata è limitata nell’intervallo che va da 0 °C a 100 °C.

TERMOCOPPIE E RELATIVE MISURE

Come già anticipato, quando la giunzione di due metalli diversi viene esposta a un gradiente termico, una tensione proporzionale alla temperatura si osserva tra i due metalli e tale fenomeno, mostrato in Figura 1, è noto come effetto termoelettrico.

Figura 1: Effetto termoelettrico

Figura 1: Effetto termoelettrico

Tipicamente la tensione osservata è dell’ordine di alcuni microvolt. È facile intuire che per ogni coppia di leghe metalliche il potenziale elettrico prodotto per una specifica temperatura è sempre lo stesso, pertanto, una giunzione di leghe specifiche può essere utilizzata per misurazioni pratiche di temperatura. Quindi, per definizione, una termocoppia è un sensore di temperatura che si compone di due metalli diversi saldati a una estremità. Nell’industria, alcune combinazioni di leghe sono state standardizzate ma nell’applicazione seguente viene utilizzata una termocoppia di tipo K dato il loro basso costo e ampio intervallo di temperatura (da -200 ˚C a 1350 ˚C), perciò sono quelle di uso generale e più comunemente utilizzate.

Rispetto ai termistori, le termocoppie sacrificano precisione e accuratezza a vantaggio di una vastissima gamma di temperature e, proprio a causa di questo, tendono a essere utilizzate in applicazioni industriali dove si possono avere temperature molto elevate. Facendo riferimento alla Figura 2, quando un voltmetro è collegato ai capi di una termocoppia, si creano le giunzioni metalliche aggiunte J2 e J3, dette anche giunti freddi, tra i cavi del misuratore e le leghe metalliche della termocoppia. Si noti che le termocoppie misurano la differenza di temperatura attraverso l’intera lunghezza del metallo esposto al gradiente di temperatura e non la temperatura assoluta sulla giunzione.

Figura 2: Misurazione della tensione di una termocoppia

Figura 2: Misurazione della tensione di una termocoppia

In altre parole, la lettura risultante del voltmetro Vm è proporzionale alla differenza di temperatura tra J1, J2 e J3; pertanto, per trovare la temperatura a J1, la temperatura all’altra estremità del metallo deve essere nota (questa è la temperatura di riferimento). Una soluzione per l’implementazione di una termocoppia è creare un blocco isotermico intorno ai giunti freddi generati dal dispositivo di misura e la termocoppia, come visibile nella Figura 3, e mantenere la temperatura a un valore di riferimento noto. Poiché è necessaria energia per mantenere un blocco in condizioni isotermiche, questo metodo è spesso impraticabile.

Figura 3: Blocco isotermico per la misura assoluta della temperatura

Figura 3: Blocco isotermico per la misura assoluta della temperatura

Un altro metodo consiste nel misurare la temperatura all’interno del blocco di giunzione fredda con un dispositivo preciso, come un termistore, e quindi utilizzare la misura dalla giunzione di destinazione come offset a questa temperatura di riferimento. Tale metodo è chiamato “compensazione del giunto freddo” ed è la soluzione scelta per questa applicazione. Il blocco isotermico può essere semplice come del rame sul circuito stampato attorno alla connessione della termocoppia e al sensore di temperatura del giunto freddo, oppure può essere molto sofisticato e coinvolgere anche parti meccaniche.

La tensione che le termocoppie possono produrre è standardizzata dal National Institute of Standards and Technology (http://www.nist.gov), che sul sito mette a disposizione anche le tabelle di dati per le tensioni delle termocoppie. Siccome queste tabelle sono state create per una temperatura di riferimento di 0 ˚C, possono essere utilizzate direttamente (senza compensazione) solo se la temperatura di riferimento del sistema viene mantenuta a 0 ˚C ma questa condizione non è possibile nella maggior parte delle applicazioni pratiche, pertanto, è di solito necessario compensare. Vari metodi possono essere implementati per compensare la temperatura del giunto freddo ma nell’applicazione che andiamo ad analizzare, viene utilizzato un termistore per misurare la temperatura assoluta dei giunti freddi. A questo punto, dopo che la temperatura di riferimento è nota, questa viene aggiunta alla temperatura della termocoppia non compensata per determinare la temperatura della termocoppia assoluta. Tale processo è anche noto come “compensazione software” ed è riassunto dalle seguenti fasi:

  • misurare la resistenza del termistore (Rref);
  • convertire Rref alla sua temperatura equivalente (Tref);
  • misurare Vm e convertire la temperatura della termocoppia (TC);
  • infine aggiungere Tref a TC per avere la temperatura della termocoppia assoluta.

HARDWARE

Per l’implementazione della parte hardware si faccia riferimento alla Figura 4, in cui viene riportato uno schema a blocchi del circuito utilizzato per la lettura di una termocoppia. Come primo stadio si utilizza un amplificatore differenziale per amplificare la tensione in uscita dal sensore, che viene riportata in un modulo ADC 12 bit integrato all’interno di un microcontrollore MSP430F5529.

Figura 4: Diagramma a blocchi dell’hardware

Figura 4: Diagramma a blocchi dell’hardware

Si noti che alcuni dispositivi appartenenti alla famiglia MSP430 hanno un sistema integrato ADC a 16 bit più il blocco di amplificazione. In ogni caso, lo stadio di amplificazione è usato per massimizzare la precisione, visto che la tensione di termocoppia varia da 0 V a 4,096 mV per l’intervallo di temperatura prescelta (da 0 °C a 100 °C) e la tensione di riferimento interna del convertitore ADC è di 1,5 V. Si tenga presente che senza l’amplificazione, l’intera gamma della tensione avrebbe bisogno di essere rappresentata da soli 11 punti dell’ADC a 12 bit e questo può essere sufficiente per il livello di precisione che molte applicazioni richiedono, ma l’amplificazione permette alla tensione di ingresso di coprire l’intera gamma in ingresso all’ADC.

Sono utilizzati due canali analogici dell’ADC, uno per la tensione di termocoppia amplificato e l’altro per la resistenza del termistore, che come detto in precedenza è utilizzato per la compensazione della giunzione fredda. Come anticipato, la termocoppia è un tipo K e date le tensioni osservate nei conduttori della termocoppia, dell’ordine dei microvolt, si può utilizzare un amplificatore operazionale stabilizzato di precisione, con un guadagno impostato a 290. Un tale guadagno è stato scelto in modo tale che l’intervallo di tensione della termocoppia venga amplificato a 1,2 V, valore molto vicino al fondo scala dell’ADC (1,5 V). Come visibile in Figura 4, il partitore resistivo è formato da una resistenza di 8,2 kΩ e dal termistore per produrre una tensione in ingresso all’ADC; la parte superiore del divisore è collegata all’uscita di riferimento a 1,5 V e quindi il valore di fondo scala del convertitore ADC è 1,5 V. La tensione per la parte superiore del divisore è stata scelta per essere pari a 1,5 V, poiché l’uscita del modulo di tensione di riferimento fornisce una tensione molto stabile a tale valore e qualsiasi valore di tensione nella parte superiore del divisore minore o uguale alla tensione di riferimento dell’ADC, garantisce che l’ingresso analogico non saturi la lettura ADC per qualunque temperatura della giunzione fredda.

La resistenza del termistore diminuisce con l’aumento della temperatura e quando il termistore è a 25 °C, la sua resistenza è pari a 1 kΩ. Mentre la resistenza di 8,2 kΩ mantiene la tensione di ingresso del termistore ben al di sotto della tensione di fondo scala dell’ADC per l’intervallo di temperatura che va da -20 °C a 60 °C. Un filtro RC (Resistore-Condensatore) può essere utilizzato in aggiunta all’ingresso del termistore per il filtraggio del rumore. Solo per avere un’idea della semplicità del circuito da implementare si faccia riferimento alla Tabella 1, in cui è riportata una BOM (Bill Of Materials) riguardante la sola circuiteria della termocoppia esclusa quella relativa alla scheda del micro MSP430.

Tabella 1: Bill of Materials (BOM) del circuito di una termocoppia

Tabella 1: Bill Of Materials (BOM) del circuito di una termocoppia

SOFTWARE

Il software sfrutta le caratteristiche di bassa potenza della famiglia di micro MSP430, infatti, normalmente lo mantiene in modalità basso consumo (LPM3 - Low Power Mode 3) in cui solo il VLO (Very - Low power Oscillator) è in esecuzione e viene utilizzato un timer per fornire un interrupt che sveglia il microcontrollore per la misurazione della temperatura. Il flusso software è mostrato in Figura 5, in cui si vede che dopo una fase di reset il micro viene inizializzato e poi entra nel ciclo principale (main) che viene eseguito una volta al secondo, innescato dall’interrupt timer A0.

In primo luogo, la “routine campione” viene chiamata e si ottiene la media di 32 campioni dell’ADC, successivamente il valore della termocoppia viene convertito nel corrispondente valore di temperatura per poi venire aggiunto alla temperatura di riferimento. Infine, il risultato è memorizzato in memoria. Come si evince dal diagramma di flusso di Figura 5, si utilizzano due ingressi analogici e sono raggruppati insieme per fornire un campionamento simultaneo del termistore e della termocoppia. Durante il campionamento, 32 conversioni vengono eseguite sia sul termistore che sulla termocoppia e poi mescolate in un unico valore di conversione.

Figura 5: Diagramma di flusso del software

Figura 5: Diagramma di flusso del software

Tutto ciò viene fatto per migliorare la precisione della lettura ADC risultante. In seguito, il valore termistore è convertito in temperatura utilizzando una tabella di “look-up” (confronto). Analogamente, una tabella di look-up è utilizzata per convertire il valore ADC della termocoppia in un valore di temperatura corrispondente. La tabella look-up della termocoppia viene generata utilizzando la tensione di riferimento prescelta dell’ADC, il guadagno del blocco di amplificazione e le tabelle di dati per tensioni di termocoppia del NIST. Dopo la memorizzazione del valore d’interesse, il micro MSP430 è rimesso in LPM3 ad aspettare il prossimo interrupt del timer. Un diagramma raffigurante l’assorbimento di potenza per l’esecuzione delle acquisizioni riguardanti la termocoppia è illustrato in Figura 6.

Figura 6: Grafico della corrente assorbita in funzione del tempo

Figura 6: Grafico della corrente assorbita in funzione del tempo

Al reset, tutti i registri sono inizializzati per un corretto funzionamento (punto 1), durante l’inizializzazione il micro è in modalità attiva e utilizza una corrente di circa 290 μA. Dopo che tutti i moduli vengono inizializzati, l'MSP430 entra LPM3 (punto 2) con un assorbimento di corrente complessivo di circa 2,1 μA. Come già detto in precedenza, il modulo del timer risveglia l'MSP430 ogni secondo e mentre questo è attivo, il ciclo principale viene eseguito con la lettura dei canali sia del termistore che della termocoppia, poi vengono mediati e si ottiene la temperatura assoluta finale.

Durante la routine principale, il micro rimane attivo fino a quando la funzione è chiamata (punto 3) per poi entrare nuovamente “low power mode” finché vengono eseguite tutte le conversioni ADC con una sua tensione di uscita di riferimento che si traduce in un consumo di corrente dell’ordine di 1 mA (punto 4). Quando termina la conversione, il riferimento d’uscita viene meno e il micro rimane attivo finché non sono eseguite tutte le funzioni del ciclo principale (punto 5). Dopo l’esecuzione del ciclo principale, l'MSP430 entra nella modalità LPM3 fino al successivo interrupt del timer (punto 6). Questo ciclo si ripete periodicamente alla frequenza di 1 Hz. Si comprende bene come la misura di corrente media assorbita dall'MSP430 in questa applicazione è pari circa a 2,5 μA.

CONCLUSIONI

Come analizzato, la Texas Instruments propone una valida soluzione per la lettura delle termocoppie, mettendo a disposizione sia il software del microcontrollore MSP430 che una proposta hardware. Facendo riferimento al sito ufficiale è possibile scaricare i sorgenti del progetto discusso.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend