W module zastosowano gotowe rozwiązanie oparte o układ EMC1428 firmy Microchip. Jest on kompletnym przetwornikiem 8-kanałowym, obsługujących 7 czujników kanałów zewnętrznych i jeden czujnik wbudowany w strukturę układu. Każdy z nich ma obwód obróbki sygnału, dzięki któremu z rejestrów danych można oczytać temperaturę w stopniach Celsiusa. Odczyt jest możliwy z rozdzielczością 0,125°C z dokładnością ±2% w zakresie temperatury –40…+127°C, przy konwersji wykonywanej 4 razy na sekundę średni pobór prądu jest mniejszy niż 1,2 mA. Układ ma wbudowany komparator, współpracujący z pierwszym kanałem (DP/N1), umożliwiający sprzętowe generowanie sygnału alarmowego (SYS_SHDN) po przekroczeniu ustalanej zewnętrznym rezystorem temperatury progowej (z zakresu 65…127°C). Sygnał może służyć do wyłączenia systemu, po przekroczeniu ustalonej temperatury (>65’C). Dostępny jest także sygnał ALERT, który w zależności od konfiguracji może pełnić funkcję przerwania lub alarmu po przekroczeniu zadanej temperatury, niezależnie dla każdego kanału. Układ automatycznie wykrywa najwyższą temperaturę i wskazuje kanał pomiarowy, ułatwia to konstrukcję wszelkiego rodzaju termostatów i układów sterowania chłodzeniem. Wyjścia alarmowe mają strukturę OD. Interfejsem komunikacyjnym jest I2C/SMBus. Układ wymaga zasilania 3,3 V, wyprowadzenie I2C oraz alarmów tolerują 5 V. Dzięki wykorzystaniu antyrównoległego połączenia elementów pomiarowych w kanałach 2…7 możliwe było zmniejszenie liczby wyprowadzeń i umieszczenie układu w obudowie QFN16.
Możliwe sposoby podłączenia czujników do EMC1428 prezentuje nota katalogowa firmy Microchip.
Schemat ideowy termometru pokazano na rysunku 1. Rozwiązanie jest banalne – poza U1 (EMC1428) zawiera jedynie kondensator filtrujący zasilanie C1, rezystory podciągające magistralę RP1 (z możliwością odłączenia zworą PU), diodę PWR sygnalizująca załączenie zasilania. Sygnały zasilania, alarmów i magistrali wyprowadzone są złączem I2C. Czujniki temperatury są dołączone do złącz TH1, 2/3, 4/5, 6/7. Rezystor R1 programuje próg zadziałania komparatora alarmu SYS_SDN (SSDN). Kilka typowych wartości progowych przedstawia tabela 1.
Schemat montażowy termometru pokazano na rysunku 2. Przed uruchomieniem należy ustalić wymaganą wartość rezystora R1. Sam montaż nie wymaga opisu.
Konfiguracja i odczyt EMC1428 odbywa się pod adresem 1001100 magistrali I2C. Sekwencję zapisu, odczytu pokazano na rysunkach 3 i 4. Szczegółowa mapa rejestrów dostępna jest w dokumentacji, w artykule opisany jest tylko minimalny zestaw niezbędny do pomiaru temperatury (tabela 2). Pierwszym odczytywanym rejestrem jest 0xFD, w którym jest przechowywana jest wartość 29h identyfikująca EMC1428. Prawidłowy odczyt rejestru może być uznany za detekcję układu na I2C. W rejestrach 0xFE (0x5D), 0xFF (0x01) przechowywane są odpowiednio ID producenta i wersja układu. Każdy odczyt temperatury 11-bitów + znak zajmuje dwa rejestry, należy zwrócić uwagę, że nie wszystkie zajmują kolejne adresy.
Adam Tatuś, EP