SI70XXTEMP(4) Device Drivers Manual SI70XXTEMP(4)

si70xxtempDriver for Silicon Labs SI7013/SI7020/SI7021, HTU21D and SHT21 sensor chip via I2C bus

si70xxtemp* at iic? addr 0x40

The si70xxtemp driver provides measurements from the SI7013/SI7020/SI7021 humidity/temperature sensors via the envsys(4) framework. The si70xxtemp addr locator selects the address at the iic(4) bus. The resolution, heater control and crc validity can be changed through sysctl(8) nodes.

The following sysctl(8) variables are provided:

Lists the resolutions supported by the driver and chip.
Set the resolution, or number of bits, used for %RH and temperature. Use one of the strings listed in hw.si70xxtemp.resolutions.
If set, the crc calculation for %RH and temperature will be ignored.
If 1, the chip is getting enough power.
Turn the heater on and off.
From 1 to 6, the amount of energy put into the heater. The higher the number, the more power used.

Some HTU21D chips do not support a heater register. These chips are detected and the heater features of the driver will be disabled.

If the driver is compiled with SI70XX_DEBUG, this node will appear and can be used to set the debugging level.
To read %RH or temperature the driver uses a No Hold Master command. This command needs to be sent to the device, a wait must then occur and then another read command is sent to read back the values. Depending on the resolution, and other factors, the wait time varies. The driver will attempt to read back the values readattempts number of times. The default is 40 which should be enough for most purposes. There is an initial wait of 10,500 microseconds followed by a additional 1,000 microseconds per read attempt.
The chip supports a set of commands that lets it use I2C clock stretching to perform the temperature or humidity measurement. If this is set to 1 then use the clock stretching commands with the device. Note that the I2C controller must support clock stretching in order for this to work reliability. When this option is enabled, the readattempts sysctl noted above will not be used.

envsys(4), iic(4), envstat(8), sysctl(8)

The si70xxtemp driver first appeared in NetBSD 8.0.

The si70xxtemp driver was written by Brad Spencer <brad@anduin.eldar.org>.

December 28, 2017 NetBSD 10.99