Ośmiokanałowy mostek master I²C/1-Wire Grove

Ośmiokanałowy mostek master I²C/1-Wire Grove

Magistrali 1-Wire nie trzeba nikomu przedstawiać – standard ten, za sprawą m.in. termometrów DS18B20 czy pastylek identyfikacyjnych, cieszy się znaczącą popularnością. Prezentowany mostek umożliwia podłączenie nawet ośmiu magistral 1-Wire do urządzenia wyposażonego w interfejs I²C. Stosując OWFS (One Wire File System), w prosty sposób można więc używać komponentów 1-Wire z komputerami SBC, w tym oczywiście z Raspberry Pi.

Podstawowe parametry:
  • konwersja z magistrali I²C na 8 kanałów 1-Wire,
  • napięcie zasilania: 3,0...5,0 V,
  • zasilanie poszczególnych kanałów wyprowadzone na niezależne piny złączy goldpin,
  • wbudowane rezystory podciągające na szynie I²C,
  • złącze I²C zgodne ze standardem Grove.

Mostek oparty jest na układzie DS2482-800 firmy Analog Devices (dawniej Maxim, a jeszcze dawniej – Dallas). Budowę układu pokazano na rysunku 1 – w jego strukturze znajduje się kontroler master 1-Wire (współpracujący z magistralą I²C) oraz osiem kanałów interfejsów 1-Wire.

Rysunek 1. Budowa wewnętrzna układu DS2482-800 (za notą AD)

Schemat mostka zaprezentowano na rysunku 2. Ze względu na złożoną budowę U1, jego implementacja wymaga jedynie zewnętrznego odsprzęgania zasilania oraz elementów zabezpieczających linie 1-Wire. Układ pracuje poprawnie w zakresie napięć zasilających 3...5 V. Magistrala I²C oraz zasilanie z systemu SBC doprowadzone są do złącza I²C, rezystory R1,2 podciągają obie linie magistrali, wymuszając stan wysoki w czasie braku transmisji. Kanały 1-Wire wyprowadzono, poprzez włączone szeregowo drabinki rezystorowe RP1 i RP2, na złącza I03, I047. Układy TVS1,2, zabezpieczają magistralę przed skutkami przepięć. Dla ułatwienia użytkowania na złącza V03, V47, GND03, GND47 wyprowadzono także zasilanie i masę tak, aby do podłączenia komponentów 1-Wire można było zastosować typowe przewody z wtykami NSR-03. Układ U1 ma możliwość adresacji za pomocą zwór A0...2. Domyślnie wszystkie zwory połączone są z masą, co ustawia adres bazowy na wartość 0x18.

Rysunek 2. Schemat ideowy mostka I²C/1-Wire

Moduł został zmontowany na miniaturowej, dwustronnej płytce drukowanej, mechanicznie zgodnej z Grove. Rozmieszczenie elementów pokazano na rysunkach 3a i 3b, a gotowy układ widać na fotografii tytułowej.

Rysunek 3. Rozmieszczenie elementów na PCB modułu (a – strona TOP, b – strona BOTTOM)

Montaż jest typowy, a sam układ nie wymaga uruchamiania. Szybkiego sprawdzenia przed użyciem we własnej aplikacji można wykonać za pomocą Raspberry Pi. Po podłączeniu modułu do magistrali I²C i zasileniu napięciem 3,3 V, używając pakietu i2c-tools, poleceniem i2cdetect –y 1 sprawdzamy obecność układu na magistrali. Mostek powinien zostać odnaleziony pod ustawionym domyślnie adresem 0x18, jak na rysunku 4.

Rysunek 4. Detekcja DS1482-800

Jeżeli układ jest widoczny, można przejść do instalacji pakietu OWFS (One Wire File System, https://www.owfs.org/), który zmapuje urządzenia 1-Wire na system plików, analogicznie jak podczas mapowania dysków. Za pomocą OWFS, z poziomu systemu operacyjnego, mamy dostęp praktycznie do wszystkich parametrów, jakie udostępniają układy 1-Wire. Przed instalacją OWFS warto zaktualizować system:

 

sudo apt-get update

sudo apt-get install owfs python-ow ow-shell

zaś po instalacji konieczna jest edycja pliku:

sudo nano /etc/owfs.conf

poprzez „zakomentowanie” linii:

# server: FAKE = DS18S20,DS2405

oraz dodanie następującego wpisu:

server: device = /dev/i2c-1

pod sekcją:

# USB device: DS9490

#server: usb = all

 

Dodatkowo trzeba usunąć znak komentarza z linii:

 

mountpoint = /mnt/1wire

allow_other

zaś po zapisaniu zmian utworzyć katalog, w którym montowane będą urządzenia 1-Wire:

sudo mkdir /mnt/1wire

Następnie restartujemy Raspberry Pi:

sudo reboot now

a po uruchomieniu aktywujemy serwer:

sudo systemctl enable owserver.service

i montujemy urządzenia 1-Wire:

sudo owfs -C -uall -m /mnt/1wire --allow_other

Uwaga! Czasem urządzenia montowane są dwukrotnie. Aby usunąć ten problem, edytujemy plik:

sudo nano /lib/systemd/system/owfs.service

zastępując wpis:

ExecStart=/usr/bin/owfs -c /etc/owfs.conf --allow_other %t/owfs

linią zmodyfikowaną w następujący sposób:

ExecStart=/usr/bin/owfs --allow_other %t/owfs

Po restarcie możemy sprawdzić urządzenia zamontowane w katalogu /mnt/1wire, a w przypadku mostka DS2482-800 – w podkatalogu bus.0 (rysunek 5).

Rysunek 5. Mostek DS2482-800 poprawnie zamontowany w systemie operacyjnym

W podkatalogach bus0...7 możemy sprawdzić podłączone do poszczególnych kanałów DS2482-800 układy 1-Wire. W podkatalogach zaznaczonych na zielono, o nazwie identycznej z unikalnym numerem seryjnym ID układu, zapisane są udostępniane parametry. Przykładowo: dla DS18B20 o ID 287CD3FA0100002A, z pliku temperature12, możemy odczytać zmierzoną temperaturę, co pokazano na rysunku 6.

Rysunek 6. Przykładowy odczyt temperatury DS18B20

Jeżeli wszystko działa poprawnie, można zastosować moduł we własnej aplikacji.

Adam Tatuś, EP

Wykaz elementów:
Rezystory:
  • R1, R2: 10 kΩ (SMD 0603, 5%)
  • RP1, RP2: drabinka 33 Ω 5% (CRA06S08)
Kondensatory:
  • C1: 0,1 μF (SMD 0603, 10 V, X7R)
  • C2: 10 μF (SMD 0603, 10 V, X7R)
Półprzewodniki:
  • TVS1, TVS2: ESD204 (USON10)
  • U1: DS2482S-800+ (SO16)
Pozostałe:
  • I03, I47, G03, G47, V03, V47: złącze SIP4, 2,54 mm
  • I2CA: złącze Grove kątowe (110990037)
Artykuł ukazał się w
Elektronika Praktyczna
czerwiec 2025
DO POBRANIA
Materiały dodatkowe
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik listopad 2025

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio listopad - grudzień 2025

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje listopad - grudzień 2025

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna listopad 2025

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich grudzień 2025

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów