ow_temp —
Dallas
Semiconductor 1-Wire Temperature sensor
device ow_temp
The
ow_temp module supports many of the 1-Wire
temperature sensors.
The sensor is read periodically and the results returned via a
sysctl(3) as described below.
These temperature sensors are supported by the
ow_temp driver:
- DS1820
- 1-Wire Digital Thermometer
- DS18S20
- High-Precision 1-Wire Digital Thermometer
- DS18B20
- Programmable Resolution 1-Wire Digital Thermometer
- DS1822
- Econo 1-Wire Digital Thermometer
- DS1825
- Programmable Resolution 1-Wire Digital Thermometer with
4-bit ID
- MAX31820
- 1-Wire, Parasite-Power, Ambient Temperature Sensor
The driver supports Family codes 0x10, 0x22, 0x28, and 0x3b.
The
ow_temp driver reports data via
sysctl(8) entries in the device's node in the
sysctl(8) tree:
- temperature
- The last temperature read, in milli-Kelvin.
- badcrc
- The number of CRC errors in reading the temperature form
the device. Some CRC errors are to be expected. High rates of CRC errors,
however, generally indicate a noisy environment, cabling issues, or too
many devices on the bus.
- badread
- The number of times a non-CRC error was encountered reading
the temperature from the card. This type of error is very rare.
- reading_interval
- The time, in ticks, between successive reads of the
sensor.
- parasite
- This item is non-zero when the device is connected using
its parasitic power mode. It can also indicate a wiring error.
Temperatures are reported in milli-Kelvin, even though the absolute accuracy is
around 0.2 degrees for the good devices and around 1 degree for cheaper
devices. The devices report in steps of 0.0625 degrees. The driver preserves
the precision of the device's measurements in its
sysctl(8) reports. These devices often have a
much higher relative accuracy and repeatability than their absolute accuracy.
This makes them well suited for control loops that strive for stability and
become possible if the full precision is preserved.
ow(4),
owc(4),
sysctl(8),
owll(9),
own(9)
1-Wire is a registered trademark of Maxim Integrated Products, Inc.
The
ow_temp driver first appeared in
FreeBSD 11.0.
The
ow_temp device driver and this manual page were
written by
Warner Losh.
The parasitic mode of the devices does not work. It requires support from the
owc(4) driver that is unimplemented.
The ID bits from the
DS1825 are not recognized or
reported.
The type of the device is not reported via
sysctl(8).
Alarm mode is not supported. It is not possible to set the low and high alarm
temperatures.
There is no way to write to the EEPROM.
“Convert Temperature” requests are sent directly to the device.
There is no way to use the broadcast ability of the 1-Wire bus to do all the
conversions in parallel.
It is not possible to set the precision on those devices that support it.
The time to convert is fixed at 1 second, even though some devices are faster.
There is no character device to supply a stream of readings to a program.
Programs interested in the temperature must poll the sysctl to get the
temperature.