Temperatursensor Prosjekt: Digital Temperatursensor ICs
Mark Harris
Digitale temperatursensorer tilbyr den enkleste måten å måle og legge inn en svært nøyaktig temperaturavlesning i en mikrokontroller eller annen logisk enhet. I den siste artikkelen i denne temperatursensorserien så vi på analoge temperatursensorer. Selv om disse kan virke enklere å implementere ved å bare ta en enkel ADC-lesing, for å få den mest nøyaktige måling, må du kalibrere HVER enhets ADC under produksjon, noe som ikke alltid er mulig. I denne artikkelen dykker vi inn i flere forskjellige digitale temperatursensoralternativer. Digitale temperatursensorer vil typisk være dyrere enn en enkel analog temperatursensor. Men den enkle og praktiske produksjonen ved hjelp av disse enhetene gjør ofte tilleggskostnaden verdt hvor høye målepresisjon er nødvendig.
Digitale temperatursensorer Er den femte typen sensor som vi ser på i denne serien. Vi avslutter denne serien med den endelige artikkelen, som vil sette opp alle sensorene vi har testet mot hverandre i en head to head-konkurranse over et bredt spekter av miljøforhold for å tillate oss å sammenligne funksjonalitet, nøyaktighet og oppførsel. Vi begynte serien med en innledende artikkel der vi bygget et sett med maler for standard temperatursensorkort. Både analoge og digitale versjoner kan stables ved bruk av mezzaninkontakter eller leses uavhengig av kantkontakter. Vi skal bygge vertstavler for alle disse sensorene senere i serien, noe som gjør at vi kan lese data fra en enkelt sensor for å validere funksjonaliteten eller lese hele bunken med brett, slik at vi kan logge dataene fra dem alle sammen.
i denne serien skal vi se på et bredt spekter av temperatursensorer, og snakke om fordelene og ulempene, samt noen typiske topologier for implementeringen. Serien vil dekke følgende sensortyper:
- NEGATIVE Temperaturkoeffisient (NTC) termistorer
- Positive Temperaturkoeffisient (PTC) termistorer
- Motstandstemperaturdetektorer (RTD)
- Analoge Temperatursensor ICs
- Termoelementer
som med mine prosjekter finner du Detaljer om prosjektet, skjemaer, og styret filer på github sammen med De Andre Temperatursensor Implementeringer. Prosjektet er utgitt under open-source mit-lisensen, som lar deg bruke designene eller deler av dem til personlige eller kommersielle formål, som du ønsker.
Digital Temperatursensor ICs
Anta at du bare er interessert i å lese utgangen fra en temperatursensor ved hjelp av en mikrokontroller eller annen logisk enhet. I så fall er en digital temperatursensor elektrisk det enkleste alternativet å implementere. Digitale temperatursensorer kan tilby gode nivåer av nøyaktighet som alle sensing, kompensasjon, og konvertering er gjort på chip. Det er ikke nødvendig å kalibrere mikrokontrollerens ADC (eller ekstern ADC). Du trenger heller ikke å bekymre deg for elektromagnetisk interferens fra nærliggende spor eller andre enheter montert på forbindelsene mellom den analoge temperatursensoren og mikrokontrolleren som utilsiktet kan påvirke temperaturavlesningen.
i dette prosjektet skal vi implementere fire forskjellige digitale temperatursensoralternativer med varierende opplø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 (°C) |
+125°C |
+60°C |
+125°C |
+125°C |
Sensing Range |
Lokalt |
Lokalt |
Remote |
Lokalt |
Oppløsning (Bits) |
||||
Nøyaktighet (°C) |
±0.5°C (+10°C til + 85°C) ±2°C (-55°C til 125 hryvnias C) |
±0.2°C |
±1°C (-20°C t +105°C) |
±0.1° |
Driftstemperatur (°C) |
-55°C til + 125°C |
-40°C til + 125°C |
-40°C til + 125°C |
-40°C til + 125°C |
Funksjoner |
1 Wire Buss, Parasittiske Makt |
I2C |
I2C, SMBus |
I2C |
Min Forsyningsspenning |
3 V |
2.15 V |
1.62 V |
1.9 V |
Maks Forsyningsspenning (V) |
3.7 V |
5.5 V |
3.6 V |
3.6 V |
Strømforbruk (uA)) |
4 mA (når du leser lavt logikknivå) |
45 ua tomgang |
700 uA i konvertering, |
195 nA |
Produsent |
Maxim Integrert |
Sensirion AG |
Microchip |
Silicon Labs |
Pakke |
8-MSOP |
8-VFDFN |
8-VDFN |
6-DFN |
JEG har tatt MED EMC1833T fordi det er en fascinerende sensor for MEG. Det er en ekstern temperaturfølerenhet, noe som betyr at den ikke bruker en sensor som er plassert inne i komponenten. I stedet registrerer det temperatur ved å konvertere utgangen fra en ekstern sensor, som i dette tilfellet er en transistor, til et digitalt signal. Jeg er ikke sikker på at det nødvendigvis tilhører denne «digital temperatursensor» kategorien, da den ikke passer helt sammen med de andre sensorene vi ser på. Likevel er transistorer vanligvis ikke kjent som å bli brukt som temperatursensorer, så jeg ante ikke hvor jeg skulle sette den. Det som fascinerer meg med denne sensoren er at den kan måle temperatur ved hjelp av nesten hvilken som helst transistor. Hvis du designer EN ASIC, kan du enkelt inkludere en ekstra transistor på dysen for dette formålet. Du kan da bruke denne transistoren, som kan leses av EN sensor som EMC1833T, for å ta en ekstern måling av dørtemperaturen uten å måtte legge til ytterligere kompleksitet i silisiumet ditt. En annen måte å se på dette er at du kan overvåke temperaturen på dysen din uten å pådra seg noen teknisk risiko forbundet med å designe og bygge en skreddersydd digital temperatursensor i silisiumet.
Digital Sensor Implementering: MAX31826MUA + T
DEN første sensoren vi skal implementere ER MAX31826 produsert Av Maxim Integrated. Denne sensoren kjører på en 1-Tråds buss i stedet for den mer typiske I2C eller SPI-bussen. Et potensielt problem er at 1-Wire ikke vil bli tilbudt som en kommunikasjonsprotokoll av mikrokontrolleren som prosjektet ditt er basert på. Det er imidlertid en enkel protokoll til bit-bang og har en betydelig fordel i forhold til de mer populære valgene ved at den bare trenger to ledninger for å betjene sensoren. Inkludert strømforsyning krever I2C fire ledninger, OG SPI trenger fem ledninger. Derimot krever 1-Ledning bare en bakke og en datalinje for de fleste applikasjoner, da den kan slå seg av datalinjen ved hjelp av en parasittisk kraftteknikk. Integrert i sensoren er en kondensator som kan opprettholde strømforsyningen til IC i perioder når datalinjen er i lav tilstand, noe som fjerner behovet for en dedikert spenningsforsyning under de fleste normale driftsforhold. Dette kan være en veldig praktisk løsning for brett som har ekstremt begrenset plass tilgjengelig.
En annen interessant egenskap ved sensoren og dens 1-Ledningsbuss er evnen til å angi en 4-byteadresse for enheten ved hjelp av manuelt valgbare pinner installert på enhetspakken. Dette gjør det mulig å installere opptil 16 temperatursensorer på en enkelt 1-Tråds databuss ved å gi hver enhet en unik adresse. Dette kan være et svært praktisk alternativ hvis du er kort på mikrokontrollerpinner og samtidig krever sensingfunksjoner ved hjelp av et stort antall temperatursensorer.
I forhold til sensorene vi har sett på i de tidligere artiklene i denne serien, ER MAX31826 IKKE bare svært nøyaktig, men leverer også høyoppløselige data. Sensoren tilbyr + / – 0.5°C nøyaktighet på mellom -10°C og +85°C, med +/- 2°C nøyaktighet over sin fulle temperatur spekter av -55°C til +125°C. Alle sensoravlesninger er levert som 12-bit-verdier, som er en høyere oppløsning enn de fleste mikrokontrollere tilbyr.
SOM temperatursensor HAR MAX31826 mye å tilby, men DEN er også utstyrt med en innebygd 1 kB EEPROM som en bonusfunksjon. Jeg antar at de hadde litt ledig plass igjen på terningen. Hvis mikrokontrolleren din ikke har en integrert EEPROM, og du må lagre noen konfigurasjonsdata for søknaden din, har denne temperatursensoren dekket deg. Hvis du trenger ekstra ikke-flyktig lagring, vil denne temperatursensoren redusere komponentantallet og spare bordplass.
databladet anbefaler at du slår enheten direkte i stedet for å bruke parasittisk busskraft når temperaturen kan overstige 100°C. mens de fleste typiske applikasjoner ikke trenger å nå disse temperaturnivåene, vil testene vi setter sensoren gjennom, overstige 100°C. derfor, for denne øvelsen, følger vi anbefalingen om å slå enheten direkte i stedet for å utforske det fascinerende parasitære strømalternativet.
styrets form og generelle layout kommer fra prosjektmalen vi opprettet i introduksjonen til denne serien. Siden vi ikke bruker noen av de vanlige kommunikasjonsbussene, har jeg fjernet de tilknyttede nettene og deres komponenter fra brettet. Likevel har jeg forlatt tilkoblingene på stablekontakten for å sikre at dette ikke forårsaker problemer for andre stablede sensorer. Med 1-Tråds bussen trenger vi bare å bruke chip select pin for å kommunisere tilbake til verts mikrokontroller.
Digital Sensor Implementering: STS-30-DIS
jeg har brukt STS-30-Dis produsert Av Sensirion i et tidligere prosjekt på grunn av sin utrolige presisjon og kalibrerte indikasjoner som kan spores TIL Nist. Dette var nødvendig da instrumenteringen ble utviklet for et næringsmiddelfirma, som var nødvendig for å samle inn data for regjeringens rapporteringsformål. Med et lite fotavtrykk, bredt spenningsområde, utrolig nøyaktighet og linearisert 16-biters digital utgang, er det mye å elske om denne enheten hvis du bare trenger positiv temperaturføling. HVIS du trenger å føle temperaturer under frysepunktet, ER sts-30A-DIS-varianten bilkvalifisert og har et sensorområde fra -40°C til 125°C. dette økte sensorområdet kommer Imidlertid til en liten kostnad for den generelle nøyaktigheten.
i forrige analoge temperatursensorer artikkelen snakket jeg om hvor gode analoge temperatursensorer er for applikasjoner som prosessovervåking, for å slå en vifte på og av, eller for andre termiske styringssystemer som kan fungere uten inngrep fra en mikrokontroller. STS-30 tilbyr EN VARSELPINNE som kan brukes til å oppfylle en lignende funksjon. Det er ment for tilkobling til en avbruddspinne av en mikrokontroller; det har imidlertid også et fullt applikasjonsnotat dedikert til det, og det kan brukes til å bytte laster automatisk. Evnen til å grensesnitt til mikrokontrollerens avbruddsfunksjon kan være avgjørende. Det gjør at sensoren umiddelbart kan varsle mikrokontrolleren med et høyt prioritert signal om at noe må gjøres umiddelbart, i stedet for å stole på sjeldne mikrokontroller polling av sensoren og respons på lesedataene. HVIS VARSLINGSUTGANGEN er koblet til en transistor for å gjøre det mulig å kjøre en last, kan sensoren brukes til både overvåking/logging, samt å ha en autonom termisk styringsfunksjon. Sammenlignet med de analoge løsningene, kan dette oppsettet godt gjøre den digitale STS-30 til et billigere alternativ. En separat komparator vil ikke være nødvendig, og terskelen for VARSELPINNEN kan konfigureres av brukeren via en mikrokontroller / HMI uten at kravet om at den er fabrikkinnstilt.
ENHETENE I STS-30-serien bruker alle en i2c-buss for kommunikasjon. Skjematisk vi implementerer for denne artikkelen inkluderer ikke noen av pull-up motstander som er generelt nødvendig for kommunikasjon bussen til å fungere riktig. Disse pull-up motstander vil i stedet bli montert på vert styrene. Som vi trenger bare ett sett med pull-up motstander per buss, legge motstander til hver sensor ville legge flere pull-up motstander til bussen og kan føre til feil. Dessuten vil alle motstandene koblet parallelt redusere deres generelle motstand.
ADR-pinnen lar oss velge mellom to forskjellige adresser for enheten, slik at vi kan koble to STS – 30-komponenter til samme i2c-buss. Selv om dette kanskje ikke er like imponerende som evnen TIL MAX31826-enheten på 1-Ledningsbussen, er det fortsatt praktisk at det tillater oss å bruke mer enn en enhet. JEG trekker ADDR-pin til logic low (GND) da dette setter standardadressen til å være 0x4A, med logikk trukket til høy tilstand, dette setter den til den alternative adressen til 0x4B.
jeg liker pakken PÅ STS-30 som den er kompakt, men fortsatt ikke så gal, så du kan håndmontere brettet ditt hvis du bruker en stencil. Sensorpakken pluss en 0603 avkoblingskondensator er sammen omtrent samme størrelse som MAX31826 vi så på ovenfor. Med en mindre kondensator, ville det passe på en høy tetthet styret godt. Den store bakken puten under IC gir en utmerket bane for overføring av varme fra et bakkeplan til temperatur sensing krysset inne I IC. Dette gjør det til et perfekt valg for å plassere ved siden av en hvilken som helst enhet, for eksempel en stor MOSFET eller en regulator, som bruker bakkeplanet til å dumpe overflødig varme inn i brettet. Plassere IC i nærheten av varmekilden vil gi mer nøyaktig temperatur sensing resultater.
Digital Sensorimplementering: EMC1833T
SOM jeg tidligere nevnte, finner JEG EMC1883-enheten produsert Av Microchip fascinerende, ikke bare fordi DEN har en rekke fantastiske funksjoner, men at den kan lese temperaturen sensert av en transistorkryss. STS – 30 vi så på ovenfor, hadde en alarmavbruddspinne utløst av en absolutt verdi; EMC1883 kan imidlertid konfigureres til også å generere et varsel basert på endringshastigheten for den senserte temperaturen. Denne endringsvarslingen kan tillate at intelligente varmestyringsløsninger slås på automatisk i påvente av deres behov i stedet for etter hendelsen. Dette har potensial til å forbedre enhetens pålitelighet som helhet ved nøye styring av driftstemperaturen. SOM MED STS-30, er det fullt programvare konfigurerbar, noe som gir betydelige fordeler i forhold til ethvert fabrikkinnstillingsalternativ som du sannsynligvis vil trenge å implementere hvis du brukte en helt analog termostat for å oppnå de samme resultatene.
den spesifikke modellen Til EMC8xx-serien som vi tester, støtter bare sensing av et enkelt veikryss. Det finnes imidlertid andre modeller i serien som kan gi sensing for opptil fem veikryss.
som STS-30 er dette en i2c-basert sensor som plasserer installering av flere sensorer på en ENKELT I2C-buss. En forskjell er at implementeringen AV EMC1833T ADDR-pinnen er forskjellig fra sts-30-enhetens binære på/av-natur. Denne enheten kan du sette opp til seks separate adresser ved hjelp av ulike pull-up motstand verdier. ADR-pin fungerer også som en av avbruddstappene, som Fungerer Som Termisk Advarselspinne (sammen med termisk VARSEL / Advarsel 2-Pin). Som den forrige enheten installasjon, jeg vil ikke implementere pull-up motstander på i2c linjer på temperatursensoren styret. De må imidlertid monteres et sted i kretsen for å gjøre det mulig for sensorkommunikasjonsbussen å fungere riktig.
databladet anbefaler å bruke EN 2n3904 bipolar junction transistor som fjernmålingselement siden jeg ikke har en TILGJENGELIG CPU-transistor som skal brukes til målinger. Jeg bruker overflatemonteringsvarianten AV EN 2N3904 for å føle temperaturen på dette brettet. MMBT3904 er tilgjengelig fra nesten alle silisiumfabrikasjonsfirmaer som omhandler BJTs – i dette tilfellet valgte jeg å bruke EN Halvlederdel som den var best lager. Det var flere millioner tilgjengelig da jeg sist så På Octopart.
som jeg har gjort i tidligere artikler i denne serien, har jeg plassert temperaturfølerelementet, vår transistor, innenfor termisk pause. Jeg har plassert de ikke-sensoriske elementene bak termisk pause. DETTE forhindrer AT EMC1833T kan påvirke temperaturavlesningen negativt på grunn av varme som den kan generere seg selv.
Digital Sensor Implementering: Si7051-A20-IMR
Endelig har Vi Silicon Labs Si7051-A20. Det er resultatene fra denne enheten som jeg er mest spent på å se i hele denne serien. MAX31826 ER ganske presis sensor; Si7051-A20 tilbyr imidlertid en imponerende + / – 0.1°c presisjon med et utrolig lavt strømforbruk på bare 195 nA ved prøvetaking. Strømforbruket er minst en størrelsesorden mindre enn alle de andre digitale temperatursensorene og vesentlig mindre enn de analoge temperatursensorene vi så på i forrige artikkel.
hvor mange sensorer har svært høye annonserte nøyaktigheter, gjelder tallene vanligvis bare for en begrenset del av det totale sensorområdet. I motsetning til Dette tilbyr Si7051-A12 den rapporterte nøyaktigheten i hele sensorområdet fra -40°C til + 125°C. Hva mer er at 0.1°C feil er et worst case scenario nøyaktighet, ikke gjennomsnittet eller minimum. Med sin 14-biters oppløsning valgt, Gir Si7051-A20 en repeterbar lesing av 0,01°C-jeg elsker nøyaktige og repeterbare sensorer!
Som med de to siste sensorene, Er Si7051-A20 en i2c-kompatibel sensor. Det tilbyr imidlertid ikke en adressepinne, noe som betyr at du bare kan ha en enkelt enhet koblet til i2c-bussen, med mindre du enten legger til en i2c-bryter eller bytter strøm mellom forskjellige enheter som er koblet til samme buss. Dette vil kreve ekstra IO-pinner og legge til kretskompleksitet, noe Som gjør Si7051-A20 mindre ideell for sensing av flere steder på tvers av kretskortet. Enheten har heller ingen varslings – / avbruddstapper, beregnet til bruk som en digital temperatursensor. Generelt, hvis du ønsker å automatisere termisk styring på kretskortet ditt, vil en mindre nøyaktig og lavere kostnadssensor være mer enn tilstrekkelig for en slik applikasjon.
En av funksjonene jeg virkelig likte OM STS-20 da jeg sist brukte DET, var NIST-sertifisert kalibrering på hver enhet, da klienten min krevde den funksjonen. Mens Si7051-A20 ikke nevner dette i databladet, har Det et kalibreringssertifikat tilgjengelig. Jeg var også i stand til å finne et annet mer spesifikt sertifikat for kalibrering; dette er imidlertid ikke på Silicon Labs nettsted, og kan derfor bare gjelde for de bestemte enhetene dette selskapet kjøpte. I så fall setter Det en forrang For Silicon Labs som utsteder spesifikke sertifikater for sine kunder.
Som de andre i2c implementeringer vi har dekket i denne artikkelen, I2C linjene for dette kortet ikke har pull-up motstander montert på data / klokke linjer. Du må inkludere en pull-up motstand på hver linje et sted i kretsen for å aktivere Si7051-A20 for å kommunisere vellykket.
6-pin DFN-pakken er også den enkleste å levere prototype ut av alle de leadless alternativene vi har dekket i denne artikkelen. Ved hjelp av en sjablong eller en lime deponering verktøy Som Voltera V-One, ville denne sensoren være utrolig lett å hånd sted og flyt ved hjelp av grunnleggende verktøy, noe som gjør den perfekt for prototyping i hjemmet eller på kontoret lab.
Konklusjon
vi har sett på fire forskjellige digitale temperatursensorer i denne artikkelen. Det er imidlertid hundrevis av andre digitale temperatursensoralternativer tilgjengelig som kan oppfylle de spesifikke kravene til prosjektet ditt, som er godt lager og tilgjengelig. Mens analoge temperatursensorer er gode på autonom prosessovervåking eller bruk med en analog til digital omformer, gir de digitale temperatursensorene betydelig bekvemmelighet når de integreres i et produkt som har en mikrokontroller. Som vi har sett i denne artikkelen, er det digitale temperatursensorer som kan generere avbrudd og varsler ved konfigurerbare terskler, noe som muliggjør spennende applikasjoner utover en fabrikkinnstilt komparatorbasert termostat som du sannsynligvis vil bruke med en analog temperatursensor. Presisjonen og nøyaktigheten til moderne digitale temperatursensorer kan være svært høy; men mange alternativer forbruker betydelig mer strøm enn sine analoge motstykker, noe som kan gi litt temperaturforskyvning fra selvoppvarming.
de mest populære og velfylte digitale temperatursensorene bruker vanligvis en i2c-buss for kommunikasjon; men SPI-og 1-Ledningsbussalternativer er også lett tilgjengelige for å møte tilgjengeligheten av alternative kommunikasjonsbusser for prosjektet ditt.
som jeg nevnte i starten av artikkelen, kan du finne detaljer om hver av disse sensorbrettene og alle de andre temperatursensorimplementeringene på GitHub. Disse designene er alle utgitt under open-source mit-lisensen, som lar deg gjøre stort sett alt med designet for personlig eller kommersiell bruk.
Vil Du vite mer om Hvordan Altium kan hjelpe deg med DITT NESTE PCB-design? Snakk med en ekspert På Altium.