Progetto Sensore di Temperatura: Circuiti Integrati per Sensori di Temperatura Digitali

Mark Harris
|  Creato: ottobre 26, 2020  |  Aggiornato: marzo 16, 2021
Progetto Sensore di Temperatura: Circuiti Integrati per Sensori di Temperatura Digitali

I sensori di temperatura digitali offrono il modo più semplice per misurare e inserire una lettura della temperatura altamente accurata in un microcontrollore o altro dispositivo logico. Nell'ultimo articolo di questa serie sui sensori di temperatura, abbiamo esaminato i sensori di temperatura analogici. Sebbene questi possano sembrare più facili da implementare semplicemente effettuando una semplice lettura ADC, per ottenere la misurazione più accurata, sarà necessario calibrare l'ADC di ogni dispositivo durante la produzione, il che non è sempre fattibile. In questo articolo, ci immergiamo in diverse opzioni di sensori di temperatura digitali. I sensori di temperatura digitali saranno tipicamente più costosi di un semplice sensore di temperatura analogico. Tuttavia, la facilità e la comodità di produzione utilizzando questi dispositivi rendono spesso il costo aggiuntivo giustificato laddove siano richiesti alti livelli di precisione della misurazione. 

I sensori di temperatura digitali sono il quinto tipo di sensore che stiamo esaminando in questa serie. Concludiamo questa serie con l'articolo finale, che metterà a confronto tutti i sensori che abbiamo testato in una gara testa a testa in un'ampia gamma di condizioni ambientali per permetterci di confrontare la loro funzionalità, accuratezza e comportamento. Abbiamo iniziato la serie con un articolo introduttivo in cui abbiamo costruito un insieme di modelli per le schede standard dei sensori di temperatura. Sia le versioni analogiche che quelle digitali possono essere impilate attraverso l'uso di connettori mezzanine o lette indipendentemente dai loro connettori laterali. Costruiremo schede madri per tutti questi sensori più avanti nella serie, il che ci permetterà di leggere i dati da un singolo sensore per validarne la funzionalità o di leggere l'intera pila di schede così da poter registrare i dati da tutte insieme.

In questa serie, esamineremo una vasta gamma di sensori di temperatura, parlando dei loro vantaggi e svantaggi, così come di alcune topologie tipiche per la loro implementazione. La serie coprirà i seguenti tipi di sensori:

Come per i miei progetti, puoi trovare i dettagli del progetto, gli schemi e i file delle schede su GitHub insieme alle altre implementazioni di sensori di temperatura. Il progetto è rilasciato sotto la licenza open-source MIT, che ti permette di utilizzare i disegni o qualsiasi parte di essi per scopi personali o commerciali, come desideri.

IC Sensori di Temperatura Digitali

Supponiamo che tu sia interessato solo a leggere l'uscita da un sensore di temperatura utilizzando un microcontrollore o un altro dispositivo logico. In tal caso, un sensore di temperatura digitale è elettricamente l'opzione più semplice da implementare. I sensori di temperatura digitali possono offrire eccellenti livelli di accuratezza poiché tutta la rilevazione, la compensazione e la conversione avvengono sul chip. Non c'è bisogno di calibrare l'ADC del tuo microcontrollore (o ADC esterno). Inoltre, non devi preoccuparti dell'interferenza elettromagnetica proveniente da tracce vicine o altri dispositivi collegati alle connessioni tra il sensore di temperatura analogico e il microcontrollore che potrebbero influenzare involontariamente la lettura della temperatura.

In questo progetto, implementeremo quattro diverse opzioni di sensori di temperatura digitali con varie risoluzioni e intervalli di rilevamento.

Nome

MAX31826MUA+T

STS-30-DIS

EMC1833T

SI7051-A20-IMR

Tipo

Digitale

Digitale

Digitale

Digitale

Temperatura Min di Rilevamento (°C)

-55°C

0°C

-40°C

-40°C

Temperatura Max di Rilevamento (°C)

+125°C

+60°C

+125°C

+125°C

Intervallo di rilevamento

Locale

Locale

Remoto

Locale

Risoluzione (Bit)

12

16

 

14

Precisione (°C)

±0.5°C (+10°C a +85°C)

±2°C (-55°C a 125°C)

±0.2°C

±1°C (-20°C a +105°C)
±1.5°C (-40°C a +125°C)

±0.1°C

Temp. di funzionamento (°C)

-55°C a +125°C

-40°C a +125°C

-40°C a +125°C

-40°C a +125°C

Funzioni

Bus a 1 filo, Alimentazione parassita

I²C

I²C, SMBus

I²C

Tensione minima di alimentazione

3 V

2.15 V

1.62 V

1.9 V

Tensione Massima di Alimentazione (V)

3.7 V

5.5 V

3.6 V

3.6 V

Consumo di Corrente (uA)

4 mA (quando legge un livello logico basso)

45 uA inattivo
1.5 mA in misurazione
Vdd*1.5 Allarme

700 uA in conversione,
75 uA in standby

195 nA

Produttore

Maxim Integrated

Sensirion AG

Microchip

Silicon Labs

Package

8-MSOP

8-VFDFN

8-VDFN

6-DFN


Ho incluso l'EMC1833T perché, per me, è un sensore affascinante. Si tratta di un dispositivo di rilevamento della temperatura a distanza, il che significa che non utilizza un sensore posizionato all'interno del componente. Invece, rileva la temperatura convertendo l'uscita di un sensore esterno, che in questo caso è un transistor, in un segnale digitale. Non sono sicuro che appartenga necessariamente a questa categoria di "sensori di temperatura digitali" poiché non si adatta perfettamente agli altri sensori che stiamo esaminando. Tuttavia, i transistor non sono tipicamente noti per essere utilizzati come sensori di temperatura, quindi non avevo idea di dove collocarlo. Quello che mi affascina di questo sensore è che può misurare la temperatura utilizzando quasi qualsiasi transistor. Se stai progettando un ASIC, potresti facilmente includere un transistor extra sul die per questo scopo. Puoi quindi utilizzare questo transistor, che può essere letto da un sensore come l'EMC1833T, per effettuare una misurazione esterna della temperatura del die senza dover aggiungere alcuna complessità aggiuntiva al tuo silicio. Un altro modo di vedere la questione è che puoi monitorare la temperatura del tuo die senza incorrere in alcun rischio ingegneristico associato alla progettazione e alla costruzione di un sensore di temperatura digitale su misura nel silicio.

Implementazione di Sensori Digitali: MAX31826MUA+T

Il primo sensore che implementeremo è il MAX31826 prodotto da Maxim Integrated. Questo sensore funziona su un bus 1-Wire piuttosto che sui più tipici bus I2C o SPI. Un potenziale problema è che il protocollo 1-Wire potrebbe non essere supportato come protocollo di comunicazione dal microcontrollore su cui si basa il tuo progetto. Tuttavia, è un protocollo semplice da implementare manualmente e presenta un vantaggio considerevole rispetto alle scelte più popolari in quanto richiede solo due fili per operare il sensore. Includendo l'alimentazione, I2C richiede quattro fili, e SPI ne necessita cinque. Al contrario, 1-Wire richiede solo una massa e una linea dati per la maggior parte delle applicazioni, poiché può alimentarsi dalla linea dati utilizzando una tecnica di alimentazione parassita. Integrato nel sensore c'è un condensatore che può sostenere l'alimentazione per il circuito integrato durante i periodi in cui la linea dati è in stato basso, eliminando la necessità di una fornitura di tensione dedicata nella maggior parte delle condizioni operative normali. Questa può essere una soluzione molto comoda per schede che dispongono di spazio estremamente limitato.

Un'altra caratteristica interessante del sensore e del suo bus 1-Wire è la capacità di impostare un indirizzo di 4 byte per il dispositivo utilizzando pin selezionabili manualmente installati sul package del dispositivo. Questo permette l'installazione di fino a 16 sensori di temperatura su un unico bus dati 1-Wire assegnando a ciascun dispositivo un indirizzo unico. Questa può essere un'opzione molto comoda se si dispone di un numero limitato di pin sul microcontrollore e, allo stesso tempo, si richiedono capacità di rilevamento utilizzando un gran numero di sensori di temperatura. 

Rispetto ai sensori che abbiamo esaminato negli articoli precedenti di questa serie, il MAX31826 non è solo estremamente preciso ma fornisce anche dati ad alta risoluzione. Il sensore offre una precisione di +/- 0,5°C tra -10°C e +85°C, con una precisione di +/- 2°C su tutto il suo intervallo di temperatura da -55°C a +125°C. Tutte le letture del sensore sono fornite come valori a 12 bit, che è una risoluzione più alta di quella offerta dalla maggior parte dei microcontrollori.

Come sensore di temperatura, il MAX31826 ha molto da offrire, ma è anche dotato di una EEPROM onboard da 1 kB come caratteristica aggiuntiva. Immagino che avessero un po' di spazio libero rimasto sul die. Se il tuo microcontrollore non ha una EEPROM integrata e hai bisogno di memorizzare alcuni dati di configurazione per la tua applicazione, questo sensore di temperatura fa al caso tuo. Se hai bisogno di ulteriore memoria non volatile, questo sensore di temperatura ridurrà il numero dei componenti e risparmierà spazio sul circuito stampato.

Il datasheet raccomanda di alimentare direttamente il dispositivo piuttosto che utilizzare l'alimentazione parassita del bus quando le temperature potrebbero superare i 100°C. Sebbene la maggior parte delle applicazioni tipiche non necessiti di raggiungere questi livelli di temperatura, i test a cui sottoporremo il sensore supereranno i 100°C. Pertanto, per questo esercizio, seguiremo la raccomandazione di alimentare direttamente il dispositivo piuttosto che esplorare l'affascinante opzione di alimentazione parassita.

MAX31826 Schematic

La forma della scheda e il layout generale provengono dal template di progetto che abbiamo creato nell'introduzione a questa serie. Poiché non stiamo utilizzando nessuno dei soliti bus di comunicazione, ho rimosso le reti associate e i loro componenti dalla scheda. Tuttavia, ho lasciato le connessioni sul connettore di impilamento per assicurarmi che ciò non causi problemi ad altri sensori impilati. Con il bus 1-Wire, abbiamo bisogno solo di utilizzare il pin di selezione del chip per comunicare con il microcontrollore host.

MAX31826 3D Schematic

 

Implementazione del Sensore Digitale: STS-30-DIS

Ho utilizzato lo STS-30-DIS prodotto da Sensirion in un progetto passato a causa della sua incredibile precisione e delle indicazioni calibrate che sono riconducibili al NIST. Questo era necessario poiché lo strumento è stato sviluppato per un'azienda di servizi alimentari, richiesto per raccogliere dati per scopi di reportistica governativa. Con un ingombro ridotto, un ampio intervallo di tensione, incredibile accuratezza e un'uscita digitale linearizzata a 16 bit, c'è molto da amare in questo dispositivo se si necessita solo di rilevamento di temperature positive. Se hai bisogno di rilevare temperature al di sotto del punto di congelamento, la variante STS-30A-DIS è qualificata per l'automotive e ha un intervallo di rilevamento da -40°C a 125°C. Tuttavia, questo aumento dell'intervallo di rilevamento comporta un leggero costo per la precisione complessiva.

Nell'articolo precedente sui sensori di temperatura analogici, ho parlato di quanto siano ottimi i sensori di temperatura analogici per applicazioni come il monitoraggio dei processi, per accendere e spegnere una ventola, o per altri sistemi di gestione termica che possono funzionare senza l'intervento di un microcontrollore. Lo STS-30 offre un pin ALERT che può essere utilizzato per svolgere una funzione simile. È destinato alla connessione a un pin di interruzione di un microcontrollore; tuttavia, dispone anche di una nota applicativa completa dedicata, e può essere utilizzato per commutare carichi automaticamente. La capacità di interfacciarsi alla funzione di interruzione del microcontrollore può essere cruciale. Consente al sensore di notificare immediatamente al microcontrollore con un segnale di alta priorità che è necessario intervenire immediatamente, piuttosto che fare affidamento su un polling infrequente del sensore da parte del microcontrollore e sulla risposta ai dati letti. Se l'uscita ALERT è connessa a un transistor per consentirgli di pilotare un carico, il sensore potrebbe essere utilizzato sia per scopi di monitoraggio/registrazione sia per avere una funzione di gestione termica autonoma. Rispetto alle soluzioni analogiche, questa configurazione potrebbe rendere lo STS-30 digitale un'opzione più economica. Non sarà necessario un comparatore separato, e la soglia per il pin ALERT può essere configurata dall'utente tramite un microcontrollore/HMI senza la necessità che sia impostata in fabbrica.

I dispositivi della serie STS-30 utilizzano tutti un bus I2C per le comunicazioni. Lo schema che stiamo implementando per questo articolo non include nessuna delle resistenze di pull-up che generalmente sono necessarie affinché il bus di comunicazione funzioni correttamente. Queste resistenze di pull-up saranno invece montate sulle schede host. Poiché abbiamo bisogno solo di un set di resistenze di pull-up per bus, aggiungere resistenze a ogni sensore aggiungerebbe multiple resistenze di pull-up al bus e potrebbe causarne il malfunzionamento. Inoltre, tutte le resistenze collegate in parallelo ridurrebbero la loro resistenza complessiva.

Il pin ADDR ci permette di scegliere tra due indirizzi differenti per il dispositivo, consentendoci di collegare due componenti STS-30 allo stesso bus I2C. Sebbene ciò possa non essere impressionante quanto le capacità del dispositivo MAX31826 sul bus 1-Wire, è comunque conveniente in quanto ci permette di utilizzare più di un dispositivo. Sto collegando il pin ADDR a logica bassa (GND) poiché ciò imposta l'indirizzo predefinito a 0x4A, con la logica portata allo stato alto, ciò lo imposta all'indirizzo alternativo di 0x4B.

STS30 Schematic

Mi piace il pacchetto sullo STS-30 perché è compatto, ma comunque non troppo complesso, quindi puoi assemblare a mano il tuo circuito se stai usando uno stencil. Il pacchetto del sensore più un condensatore di decoupling 0603 sono insieme circa della stessa dimensione del MAX31826 che abbiamo esaminato sopra. Con un condensatore più piccolo, si adatterebbe molto bene su una scheda ad alta densità. Il grande pad di terra sotto l'IC fornisce un eccellente percorso per trasferire il calore da un piano di terra alla giunzione di rilevamento della temperatura all'interno dell'IC. Questo lo rende una scelta perfetta per posizionarlo accanto a qualsiasi dispositivo, come un grande MOSFET o un regolatore, che utilizza il piano di terra per scaricare il calore in eccesso nella scheda. Posizionare l'IC in prossimità della fonte di calore fornirà risultati di rilevamento della temperatura più accurati.

STS-30-DIS Direct Connetion 3D

 

Implementazione del Sensore Digitale: EMC1833T

Come ho precedentemente menzionato, trovo il dispositivo EMC1883 prodotto da Microchip affascinante non solo perché presenta una gamma di caratteristiche fantastiche, ma anche perché può leggere la temperatura rilevata da una giunzione di transistor. Lo STS-30 che abbiamo esaminato sopra aveva un pin di interruzione di allarme attivato da un valore assoluto; tuttavia, l'EMC1883 può essere configurato per generare anche un allarme basato sul tasso di variazione della temperatura rilevata. Questo allarme basato sul tasso di variazione può permettere alle soluzioni intelligenti di gestione termica di essere attivate automaticamente in previsione del loro bisogno piuttosto che dopo l'evento. Questo ha il potenziale di migliorare l'affidabilità del dispositivo nel suo complesso attraverso una gestione attenta della sua temperatura operativa. Come con lo STS-30, è completamente configurabile tramite software, il che offre notevoli vantaggi rispetto a qualsiasi opzione impostata in fabbrica che probabilmente si dovrebbe implementare se si stesse utilizzando un termostato completamente analogico per ottenere gli stessi risultati.

Il modello specifico della serie EMC8xx che stiamo testando supporterà solo il rilevamento di una singola giunzione. Tuttavia, ci sono altri modelli nella serie che possono fornire il rilevamento fino a cinque giunzioni.

Come l'STS-30, questo è un sensore basato su I2C che consente l'installazione di più sensori su un unico bus I2C. Una distinzione è che l'implementazione del pin ADDR dell'EMC1833T è diversa dalla natura binaria di accensione/spegnimento del dispositivo STS-30. Questo dispositivo ti permette di impostare fino a sei indirizzi separati utilizzando diversi valori di resistenze di pull-up. Il pin ADDR funziona anche come uno dei pin di interruzione, agendo come il Pin di Avviso Termico (insieme al pin di ALERT/Avviso Termico 2). Come per l'installazione del dispositivo precedente, non implementerò resistenze di pull-up sulle linee I2C sulla scheda del sensore di temperatura. Tuttavia, è necessario che siano montate da qualche parte all'interno del tuo circuito per consentire al bus di comunicazione del sensore di funzionare correttamente.

Il datasheet raccomanda l'uso di un transistor a giunzione bipolare 2N3904 come elemento di rilevamento remoto poiché non dispongo di un transistor CPU disponibile per le misurazioni. Sto utilizzando la variante a montaggio superficiale di un 2N3904 per rilevare la temperatura su questa scheda. Il MMBT3904 è disponibile pressoché da ogni azienda di fabbricazione di silicio che tratta i BJT - in questo caso, ho scelto di utilizzare un componente di ON Semiconductor poiché era il meglio fornito. C'erano diversi milioni disponibili quando ho controllato l'ultima volta su Octopart.

EMC1833T Schematic Semiconductor

Come ho fatto in precedenti articoli di questa serie, ho posizionato l'elemento di rilevamento della temperatura, il nostro transistor, all'interno dell'interruzione termica. Ho posizionato gli elementi non sensibili dietro l'interruzione termica. Questo impedisce che l'EMC1833T possa influenzare negativamente la lettura della temperatura a causa di qualsiasi calore che potrebbe generare da sé.

EMC1833T 3D PCB Design

 

Implementazione del sensore digitale: Si7051-A20-IMR

Infine, abbiamo il Si7051-A20 di Silicon Labs. Sono i risultati di questo dispositivo che sono più ansioso di vedere in tutta questa serie. Il MAX31826 è un sensore abbastanza preciso; tuttavia, il Si7051-A20 offre una precisione impressionante di +/- 0,1°C con un consumo di energia incredibilmente basso di soli 195 nA durante il campionamento. Il consumo di energia è almeno un ordine di grandezza inferiore rispetto a tutti gli altri sensori di temperatura digitali e sostanzialmente inferiore rispetto ai sensori di temperatura analogici che abbiamo esaminato nell'articolo precedente.

Mentre molti sensori vantano precisioni pubblicizzate molto elevate, queste cifre di solito si applicano solo a una parte limitata dell'intera gamma di rilevamento. Al contrario, il Si7051-A12 offre l'accuratezza riportata su tutta la sua gamma di rilevamento da -40°C a +125°C. Ciò che è ancora più importante è che l'errore di 0.1°C rappresenta uno scenario di massima imprecisione, non la media o il minimo. Con la sua risoluzione di 14 bit selezionata, il Si7051-A20 fornisce una lettura ripetibile di 0.01°C - Adoro i sensori precisi e ripetibili!

Come per gli ultimi due sensori, il Si7051-A20 è un sensore compatibile con I2C. Tuttavia, non offre un pin di indirizzo, il che significa che è possibile avere collegata al bus I2C solo una singola unità, a meno che non si aggiunga uno switch I2C o si commuti l'alimentazione tra diverse unità collegate sullo stesso bus. Questo richiederebbe pin IO aggiuntivi e aggiungerebbe complessità al circuito, rendendo il Si7051-A20 meno ideale per il rilevamento di molteplici posizioni sulla tua scheda elettronica. Il dispositivo non dispone inoltre di pin di allarme/interruzione, essendo inteso per essere utilizzato puramente come sensore di temperatura digitale. Generalmente, se stai cercando di automatizzare la gestione termica sulla tua scheda elettronica, un sensore meno preciso e a minor costo sarà più che sufficiente per tale applicazione.

Una delle caratteristiche che ho davvero apprezzato dello STS-20 quando l'ho usato l'ultima volta era la calibrazione certificata NIST applicata a ciascun dispositivo, poiché il mio cliente richiedeva quella caratteristica. Anche se il Si7051-A20 non menziona questo nel suo datasheet, ha un certificato di calibrazione disponibile. Sono stato in grado anche di trovare un altro certificato di calibrazione più specifico; tuttavia, questo non si trova sul sito web di Silicon Labs e, quindi, potrebbe applicarsi solo alle unità particolari acquistate da questa azienda. Se così fosse, ciò stabilirebbe un precedente per Silicon Labs nell'emettere certificati specifici per i suoi clienti.

Si7051-A20 Direct Connection Schematic

Come per le altre implementazioni I2C che abbiamo trattato in questo articolo, le linee I2C per questa scheda non hanno resistori di pull-up montati sulle linee dati/orologio. Dovrai includere un resistore di pull-up su ciascuna linea da qualche parte all'interno del tuo circuito per consentire al Si7051-A20 di comunicare con successo.

Il package DFN a 6 pin è anche il più facile da prototipare manualmente tra tutte le opzioni senza piombo che abbiamo esaminato in questo articolo. Utilizzando uno stencil o uno strumento di deposizione della pasta come il Voltera V-One, questo sensore sarebbe incredibilmente facile da posizionare manualmente e rifluire utilizzando strumenti di base, rendendolo perfetto per la prototipazione in casa o nel laboratorio dell'ufficio.

Si7051-A20 Direct Connection 3D PCB Schematic

 

Conclusione

Abbiamo esaminato quattro diversi sensori di temperatura digitali in questo articolo. Tuttavia, ci sono centinaia di altre opzioni di sensori di temperatura digitali disponibili che possono soddisfare le specifiche esigenze del tuo progetto, che sono ben fornite e disponibili. Mentre i sensori di temperatura analogici sono eccellenti per il monitoraggio autonomo dei processi o l'uso con un convertitore da analogico a digitale, i sensori di temperatura digitali offrono una significativa comodità quando vengono integrati in un prodotto che ha un microcontrollore. Come abbiamo visto in questo articolo, ci sono sensori di temperatura digitali che possono generare interruzioni e allarmi a soglie configurabili, il che permette applicazioni interessanti oltre a un termostato basato su comparatore impostato in fabbrica come si potrebbe probabilmente utilizzare con un sensore di temperatura analogico. La precisione e l'accuratezza dei moderni sensori di temperatura digitali possono essere eccezionalmente elevate; tuttavia, molte opzioni consumano notevolmente più corrente rispetto ai loro omologhi analogici, il che può fornire un certo offset di temperatura a causa dell'autoriscaldamento.

I sensori di temperatura digitali più popolari e forniti utilizzano tipicamente un bus I2C per le comunicazioni; tuttavia, sono disponibili anche opzioni di bus SPI e 1-Wire per soddisfare la disponibilità di bus di comunicazione alternativi per il tuo progetto.

Come ho menzionato all'inizio dell'articolo, puoi trovare i dettagli di ciascuna di queste schede sensore e tutte le altre implementazioni di sensori di temperatura su GitHub. Questi progetti sono tutti rilasciati sotto la licenza open-source MIT, che ti permette di fare praticamente qualsiasi cosa con il design per uso personale o commerciale.

Vuoi scoprire come Altium può aiutarti con il tuo prossimo design di PCB? Parla con un esperto di Altium.

Altium Designer Free Trial

 

Sull'Autore

Sull'Autore

Mark Harris è un ingegnere eccezionale con oltre 12 anni di esperienza diversificata nel settore dell'elettronica, che va dai contratti aerospaziali e di difesa ai prodotti start-up, passatempi, ecc. Prima di trasferirsi nel Regno Unito, Mark ha lavorato per uno dei più grandi istituti di ricerca del Canada. Ogni giorno portava con sé un progetto o una sfida diversa che coinvolgeva l'elettronica, la meccanica e il software. È responsabile della pubblicazione della “Celestial Database Library”, la più grande libreria di componenti di database open source per Altium Designer. Mark è attratto dall'hardware e dal software open source, nonché a trovare soluzioni innovative per le sfide quotidiane di questi progetti. L'elettronica è pura passione: seguire la trasformazione di un'idea in realtà e interagire con il mondo è fonte di infinito piacere.
Puoi contattare Mark direttamente a: mark@originalcircuit.com

Risorse correlate

Documentazione Tecnica Correlata

Tornare alla Pagina Iniziale
Thank you, you are now subscribed to updates.