Pięciokanałowy termometr I²C

Pięciokanałowy termometr I²C

W niektórych sytuacjach przydatny okazuje się pomiar temperatury w kilku niezależnych punktach urządzenia. Na rynku dostępne są oczywiście termometry 1-Wire czy I²C, ułatwiające prostą realizację małej sieci niezależnych termometrów, problematyczny jest jednak ich koszt oraz, niestety, ryzyko natrafienia na podróbkę. Prezentowany układ używa jako czujników najzwyczajniejszych tranzystorów krzemowych NPN typu 2N3904 – dzięki czemu nawet kilka kanałów pomiaru można wykonać niewielkim kosztem i to praktycznie z elementów zalegających w szufladach.

Podstawowe parametry:
  • konstrukcja oparta na scalonym przetworniku EMC1046/7,
  • interfejs: I²C,
  • cztery kanały pomiarowe do podłączenia czujników tranzystorowych,
  • rozdzielczość pomiaru: 0,125°C,
  • dokładność: ±2%,
  • zakres pomiarowy: –40...+127°C,
  • częstotliwość odczytów: 4 Hz,
  • napięcie zasilania: 3,3 V,
  • poziom logiczny na liniach SDA/SCL: 3,3...5 V (wbudowany translator),
  • wbudowany dodatkowy, piąty czujnik na PCB.

W module zastosowano gotowe rozwiązanie przetwornika temperatury na magistrali I²C oparte o układ EMC1046/7 firmy Microchip. Strukturę wewnętrzną układu pokazano na rysunku 1 – jest on kompletnym sześciokanałowym przetwornikiem temperatury, który obsługuje pięć czujników zewnętrznych i jeden czujnik wbudowany w strukturę. Każdy z kanałów ma obwód obróbki sygnału z filtracją, dzięki któremu z rejestrów danych można odczytać wartość temperatury niewymagającą już dalszej obróbki matematycznej. Odczyt możliwy jest z rozdzielczością 0,125°C i dokładnością nie gorszą niż ±2% w zakresie temperatur –40...+127°C. Przy konwersji 4×/sekundę pobór prądu nie przekracza 1 mA. Dostępny jest bliźniaczy układ EMC1047, zgodny wyprowadzeniami z EMC1046, ale wyposażony w dodatkowy, szósty kanał pomiaru temperatury zewnętrznej, który w module można stosować zamiennie.

Rysunek 1. Struktura wewnętrzna EMC1046/7 (za notą Microchip)

EMC1046 odpowiada za obróbkę sygnału ze złączy diodowych czujników temperatury, umożliwia ich kalibrację i kompensację (zarówno rozrzutów parametrów struktur, jak i rezystancji przewodów pomiarowych) oraz raportuje ich uszkodzenia. Dane temperaturowe mogą być uśredniane, a maksymalna częstotliwość pomiaru to 4 Hz, co wystarcza w wielu zastosowaniach. Układ automatycznie wykrywa najwyższą temperaturę i wskazuje kanał pomiarowy, w którym została ona zarejestrowana. Ułatwia to konstrukcję wszelkiego rodzaju termostatów oraz układów sterowania chłodzeniem. Interfejs komunikacyjny stanowi magistrala I²C/SMBus, adres układu to 0x4c. EMC1046 wymaga zasilania 3,3 V. Dzięki zastosowaniu antyrównoległego połączenia elementów pomiarowych w kanałach 2...4 możliwe było zmniejszenie liczby wyprowadzeń i umieszczenie układu w obudowie MSOP10. Obsługiwane topologie podłączenia czujników do EMC1046 pokazano na rysunku 2.

Rysunek 2. Sposoby podłączenia czujników temperatury (za notą Microchip)

Pierwszy od lewej rysunek pokazuje przykładowe podłączenie diody wbudowanej w strukturę układu (np. mikroprocesora), środkowa konfiguracja używa typowego tranzystora PNP (2N3906), natomiast prawy sposób podłączenia korzysta z tranzystora NPN (2N3904). Czujniki tranzystorowe mogą być podłączone antyrównolegle w kanałach 2...5. Każdy kanał wyposażony został w detekcję zwarcia i rozwarcia czujnika oraz kompensację rezystancji przewodów.

Schemat ideowy modułu i sposób podłączenia czujników pokazano na rysunku 3.

Rysunek 3. Schemat modułu

Jak przystało na rozwiązanie specjalizowane, schemat jest bardzo prosty: poza U1 typu EMC1046/7, układ zawiera jedynie kondensator odsprzęgający zasilanie C1 oraz konwerter poziomów na tranzystorze Q6, umożliwiający współpracę modułu z systemami 3,3...5 V. Stabilizator LDO U2 dostarcza napięcia zasilania 3,0 V do U1. Sygnały zasilania i magistrali wyprowadzone są na złącze I²C zgodne z Grove. Czujniki temperatury Q2...6 typu 2N3904 podłączone są do złączy TH23, TH45. Dodatkowo na płytce do kanału 1 podłączony został tranzystor Q1, który może być użyty do pomiaru temperatury otoczenia lub uśredniania jej z pomiarami czujnika wbudowanego w U1.

Rozmieszczenie elementów zobrazowano na rysunku 4, zmontowany moduł – na fotografii otwierającej.

Rysunek 4. Rozmieszczenie elementów na PCB modułu

Wszystkie konfiguracje i odczyty EMC1428 odbywają się pod adresem 0x4C magistrali I²C. Wymiana danych i konfiguracja przebiega z wykorzystaniem rejestrów, których pełna mapa znajduje się w dokumentacji. Minimalny zestaw niezbędny do pomiaru temperatury opisano w tabeli 1.

Pierwszy odczytywany rejestr to FDh, w którym przechowywana jest wartość 0x1A identyfikująca EMC1046 – lub 0x1C wskazująca EMC1047. Prawidłowy odczyt rejestru może być uznany za detekcję układu na I²C. W rejestrach FEh=5Dh, FFh=01h przechowywane są odpowiednio: ID producenta i wersja układu. Każdy odczyt temperatury (10 bitów + znak) zajmuje dwa rejestry, przy czym należy zwrócić uwagę, że nie wszystkie są umieszczone pod kolejnymi adresami. Znaczenie bitów w parze rejestrów temperatury zaprezentowano w tabeli 2.

Szybkiego sprawdzenia działania układu można dokonać po podłączeniu go do Raspberry Pi. Poleceniem i2cdetect –y 1, sprawdzamy obecność układu na magistrali (rysunek 5).

Rysunek 5. Detekcja układu EMC1046

Poleceniem i2cset –y 1 0x4c 0x3b 0x06 aktywujemy obsługę czujników w połączeniu antyrównoległym.

Poleceniem i2cdump 1 0x4c możemy odczytać zawartość rejestrów dostępnych pod adresem 0x4c i sprawdzić poprawność konwersji (rysunek 6).

Rysunek 6. Wynik działania polecenia i2cdump

Pod adresami 0x00/29, 0x01/10, 0x23/24, 0x2A/2B, 0x41/42, 0x43/44 dostępne są odczyty temperatur. Jeżeli testowanie przebiegło pomyślnie, można moduł zastosować we własnej aplikacji, aby uzyskać więcej niż podstawowy pomiar temperatury.

Adam Tatuś, EP

Wykaz elementów:
Rezystory:
  • RP: drabinka 4×10 kΩ (CRA06S08)
Kondensatory: (SMD 0603, X7R, 10 V)
  • C1: 100 nF
  • C2, C3: 2,2 μF
Półprzewodniki:
  • Q1: 2N3904 (SOT-23)
  • Q2...Q5: 2N3904 (TO-92B)
  • Q6: BSS138PS115 (SC88)
  • U1: EMC1047-1 (MSOP10)
  • U2: AP2120N-3.0TRG1 (SOT-23)
Pozostałe:
  • I²C: złącze Grove kątowe (110990037)
  • TH23, TH45: złącze MPT 2,54 mm 4-pinowe (MPT0.5/4-2.54)
Artykuł ukazał się w
Elektronika Praktyczna
kwiecień 2024
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik lipiec 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio lipiec - sierpień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje czerwiec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna lipiec 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich lipiec 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów