Hoge-precisie temperatuurmeting met geavanceerde siliciumsensoren
De elektronica-industrie eist steeds hogere nauwkeurigheid en temperatuursensing is hier geen uitzondering. Er bestaan veel temperatuursensor-oplossingen, elk met voor- en nadelen. Siliciumtemperatuursensoren, hoewel redelijk lineair, booden nooit de nauwkeurigheid van andere oplossingen. Recentere vooruitgang in siliciumtemperatuursensing maakt echter hoge resolutie en precisie mogelijk met een siliciumoplossing.
Een nieuwe vriezer
Het was maart 2020 en het VK stond net voor een lockdown. De wereld hamsterde voedsel voor het geval supermarkten dichtgingen, en de toekomst zag onzeker uit. Toen de vriezer in huishouden Bramble stopte met werken. Met de woorden van het Kenny Rogers-liedje "You Picked a Fine Time to Leave Me..." in mijn hoofd, gingen we online op zoek naar een vervanger.
Een paar dagen later arrived onze nieuwe vriezer, voorzien van een digitale temperatuuraanzeige op het frontpaneel, naar wens van mevrouw Bramble. De aanbevolen instelling was -18°C en na een uur was het toestel op de juiste temperatuur en klaar voor voedsel. Ik was skeptisch over de nauwkeurigheid van de temperatuuraanzeige, maar maakte me geen zorgen zolang het de vriesde. Een probleem wel: een ingenieursgeest is een onrustige geest, en na dagen dat de blijkbaar wijs digitale readout onverwandeld naar me keek, durfde ik te breken. Ik moest de nauwkeurigheidsclaims van deze nieuwe toevoeging aan onze keuken testen.
Temperatuursensoren
Er is een grote verscheidenheid aan temperatuursensoren in industriële toepassingen, elk met voor- en nadelen. Omdat veel teksten de werking van diverse temperatuursensoren detaileren, herhaal ik de details hier niet, maar geef een samenvatting.
Thermocouples
Thermocouples bieden een lage-kost, matig nauwkeurige manier om zeer hoge temperaturen te meten. Ze berusten op een spanning die ontstaat tussen twee juncties, elk gemaakt van ongelijke metalen, gehouden bij verschillende temperaturen, ontdekt door Thomas Seebeck in 1821. Bij een K-type thermocouple (gemaakt van de legeringen Chromel en Alumel) levert het een spanning van ongeveer 41µV/°C en kan het temperaturen boven de 1000°C meten. Toch berust het Seebeck-effect op een temperatuurverschil tussen twee juncties, dus terwijl de 'warme' junctie de temperatuur van interesse meet, moet de 'koude' junctie op een bekende temperatuur gehouden worden. Ironicerwijs is een andere temperatuursensor vereist bij de koude junctie om het temperatuurverschil te meten, en onderdelen als de AD8494 bieden de perfecte oplossing hiervoor. Omdat thermocouples fysiek klein zijn, hebben ze een lage thermische massa, wat een snelle reactie op temperatuurveranderingen geeft.
RTDs
Om matige temperaturen (<500°C) te meten, worden Resistive Temperature Detectors (RTDs) breed in de industrie gebruikt. Deze apparaten bestaan uit een metaalelement dat een positieve weerstandsverandering met temperatuur vertoont, meest voorkomend Platina. De PT-100-sensor is de meest gebruikte RTD in de industrie en owent zijn naam aan het feit dat het van Platina (PT) is gemaakt en een weerstand van 100Ω heeft bij 0°C. Hoewel deze apparaten niet de hoge temperaturen van een thermocouple meten, zijn ze zeer lineair en hun meting is herhaalbaar. Een PT100 heeft een nauwkeurige stroom nodig, waardoor een nauwkeurige spanningval over de sensor ontstaat die evenredig is met de temperatuur. De weerstand van de aansluitdraden van de PT100 creëert een fout in de weerstandsmeting van de sensor, dus Kelvin-meting is gebruikelijk, wat resulteert in 3- of 4-dradige sensoren.
Thermistoren
Als een lage-kost oplossing vereist is en het temperatuurbereik laag is, volstaat vaak een thermistor. Deze apparaten zijn zeer niet-lineair, met een karakteristiek gebaseerd op de Steinhart-Hart-vergelijking, wat leidt tot weerstandsverlaging bij stijgende temperatuur. Het voordeel van een thermistor is dat de weerstandsverandering groot is bij kleine temperatuurveranderingen, zodat een hoge nauwkeurigheid bereikt kan worden ondanks de niet-lineariteit. Thermistoren hebben ook een snelle thermische reactie. Individuele thermistor-non-lineariteiten zijn goed gedefinieerd, zodat ze gecalibreerd kunnen worden, bijvoorbeeld met componenten als de LTC2986.
Diodes, diodes overal, maar geen (Vbe) val om te zinken…
Ten slotte, om de waarheid van het nieuwe huishoudenslid te testen, koos ik voor een siliciumtemperatuursensor. Ze werken direct uit de doos, hebben geen koude-junctie temperatuurcompensatie of linearisatie nodig, zijn beschikbaar met analoge en digitale uitgangen en komen voorgekaliberd. Tot voor kort booden ze echter alleen matige nauwkeurigheid. Hoewel goed genoeg om de gezondheidstoestand van elektronische apparatuur aan te geven, waren ze nooit nauwkeurig genoeg om bijvoorbeeld lichaamstemperatuur te meten, wat meestal ±0.1°C nauwkeurigheid vereist (volgens de ASTM E1112-standaard). Dat is veranderd met de recente introductie van de ADT7422 en ADT7320 siliciumtemperatuursensoren die respectievelijk ±0.1°C en ±0.2°C resolutie bereiken.
Een siliciumtemperatuursensor benut de temperatuurafhankelijkheid van de Vbe van een transistor, zoals gegeven door de Ebers-Moll-vergelijking, benaderd door:

waarbij Ic de collectorstroom is, Is de omgekeerde verzadigingsstroom van de transistor, q de lading op een elektron (1.602 x 10-19 Coulomb), k de constante van Boltzmann (1.38 x 10-23) en T de absolute temperatuur.
De bovenstaande uitdrukking voor de collectorstroom geldt ook voor de stroom in een diode; waarom gebruikt elke toepassingsschakeling een transistor en geen diode? In de realiteit bevat de stroom in een diode ook een recombinatiestroom voortvloeiend uit elektronen die recombineren met gaten door de depletielaag van de pn-overgang, wat een niet-lineariteit van de diode-stroom met Vbe en temperatuur oplevert. Deze stroom verschijnt ook in een bipolaire transistor, maar vloeit in de basis van de transistor, dus niet in de collectorstroom, waardoor de niet-lineariteit veel kleiner is.
Herschikken van de bovenstaande geeft:

Is is klein vergeleken met Ic, dus we kunnen de '1' term in de bovenstaande vergelijking negeren. We zien nu dat Vbe lineair verandert volgens een logaritmische verandering in Ic. We zien ook dat als Ic en Is constant zijn, Vbe lineair verandert met temperatuur, aangezien k en q ook constant zijn. Het is een eenvoudige taak om een constante collectorstroom in een transistor te forceren en te meten hoe de Vbe verandert met temperatuur.
Is is gerelateerd aan de geometrie van de transistor en heeft een sterke afhankelijkheid van temperatuur. Als veel siliciumapparaten, verdubbelt de waarde met elke 10°C stijging. Hoewel het effect van deze stroomverandering verminderd wordt door de 'ln'-functie, hebben we nog steeds het probleem dat de absolute waarde van Vbe verschilt van transistor tot transistor, dus kalibratie is nodig. Praktische siliciumtemperatuursensoren gebruiken twee identieke transistoren en forceren een collectorstroom van Ic in de ene en 10Ic in de ander. Identieke transistoren en ratiometrisch nauwkeurige stromen zijn gemakkelijk te fabriceren in een geïntegreerde schakeling, weshalb de meeste siliciumsensoren deze architectuur gebruiken. De logaritmische stroomverandering veroorzaakt een lineaire verandering in Vbe en het verschil in de Vbe's wordt gemeten.
Uit de bovenstaande vergelijking, voor twee transistoren gehouden op dezelfde temperatuur, is het verschil tussen hun Vbe's gegeven door:

omdat

We kunnen zien dat

Door verschillende stromen door elke transistor te forceren en het verschil in Vbe te meten, hebben we de niet-lineaire Is term, het effect van verschillende absolute Vbe's en alle andere niet-lineaire effecten geassocieerd met de transistor-geometrie verwijderd. Aangezien k, q en ln10 allemaal constant zijn, is de verandering in Vbe Evenredig Aan Absolute Temperatuur (PTAT). Voor een 10x verschil in stromen, verandert het verschil in de twee Vbe's lineair met temperatuur met ongeveer 198µV/°C. Een vereenvoudigde schakeling om dit te bereiken wordt in Figuur 1 getoond.

Figuur 1. Een basis schakeling voor temperatuurmetering.
De stromen in Figuur 1 moeten zorgvuldig gekozen worden. Als de stroom te hoog is, veroorzaken significante zelfverhitting en spanningval over de interne weerstanden in de transistor corruptie van het resultaat. Als de stroom te laag is, voegen lekkagestromen in de transistor significante fouten toe.
Het moet ook worden opgemerkt dat de bovenstaande vergelijkingen betrekking hebben op de collectorstroom van de transistor, terwijl Figuur 1 een constante emitterstroom in de transistor injecteert. De transistoren kunnen zo ontworpen worden dat de collector-naar-emitter stroomverhouding goed vaststaat (en dicht bij eenheid), zodat de collectorstroom evenredig is met de emitterstroom.
Dit is slechts het begin. Om ±0.1°C nauwkeurigheid te bereiken met een siliciumtemperatuursensor, is uitgebreide karakterisering en trimming nodig.
Is het een vogel? Is het een vliegtuig?
Nee, het is een superthermometer. Ja, die bestaan. De ongekalibreerde siliciumtemperatuursensor moet in een bad met silicone-olie geplaatst worden en verhit worden tot een nauwkeurige temperatuur, gemeten met een superthermometer. Deze apparaten kunnen meten tot een nauwkeurigheid van beter dan vijf decimalen. Zekeringen in de sensor worden doorgebrand om de versterking van de temperatuursensor aan te passen en zo de uitgang te lineariseren met de vergelijking y = mx + C. De silicone-olie biedt een zeer uniforme temperatuur, zodat veel apparaten in één cyclus gekalibreerd kunnen worden.
De ADT7422 heeft een nauwkeurigheid van ±0.1°C, over een temperatuurbereik van 25°C tot 50°C. Dit bereik is gecentreerd rond de typische menselijke lichaamstemperatuur van 38°C, wat de ADT7422 ideaal maakt voor nauwkeurige vitale-teken monitoring. Voor industriële toepassingen is de ADT7320 getrimd voor een nauwkeurigheid van ±0.2°C, maar over een breder bereik van -10°C tot +85°C.

Figuur 2. De ADT7422 gemonteerd op een 0.8mm dikke PCB
De kalibratie van de siliciumtemperatuursensor is niet het enige probleem. Net als bij extrem nauwkeurige spanningsreferenties, kunnen spanningen op de die de nauwkeurigheid van de sensor corrupten, en de thermische uitdijging van de PCB, leadframe, plastic behuizing en blootliggende pads moeten allemaal in rekening worden gebracht. Het solderproces voegt zijn eigen problemen toe. Het solder-reflow-proces verhoogt de temperatuur van een onderdeel tot 260°C, waardoor de plastic verpakking verzacht en het die's leadframe vervormt, zodat een mechanische spanning in het die vastzit wanneer het onderdeel afkoelt en de plastic verhart. Analog Devices' ingenieurs hebben veel manenmaanden besteed aan delicate experimenten om te ontdekken dat een PCB-dikte van 0.8mm de perfecte 'sweet spot' was en een ±0.1°C nauwkeurigheid bereikt kon worden, zelfs na solderen.
Binnen de software
Het grootste deel van de systeemsoftware is gericht op het formatteren van data van de ADT7320 en het weergeven ervan op de LCD. Het ophalen van data van de ADT7320 is triviaal. Bij initialisatie van de processor worden zowel de CS- als SCLK-lijn hoog gezet en rust de SCLK-lijn hoog tussen conversies. De CS-lijn wordt dan laag getrokken om een datatransactie te initiëren. Bij SPI worden data ingelezen in de ADT7320 op de stijgende flank van SCLK en uitgelezen op de dalende flank. De onderstaande code detailleert de initialisatieroutine.
Om de seriële interface te resetten, wordt de CS-lijn laag getrokken, de DOUT-lijn hoog gezet en de SCLK 40 keer geoscilleerd. De CS-lijn wordt dan weer hoog getrokken. Dit klokt 40 '1's in de ADT7320, wat de seriële interface reset. Een wachttijd van minstens 500µs is nodig na de SPI-bus reset.
Het volgende codeblok stuurt de commandobyte naar de ADT7320 om aan te geven of de transactie een Read of Write is en welk register te adresseren. De regel
data = 0b00001000;
instructeert de ADT7320 om naar register 0x01 te schrijven. De ADT7320 wordt dan geprogrammeerd om data uit te voeren met 16-bit resolutie met de regel
data = 0b10000000;
De DOUT-lijn wordt voorbereid op '0', de MSB van de databyte wordt geïnterrogeerd en de DOUT-lijn wordt hoog gezet als de MSB '1' is. De SCLK-lijn wordt hoog getrokken om de data in de ADT7320 te klokken.
void reset_adt7320(void) /* initialise ADT7320 */ {
unsigned char n, data;
/* reset the serial interface */
clearbit(PORTA, CS);
setbit(PORTA, DOUT);
for(n=40; n>0; n--) {
clearbit(PORTA, SCLK);
setbit(PORTA, SCLK);
}
setbit(PORTA, CS);
delay_10ms(); /* must wait >500us after reset */
/* set to 16 bit mode */
clearbit(PORTA, CS);
data = 0b00001000; /* clear bit 6 (write), reg #001 */
/* send command byte */
for(n=8; n>0; n--) {
clearbit(PORTA, SCLK);
clearbit(PORTA, DOUT); /* precondition DOUT */
if checkbit(data, (n-1)) {
setbit(PORTA, DOUT);
}
setbit(PORTA, SCLK); /* clock data in on rising SCLK */
}
data = 0b10000000; /* continuous conversion, 16 bits */
/* send data byte */
for(n=8; n>0; n--) {
clearbit(PORTA, SCLK);
clearbit(PORTA, DOUT); /* precondition DOUT */
if checkbit(data, (n-1)) {
setbit(PORTA, DOUT);
}
setbit(PORTA, SCLK);
}
setbit(PORTA, CS);
}
De functieaanroep om de temperatuurdata op te halen is vergelijkbaar, zoals hieronder getoond. De regel
data = 0b01010000;
vertelt de ADT7320 om register 2 te lezen voor de 16-bit data.
De code wacht dan minimaal 240ms voor de ADT7320 om een temperatuurconversie uit te voeren. 16 bits temperatuurdata worden uitgeklokt, daarna wordt de CS-lijn hoog gezet.
clearbit(PORTA, CS); /* data = command byte */
data = 0b01010000; /* read mode, register 2 */
/* read ADT7320 */
for(n=8; n>0; n--) {
clearbit(PORTA, SCLK);
clearbit(PORTA, DOUT); /* precondition DOUT */
if checkbit(data, (n-1)) {
setbit(PORTA, DOUT);
}
setbit(PORTA, SCLK);
}
delay_150ms(); /* temperature conversion */
delay_150ms();
/* read temperature data */
for(n=16; n>0; n--) {
clearbit(PORTA, SCLK);
if checkbit(PORTA, DIN) {
setbit(temp, (n-1));
}
setbit(PORTA, SCLK);
}
setbit(PORTA, CS);
De complete codeset is hier beschikbaar.
Hoe koud zijn mijn worstjes precies?
De ADT7320 werd ongeveer 30 minuten in de vriezer gelaten om te zien op welke temperatuur onze nieuwe aankoop uitkwam.
Figuur 3 toont de vriezertemperatuur op -18.83°C.

Figuur 3. De temperatuur van de vriezer op -18.83°C
Ik achtte dit indrukwekkend nauwkeurig, gegeven dat voedsel niet opgeslagen hoeft te worden tot dit niveau van temperatuurnauwkeurigheid. Ik meet daarna de temperatuur in mijn kantoor op een zomerse dag in het VK. 22.87°C zoals getoond in Figuur 4.

Figuur 4. De temperatuur van mijn kantoor op 22.87°C
Conclusie
Siliciumtemperatuursensoren hebben een lange weg afgelegd, worden extreem nauwkeurig, wat vitale-teken monitoring met een hoge mate van nauwkeurigheid mogelijk maakt. Hoewel de technologie erin gebaseerd is op goed gefundeerde principes, vereist de trimming om ze tot sub-graad nauwkeurigheid te brengen veel inspanning. Zelfs als dit niveau bereikt is, kunnen mechanische spanningen en solderen de winsten van uren kalibratie ongedaan maken.
De ADT7320 en ADT7422 vertegenwoordigen de top van jarenlange karakterisering om sub-graad precisie te bereiken, zelfs na solderen op de PCB.
Referenties
Huijsing, Johan en Michiel Pertijis. Precision Temperature Sensors in CMOS Technology. Springer, 2006.
Horowitz, Paul en Winfield Hill. The Art of Electronics. Cambridge University Press, april 2015.
Analog Circuit Design, Volume 2, Chapter 32. Linear Technology, december 2012.
AD590 datasheet. Analog Devices, Inc., januari 2013.
ADT5912 datasheet (te verschijnen). Analog Devices, Inc.
Ingebed
- Silicium: Eigenschappen, Productie en Marktverwachtingen
- Kosteneffectieve Binnen Temperatuur Mapping Met Laagkost Sensoren
- Meerdere DS18B20 1-Wire Sensoren Aan Een Raspberry Pi Koppelen Voor Nauwkeurige Temperatuurmonitoring
- Hoe Temperatuur Te Lezen Met Een DS18B20 Op Raspberry Pi 2
- Temperatuurmeting op Raspberry Pi met Maxim 1-Wire sensoren en DS2482 I2C-brug
- Accurate temperatuurbewaking in een serverkast met Raspberry Pi
- Infineon onthult hoge-precisie AMR-hoeksensors voor automotive & industriële gebruik
- ams verlicht Sensors Expo 2019 met high-tech optische-sensor-showcases
- Maxim Integrated's nieuwe sensoren knippen vermogen, grootte en verhogen nauwkeurigheid voor wearables gezondheid
- IBASE lanceert robuuste COM Express Modules (ET875 & ET870) met ondersteuning voor ‑40°C tot +85°C voor IoT & Industriële toepassingen
- Uitgebreide Gids voor Sensor Typen en Schakelingsschema's