Układ DS18B20, wyprodukowany przez firmę MAXIM/DALLAS (http://www.maxim-ic.com/), jest cyfrowym termometrem pracującym na magistrali 1-Wire. Od czujnika DS18S20 różni się rozdzielczością, która w tym przypadku wynosi 9-12 bitów. Do komunikacji z mikrokontrolerem wymagany jest tylko jeden przewód (oraz masa). Zasilanie potrzebne do odczytu oraz konwersji temperatury pobierane może być z linii danych lub dodatkowym przewodem z układu sterującego. Każdy z czujników ma własny niepowtarzalny numer seryjny co sprawia że na jednej magistrali może ich pracować teoretycznie dowolna ilość.
Kartę Katalogową układu DS18B20 można pobrać ze strony producenta. Link bezpośredni dostępny tutaj
Ważniejsze właściwości:
- Magistrala 1-Wire wymagająca tylko jednego pinu do komunikacji
- Każdy z układów posiada własny unikalny 64-bitowy kod
- Nie potrzebuje elementów zewnętrznych
- Może być zasilany napięciem od 3V do 5.5V
- Mierzy temperaturę od -55 do +125 stopni
- Zapewnia dokładność 0.5 stopnia dla temperatur -10 do 85 stopni
- ustawiana rozdzielczość 9 do 12 bitów
- Konwertuje temperaturę nie dłużej niż 750ms
- Zawiera termostat
Wyprowadzenia:
Rozkład wyprowadzeń układu w różnych obudowach przedstawia poniższy rysunek:
Krótki opis działania:
Ds18B20 będący w stanie uśpienia musi otrzymać od mikrokontrolera rozkaz konwersji temperatury (Convert T [44h]). Po pomiarze temperatura wpisywana jest do dwóch bajtów rejestru (scratchpad memory) a układ znowu powraca do stanu uśpienia. Na poniższym rysunku przedstawione są dwa pierwsze bajty w pamięci DS18B20.
Pięć najstarszych bitów bajtu MSB oznaczone jako S zawierają informację o znaku temperatury a trzy młodsze bity MSB wraz z całym bajtem LSB zawierają 12 bitową liczbę (teperaturę pomnożoną przez 16). Dla teperatur dodatnich jest ona wyrażona w kodzie binarnym a dla ujemnych w kodzie U2 (uzupełnień do dwóch). Widok całego rejestru ukladu DS18B20 przedstawia poniższy rysunek.
Po dokładny opis pozostałych bajtów w rejestrze odsyłam do orginalnej karty katalogowej. W praktyce przy budowie prostych urządzeń wykorzystujących czujnik DS18B20 będziemy odczytywać tylko dwa pierwsze bajty a potem nastąpi reset magistrali 1-Wire.
Komunikacja i Rozkazy:
Komunikacja z układem DS18B20 odbywa się w trzech krokach
a) Inicjalizacja
Jest to sygnał esetu magistrali wykonywany przez mikrokontroler sterujący. Każda transmisja przez magistralę 1-Wire musi rozpocząć się od tego sygnału.
b)Komendy ROM
Są to polecenia służące do operowania na unikalnym 64-bitowym kodzie układu. Zapewniają określenie ile i jakie układy podpięte są do magistrali, odczytanie numerów zapisanych w ich pamięci ROM oraz uaktywnienie układu o znanym wcześniej numerze.
Do najważniejszych poleceń z tej grupy należą:
Reed Rom [33h] - Pozwala procesorowi na odczyt 8 bajtów numeru seryjnego układu. Nie działa gdy na magistrali jest więcej niż jeden układ.
Match Rom [55h] - Umozliwia aktywowanie jednego z układów na magistrali za pomocą jego 64-bitowego numeru.
Skip Rom [CCh] - Pozwala na pominięcie sprawdzania numerów układów i wysłanie jednocześnie rozkazów do wszystkich układów na magistrali. Komenda jest przydatna do wysyłania poleceń konwersji temperatury do wszystkich czujników temperatury pracujących na jednej magistrali, lub gdy używamy tylko jednego układu DS18B20.
c) Komendy Funkcji Układu
Rozkazy te następują po komendach dotyczących wyboru układu lub pominięcia sprawdzania numeru. Służą do konwersji temperatury oraz do zapisu lub odczytu danych z rejestrów DS18B20. Do najważniejszych poleceń z tej grupy należą:
Convert T [44h] - Rozkaz ten rozpoczyna proces konwersji temperatury, po jego zakończeniu wyniki będą umieszczone w dwóch bajtach rejestru DS18B20
Read Scratchpad [BEh] - Rozkaz powoduje sekwencję odczytu danych z rejestru czujnika począwszy od bajtu 0 do 8. Odczyt może być przerwany przez sygnał resetu magistrali 1-Wire jeżeli nie potrzeba wszystkich 9 bajtów.
Uwaga! Rysunki użyte w opisie pochodzą z karty katalogowej, zostały zamieszczone tylko w celach edukacyjnych.
Witam jak pozmieniać w tym
Witam jak pozmieniać w tym programie żeby działało z ds1820
Re: DS1820
Dla DS1820 jest ok. Procedura odczytu temperatury jest dobra.... może inne części programu nie działają? napisz programik gdzie masz tylko czujnik temperatury i lcd żeby sprawdzić czy sam czujnik działa
UWAGA! Możliwy jest zakup zaprogramowanych uC i zestawów elementów itp. do niektórych projektów. O dostępność proszę pytać via email. Konkretne oferty pojawiają się w cenniku.