Emulator DS18B20

Emulator DS18B20
Pobierz PDF Download icon
Emulator termometru może się przydać, gdy budujemy sterownik pieca CO, pralki, klimatyzacji czy lodówki. Urządzenie jest także doskonałym projektem referencyjnym, jeśli planujemy wykonanie sensora z interfejsem 1-Wire. Pamiętajmy jednak, że komercyjne wykorzystanie projektu może wiązać się z naruszeniem praw patentowych firmy Maxim-Dallas.

Schemat ideowy emulatora pokazano na rysunku 1. Jak można zauważyć już na pierwszy rzut oka, jest to jedno z tych urządzeń, których „moc” tkwi w oprogramowaniu. Nie jest łatwo wykonać emulator urządzenia dołączanego za pomocą 1-Wire. Kryteria czasowe protokołu komunikacyjnego są dość restrykcyjne. Więcej na ten temat napisałem w artykule „1-Wire emulator & skaner”, który wkrótce ukaże się na łamach EP. Tu jedynie zasygnalizuję, że na czas analizowania sygnału reset i generowania sygnału presence obsługa przerwań prawie nie jest zawieszana (rysunek 2). Przerwa w realizacji programu głównego podczas oczekiwania na reset jest spowodowana oczekiwaniem na opadające zbocze impulsu reset. Procedurę można udoskonalić i po wykryciu poziomu niskiego trwającego ponad 460 ms włączyć przerwanie od zbocza narastającego na wejściu INT. W tej wersji oprogramowania nie zdecydowałem się na to, ponieważ program główny i tak prawie nic nie robi. W czasie generowania „zera” przerwania też nie są zawieszane (rysunek 3).

Schemat montażowy emulatora pokazano na rysunku 4. Emulator nie wymaga uruchamiania. Przy wgrywaniu programu do mikrokontrolera trzeba odpowiednio ustawić bity konfiguracyjne – rysunek 5. Jeśli chcemy przyłączyć kilka emulatorów do jednej magistrali, to trzeba pamiętać, aby dla każdego z nich skompilować kod z innym numerem identyfikacyjnym. Zakładając zworkę na piny 4–6 złącza J2, emulujemy pasożytnicze zasilanie termometru.W czasie odczytu bitu IRQ są zawieszane na około 6 ms i biorąc pod uwagę, że wejście i wyjście w obsługę przerwania to około 5 ms, zastąpienie _delay_us(15-DELAYDAMPLEBIT), gdzie DELAYDAMPLEBIT=8 (tyle wynosi czas od wejścia w IRQ do skoku w funkcję odczytu bitu), niepotrzebnie komplikuje kod, nie dając wymiernego zysku czasowego.

Sławomir Skrzyński, EP

Artykuł ukazał się w
Elektronika Praktyczna
kwiecień 2017
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik wrzesień 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio październik 2020

Świat Radio

Magazyn użytkowników eteru

Automatyka Podzespoły Aplikacje wrzesień 2020

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna wrzesień 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich wrzesień 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów