Do komunikacji z chipami 1wire wykorzystuję konwerter brytyjskiej firmy AB Electronics zrealizowany na układzie DS2482-100. Wpinany bezpośrednio w GPIO maliny, wykorzystuje piny na których jest zrealizowana szyna i2C.
Płytka posiada złącze ma RJ12. Obszycie pinów wygląda następująco:
Polska firma MERA-PROJEKT produkuje także konwertery USB na 1wire. Wykorzystywałem kiedyś moduł MP00200A oparty o chip DS2490. Niestety, nie jest już dostępny w sprzedaży.
Aby chipy 1wire były widoczne w systemie posługuję się pakietem OWFS (One Wire File System). Program ten działa w ten sposób, że tworzy wirtualny system katalogów i plików, które w swej strukturze udostępniają parametry oferowane przez dany chip. Poniżej przykład takiej struktury. W głównym katalogu, którego nazwa jest zgodna z ROM-em, czyli unikalnym numerem dla każdego wyprodukowanego układu, znajdują się pliki z wielkościami i parametrami chipa. Przykład dla układu DS18S20 jest poniżej,nazwa katalogu 10.000010EF0000 to ROM układu, plik temperature przechowuje zmierzoną temperaturę:
Instalacja owfs w Raspbianie jest bardzo łatwa. Wydajmy polecenie:
Przygotowujemy katalog do którego owfs zamontuje swój wirtualny system plików:
Po poprawnym zainstalowaniu oprogramowania, uruchamiamy demona, który połączy się poprzez konwerter usb lub i2c z magistralą 1wire i pokaże podpięte układy.
Dla konwertera usb wydajemy polecenie:
Dla konwertera poprzez szynę i2c:
W opcjach polecenia owfs deklarujemy:
--allow_other aby wszyscy użytkownicy systemu mieli dostęp do utworzonych katalogów i plików,
--i2c lub --usb to rodzaj konwertera,
-m /mnt/1wire to punkt montowania wirtualnego systemu plików.
Aby system po uruchomieniu udostępnił zawartość magistrali 1wire, trzeba dopisać jedno z powyższych poleceń w pliku /etc/init.d/rc.local. Przegladanie zawartości plików, można realizować poleceniami dostępnymi w systemie:
Płytka konwertera |
Konwerter zamontowany na malince |
Płytka posiada złącze ma RJ12. Obszycie pinów wygląda następująco:
GNIAZDO RJ12 w module
_____________ 1- 5V
| ___________ | 2- GND
||I I I I I I|| 3- DATA 1wire
||1 2 3 4 5 6|| 4- GND 1wire
||___________|| 5- NC
|____ ____| 6- NC
|___|
Widok od przodu
Polska firma MERA-PROJEKT produkuje także konwertery USB na 1wire. Wykorzystywałem kiedyś moduł MP00200A oparty o chip DS2490. Niestety, nie jest już dostępny w sprzedaży.
Polski konwerter MP00200A produkcji MERA-PROJEKT |
Aby chipy 1wire były widoczne w systemie posługuję się pakietem OWFS (One Wire File System). Program ten działa w ten sposób, że tworzy wirtualny system katalogów i plików, które w swej strukturze udostępniają parametry oferowane przez dany chip. Poniżej przykład takiej struktury. W głównym katalogu, którego nazwa jest zgodna z ROM-em, czyli unikalnym numerem dla każdego wyprodukowanego układu, znajdują się pliki z wielkościami i parametrami chipa. Przykład dla układu DS18S20 jest poniżej,nazwa katalogu 10.000010EF0000 to ROM układu, plik temperature przechowuje zmierzoną temperaturę:
10.000010EF0000
|-- address
|-- crc8
|-- die
|-- family
|-- id
|-- locator
|-- power
|-- present
|-- r_address
|-- r_id
|-- r_locator
|-- temperature
|-- temphigh
|-- templow
|-- trim
|-- trimblanket
|-- trimvalid
`-- type
Instalacja owfs w Raspbianie jest bardzo łatwa. Wydajmy polecenie:
#sudo apt-get install owfs
Przygotowujemy katalog do którego owfs zamontuje swój wirtualny system plików:
#sudo mkdir /mnt/1wire
Po poprawnym zainstalowaniu oprogramowania, uruchamiamy demona, który połączy się poprzez konwerter usb lub i2c z magistralą 1wire i pokaże podpięte układy.
Dla konwertera usb wydajemy polecenie:
#sudo owfs --allow_other --usb -m /mnt/1wire
Dla konwertera poprzez szynę i2c:
#sudo owfs --allow_other --i2c -m /mnt/1wire
W opcjach polecenia owfs deklarujemy:
--allow_other aby wszyscy użytkownicy systemu mieli dostęp do utworzonych katalogów i plików,
--i2c lub --usb to rodzaj konwertera,
-m /mnt/1wire to punkt montowania wirtualnego systemu plików.
Aby system po uruchomieniu udostępnił zawartość magistrali 1wire, trzeba dopisać jedno z powyższych poleceń w pliku /etc/init.d/rc.local. Przegladanie zawartości plików, można realizować poleceniami dostępnymi w systemie:
#ls -all /mnt/1wire
#cat /mnt/1wire/10.000010EF0000/temperature
Dzięki takiemu rozwiązaniu mamy dostęp do magistrali praktycznie z każdego języka programowania, który pozwala na czytanie plików.
Brak komentarzy:
Prześlij komentarz