Programowanie mikroprocesorów ( mikrokontrolerów )

Czujnik temperatury DS1820


Tematy powiązane: Jak zaprogramować i uruchomić czujnik temperatury DS1820

Przykład wariantów czujnika temperatury DS1820 w wykoaniu w różnych obudowach: z trzema wyprowadzeniami ( obudowa PR35 ) oraz 16 wyprowadzeniowej ( obudowa SSOP ) przedstawiono na rysunku poniżej..

programowanie mikroprocesorów mikrokontrolerów

Główne parametry czujnika temperatury DS1820

  • Interfejs 1-Wire wykorzystujący tylko jeden pin do komunikacji
  • Każdy moduł posiada unikatowy 64-bitowy kod przechowywany we wewnętrznej nieulotnej pamięci ROM (łatwa możliwość identyfikcji czujników podpiętych pod jeden pin komunikacyjny)
  • Nie wymaga zewnętrznych komponentów
  • Może być zasilany z lini danych. Zakres napiecia zasilania wynosi od 3.0V do 5.5V
  • Zakres mierzonej temperatury wynosi od -55°C do +125°C (od -67°F do +257°F)
  • ±0.5°C dokładności w zakresie od -10°C do +85°C
  • 9-Bitowa rozdzielczość termometra
  • Maksymalny czas konwersji temperatury do 750ms (max)
  • Definiowalne progi alarmowe 

Zasada działania i uruchomienie czujnika

Diagram blokowy budowy czujnika temperatury DS1820 przedstawiono na rysunku poniżej.

programowanie mikroprocesorów mikrokontrolerów - schemat blokowy czujnika temperatury DS1820

Czujnik temperatury (termometr) DS1820 zbudowany jest z jednostki zasilającej go na którą składa się kondensator pasożytniczy który ładuje się pasożytując na energii sygnału linii danych w wariancie zasilania jednym przewodem (one wire) dwóch diod wejściowych zabezpieczających wejście układu czujnika temperatury (termometru) DS1820 i jednostki kontrolującej pojawienie się zasilania na linii danych. Kolejnym elementem jest 64 bitowa pamięć ROM w której przechowywany jest unikatowy numer seryjny danego czujnika oraz interfejs kontrolujące racę magistrali danych One wire. Kolejnymi elementami czujnika temperatury (termometru) DS1820 są jednostka pamięci i zarządzania magistralą akwizycji danych łączącą elementy pomiarowe z interfejsem One wire wysyłającym dane na zewnątrz układu. Czujnik temperatury (termometr) DS1820 wyposażony jest w sprzętowy termostat z możliwością nastawienia dwóch progów zadziałania. Czujnik temperatury (termometr) DS1820 wyposażony został również w sprzętową 8bitową kontrolę CRC.

Poniżej przedstawiono sposób podłączenia jednodrutowego układu czujnika temperatury (termometru) DS1820

programowanie mikroprocesorów mikrokontrolerów

Na powyższym rysunku przedstawiono podłączenie jednodrutowe termometra cyfrowego DS1820. Takie podłączenie jednym przewodem wymaga odpowiedniego czasu podtrzymania stanu wysokiego na przewodzie w celu zasilenia układu w czasie konwersji temperatury do czego wykorzystuje sie tranzystor podciągający linie do napięcia zasilania na czas konwersji przez układ.

Poniżej przedstawiono sposób połączenia wielu czujników pod jedną szynę danych przy zasilaniu czujników z zewnętrzengo źródła zasilania dzięki czemu uniknięto konieczności zastosowania tranzystora podciągającego.

programowanie mikroprocesorów mikrokontrolerów

Poniżej przedstawiono schemat blokowy sposobu działania cyfrowego czujnika temperatury DS1820.

programowanie mikroprocesorów mikrokontrolerów

Czujnik ten posiada dwa oscylatory o częstotliwościach charakterystycznych dla dwóch różnych temperatur. Każdy z nich posiada charakterystyczną częstotliwość drgań dla swojej temperatrury. JEden z nich dla temperatry wysokiej drugi dla niskiej. Oba oscylatory odchodząc od swoich znamionowych teperatur pracy zmieniają swoją częstotliwosć drgań dzięki czemu w określonej teperaturze kazdy z nich znajduje sie w pewnej odległości od swojej znamionowej temperatruy i generuje odstrojoną częstotliwość drgań. Porównując te dwie częstotliwości otrzymujemy czestotliwość wypadkową proporcjonalną do tepmeratury otoczenia która wypracowywana jest przez układ porónujący i wypracowywujący prawidłową wartosć temperatury otoczenia.

Układ czujnika emperatury wyposarzony jest w kontrole prawidłowości ramki CRC 16 bitowe oraz unikatowy adres (numer seryjny) który umożliwia rozpoznawanie czujników podpiętych do jednej lini danych.

programowanie mikroprocesorów mikrokontrolerów

Poniżej przedstawiony został kompletny algorytm działania czujnika temperatury

programowanie mikroprocesorów mikrokontrolerów

programowanie mikroprocesorów mikrokontrolerów

Sposób wypracowania sumy kontrolenj CRC przedstawiony został na schemacie blokowym poniżej.

programowanie mikroprocesorów mikrokontrolerów

Poniżej przedstawiono mapę pamęci układu termometra cyfrowego DS1820

programowanie mikroprocesorów mikrokontrolerów

Poniżej przedstawiono schematycznie zobrazowany port transmisyjny pomiędzy masterem a czujnikiem temperatury.

programowanie mikroprocesorów mikrokontrolerów

Aby nawiązać komunikację z termometrem musimy przestrzegac rygoru czasowego w wymuszanych stanach które nazywamy slotami. Kazdy slot czasowy reprezentuje odczyt lub zapis jednego bitu. Sloty czasowe składają sie na bajty danych które pozwalają nam sie na komunikowanie z termometrem przy pomocy tylko jednego przewodu danych.

Przed rozpoczęciem komunikacji musimy zasygnalizować układowi chęc jej nawiązania. Aby to zrobić na lini danych musimy wymusić stan niski przez minimum 480us a maksymalnie przez 960us co przedstawiono na rysunku poniżej. Po takim impulsie resetującym wymuszamy stan wysoki na magistrali i  odczekujemy od 15 do 60us po czym układ termometru powinien nam dopowiedzieć impulsem obecności wymuszając zero na lini danch przez przynajmniej 60us do 240 us.

programowanie mikroprocesorów mikrokontrolerów

W dalszej częsci komunikacja z układem przebiega przy pomocy slotó czasowych które trwają od 60 do 120 us w zależności od nas. Poniżej przedstawione zostały zależności czasowe jakie należy spełnić aby zapewnić prawidłową transmisję danych z układem. 

programowanie mikroprocesorów mikrokontrolerów

Czasy przedstawione powyżej zależą od pojemności lini danych i mogą zostać dobrane w drodze prób jednak przy dobraniu czasów mieszczących się w podanych granicach komunikacja powinna przebiegać bezbłędnie.

W zależności od pojemności lini danych oraz od doboru rezystorów podciągających możemy otrzymać różny charakter ładowania się lini danych tak więc próbkowanie stanu lini przy odpowiedzi od układu termometra należy odpowiednio odsunąć w czasie tak aby linia danych zdążyła sie naładować do stanu logicznej jedynki i aby próbkowany stan lini był faktycznym wymuszeniem ewentualnego stanu niskiego przez układ termometra.

programowanie mikroprocesorów mikrokontrolerów

s

programowanie mikroprocesorów mikrokontrolerów

s

programowanie mikroprocesorów mikrokontrolerów

s

programowanie mikroprocesorów mikrokontrolerów

s

programowanie mikroprocesorów mikrokontrolerów

s

 





 
Wszelkie prawa zastrzeżone! Kopiowanie, powielanie i wykorzystywanie zdjęć, treści oraz jej fragmentów bez zgody autora zabronione.
© mikroprocesory.info.pl@gmail.com 2013.