1-Wire

From Smithnet Wiki
Revision as of 21:02, 17 February 2023 by NickPGSmith (talk | contribs) (1 revision imported)
Jump to navigation Jump to search

Hardware

See Maxim's website.

USB to 1-Wire converter

  • DS9490R, recommended external power load is limited to 25 mA.
  • 10 Ω in series with OW line
  • Application note on Network Topologies
RJ11 5-pin DIN 3-pin Mini DIN Name Function
1 3 3 VDD Power 5 V DC
2 1 GND Power Ground
3 5 2 OW 1-Wire Data
4 4 1 GND_OW 1-Wire Return
5 SUSO USB Suspend
6

Temperature Sensor

DS18S20 / DS18B20

  • When used in parasitic mode, tie VDD and GND together
  • Reads 85 C as an error condition: some OW communication is possible but proper temperature conversion failed.

ADC

DS2450

Switch

DS2405

Kernel Module

  • Modules:
    • wire (w1_smem, w1_therm)
    • ds2490
  • Devices in: /sys/bus/w1/devices
  • README

Digitemp

Initialise RC file with all supported devices:

# digitemp_DS2490 -i -d 1 -n 0
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Found DS2490 device #1 at 001/003
Turning off all DS2409 Couplers
..
Searching the 1-Wire LAN
28EEC13522160223 : DS18B20 Temperature Sensor
ROM #0 : 28EEC13522160223
Wrote .digitemprc


Walk device tree and show devices on the bus:

# digitemp_DS2490 -w
DigiTemp v3.5.0 Copyright 1996-2007 by Brian C. Lane
GNU Public License v2.0 - http://www.digitemp.com
Found DS2490 device #1 at 001/003
Turning off all DS2409 Couplers
..
Devices on the Main LAN
28EEC13522160223 : DS18B20 Temperature Sensor
81DAA024000000EC : Unknown Family Code

Show all devices with output format 1:

# digitemp_DS2490 -qa -o 1
Jul 15 15:26:56 Sensor 0 C: 85.00 F: 185.00

OWFS

Installation on Fedora 25

Install OWFS packages, enable and start services:

dnf install owfs-server owfs-libs owfs-fs

Config file:

  • /usr/lib/systemd/system/owserver.service

Options:

  • --w1 which uses the kernel ds2490 driver or
  • --usb=all to use all USB devices directly

Enable and start:

systemctl enable owserver owfs
systemctl start owserver
systemctl start owfs

Usage

Data appears under /run/owfs (and also /run/owfs/uncached). Default caching time: 10 s. For example (X is the OW hardware address):

Directory File Notes
/run/owfs/settings/units pressure_scale eg "mbar"
temperature_scale eg "C"
/run/owfs/81.X Base for DS9490R
/run/owfs/10.X Base for DS18S20
temperature Temperature, 1s conversion time, floating point.
power 1 if on power, 0 if parasitic
/run/owfs/28.X Base for DS18B20
temperature Temperature, 1s conversion time, floating point, 12 bit resolution.
temperature9, 10, 11 Lower resolution measurements (faster).
power 1 if on power, 0 if parasitic
/run/owfs/20.X Base for DS2450
volt.A Voltage measurement for channel A (similar for B-D)
volt.ALL All voltage measurements for A-D (CSV)

My devices:

  • 20.D02805000000 : Hub internal ADC
  • 28.EEC135221602 : Hub internal thermometer

Maxim SDKs

Can be obtained here.