Części: 1-przewodowy czujnik temperatury (DS1822)

Pobierz: buspirate.v0d.zip

1-przewodowy protokół Dallas / Maxim jest najbardziej wymaganym dodatkiem do pirata autobusowego. Wreszcie dostaliśmy kilka części 1-drutowych, a dziś zademonstruujemy termometr DS1822 1-przewodowy. Chwyć arkusz danych (PDF) i spełnij wzdłuż.

Ten publikuje się wraz z wydaniem V.0D z firmware Pirate Pirate for Wersja sprzętowa 0. Obejmuje to nowa biblioteka protokołu 1-przewodowa, więcej opcji konfiguracji i inne ulepszenia.

DS1822 Ekonomiczny Cyfrowy termometr cyfrowy (Digikey # DS1822 + -nd, 3,87 USD) Odkryliśmy ślad w bibliotece 1-przewodowej dla orła na stronie Pobierz CadSoft.

Protokół 1-przewodowy wykorzystuje pojedynczy kabel do przesyłania danych, a czasami moc. Dane są przekazywane w czasach “slotów”, ponieważ nie ma oddzielnego zegara do wyznaczania okresów bitowych.

Autobus pirat.

DS1822.

SDA.

DQ.

+ 5Volts.
VDD.

Grunt

Gnd.

Połączenia DS1822 są wyświetlane w tabeli. Wykorzystaliśmy dostawę 5volt Pirata Pirata w celu zasilania DS1822, jednak również pracuje na 3.3 wholts. Rezystor (R1, ~ 5K) posiada wysoki magistrala.

Wszystkie komendy 1-przewodowe rozpoczynają się od procedury resetowania, przestrzegane przez jeden z pięciu poleceń ROM.

Komenda
Opis

0x33.
Przeczytaj ROM. Sprawdzono pojedynczy adres gadżetu.

0x55.
Dopasuj ROM. Dopasuj adres gadżetu, przestrzegany przez 64-bitowy adres.

0xcc.
Pomiń rom. Zajrzyj wszystkie gadżety razem.

0xec.
Wyszukiwanie alarmu. Przeglądaj stan alarmowy.

0xf0.
Wyszukaj rom. część procedury wyliczania adresów.

Polecenia ROM są wyjaśnione na stronie 10 z arkusza danych. Wszystkie polecenia ROM są oferowane jako makra w bibliotece Pirate 1-Wire, patrz (0) dla menu. Macros poleceń ROM obejmują 1-przewodową procedurę resetowania magistrali.

Pojedyncze urządzenie

Wszystkie 1-przewodowe gadżety mają unikalny adres 64-bitowy (8 bajtów), a niektóre gadżety 1-przewodowe są wykorzystywane wyłącznie do zapewnienia elektroniki unikalny numer śledzenia. Gdy pojedynczy gadżet jest powiązany z dwuniętym autobusem, polecenie sprawdzone Out ROM wyodrębnie swój adres.

1-przewodowy> {0x33 R: 8 <-Command XXX 1WIRE Bus reset OK XXX 1WIRE Napisz: 0x33 <-Read rom XXX 1WIRE Bulk Read, 0x08 bajtów: 0x22 0x47 0x45 0x22 0x00 0x00 0x00 0x29 <-id # 1-przewodowy>

Polecenie wysyła reset magistrali ({), polecenie sprawdzone (0x33) i odczytuje adres 64-bitowy (R: 8, 8 bajtów * 8bits / bajt = 64 mitów).

Pierwszy bajt (0x22) określa to jako termometr DS1822. Następne 6 bajtów są unikalne dla tego urządzenia, a ostatni bajt jest CRC z poprzednich bajtów 7.

Teraz możemy rozwiązać gadżet z poleceniem MATCH ROM i wyślij go dalsze instrukcje.

1-przewodowy> {0x55 0x22 0x47 0x45 0x22 0x00 0x00 0x00 0x29 0x44
XXX 1WIRE Bus reset OK
XXX 1WIRE Napisz: 0x55 <-Match ROM Polecenie XXX 1WIRE Napisz: 0x22 <-start Adres XXX 1WIRE Napisz: 0x47 XXX 1WIRE Napisz: 0x45 XXX 1WIRE Napisz: 0x22 XXX 1WIRE Napisz: 0x00 XXX 1WIRE Napisz: 0x00 XXX 1WIRE Napisz: 0x00 XXX 1WIRE Napisz: 0x29 XXX 1WIRE Napisz: 0x44 <-start Konwersja 1-przewodowy>

Po pierwsze, wysyłamy komendę MATCH ROM (0x55) i adres gadżetu (8 bajtów). Dalej jest komenda Convert T (0x44, DataSheet Page 11), który rozpoczyna konwersję temperatury.

Druga sekwencja poleceń pobiera odczyt temperatury z DS1822.

1-przewodowy> {0x55 0x22 0x47 0x45 0x22 0x00 0x00 0x00 0x29 0xbe R: 9
XXX 1WIRE Bus reset OK
XXX 1WIRE Napisz: 0x55
XXX 1WIRE Napisz: 0x22
… Długie 1-drut adres …
XXX 1WIRE Napisz: 0x29
XXX 1WIRE Napisz: 0xbe <-Read scrappad polecenie XXX 1WIRE Bulk Czytaj, 0x09 bajtów: 0x71 0x01 0xFF 0x00 0x7f 0xFF 0x0f 0x10 0xF8 1-przewodowy>

Polecenie sprawdzonego Scratcipad (0xbe, DataSheet Page 11) Zwraca 9 bajtów. Dbamy tylko o pierwsze dwa bajty, reszta może być dekodowana zgodnie z tabelą na stronie 7 arkusza danych. Temperatura jest obliczana według strony 4 arkusza danych: 0x0171 Hex = 369 grudnia, 369 * 0,0625 = 23C (74F).

Wiele urządzeń

Gdy kilku 1-przewodowych gadżetów dzieli się autobusem, trudniej jest określić wszystkie adresy. Najszybszą metodą odkrycia podłączonych gadżetów jest polecenie Przeglądaj ROM (0xF0) i binarną procedurę rozgałęzienia. Pirat autobusu automatyzuje to makro (240).

1-przewodowy> (240) <-Macro 240 XXX 1WIRE Command: Przeglądaj (0xF0) Znaleziono gadżety na: Adres Makro 1-Wire 1,0 × 22 0x50 0x28 0x22 0x00 0x00 0x00 0x0a <-Adress * DS1822 ECON DIG THERM <-ype zgodnie z kodem gospodarstwa domowego 2.0 × 22 0xd0 0xC7 0x1a 0x00 0x00 0x00 0x01 * DS1822 ECON Dig 3.0 × 22 0x47 0x45 0x22 0x00 0x00 0x00 0x29 * DS1822 ECON Dig Znaleziono urządzenia 0x03. Pierwsze 10 identyfikatorów gadżetów są oferowane przez makro, patrz (0). 1-przewodowy>

Polecenie Przeglądaj ROM pokazuje znalezione gadżety, a typ według kodu gospodarstwa domowego.

We believe typing 8 byte 1-Wire addresses is truly tedious, so the very first 10 gadget addresses are kept in memory and can be accessed with the macros (1)…(10). A buffer for as much as 50 gadget addresses can be defined in the 1-Wire library at compile time. Ideally, this data will be kept in a worldwide scratch buffer shared by all modules in a future firmware update.

1-WIRE>(0) <–show macro list 0,macro Menu. Macro 1-przewodowy adres <-enumerowany adresy gadżetów 1.0 × 22 0x50 0x28 0x22 0x00 0x00 0x00 0x0a * DS1822 ECON Dig 2.0 × 22 0xd0 0xC7 0x1a 0x00 0x00 0x00 0x01 * DS1822 ECON Dig 3.0 × 22 0x47 0x45 0x22 0x00 0x00 0x00 0x29 * DS1822 ECON Dig 1-Wire ROM Command Macros: <- Normalne polecenia 51.Read ROM (0x33) * Dla autobusu pojedynczego gadżetu 85.Match ROM (0x55) * Po następnym adresie 64-bit 204.skip ROM (0xCC) * Po poleceniu 236.Alarm Przeglądaj (0xec) 240.Search ROM (0xF0) 1-przewodowy>

Menu makro (0) obejmuje również adresy gadżetów przechowywane w listach. Teraz możemy po prostu rozwiązać gadżety makro, zamiast wpisywać cały adres 64-bit za każdym razem.

1-przewodowy> (85) (1) 0x44 <-start konwersja XXX 1WIRE Bus reset OK XXX 1WIRE Compose ROM Command: Mecz (0x55) * Postępuj zgodnie z adresem 64bit XXX 1WIRE Adres Macro 1: 0x22 0x50 0x28 0x22 0x00 0x00 0x00 0X0A XXX 1WIRE Napisz: 0x44 1-przewodowy> (85) (1) 0xbe R: 9 <-Fetch Reading XXX 1WIRE Bus reset OK XXX 1WIRE Compose ROM Command: Mecz (0x55) * Postępuj zgodnie z adresem 64bit XXX 1WIRE Adres Macro 1: 0x22 0x50 0x28 0x22 0x00 0x00 0x00 0X0A XXX 1WIRE Napisz: 0xbe XXX 1WIRE Bulk Czytaj, 0x09 bajtów: 0x81 0x01 0x4b 0x46 0x7f 0xFF 0x0f 0x10 0x71 1-przewodowy>

(85) to skrót do resetowania magistrali i komendy ROM ROM. (1) Czy macro adresu gadżetu i 0x44 jest poleceniem rozpoczęcia konwersji temperatury. Pobieranie czytania obejmuje dokładnie te same makra, jednak zastępuje polecenie, aby sprawdzić gadżet (0xbe) i chwyta 9 bajtów (R: 9). Temperatura wynosi 0x0181 lub 24C obok wentylatora PC.

Biorąc to dalej

Wykorzystaliśmy pirat autobusu, aby zapewnić wizualną prezentację protokołu 1-przewodowego, jednak prawdziwy trudność integrująca go do własnego projektu. Maxim zapewnia przykładowy kod, Microchip ma aplikację Uwaga (PDF), a możesz sprawdzić przykład używanego kodu.

Pobieranie oprogramowania układowego: buspirate.vod.zip