temperatursensor projekt: Digital temperatursensor ICs
Mark Harris
digitale temperatursensorer tilbyder den enkleste måde at måle og indtaste en meget nøjagtig temperaturaflæsning i en mikrocontroller eller anden logisk enhed. I den sidste artikel i denne temperatursensorserie kiggede vi på analoge temperatursensorer. Selvom disse kan virke lettere at implementere ved blot at tage en simpel ADC-læsning, skal du kalibrere hver enheds ADC under produktionen for at få den mest nøjagtige måling, hvilket ikke altid er muligt. I denne artikel dykker vi ind i flere forskellige digitale temperatursensorindstillinger. Digitale temperatursensorer vil typisk være dyrere end en simpel analog temperatursensor. Imidlertid gør lethed og bekvemmelighed ved produktion ved hjælp af disse enheder ofte ekstraomkostningerne værd, hvor der kræves høje niveauer af målepræcision.
digitale temperatursensorer er den femte type sensor, som vi ser på i denne serie. Vi afslutter denne serie med den sidste artikel, som vil sætte alle de sensorer, vi har testet mod hinanden i en head to head-konkurrence over en lang række miljøforhold, så vi kan sammenligne deres funktionalitet, nøjagtighed og adfærd. Vi begyndte serien med en introduktionsartikel, hvor vi byggede et sæt skabeloner til standard temperaturfølerkort. Både de analoge og digitale versioner kan stables ved brug af mellemledsstik eller læses uafhængigt af deres kantstik. Vi bygger værtskort til alle disse sensorer senere i serien, som giver os mulighed for at læse data fra en enkelt sensor for at validere dens funktionalitet eller læse hele stakken af tavler, så vi kan logge dataene fra dem alle sammen.
i denne serie skal vi se på en bred vifte af temperatursensorer og tale om deres fordele og ulemper samt nogle typiske topologier til deres implementering. Serien dækker følgende sensortyper:
- negativ temperaturkoefficient (NTC) termistorer
- positiv temperaturkoefficient (PTC) termistorer
- Modstandstemperaturdetektorer (RTD)
- Analog temperatursensor ICs
- Digital temperatursensor ICs
- termoelementer
som med mine projekter kan du finde den bedste temperatursensor ICS
detaljer om projektet, skemaerne, og bestyrelsen filer på GitHub sammen med de andre temperatursensor implementeringer. Projektet frigives under open source MIT-licensen, som giver dig mulighed for at bruge designene eller en hvilken som helst del af dem til personlige eller kommercielle formål, som du ønsker.
Digital temperatursensor ICs
Antag, at du kun er interesseret i at læse output fra en temperatursensor ved hjælp af en mikrocontroller eller anden logisk enhed. I så fald er en digital temperatursensor elektrisk den mest enkle mulighed at implementere. Digitale temperatursensorer kan tilbyde fremragende niveauer af nøjagtighed, da al sensing, kompensation og konvertering sker på chip. Det er ikke nødvendigt at kalibrere din mikrocontrollers ADC (eller eksterne ADC). Du behøver heller ikke bekymre dig om elektromagnetisk interferens fra nærliggende spor eller andre enheder, der er monteret på forbindelserne mellem den analoge temperatursensor og mikrocontrolleren, som utilsigtet kan påvirke temperaturaflæsningen.
i dette projekt implementerer vi fire forskellige digitale temperatursensorer med forskellige opløsninger og sensorområder.
Name |
MAX31826MUA+T |
STS-30-DIS |
EMC1833T |
SI7051-A20-IMR |
Type |
Digital |
Digital |
Digital |
Digital |
Sensing Temp Min (°C) |
-55°C |
0°C |
-40°C |
-40°C |
Sensing Temp Max (Kr. C) |
+125°C |
+60°C |
+125°C |
+125°C |
sensorområde |
lokal |
lokal |
fjernbetjening |
lokal |
opløsning (Bits) |
||||
nøjagtighed (kur C) |
±0.5°C (+10 kr C til + 85 kr C) ±2°C (-55 kr. C til 125 kr. C) |
±0.2°C |
±1°C (-20°C t +105°C) |
±0.1 til C |
opererende Temp (Kurt C) |
-55°C til +125 kr |
-40°C til +125 kr |
-40°C til +125 kr |
-40°C til +125 kr |
funktioner |
1 Trådbus, parasitisk kraft |
I2C |
I2C, SMBus |
I2C |
min Forsyningsspænding |
3 V |
2.15 V |
1.62 V |
1.9 V |
maksimal Forsyningsspænding (V) |
3.7 V |
5.5 V |
3.6 V |
3.6 V |
nuværende forbrug (uA) |
4 mA (når du læser lavt logisk niveau) |
45 UA tomgang |
700 uA i konvertering, |
195 nA |
fremstiller |
Maksim integreret |
Sensirion AG |
mikrochip |
Silicon Labs |
pakke |
8-MSOP |
8-VFDFN |
8-VDFN |
6-DFN |
jeg har inkluderet EMC1833T, fordi det for mig er en fascinerende sensor. Det er en fjerntemperaturføler, hvilket betyder, at den ikke bruger en sensor placeret inde i komponenten. I stedet registrerer den temperatur ved at konvertere udgangen fra en ekstern sensor, som i dette tilfælde er en transistor, til et digitalt signal. Jeg er ikke sikker på, at den nødvendigvis hører til i denne “digitale temperatursensor” kategori, da den ikke passer helt sammen med de andre sensorer, vi ser på. Alligevel er transistorer ikke typisk kendt som at blive brugt som temperatursensorer, så jeg anede ikke, hvor jeg skulle sætte det. Det, der fascinerer mig ved denne sensor, er, at den kan måle temperaturen ved hjælp af næsten enhver transistor. Hvis du designer en ASIC, kan du nemt medtage en ekstra transistor på matricen til dette formål. Du kan derefter bruge denne transistor, som kan læses af en sensor som EMC1833T, til at foretage en ekstern måling af matricetemperaturen uden at skulle tilføje yderligere kompleksitet til dit silicium. En anden måde at se på dette er, at du kan overvåge temperaturen på din matrice uden at pådrage sig nogen teknisk risiko forbundet med at designe og opbygge en skræddersyet digital temperatursensor i silicium.
implementering af Digital Sensor: MAKS31826MUA+T
den første sensor, vi implementerer, er MAKS31826 produceret af maks integreret. Denne sensor kører på en 1-leder bus snarere end den mere typiske I2C-eller SPI-bus. Et potentielt problem er, at 1-leder sandsynligvis ikke vil blive tilbudt som en kommunikationsprotokol af den mikrocontroller, som dit projekt er baseret på. Det er dog en simpel protokol til bit-bang og har en betydelig fordel i forhold til de mere populære valg, idet den bare har brug for to ledninger til at betjene sensoren. Inklusive strømforsyning kræver I2C fire ledninger, og SPI har brug for fem ledninger. I modsætning hertil kræver 1-ledning kun en jord og en datalinje til de fleste applikationer, da den kan slukke for datalinjen ved hjælp af en parasitisk strømteknik. Integreret i sensoren er en kondensator, der kan opretholde strømforsyningen til IC i de perioder, hvor datalinjen er i lav tilstand, hvilket fjerner behovet for en dedikeret spændingsforsyning under de fleste normale driftsforhold. Dette kan være en meget bekvem løsning til brædder, der har ekstremt begrænset plads til rådighed.
et andet interessant træk ved sensoren og dens 1-leder bus er evnen til at indstille en 4-byte-adresse til enheden ved hjælp af manuelt valgbare stifter installeret på enhedspakken. Dette tillader installation af op til 16 temperatursensorer på en enkelt 1-leder databus ved at give hver enhed en unik adresse. Dette kan være en meget bekvem mulighed, hvis du mangler mikrocontroller-stifter og samtidig kræver sensorfunktioner ved hjælp af et stort antal temperatursensorer.
sammenlignet med de sensorer, vi har set på i de tidligere artikler i denne serie, er MAKS31826 ikke kun meget nøjagtig, men leverer også data i høj opløsning. Sensoren tilbyder + / – 0.5°C nøjagtighed på mellem -10°C og +85°C, med +/- 2°C nøjagtighed over sin fulde temperaturområde -55°C til +125°C. Alle sensoren aflæsninger leveres som 12-bit værdier, som er en højere opløsning end de fleste microcontrollere tilbud.
som temperatursensor har MAKS31826 meget at tilbyde, men den er også udstyret med en indbygget 1 kB EEPROM som en bonusfunktion. Jeg tror, de havde nogle ekstra plads tilbage på matricen. Hvis din mikrocontroller ikke har en integreret EEPROM, og du skal gemme nogle konfigurationsdata til din applikation, har denne temperatursensor dig dækket. Hvis du har brug for yderligere ikke-flygtig opbevaring, reducerer denne temperatursensor dit komponentantal og sparer plads på tavlen.
databladet anbefaler direkte strømforsyning til enheden i stedet for at bruge parasitisk buseffekt, når temperaturen kan overstige 100 liter C. mens de fleste typiske applikationer ikke behøver at nå disse temperaturniveauer, vil de tests, vi sætter sensoren igennem, overstige 100 liter C. Derfor følger vi anbefalingen om direkte strømforsyning til enheden i stedet for at udforske den fascinerende parasitiske strømindstilling.
tavleformen og det generelle layout kommer fra den projektskabelon, vi oprettede i introduktionen til denne serie. Da vi ikke bruger nogen af de sædvanlige kommunikationsbusser, har jeg fjernet de tilknyttede net og deres komponenter fra brættet. Alligevel har jeg forladt forbindelserne på stablingsstikket for at sikre, at dette ikke medfører problemer for andre stablede sensorer. Med 1-Ledningsbussen behøver vi kun at bruge chip select pin til at kommunikere tilbage til værtsmikrocontrolleren.
implementering af Digital Sensor: STS-30-DIS
jeg har brugt STS-30-DIS produceret af Sensirion i et tidligere projekt på grund af dets utrolige præcision og kalibrerede indikationer, der kan spores til NIST. Dette var nødvendigt, da instrumenteringen blev udviklet til et fødevareservicefirma, der kræves for at indsamle data til regeringsrapporteringsformål. Med et lille fodaftryk, bredt spændingsområde, utrolig nøjagtighed og lineariseret 16-bit digital udgang er der meget at elske om denne enhed, hvis du kun har brug for positiv temperaturføling. Hvis du har brug for at mærke temperaturer under frysepunktet, er STS-30A-DIS-varianten bilkvalificeret og har et sensorområde på -40 liter C til 125 liter C. dette øgede sensorområde koster dog en lille pris for den samlede nøjagtighed.
i den forrige artikel om analoge temperatursensorer talte jeg om, hvor store analoge temperatursensorer er til applikationer som procesovervågning, til at tænde og slukke for en ventilator eller til andre termiske styringssystemer, der kan fungere uden indblanding fra en mikrocontroller. STS-30 tilbyder en ALARMNÅL, der kan bruges til at udføre en lignende funktion. Det er beregnet til tilslutning til en interrupt pin af en mikrocontroller; men det har også en fuld ansøgning notat dedikeret til det, og det kan bruges til at skifte belastninger automatisk. Evnen til at interface til mikrocontrollerens afbrydelsesfunktion kan være afgørende. Det giver sensoren mulighed for straks at underrette mikrocontrolleren med et højt prioriteret signal om, at der straks skal gøres noget, snarere end at stole på sjælden mikrocontroller-afstemning af sensoren og respons på læsedataene. Hvis ALARMUDGANGEN er tilsluttet en transistor for at gøre det muligt at køre en belastning, kan sensoren bruges til både overvågnings – /logningsformål samt have en autonom termisk styringsfunktion. Sammenlignet med de analoge løsninger kan denne opsætning muligvis gøre den digitale STS-30 til en billigere mulighed. En separat komparator er ikke påkrævet, og tærsklen for ALARMSTIFTEN kan konfigureres af brugeren via en mikrocontroller/HMI uden kravet om, at den er fabriksindstillet.
STS-30-seriens enheder bruger alle en I2C-bus til kommunikation. Det skematiske, vi implementerer for denne artikel, inkluderer ikke nogen af de pull-up modstande, der generelt kræves for, at kommunikationsbussen fungerer korrekt. Disse pull-up modstande vil i stedet blive monteret på værtspladerne. Bus, vil tilføjelse af modstande til hver sensor tilføje flere pull-up modstande til bussen og kunne resultere i funktionsfejl. Desuden ville alle modstande forbundet parallelt reducere deres samlede modstand.
ADDR-pin giver os mulighed for at vælge mellem to forskellige adresser til enheden, så vi kan forbinde to STS-30-komponenter til den samme I2C-bus. Selvom dette muligvis ikke er så imponerende som kapaciteten på MAKS31826-enheden på 1-Ledningsbussen, er det stadig praktisk, fordi det giver os mulighed for at bruge mere end en enhed. Jeg trækker ADDR pin til logic lav (GND), da dette indstiller standardadressen til at være 0h4a, med logik trukket til høj tilstand, dette sætter den til den alternative adresse på 0h4b.
jeg kan godt lide pakken på STS-30, da den er kompakt, men stadig ikke for skør, så du kan håndmontere dit bord, hvis du bruger en stencil. Sensorpakken plus en 0603 afkoblingskondensator er sammen omtrent samme størrelse som den MAKS31826, vi kiggede på ovenfor. Med en mindre kondensator passer den meget godt på et højdensitetskort. Den store jordpude under IC giver en fremragende sti til overførsel af varme fra et jordplan til temperaturfølerforbindelsen inde i IC. Dette gør det til et perfekt valg til placering ved siden af enhver enhed, såsom en stor MOSFET eller en regulator, der bruger jordplanet til at dumpe overskydende varme i brættet. Placering af IC i nærheden af varmekilden giver mere nøjagtige temperaturfølerresultater.
implementering af Digital Sensor: EMC1833T
som jeg tidligere nævnte, finder jeg EMC1883-enheden produceret af mikrochip fascinerende ikke kun fordi den har en række fantastiske funktioner, men at den kan læse temperaturen, der registreres af et transistorforbindelse. STS-30, Vi kiggede på ovenfor, havde en alarmafbrydelsespind udløst af en absolut værdi; EMC1883 kan dog konfigureres til også at generere en alarm baseret på ændringshastigheden for den registrerede temperatur. Denne ændringsalarm kan gøre det muligt at tænde intelligente termiske styringsløsninger automatisk i forventning om deres behov snarere end efter begivenheden. Dette har potentialet til at forbedre enhedens pålidelighed som helhed ved omhyggelig styring af dens driftstemperatur. Som med STS-30 er den fuldt programmerbar, hvilket giver betydelige fordele i forhold til enhver fabriksindstilling, som du sandsynligvis skal implementere, hvis du bruger en fuldt analog termostat for at opnå de samme resultater.
den specifikke model af Emc8h-serien, som vi tester, understøtter kun sensing af et enkelt kryds. Der er dog andre modeller i serien, der kan give sensing i op til fem kryds.
ligesom STS-30 er dette en I2C-baseret sensor, der kan rumme installation af flere sensorer på en enkelt I2C-bus. En sondring er, at implementeringen af EMC1833T ADDR pin er forskellig fra den binære on/off-karakter af STS-30-enheden. Denne enhed gør det muligt at indstille op til seks separate adresser ved hjælp af forskellige pull-up modstand værdier. ADDR-stiften fungerer også som en af afbrydelsesstifterne, der fungerer som den termiske Advarselsstift (sammen med den termiske alarm/advarsel 2-Pin). Ligesom den tidligere enhedsinstallation vil jeg ikke implementere pull-up modstande på I2C-linjerne på temperaturfølerkortet. De skal dog monteres et sted i dit kredsløb for at gøre det muligt for sensorkommunikationsbussen at fungere korrekt.
databladet anbefaler at bruge en 2N3904 bipolar junction transistor som remote sensing element, da jeg ikke har en tilgængelig CPU transistor til brug for målinger. Jeg bruger overflademonteringsvarianten af en 2N3904 til at registrere temperaturen på dette bord. Mmbt3904 er tilgængelig fra stort set alle siliciumfabrikationsfirmaer, der beskæftiger sig med BJT ‘ er – i dette tilfælde valgte jeg at bruge en Halvlederdel, da den var den bedst lagerførte. Der var flere millioner til rådighed, da jeg sidst kiggede på Octopart.
som jeg har gjort i tidligere artikler i denne serie, har jeg placeret temperaturfølerelementet, vores transistor, inden for termisk pause. Jeg har placeret de ikke-sensing elementer bag den termiske pause. Dette forhindrer EMC1833T i at kunne påvirke temperaturaflæsningen negativt på grund af enhver varme, som den selv kan generere.
Digital Sensor implementering: Si7051-A20-IMR
endelig har vi Silicon Labs Si7051-A20. Det er resultaterne fra denne enhed, som jeg er mest begejstret for at se i hele denne serie. MAKS31826 er en ganske præcis sensor; Si7051-A20 tilbyder dog en imponerende +/- 0.1 liter C-præcision med et utroligt lavt strømforbrug på kun 195 nA ved prøveudtagning. Strømforbruget er i det mindste en størrelsesorden mindre end alle de andre digitale temperatursensorer og væsentligt mindre end de analoge temperatursensorer, vi kiggede på i den foregående artikel.
hvor mange sensorer har meget høje annoncerede nøjagtigheder, gælder tallene normalt kun for en begrænset del af det samlede sensorområde. I modsætning hertil tilbyder Si7051-A12 den rapporterede nøjagtighed på tværs af sit fulde -40-karosseri C til +125-karosseri C-sensorområde. Hvad mere er, at 0.1-fejlen er en værst tænkelig scenarienøjagtighed, ikke gennemsnittet eller minimumet. Med den valgte 14-bit opløsning giver Si7051-A20 en gentagelig aflæsning på 0,01 liter C – Jeg elsker nøjagtige og gentagelige sensorer!
som med de to sidste sensorer er Si7051-A20 en I2C-kompatibel sensor. Det tilbyder dog ikke en adressepinkode, hvilket betyder, at du kun kan have en enkelt enhed tilsluttet I2C-bussen, medmindre du enten tilføjer en I2C-kontakt eller skifter strøm mellem forskellige enheder, der er tilsluttet på den samme bus. Dette ville kræve yderligere io-stifter og tilføje kredsløbskompleksitet, hvilket gør Si7051-A20 mindre ideel til at registrere flere placeringer på tværs af dit printkort. Enheden har heller ikke nogen alarm – /afbrydelsesstifter, der er beregnet til udelukkende at blive brugt som en digital temperatursensor. Generelt, hvis du ønsker at automatisere termisk styring på dit printkort, vil en mindre nøjagtig og lavere omkostningssensor være mere end tilstrækkelig til en sådan applikation.
en af de funktioner, jeg virkelig kunne lide ved STS-20, Da jeg sidst brugte den, var den NIST-certificerede kalibrering, der blev anvendt på hver enhed, da min klient krævede denne funktion. Mens Si7051-A20 ikke nævner dette i sit datablad, har det et kalibreringscertifikat tilgængeligt. Jeg var også i stand til at finde et andet mere specifikt kalibreringscertifikat; dette er dog ikke på Silicon Labs hjemmeside og kan derfor kun gælde for de særlige enheder, som dette firma har købt. I så fald sætter det en forrang for Silicon Labs, der udsteder specifikke certifikater til sine kunder.
ligesom de andre I2C-implementeringer, vi har dækket i denne artikel, har I2C-linjerne til dette kort ikke pull-up modstande monteret på data/urlinjerne. Du skal medtage en pull-up modstand på hver linje et eller andet sted i dit kredsløb for at gøre det muligt for Si7051-A20 at kommunikere med succes.
6-pin DFN-pakken er også den nemmeste at aflevere prototype ud af alle de leadless muligheder, vi har dækket i denne artikel. Ved hjælp af en stencil eller et pastaaflejringsværktøj som Voltera V-One ville denne sensor være utrolig let at placere og genblæse ved hjælp af grundlæggende værktøjer, hvilket gør den perfekt til prototyping i hjemmet eller kontorlaboratoriet.
konklusion
vi har kigget på fire forskellige digitale temperatursensorer i denne artikel. Der er dog hundredvis af andre digitale temperatursensorindstillinger tilgængelige, der kan opfylde de specifikke krav i dit projekt, som er velassorterede og tilgængelige. Mens analoge temperatursensorer er fremragende til autonom procesovervågning eller brug med en analog til digital konverter, tilbyder de digitale temperatursensorer betydelig bekvemmelighed, når de integreres i et produkt, der har en mikrocontroller. Som vi har set i denne artikel, er der digitale temperatursensorer, der kan generere afbrydelser og advarsler ved konfigurerbare tærskler, hvilket giver mulighed for spændende applikationer ud over en fabrikssæt komparatorbaseret termostat, som du sandsynligvis vil bruge med en analog temperatursensor. Præcisionen og nøjagtigheden af moderne digitale temperatursensorer kan være usædvanlig høj; imidlertid forbruger mange muligheder betydeligt mere strøm end deres analoge modstykker, hvilket kan give en vis temperaturforskydning fra selvopvarmning.
de mest populære og velassorterede digitale temperatursensorer bruger typisk en I2C-bus til kommunikation; SPI og 1-leder busindstillinger er dog også let tilgængelige for at imødekomme tilgængeligheden af alternative kommunikationsbusser til dit projekt.
som jeg nævnte i starten af artiklen, kan du finde detaljer om hvert af disse sensorkort og alle de andre temperatursensorimplementeringer på GitHub. Disse designs er alle frigivet under open source MIT-licensen, som giver dig mulighed for at gøre stort set alt med designet til personlig eller kommerciel brug.
vil du gerne vide mere om, hvordan Altium kan hjælpe dig med dit næste PCB-design? Tal med en ekspert på Altium.