DS18B20


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.




Post new comment

The content of this field is kept private and will not be shown publicly. If you have a Gravatar account, used to display your avatar.
  • You can use BBCode tags in the text. URLs will automatically be converted to links.
  • Use the special tag [adsense:format:slot] or [adsense:format:[group]:[channel][:slot]] or [adsense:block:location] to display Google AdSense ads.
  • You can enable syntax highlighting of source code with the following tags: [code], [blockcode], [c], [cpp], [java], [javascript], [php], [python], [qb].
  • Image links with 'rel="lightbox"' in the <a> tag will appear in a Lightbox when clicked on.

More information about formatting options