Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial Internet of Things >> Ingebed

Precisiemetingen uitvoeren met siliconen temperatuursensoren

De elektronica-industrie eist steeds meer nauwkeurigheid en temperatuurmeting is geen uitzondering. Er bestaan ​​veel oplossingen voor temperatuurmeting, elk met hun voor- en nadelen. Siliciumtemperatuursensoren, hoewel vrij lineair, hebben nooit de nauwkeurigheid van andere oplossingen geboden. Recente ontwikkelingen op het gebied van temperatuurmeting van silicium betekenen echter dat een hoge resolutie en precisie nu kan worden bereikt met een siliciumoplossing.

Een nieuwe vriezer

Het was maart 2020 en het VK stond op het punt in lockdown te gaan. De wereld sloeg voedsel in voor het geval de supermarkten zouden sluiten, en de toekomst zag er onzeker uit. Toen stopte de vriezer in het huishouden van Bramble met werken. Met de woorden van het Kenny Rogers-nummer, "You Picked a Fine Time to Leave me..." in mijn hoofd echoënd, gingen we online op zoek naar een nieuwe vervanger.

Een paar dagen later arriveerde onze nieuwe vriezer, compleet met een digitale temperatuurweergave op het voorpaneel, zoals de wens van mevrouw Bramble was. De aanbevolen instelling was -18°C en na een uur was het apparaat op de juiste temperatuur en klaar om voedsel te accepteren. Ik was sceptisch over de nauwkeurigheid van de temperatuuruitlezing, maar het kon me niet schelen zolang het voedsel maar bevroor. Een probleem is echter dat een technische geest een rusteloze geest is, en na dagen van ogenschijnlijk wijze digitale uitlezingen die me zonder te knipperen met de ogen staren en me uitdagen met zijn zelfverzekerde uitspraken, brak ik. Ik moest de nauwkeurigheidsclaims van deze nieuwe toevoeging aan onze keuken testen.

Temperatuursensoren

Er is een grote verscheidenheid aan temperatuursensoren die worden gebruikt in industriële toepassingen, elk met voor- en nadelen. Aangezien veel teksten de werking van verschillende temperatuursensoren beschrijven, herhaal ik de details hier niet, maar geef ik hieronder een samenvatting.

Thermokoppels

Thermokoppels bieden een goedkope, matig nauwkeurige manier om zeer hoge temperaturen te meten. Ze zijn afhankelijk van een spanning die wordt opgewekt tussen twee knooppunten, elk gemaakt van verschillende metalen, die op verschillende temperaturen worden gehouden, zoals ontdekt door Thomas Seebeck in 1821. In het geval van een K-type thermokoppel (gemaakt van de legeringen Chromel en Alumel) geeft het een spanning van ongeveer 41μV/°C en kan worden gebruikt om temperaturen boven 1000°C te meten. Niettemin is het Seebeck-effect afhankelijk van een temperatuur verschil tussen twee knooppunten, dus terwijl het 'hete' knooppunt de gewenste temperatuur meet, moet het 'koude' knooppunt op een bekende temperatuur worden gehouden. Ironisch genoeg is er bij de koude kruising een andere temperatuursensor nodig om het temperatuurverschil te meten en onderdelen zoals de AD8494 bieden hiervoor de perfecte oplossing. Omdat thermokoppels fysiek klein zijn, hebben ze een lage thermische massa, dus ze reageren snel op temperatuurveranderingen.

RTD's

Om gematigde temperaturen (<500°C) te meten, worden resistieve temperatuurdetectoren (RTD's) veel gebruikt door de industrie. Deze apparaten bestaan ​​uit een metalen element dat een positieve verandering in weerstand vertoont met de temperatuur, meestal platina. De PT-100-sensor is inderdaad de meest gebruikte RTD in de industrie en dankt zijn naam aan het feit dat hij is gemaakt van platina (PT) en een weerstand heeft van 100Ω bij 0°C. Hoewel deze apparaten niet de hoge temperatuur van een thermokoppel meten, zijn ze zeer lineair en is hun uitlezing herhaalbaar. Een PT100 heeft een nauwkeurige stuurstroom nodig, waardoor een nauwkeurige spanningsval over de sensor wordt gecreëerd die evenredig is met de temperatuur. De weerstand van de aansluitdraden van de PT100 zorgt voor een fout in de weerstandsmeting van de sensor, dus Kelvin-sensing is typisch, wat resulteert in 3- of 4-draads sensoren.

Thermistors

Als er een goedkope oplossing nodig is en het temperatuurbereik laag is, volstaat vaak een thermistor. Deze apparaten zijn zeer niet-lineair, met een kenmerk gebaseerd op de Steinhart Hart-vergelijking, wat resulteert in een weerstandsvermindering bij toenemende temperatuur. Het voordeel van een thermistor is dat de weerstandsverandering groot is bij kleine temperatuurveranderingen, zodat ondanks de niet-lineariteit een hoge mate van nauwkeurigheid kan worden bereikt. Thermistoren hebben ook een snelle thermische respons. Individuele niet-lineariteiten van de thermistor zijn goed gedefinieerd, zodat ze kunnen worden gekalibreerd met behulp van componenten zoals de LTC2986.

Diodes, Diodes overal, maar geen (Vbe) Drop to Sink…

Ten slotte heb ik, om de echtheid van het nieuwe lid van het huishouden te testen, gekozen voor een siliconen temperatuursensor. Ze werken direct uit de doos, hebben geen koude junctie temperatuurcompensatie of linearisatie nodig, zijn verkrijgbaar met analoge en digitale uitgangen en zijn voorgekalibreerd . Tot voor kort boden ze echter slechts een matige nauwkeurigheid. Hoewel ze goed genoeg zijn om de gezondheidstoestand van elektronische apparatuur aan te geven, zijn ze nooit nauwkeurig genoeg geweest om bijvoorbeeld de lichaamstemperatuur te meten, waarvoor gewoonlijk een nauwkeurigheid van ± 0,1°C vereist is (volgens de ASTM E1112-norm). Dat is veranderd met de recente release van de ADT7422 en ADT7320 siliconen temperatuursensoren die kunnen meten tot resoluties van respectievelijk ±0,1°C en ±0,2°C.

Een siliciumtemperatuursensor maakt gebruik van de temperatuurafhankelijkheid van de Vbe . van een transistor , zoals gegeven door de Ebers Moll-vergelijking, benaderd door:

waar Ic is de collectorstroom, Is is de omgekeerde verzadigingsstroom van de transistor, q is de lading op een elektron (1,602 x 10 -19 Coulombs), k is de constante van Boltzmann (1,38 x 10 -23 ) en T is de absolute temperatuur.

De bovenstaande uitdrukking voor collectorstroom geldt ook voor de stroom in een diode; dus waarom gebruikt elk toepassingscircuit een transistor en geen diode? In werkelijkheid omvat de stroom in een diode ook een recombinatiestroom die het resultaat is van de elektronen die recombineren met gaten wanneer ze door het uitputtingsgebied van de pn-overgang gaan en dit geeft een niet-lineariteit van de stroom van de diode met Vbe en temperatuur. Deze stroom verschijnt ook in een bipolaire transistor, maar vloeit naar de basis van de transistor en verschijnt dus niet in de collectorstroom, vandaar dat de niet-lineariteit veel minder is.

Herschikken van het bovenstaande geeft

Is is klein vergeleken met Ic , zodat we de ‘1’ . kunnen negeren term in de bovenstaande vergelijking. We kunnen nu zien dat Vbe verandert lineair volgens een logaritmische verandering in Ic . We kunnen ook zien dat als Ic en Is constant zijn dan Vbe verandert lineair met de temperatuur, aangezien k en q zijn ook constant. Het is een gemakkelijke taak om een ​​constante collectorstroom in een transistor te forceren en te meten hoe de Vbe verandert met de temperatuur.

Is is gerelateerd aan de geometrie van de transistor en is sterk afhankelijk van temperatuur. Zoals veel siliciumapparaten verdubbelt de waarde ervan bij elke 10 °C temperatuurstijging. Hoewel het effect van deze stroomverandering wordt verminderd door de ‘ln’ functie hebben we nog steeds het probleem dat de absolute waarde van Vbe verandert van transistor naar transistor en dus is kalibratie nodig. Praktische siliciumtemperatuursensoren gebruiken dus twee identieke transistors en forceren een collectorstroom van Ic in één en 10Ic in de andere. Identieke transistoren en ratiometrisch nauwkeurige stromen zijn eenvoudig te fabriceren in een geïntegreerde schakeling. Daarom gebruiken de meeste siliciumsensoren deze architectuur. De logaritmische verandering in stroom veroorzaakt een lineaire verandering in Vbe en het verschil in de Vbe 's wordt dan gemeten.

Uit de bovenstaande vergelijking, voor twee transistors die op dezelfde temperatuur worden gehouden , het verschil tussen hun Vbe 's wordt gegeven door

sinds

Dat kunnen we zien

Door verschillende stromen door elke transistor te forceren en het verschil in Vbe . te meten , hebben we de niet-lineaire Is . verwijderd term, het effect van verschillende absolute Vbe's en alle andere niet-lineaire effecten die verband houden met de geometrie van de transistor. Sinds k , q en ln 10 zijn allemaal constant, de verandering in Vbe is evenredig met de absolute temperatuur (PTAT). Voor een 10x verschil in stromen, het verschil in de twee Vbe ’s verandert lineair met de temperatuur bij ongeveer 198μV/°C. Een vereenvoudigde schakeling om dit te bereiken wordt getoond in figuur 1.


Figuur 1. Een basiscircuit voor het meten van temperatuur.

De stromen in figuur 1 moeten zorgvuldig worden gekozen. Als de stroom te hoog is, bederven aanzienlijke zelfverhitting en spanningsdalingen over de interne weerstanden in de transistor het resultaat. Als de stroom te laag is, zorgen lekstromen in de transistor voor aanzienlijke fouten.

Er moet ook worden opgemerkt dat de bovenstaande vergelijkingen betrekking hebben op de collector stroom van de transistor terwijl figuur 1 een constante emitter toont stroom die in de transistor wordt geïnjecteerd. De transistors kunnen zo worden ontworpen dat de stroomverhouding tussen collector en emitter goed is vastgesteld (en bijna gelijk is), dus de collectorstroom is evenredig met de emitterstroom.

Dit is slechts het begin van het verhaal. Om een ​​nauwkeurigheid van ± 0,1°C te krijgen met een siliconentemperatuursensor, moet er een uitgebreide karakterisering en bijsturing worden uitgevoerd.

Is het een vogel? Is het een vliegtuig?

Nee, het is een superthermometer. Ja, die bestaan. De niet-gekalibreerde siliconen temperatuursensor moet in een met siliconenolie gevuld bad worden geplaatst en tot een nauwkeurige temperatuur worden verwarmd, gemeten met een superthermometer. Deze apparaten kunnen meten met een nauwkeurigheid van meer dan vijf decimalen. Zekeringen in de sensor zijn gesprongen om de versterking van de temperatuursensor aan te passen en zo de output te lineariseren met behulp van de vergelijking y =mx + C . De siliconenolie zorgt voor een zeer uniforme temperatuur, zodat veel apparaten in één cyclus kunnen worden gekalibreerd.

De ADT7422 heeft een nauwkeurigheid van ±0,1°C, over een temperatuurbereik van 25°C tot 50°C. Dit temperatuurbereik is gecentreerd rond de typische menselijke lichaamstemperatuur van 38°C, waardoor de ADT7422 ideaal is voor nauwkeurige bewaking van vitale functies. Voor industriële toepassingen is de ADT7320 zo getrimd dat hij een nauwkeurigheid heeft van ±0,2°C, maar over een groter temperatuurbereik van -10°C tot +85°C.


Figuur 2. De ADT7422 gemonteerd op een 0,8 mm dikke PCB

De kalibratie van de siliconen temperatuursensor is echter niet het enige probleem. Net als bij extreem nauwkeurige spanningsreferenties, kunnen spanningen op de matrijs de nauwkeurigheid van de sensor aantasten en moet rekening worden gehouden met de thermische uitzetting van de PCB, het leadframe, het plastic gietstuk en de blootliggende pads. Het soldeerproces voegt ook zijn eigen problemen toe. Het soldeerterugvloeiproces verhoogt de temperatuur van een onderdeel tot 260 °C, waardoor de plastic verpakking zacht wordt en het loden frame van de matrijs vervormt, zodat wanneer het onderdeel afkoelt en het plastic uithardt, er een mechanische spanning in de matrijs wordt opgesloten. De ingenieurs van Analog Devices besteedden vele manmaanden aan delicate experimenten om te ontdekken dat een PCB-dikte van 0,8 mm de perfecte sweet spot was en een nauwkeurigheid van ± 0,1°C kon worden bereikt, zelfs na het solderen.

In de software

Het grootste deel van de software van het systeem houdt zich bezig met het formatteren van de gegevens van de ADT7320 en het weergeven ervan op het LCD-scherm. Het verkrijgen van de gegevens van de ADT7320 is triviaal. Wanneer de processor wordt geïnitialiseerd, worden zowel de CS- als de SCLK-lijn hoog ingesteld en blijft de SCLK-lijn hoog tussen de conversies in. De CS-lijn wordt dan laag gehouden om een ​​datatransactie te initiëren. Met SPI worden gegevens ingelezen in de ADT7320 op de stijgende flank van de SCLK-lijn en uit op de dalende flank. De onderstaande code beschrijft de initialisatieroutine.

Om de seriële interface te resetten, wordt de CS-lijn laag genomen, de DOUT-lijn hoog genomen en de SCLK 40 keer geoscilleerd. De CS-lijn wordt dan hoog genomen. Dit klokt 40 '1's in de ADT7320, waardoor de seriële interface wordt gereset. Er is een vertraging van minstens 500us nodig nadat de SPI-bus is gereset.

Het volgende codeblok stuurt de opdrachtbyte naar de ADT7320 om aan te geven of de transactie een lezen of schrijven is en welk register moet worden geadresseerd. De lijn

data =0b00001000;

geeft de ADT7320 de opdracht om te schrijven om 0x01 te registreren. De ADT7320 wordt vervolgens geprogrammeerd om gegevens uit te voeren met een resolutie van 16 bits met behulp van de lijn

data =0b10000000;

De DOUT-lijn is vooraf geconditioneerd op '0', de MSB van de databyte wordt ondervraagd en de DOUT-lijn wordt hoog gezet als de MSB '1' is. De SCLK-lijn wordt hoog genomen om de gegevens naar de ADT7320 te klokken.

void reset_adt7320(void)            /* initialiseer ADT7320 */{     unsigned char n, data; /* reset de seriële interface */        clearbit(PORTA, CS); setbit (PORTA, DOUT); for(n=40; ​​n>0; n--)        {                clearbit(PORTA, SCLK); setbit (PORTA, SCLK); }        setbit(PORTA, CS); vertraging_10ms(); /* moet>500us wachten na reset */             /* ingesteld op 16 bit-modus */        clearbit(PORTA, CS); gegevens =0b00001000; /* clear bit 6 (write), reg #001 */        /* send command byte */        for(n=8; n>0; n--)        {                clearbit(PORTA, SCLK); clearbit(PORTA, DOUT); /* voorwaarde DOUT */                    if checkbit(data, (n-1))                {                        setbit(PORTA, DOUT); }                setbit(PORTA, SCLK); /* klokgegevens binnen bij stijgende SCLK */        }        data =0b10000000; /* continue conversie, 16 bits */        /* databyte verzenden */        for(n=8; n>0; n--)        {                clearbit(PORTA, SCLK); clearbit(PORTA, DOUT); /* voorwaarde DOUT */                    if checkbit(data, (n-1))                {                        setbit(PORTA, DOUT); }                setbit(PORTA, SCLK); }        setbit(PORTA, CS);}

De functieaanroep om de temperatuurgegevens op te halen is vergelijkbaar met de onderstaande afbeelding. De lijn

data =0b01010000;

vertelt de ADT7320 om register 2 te lezen voor de 16 bit data.

De code wacht vervolgens minimaal 240 ms totdat de ADT7320 een temperatuurconversie uitvoert. Vervolgens worden 16 bits temperatuurgegevens uitgeklokt, waarna de CS-lijn hoog wordt ingesteld.

     clearbit(PORTA, CS); /* data =opdrachtbyte */    data =0b01010000; /* leesmodus, register 2 */       /* read ADT7320 */    for(n=8; n>0; n--)    {         clearbit(PORTA, SCLK); clearbit(PORTA, DOUT); /* voorwaarde DOUT */                if checkbit(data, (n-1))            {                    setbit(PORTA, DOUT); }            setbit(PORTA, SCLK); }    delay_150ms(); /* temperatuurconversie */    delay_150ms(); /* temperatuurgegevens lezen */    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.

Dus hoe koud zijn mijn worsten precies?

De ADT7320 werd ongeveer 30 minuten in de vriezer gelaten om te zien bij welke temperatuur onze nieuwe aankoop was geregeld.

Afbeelding 3 laat zien dat de vriezertemperatuur -18,83°C is.


Figuur 3. De temperatuur van de vriezer bij -18,83°C

Ik vond dit indrukwekkend nauwkeurig, aangezien voedsel niet op dit niveau van temperatuurprecisie hoeft te worden bewaard. Ik heb toen de temperatuur in mijn kantoor gemeten op een zomerse dag in het VK. 22,87°C zoals weergegeven in afbeelding 4. 


Figuur 4. De temperatuur van mijn kantoor op 22,87°C

Conclusie

Siliciumtemperatuursensoren hebben een lange weg afgelegd en zijn extreem nauwkeurig geworden, waardoor het monitoren van vitale functies met een hoge mate van nauwkeurigheid kan worden bereikt. Hoewel de technologie erin gebaseerd is op goed onderbouwde principes, vereist het trimmen dat nodig is om ze tot op sub-graden nauwkeurigheidsniveaus te krijgen, aanzienlijke inspanning. Zelfs als dit nauwkeurigheidsniveau wordt bereikt, kunnen mechanische spanningen en solderen de winst van uren kalibratie gemakkelijk tenietdoen.

De ADT7320 en ADT7422 vertegenwoordigen het toppunt van jarenlange karakterisering om sub-graden precisie te bereiken, zelfs nadat ze op de PCB zijn gesoldeerd.

Referenties

Huijsing, Johan en Michiel Pertijis. Precisie temperatuursensoren in CMOS-technologie. Springer, 2006.
Horowitz, Paul en Winfield Hill. De kunst van elektronica . Cambridge University Press, april 2015.
Analog Circuit Design, Volume 2, Chapter 32. Linear Technology, december 2012.
AD590-gegevensblad. Analog Devices, Inc., januari 2013.
ADT5912-gegevensblad (wordt vrijgegeven). Analog Devices, Inc.


Ingebed

  1. Silicium
  2. Soorten sensoren met hun schakelschema's
  3. Infineon:AMR-gebaseerde hoeksensoren als enkele en dubbele matrijsversies
  4. ams om Sensors Expo 2019 te verlichten met innovatieve demonstraties
  5. Maxim's zorgsensoren voor ultrakleine wearables
  6. IBASE:COM Express-modules met een breed temperatuurbereik
  7. Huishoudelijke temperatuurstroom in kaart brengen met goedkope sensoren
  8. Meet temperaturen met een 1-draads DS18B20-sensor en Raspberry Pi
  9. Temperatuur aflezen met DS18B20 | Raspberry Pi 2
  10. Temperatuur meten met RASPBERRY PI
  11. Temperatuur bewaken met Raspberry Pi