Mostek master I²C/1-Wire w standardzie Grove

Mostek master I²C/1-Wire w standardzie Grove

Magistrala 1-Wire, dzięki termometrom DS18B20 i pastylkom identyfikacyjnym, utrzymuje popularność do dziś. zaprezentowany mostek umożliwia podłączenie magistrali 1-Wire do urządzenia wyposażonego w interfejs I²C. Korzystając z OWFS (One Wire File System) w prosty sposób można używać komponentów 1-Wire dołączonych do komputerków SBC, w tym oczywiście Raspberry Pi.

Podstawowe parametry:
  • bazuje na układzie DS2482-100,
  • zasilanie magistrali zabezpieczone bezpiecznikiem polimerowym,
  • wyposażony w opcjonalny obwód aktywnego podciągania magistrali 1-Wire,
  • pracuje poprawnie przy zasilaniu 3,3 lub 5 V.

Mostek bazuje na układzie DS2482-100 firmy Analog Devices (dawniej Maxim, a jeszcze dawniej Dallas), którego budowę pokazano na rysunku 1. Układ zawiera kontroler Master 1-Wire współpracujący z magistralą I²C oraz interfejs linii 1W z możliwością programowego aktywnego sterowania podciąganiem magistrali.

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

Budowa i działanie

Schemat mostka został pokazany na rysunku 2. Specjalizowany układ U1 wymaga jedynie odsprzęgania zasilania i elementów zabezpieczających linie 1-Wire. Pracuje poprawnie przy zasilaniu 3,3 lub 5 V.

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

Magistrala I²C oraz zasilanie z systemu SBC doprowadzone są do złącza I²C, rezystory R1, R2 podciągają szyny magistrali. 1-Wire wyprowadzono poprzez rezystor szeregowy R4 do złącza szpilkowego W1 oraz sprężynowego W2. Dioda TVS, zabezpiecza magistralę przed skutkami przepięć. Zasilanie magistrali jest zabezpieczone bezpiecznikiem polimerowym PF1.

Układ U1 ma możliwość adresacji przy pomocy zwór A0...A1. Domyślnie wszystkie zwory połączone są z masą, co ustawia adres bazowy 0x18. Układ wyposażony jest w opcjonalny obwód aktywnego podciągania z tranzystorem Q1 i rezystorem R3, przydatnym przy współpracy modułu z układami wymagającymi chwilowo większych prądów zasilania (np. EEPROM).

Montaż i uruchomienie

Moduł zmontowany jest na miniaturowej dwustronnej płytce drukowanej mechanicznie zgodnej z Grove, której schemat pokazano na rysunku 3. Montaż jest typowy i nie wymaga opisu, a sam układ nie wymaga uruchamiania.

Rysunek 3. Schemat płytki PCB

Szybkie sprawdzenie można wykonać przy pomocy 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, powinien być obecny pod ustawionym domyślnie adresem 0x18, jak pokazano na rysunku 4.

Rysunek 4. Detekcja układu DS1482-800 na magistrali I²C

Jeżeli układ jest widoczny, można przejść do instalacji pakietu OWFS (One Wire File System, https://www.owfs.org/), który mapuje nam urządzenia 1-Wire na system plików, analogicznie jak podczas mapowania dysków. Przy pomocy 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

Po instalacji konieczna jest edycja pliku:

sudo nano /etc/owfs.conf

Następnie należy dodać znak komentarza przy linii:

# server: FAKE = DS18S20,DS2405

oraz pod sekcją:

# USB device: DS9490
#server: usb = all

Teraz dodajemy następujący wpis:

server: device = /dev/i2c-1

oraz usuwamy komentarz z linii:

mountpoint = /mnt/1wire
allow_other

Po zapisaniu zmian, tworzymy katalog w którym montowane będą urządzenie 1-Wire:

sudo mkdir /mnt/1wire

a następnie restartujemy SBC:

sudo reboot now

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

i zastępujemy wpis:

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

zmodyfikowanym:

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

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

Rysunek 5. Poprawnie zamontowany DS2482-100

W podkatalogu bus.0 możemy sprawdzić podłączone do DS2482-100 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 DS1820 o ID 10D02B9901080018 z pliku możemy odczytać zmierzoną temperaturę, co widać na rysunku 6.

Rysunek 6. Przykładowy odczyt temperatury DS1820

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

Adam Tatuś, EP

Wykaz elementów:
Rezystory: (SMD0603, 5%)
  • R1, R2: 10 kΩ
  • R3: 0 Ω (opcja) dobrać dla ograniczenia prądu
  • R4: 1 Ω
Kondensatory: (SMD0603, 10 V)
  • C1, C3: 0,1 μF
  • C2: 10 μF
Półprzewodniki:
  • Q1: BSS84 (opcja) tranzystor MOSFET (SOT-23)
  • U2: DS2482S-100 (SO8)
Pozostałe:
  • I²CA: złącze grove kątowe (110990037)
  • PF1: bezpiecznik polimerowy 24 V; 0,5 A; 0,55Ω 0ZCJ0025 AF2E (SMD1206)
  • TVS: dioda zabezpieczająca PESD5,0S1UAV (SOD323F)
  • W1: złącze szpilkowe SIP3, raster 2,54 mm
  • W2: złącze sprężynowe WAGO250-3
Artykuł ukazał się w
Elektronika Praktyczna
styczeń 2024
DO POBRANIA
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio maj - czerwiec 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje kwiecień 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów