projekt czujnika Temperatury: Cyfrowy Czujnik Temperatury ICs
Mark Harris
cyfrowe czujniki temperatury oferują najprostszy sposób pomiaru i wprowadzania bardzo dokładnego odczytu temperatury do mikrokontrolera lub innego urządzenia logicznego. W ostatnim artykule z tej serii czujników temperatury przyjrzeliśmy się analogowym czujnikom temperatury. Chociaż wydaje się to łatwiejsze do wdrożenia, po prostu wykonując prosty odczyt ADC, aby uzyskać najdokładniejszy pomiar, musisz skalibrować ADC każdego urządzenia podczas produkcji, co nie zawsze jest wykonalne. W tym artykule omawiamy kilka różnych opcji cyfrowych czujników temperatury. Cyfrowe czujniki temperatury będą zazwyczaj droższe niż zwykły Analogowy Czujnik Temperatury. Jednak łatwość i wygoda produkcji przy użyciu tych urządzeń często sprawiają, że dodatkowe koszty są opłacalne tam, gdzie wymagana jest wysoka precyzja pomiaru.
cyfrowe czujniki temperatury to piąty Typ czujników, na który patrzymy w tej serii. Zakończymy tę serię ostatnim artykułem, który będzie porównywał wszystkie czujniki, które przetestowaliśmy ze sobą w konkursie head to head w szerokim zakresie warunków środowiskowych, aby umożliwić nam porównanie ich funkcjonalności, dokładności i zachowania. Serię rozpoczęliśmy od artykułu wprowadzającego, w którym zbudowaliśmy zestaw szablonów dla standardowych kart czujników temperatury. Zarówno wersje analogowe, jak i cyfrowe mogą być układane w stos za pomocą złączy mezzanine lub odczytywane niezależnie od złączy krawędziowych. W dalszej części serii będziemy budować płyty hosta dla wszystkich tych czujników, co pozwoli nam odczytać dane z jednego czujnika w celu sprawdzenia jego funkcjonalności lub odczytać cały stos tablic, abyśmy mogli rejestrować dane z nich wszystkich razem.
w tej serii przyjrzymy się szerokiej gamie czujników temperatury, opowiemy o ich zaletach i wadach, a także o typowych topologiach ich implementacji. Seria obejmie następujące typy czujników:
- Termistory ujemnego współczynnika temperatury (NTC)
- Termistory dodatniego współczynnika temperatury (PTC)
- rezystancyjne Czujniki temperatury (RTD)
- Analogowy Czujnik Temperatury ICs
- Cyfrowy Czujnik Temperatury ICs
- termopary
podobnie jak w przypadku moich projektów, możesz Znajdź szczegóły projektu, schematy i pliki płyt na GitHub wraz z innymi implementacjami czujników temperatury. Projekt jest udostępniany na licencji open-source MIT, która pozwala na wykorzystanie projektów lub dowolnej ich części do celów osobistych lub komercyjnych, według własnego uznania.
Cyfrowy Czujnik Temperatury ICs
Załóżmy, że interesuje cię tylko odczyt wyjścia z czujnika temperatury za pomocą mikrokontrolera lub innego urządzenia logicznego. W takim przypadku cyfrowy czujnik temperatury jest elektrycznie najprostszą opcją do wdrożenia. Cyfrowe czujniki temperatury mogą oferować doskonały poziom dokładności, ponieważ wszystkie czujniki, kompensacja i konwersja są wykonywane na chipie. Nie ma potrzeby kalibracji ADC mikrokontrolera (lub zewnętrznego ADC). Ponadto nie musisz się martwić o zakłócenia elektromagnetyczne z pobliskich śladów lub innych urządzeń zamontowanych w połączeniach między analogowym czujnikiem temperatury a mikrokontrolerem, które mogłyby nieumyślnie wpłynąć na odczyt temperatury.
w tym projekcie wdrożymy cztery różne opcje cyfrowych czujników temperatury o różnych rozdzielczościach i zakresach wykrywania.
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 |
Zasięg wykrywania |
lokalne |
lokalne |
zdalnie |
lokalne |
rozdzielczość (Bity) |
||||
dokładność (°C) |
±0.5°C (+10°C do +85°C) ±2°C (-55 ° C do 125°C) |
±0.2°C |
±1° C (-20°C t +105°C) |
±0.1°C |
Temperatura robocza (°C) |
-55°C do +125°C |
-40°C do +125°C |
-40°C do +125°C |
-40°C do +125°C |
funkcje |
1 Magistrala Przewodowa, Energia pasożytnicza |
I2C |
I2C, SMBus |
I2C |
Min Napięcie zasilania |
3 V |
2.15 V |
1.62 V |
1.9 V |
Maksymalne napięcie zasilania (V) |
3.7 V |
5.5 V |
3.6 V |
3.6 V |
Pobór prądu (uA) |
4 mA (przy odczycie niskiego poziomu logiki) |
45 UA idle |
700 uA w konwersji, |
195 nA |
Producent |
Maxim Integrated |
Sensirion AG |
Microchip |
Silicon Labs |
Pakiet |
8-MSOP |
8-VFDFN |
8-VDFN |
6-DFN |
włączyłem EMC1833T, ponieważ dla mnie jest to fascynujący czujnik. Jest to urządzenie zdalnie wykrywające temperaturę, co oznacza, że nie wykorzystuje czujnika umieszczonego wewnątrz komponentu. Zamiast tego wykrywa temperaturę, przekształcając wyjście zewnętrznego czujnika, który w tym przypadku jest tranzystorem, na sygnał cyfrowy. Nie jestem pewien, czy koniecznie należy do tej kategorii „cyfrowy czujnik temperatury”, ponieważ nie do końca pasuje do innych czujników, na które patrzymy. Mimo to Tranzystory nie są zazwyczaj używane jako czujniki temperatury, więc nie miałem pojęcia, gdzie je umieścić. Fascynuje mnie w tym czujniku to, że może mierzyć temperaturę za pomocą prawie każdego tranzystora. Jeśli projektujesz ASIC, możesz łatwo dołączyć dodatkowy tranzystor do matrycy w tym celu. Następnie można użyć tego tranzystora, który może być odczytany przez czujnik taki jak EMC1833T, aby wykonać zewnętrzny pomiar temperatury matrycy bez konieczności dodawania dodatkowej złożoności do krzemu. Innym sposobem na to jest monitorowanie temperatury matrycy bez ponoszenia żadnego ryzyka inżynieryjnego związanego z projektowaniem i budowaniem na zamówienie cyfrowego czujnika temperatury w krzemie.
wdrożenie czujnika cyfrowego: MAX31826MUA+T
pierwszy czujnik, który wdrożymy, to MAX31826 wyprodukowany przez Maxim Integrated. Ten czujnik działa na magistrali 1-Wire, a nie na bardziej typowej magistrali I2C lub SPI. Jednym z potencjalnych problemów jest to, że jest mało prawdopodobne, aby 1-Wire był oferowany jako protokół komunikacyjny przez mikrokontroler, na którym opiera się twój projekt. Jest to jednak prosty protokół do bit-bang i ma znaczną przewagę nad bardziej popularnymi opcjami, ponieważ potrzebuje tylko dwóch przewodów do obsługi czujnika. Łącznie z zasilaniem, I2C wymaga czterech przewodów, a SPI potrzebuje pięciu przewodów. W przeciwieństwie do tego, 1-Wire wymaga tylko masy i linii danych dla większości aplikacji, ponieważ może się zasilać z linii danych za pomocą pasożytniczej techniki zasilania. Wbudowany w czujnik jest kondensator, który może podtrzymywać zasilanie układu scalonego w okresach, gdy linia danych jest w stanie niskim, co eliminuje potrzebę dedykowanego zasilania napięciem w większości normalnych warunków pracy. Może to być bardzo wygodne rozwiązanie dla płyt, które mają bardzo ograniczoną dostępną przestrzeń.
Inną ciekawą cechą czujnika i jego magistrali 1-Wire jest możliwość ustawienia 4-bajtowego adresu dla urządzenia za pomocą ręcznie wybieranych pinów zainstalowanych na opakowaniu urządzenia. Umożliwia to instalację do 16 czujników temperatury na jednej magistrali danych 1-Wire, nadając każdemu urządzeniu unikalny adres. Może to być bardzo wygodna opcja, jeśli brakuje pinów mikrokontrolera i jednocześnie wymaga możliwości wykrywania przy użyciu dużej liczby czujników temperatury.
w porównaniu z czujnikami, na które patrzyliśmy w poprzednich artykułach z tej serii, MAX31826 jest nie tylko bardzo dokładny, ale także dostarcza dane o wysokiej rozdzielczości. Czujnik oferuje + / – 0.Dokładność 5°c w zakresie od -10°C do + 85°c, z dokładnością +/- 2°C w pełnym zakresie temperatur od -55°C do +125°C. Wszystkie odczyty czujników są dostarczane jako wartości 12-bitowe, co jest wyższą rozdzielczością niż większość mikrokontrolerów.
jako czujnik temperatury, MAX31826 ma wiele do zaoferowania, ale jest również wyposażony w wbudowaną pamięć EEPROM 1 kB jako dodatkową funkcję. Myślę, że mieli trochę wolnego miejsca na matrycy. Jeśli twój mikrokontroler nie ma zintegrowanej pamięci EEPROM i musisz przechowywać pewne dane konfiguracyjne dla swojej aplikacji, Ten czujnik temperatury jest dla Ciebie odpowiedni. Jeśli potrzebujesz dodatkowego nieulotnego przechowywania, ten czujnik temperatury zmniejszy liczbę komponentów i zaoszczędzi miejsce na płycie.
Arkusz danych zaleca bezpośrednie zasilanie urządzenia zamiast używania zasilania magistrali pasożytniczej, gdy temperatury mogą przekraczać 100°C. Podczas gdy większość typowych aplikacji nie będzie musiała osiągać tych poziomów temperatury, testy, które przeprowadzimy, przekroczą 100°C. Dlatego w tym ćwiczeniu zastosujemy się do zalecenia bezpośredniego zasilania urządzenia, zamiast odkrywania fascynującej opcji zasilania pasożytniczego.
kształt planszy i ogólny układ pochodzą z szablonu projektu, który stworzyliśmy we wstępie do tej serii. Ponieważ nie używamy żadnej ze zwykłych magistral komunikacyjnych, usunąłem powiązane sieci i ich elementy z tablicy. Mimo to zostawiłem połączenia na złączu stosu, aby upewnić się, że nie powoduje to żadnych problemów dla innych ułożonych czujników. W przypadku magistrali 1-Wire wystarczy użyć pinu chip select, aby komunikować się z mikrokontrolerem hosta.
zastosowanie czujnika cyfrowego: STS-30-DIS
używałem STS-30-dis wyprodukowanego przez Sensirion w poprzednim projekcie ze względu na jego niesamowitą precyzję i skalibrowane wskazania, które można identyfikować z NIST. Było to potrzebne, ponieważ oprzyrządowanie zostało opracowane dla firmy świadczącej usługi gastronomiczne, wymaganej do zbierania danych do celów sprawozdawczości rządowej. Dzięki niewielkim rozmiarom, szerokiemu zakresowi napięcia, niesamowitej dokładności i linearyzowanemu 16-bitowemu wyjściu cyfrowemu jest wiele do kochania w tym urządzeniu, jeśli potrzebujesz tylko dodatniego wykrywania temperatury. Jeśli potrzebujesz wyczuć temperaturę poniżej zera, wariant STS-30A-DIS jest kwalifikowany w branży motoryzacyjnej i ma zakres wykrywania od -40°C do 125°C. Jednak ten zwiększony zakres wykrywania wiąże się z niewielkimi kosztami dla ogólnej dokładności.
w poprzednim artykule o analogowych czujnikach temperatury mówiłem o tym, jak Świetne są analogowe Czujniki temperatury do zastosowań takich jak monitorowanie procesu, włączanie i wyłączanie wentylatora lub inne systemy zarządzania ciepłem, które mogą pracować bez interwencji mikrokontrolera. STS-30 oferuje kołek ostrzegawczy, który może być użyty do spełnienia podobnej funkcji. Jest przeznaczony do podłączenia do pinu przerwania mikrokontrolera, jednak ma również dedykowaną do niego pełną notatkę aplikacyjną i może być używany do automatycznego przełączania obciążeń. Możliwość podłączenia do funkcji przerwania mikrokontrolera może być kluczowa. Pozwala to czujnikowi na natychmiastowe powiadomienie mikrokontrolera sygnałem o wysokim priorytecie, że coś musi być natychmiast zrobione, zamiast polegać na rzadkim odpytywaniu mikrokontrolera przez czujnik i odpowiedzi na odczytywane dane. Jeśli wyjście alarmowe jest podłączone do tranzystora, aby umożliwić mu napędzanie obciążenia, czujnik może być używany zarówno do celów monitorowania/rejestrowania, jak i do autonomicznej funkcji zarządzania ciepłem. W porównaniu z rozwiązaniami analogowymi taka konfiguracja może sprawić, że cyfrowy STS-30 będzie tańszą opcją. Osobny komparator nie będzie wymagany, a próg dla kodu PIN alertu może być skonfigurowany przez Użytkownika za pomocą mikrokontrolera/HMI bez konieczności ustawiania go fabrycznie.
wszystkie urządzenia serii STS-30 wykorzystują do komunikacji magistralę I2C. Schemat, który implementujemy do tego artykułu, nie zawiera żadnego z rezystorów podciągania, które są zwykle wymagane do poprawnego działania magistrali komunikacyjnej. Te oporniki podciągania będą zamiast tego montowane na płytach hosta. Ponieważ potrzebujemy tylko jednego zestawu rezystorów podciągania na magistralę, dodanie rezystorów do każdego czujnika dodałoby wiele rezystorów podciągania do magistrali i mogłoby spowodować jej awarię. Poza tym wszystkie oporniki połączone równolegle zmniejszyłyby ich ogólną rezystancję.
pin ADDR pozwala nam wybrać pomiędzy dwoma różnymi adresami urządzenia, co pozwala nam podłączyć dwa komponenty STS-30 do tej samej magistrali I2C. Chociaż może to nie być tak imponujące, jak możliwości urządzenia MAX31826 na magistrali 1-Wire, nadal jest to wygodne, ponieważ pozwala nam korzystać z więcej niż jednego urządzenia. Wyciągam PIN ADDR do logic low (GND), ponieważ ustawia to domyślny adres na 0x4a, z logiką wyciągniętą do stanu high, ustawia to na alternatywny adres 0x4B.
podoba mi się pakiet na STS-30, ponieważ jest kompaktowy, ale nadal nie jest zbyt szalony, więc możesz ręcznie złożyć tablicę, jeśli używasz szablonu. Pakiet czujników wraz z kondensatorem odsprzęgającym 0603 są razem mniej więcej tego samego rozmiaru, co MAX31826, na który spojrzeliśmy powyżej. Z mniejszym kondensatorem bardzo dobrze zmieściłby się na płytce o dużej gęstości. Duża podkładka uziemiająca pod układem scalonym zapewnia doskonałą ścieżkę do przenoszenia ciepła z płaszczyzny uziemienia do złącza czujnika temperatury wewnątrz układu scalonego. To sprawia, że jest to idealny wybór do umieszczenia obok dowolnego urządzenia, takiego jak duży MOSFET lub regulator, który wykorzystuje płaszczyznę uziemienia do zrzucania nadmiaru ciepła do płyty. Umieszczenie układu scalonego w bliskiej odległości od źródła ciepła da dokładniejsze wyniki pomiaru temperatury.
zastosowanie czujnika cyfrowego: EMC1833T
jak już wcześniej wspomniałem, urządzenie EMC1883 produkowane przez Microchip fascynuje nie tylko dlatego, że ma szereg fantastycznych funkcji, ale także że może odczytywać temperaturę wyczuwaną przez złącze tranzystorowe. STS – 30, na który patrzyliśmy powyżej, miał pin przerwania alertu wyzwalany przez wartość bezwzględną; jednak EMC1883 może być skonfigurowany tak, aby generował również alert w oparciu o szybkość zmiany wykrywanej temperatury. Ten wskaźnik ostrzegania o zmianach może umożliwić automatyczne włączanie inteligentnych rozwiązań do zarządzania ciepłem w oczekiwaniu na ich potrzebę, a nie po zdarzeniu. Ma to potencjał poprawy niezawodności urządzenia jako całości poprzez staranne zarządzanie jego temperaturą roboczą. Podobnie jak w przypadku STS-30, jest on w pełni konfigurowalny programowo, co oferuje znaczne korzyści w porównaniu z dowolną fabryczną opcją, którą prawdopodobnie będziesz musiał wdrożyć, jeśli używasz w pełni analogowego termostatu, aby osiągnąć te same wyniki.
konkretny model serii EMC8xx, który testujemy, będzie obsługiwał tylko wykrywanie pojedynczego złącza. Istnieją jednak inne modele z tej serii, które mogą zapewnić wykrywanie do pięciu połączeń.
podobnie jak STS-30, jest to czujnik oparty na I2C, który umożliwia instalację wielu czujników na jednej magistrali I2C. Jedną z różnic jest to, że implementacja EMC1833T ADDR pin różni się od charakteru binarnego włączania/wyłączania urządzenia STS-30. To urządzenie umożliwia ustawienie do sześciu oddzielnych adresów przy użyciu różnych wartości rezystora pull-up. PIN ADDR działa również jako jeden z pinów przerwania, działając jako pin ostrzegawczy termiczny (wraz z alarmem termicznym / ostrzeżeniem 2 Pin). Podobnie jak poprzednia instalacja urządzenia, nie będę wdrażał rezystorów podciągających na liniach I2C na płytce czujnika temperatury. Muszą być jednak zamontowane gdzieś w obwodzie, aby umożliwić prawidłowe działanie magistrali komunikacyjnej czujnika.
Karta Danych zaleca użycie tranzystora dwubiegunowego 2N3904 jako elementu teledetekcji, ponieważ nie mam dostępnego tranzystora CPU do pomiarów. Używam wersji do montażu powierzchniowego 2N3904 do wykrywania temperatury na tej płycie. MMBT3904 jest dostępny praktycznie w każdej firmie produkującej silikon, która zajmuje się BJTs – w tym przypadku zdecydowałem się na Część półprzewodnikową, ponieważ była najlepiej zaopatrzona. Było kilka milionów dostępnych, kiedy ostatnio patrzyłem na Octopart.
tak jak w poprzednich artykułach z tej serii, umieściłem element czujnika temperatury, nasz tranzystor, w przekładce termicznej. Umieściłem nie wyczuwające elementy za przekładką termiczną. Zapobiega to negatywnemu wpływowi czujnika EMC1833T na odczyt temperatury z powodu generowanego przez niego ciepła.
wdrożenie czujnika cyfrowego: Si7051-A20-IMR
wreszcie mamy Silicon Labs Si7051-A20. To wyniki z tego urządzenia, które jestem najbardziej podekscytowany, aby zobaczyć w tej całej serii. MAX31826 jest dość precyzyjnym czujnikiem, jednak Si7051-A20 oferuje imponującą precyzję + / – 0,1°C przy niewiarygodnie niskim zużyciu energii wynoszącym zaledwie 195 nA podczas próbkowania. Pobór mocy jest co najmniej o rząd wielkości mniejszy niż wszystkie inne cyfrowe czujniki temperatury i znacznie mniejszy niż analogowe Czujniki temperatury, na które patrzyliśmy w poprzednim artykule.
w przypadku, gdy wiele czujników ma bardzo wysoką dokładność, liczby zwykle dotyczą tylko ograniczonej części ogólnego zasięgu wykrywania. W przeciwieństwie do tego, Model Si7051-A12 oferuje zgłaszaną dokładność w pełnym zakresie pomiarowym od -40°C do +125°C. Co więcej, błąd 0.1°C jest dokładnością w najgorszym przypadku, a nie średnią lub minimalną. Dzięki wybranej rozdzielczości 14 bitów, Si7051-A20 zapewnia powtarzalny odczyt 0,01°C-uwielbiam dokładne i powtarzalne czujniki!
podobnie jak w przypadku dwóch ostatnich czujników, czujnik Si7051-A20 jest zgodny z I2C. Nie oferuje jednak kodu PIN adresu, co oznacza, że do magistrali I2C można podłączyć tylko jedno urządzenie, chyba że dodasz przełącznik I2C lub przełączysz zasilanie między różnymi jednostkami podłączonymi do tej samej magistrali. Wymagałoby to dodatkowych pinów IO i zwiększenia złożoności obwodu, dzięki czemu si7051-A20 byłby mniej idealny do wykrywania wielu lokalizacji na płytce drukowanej. Urządzenie nie posiada również żadnych pinów alert / interrupt, przeznaczonych wyłącznie do użytku jako cyfrowy czujnik temperatury. Ogólnie rzecz biorąc, jeśli chcesz zautomatyzować zarządzanie ciepłem na płytce drukowanej, mniej dokładny i tańszy czujnik będzie więcej niż wystarczający dla takiej aplikacji.
jedną z cech, które naprawdę podobały mi się w STS-20, kiedy ostatnio go używałem, była kalibracja certyfikowana przez NIST stosowana do każdego urządzenia, ponieważ mój klient wymagał tej funkcji. Podczas gdy Si7051-A20 nie wspomina o tym w swoim arkuszu danych, ma dostępne świadectwo kalibracji. Udało mi się również znaleźć inne, bardziej szczegółowe świadectwo wzorcowania; jednakże nie znajduje się to na stronie internetowej Silicon Labs i w związku z tym może mieć zastosowanie wyłącznie do poszczególnych jednostek zakupionych przez tę firmę. Jeśli tak, to ma pierwszeństwo dla Silicon Labs wydawania konkretnych certyfikatów dla swoich klientów.
podobnie jak inne implementacje I2C, które opisaliśmy w tym artykule, linie I2C dla tej karty nie mają rezystorów pull-up zamontowanych na liniach danych/zegara. Będziesz musiał dołączyć Rezystor podciągania na każdej linii gdzieś w obwodzie, aby umożliwić pomyślną komunikację Si7051-A20.
6-pinowy pakiet DFN jest również najłatwiejszym do przekazania prototypem ze wszystkich opcji bezołowiowych, które omówiliśmy w tym artykule. Używając szablonu lub narzędzia do osadzania pasty, takiego jak Voltera V-One, ten czujnik byłby niezwykle łatwy do ręcznego umieszczenia i ponownego napełniania za pomocą podstawowych narzędzi, dzięki czemu idealnie nadaje się do prototypowania w laboratorium domowym lub biurowym.
wniosek
w tym artykule przyjrzeliśmy się czterem różnym cyfrowym czujnikom temperatury. Dostępne są jednak setki innych opcji cyfrowego czujnika temperatury, które mogą spełnić specyficzne wymagania projektu, które są dobrze zaopatrzone i dostępne. Podczas gdy analogowe Czujniki temperatury doskonale sprawdzają się w autonomicznym monitorowaniu procesu lub w połączeniu z konwerterem analogowo-cyfrowym, cyfrowe czujniki temperatury oferują znaczną wygodę podczas integracji z produktem wyposażonym w mikrokontroler. Jak widzieliśmy w tym artykule, istnieją cyfrowe czujniki temperatury, które mogą generować przerwania i alerty przy konfigurowalnych progach, co pozwala na ekscytujące zastosowania poza fabrycznym termostatem opartym na komparatorze, jak prawdopodobnie można użyć z analogowym czujnikiem temperatury. Precyzja i dokładność nowoczesnych cyfrowych czujników temperatury może być wyjątkowo wysoka, jednak wiele opcji zużywa znacznie więcej prądu niż ich analogowe odpowiedniki, co może zapewnić pewną kompensację temperatury od samonagrzewania.
najbardziej popularne i dobrze zaopatrzone cyfrowe czujniki temperatury zwykle używają magistrali I2C do komunikacji; jednak opcje magistrali SPI i 1-Wire są również łatwo dostępne, aby sprostać dostępności alternatywnych magistral komunikacyjnych dla Twojego projektu.
jak wspomniałem na początku artykułu, szczegóły dotyczące każdej z tych płyt czujników i wszystkich innych implementacji czujników temperatury można znaleźć na Githubie. Wszystkie te projekty są wydawane na licencji open-source MIT, która pozwala zrobić prawie wszystko z projektem do użytku osobistego lub komercyjnego.
czy chcesz dowiedzieć się więcej o tym, jak Altium może pomóc ci w następnym projekcie PCB? Porozmawiaj z ekspertem w Altium.