Keďže už mám HW,FW a aj I2C to 1wire švába bolo načase spraviť konečné riešenie.
Najprv par fotiek riešenia:
Čidlo
Ako na to pod Linuxom:
Po zapnutí by sa malo zariadenie nájsť automaticky:
[182470.820375] usb 4-5: new low-speed USB device number 40 using ohci_hcd [182470.855874] usb 4-5: New USB device found, idVendor=0403, idProduct=c631 [182470.855892] usb 4-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [182470.855903] usb 4-5: Product: i2c-tiny-usb [182470.855910] usb 4-5: Manufacturer: Till Harbaum [182470.858023] i2c-tiny-usb 4-5:1.0: version 1.05 found at bus 004 address 040 [182470.860535] i2c i2c-1: connected i2c-tiny-usb device
Ak nie treba skontrolovať či máme zavedený modul i2c_tiny_usb. Na 1Wire treba natiahnuť moduly i2c_dev, ds2482, wire. DS2482 sa ale neinicializuje sám ale treba ho nakopnúť.
Najpr si nájdeme kde máme I2C zbernicu:
# i2cdetect -l i2c-1 i2c i2c-tiny-usb at bus 004 device 040 I2C adapter i2c-0 smbus SMBus PIIX4 adapter at 0b00 SMBus adapter
V mojom prípade je to i2c-1. Tak si pozrieme či vidíme aj konvertor:
# i2cdetect 1 WARNING! This program can confuse your I2C bus, cause data loss and worse! I will probe file /dev/i2c-1. I will probe address range 0x03-0x77. Continue? [Y/n] 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- 18 -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Konvertory majú adresu z rozsahu 0x18 až 0x1B Ja ho mám na adrese 0x18. Tak to linux-u povieme:
#echo ds2482 0x18 > /sys/bus/i2c/devices/i2c-1/new_device
Teraz by sa nám mala objaviť 1Wire zbernica.
#ls /sys/bus/w1/devices/ w1_bus_master1
A teraz môžeme zistiť či nejaké zariadenia vidíme:
# cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slave_count 0 # cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slave_count 1
Ak sme nejaké zariadenia objavíme tak si môžeme pozrieť ich čísla
# cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves 28-0000019d3c92
Keďže 28 znamená teplomery môžeme použiť driver ktorý nám zjednoduší prácu w1_therm tým získame súbor w1_slave:
# cat /sys/bus/w1/devices/28-0000019d3c92/w1_slave 60 01 4b 46 7f ff 10 10 b5 : crc=b5 YES 60 01 4b 46 7f ff 10 10 b5 t=22000
čo znemená že tu mám 22 stupňov presne.