Si70xx - RHT Sensor
Description
Silicon Labs Si7006/13/20/21 Relative Humidity and Temperature Sensor I2C driver.
Si70xx example code
Basic example for relative humidity and temperature measurement using an Si7021 sensor:
#include "sl_i2cspm_instances.h"
#include "sl_si70xx.h"
int main( void )
{
...
int32_t temp_data;
uint32_t rh_data;
sl_si70xx_init(sl_i2cspm_sensor, SI7021_ADDR);
sl_si70xx_measure_rh_and_temp(sl_i2cspm_sensor, SI7021_ADDR, &rh_data, &temp_data);
...
}
Functions |
|
| sl_status_t | sl_si70xx_init (sl_i2cspm_t *i2cspm, uint8_t addr) |
|
Initialize the Si70xx sensor.
|
|
| bool | sl_si70xx_present (sl_i2cspm_t *i2cspm, uint8_t addr, uint8_t *device_id) |
|
Check whether an Si7006/13/20/21 is present on the I2C bus or not.
|
|
| sl_status_t | sl_si70xx_measure_rh_and_temp (sl_i2cspm_t *i2cspm, uint8_t addr, uint32_t *rhData, int32_t *tData) |
|
Measure relative humidity and temperature from an Si7006/13/20/21 sensor.
|
|
| sl_status_t | sl_si70xx_get_firmware_revision (sl_i2cspm_t *i2cspm, uint8_t addr, uint8_t *fwRev) |
|
Read Firmware Revision from an Si7006/13/20/21 sensor.
|
|
| sl_status_t | sl_si70xx_read_rh_and_temp (sl_i2cspm_t *i2cspm, uint8_t addr, uint32_t *rhData, int32_t *tData) |
|
Read relative humidity and temperature from an Si7006/13/20/21 sensor.
|
|
| sl_status_t | sl_si70xx_start_no_hold_measure_rh_and_temp (sl_i2cspm_t *i2cspm, uint8_t addr) |
|
Start a no hold measurement of relative humidity and temperature from an Si7006/13/20/21 sensor.
|
|
| sl_status_t | sl_si7013_measure_analog_voltage (sl_i2cspm_t *i2cspm, uint8_t addr, int32_t *vData) |
|
Measure the analog voltage or thermistor temperature from the Si7013 sensor.
|
|
Sensor Defines |
|
| #define | SI7006_ADDR 0X40 |
|
I2C device address for Si7006.
|
|
| #define | SI7013_ADDR 0x41 |
|
I2C device address for Si7013.
|
|
| #define | SI7020_ADDR 0X40 |
|
I2C device address for Si7020.
|
|
| #define | SI7021_ADDR 0x40 |
|
I2C device address for Si7021.
|
|
| #define | SI7006_DEVICE_ID 0x06 |
|
Device ID value for Si7006.
|
|
| #define | SI7013_DEVICE_ID 0x0D |
|
Device ID value for Si7013.
|
|
| #define | SI7020_DEVICE_ID 0x14 |
|
Device ID value for Si7020.
|
|
| #define | SI7021_DEVICE_ID 0x15 |
|
Device ID value for Si7021.
|
|
Function Documentation
◆ sl_si70xx_init()
| sl_status_t sl_si70xx_init | ( | sl_i2cspm_t * |
i2cspm,
|
| uint8_t |
addr
|
||
| ) |
Initialize the Si70xx sensor.
- Parameters
-
[in] i2cspmThe I2C peripheral to use. [in] addrThe I2C address to probe.
- Return values
-
SL_STATUS_OKAn Si70xx device is present on the I2C bus SL_STATUS_INITIALIZATIONNo Si70xx device present
◆ sl_si70xx_present()
| bool sl_si70xx_present | ( | sl_i2cspm_t * |
i2cspm,
|
| uint8_t |
addr,
|
||
| uint8_t * |
device_id
|
||
| ) |
Check whether an Si7006/13/20/21 is present on the I2C bus or not.
- Parameters
-
[in] i2cspmThe I2C peripheral to use. [in] addrThe I2C address to probe. [out] device_idWrite device ID from SNB_3 if device responds. Pass in NULL to discard. Should be 0x0D for Si7013, 0x14 for Si7020 or 0x15 for Si7021
- Return values
-
trueAn Si70xx device is present on the I2C bus falseNo Si70xx device present
◆ sl_si70xx_measure_rh_and_temp()
| sl_status_t sl_si70xx_measure_rh_and_temp | ( | sl_i2cspm_t * |
i2cspm,
|
| uint8_t |
addr,
|
||
| uint32_t * |
rhData,
|
||
| int32_t * |
tData
|
||
| ) |
Measure relative humidity and temperature from an Si7006/13/20/21 sensor.
- Parameters
-
[in] i2cspmThe I2C peripheral to use. [in] addrThe I2C address of the sensor. [out] rhDataThe relative humidity in percent (multiplied by 1000). [out] tDataThe temperature in milliCelsius.
- Return values
-
SL_STATUS_OKSuccess SL_STATUS_TRANSMITI2C transmission error
◆ sl_si70xx_get_firmware_revision()
| sl_status_t sl_si70xx_get_firmware_revision | ( | sl_i2cspm_t * |
i2cspm,
|
| uint8_t |
addr,
|
||
| uint8_t * |
fwRev
|
||
| ) |
Read Firmware Revision from an Si7006/13/20/21 sensor.
- Parameters
-
[in] i2cspmThe I2C peripheral to use. [in] addrThe I2C address of the sensor. [out] fwRevThe internal firmware revision. 0xFF === 1.0
- Return values
-
SL_STATUS_OKSuccess SL_STATUS_TRANSMITI2C transmission error
◆ sl_si70xx_read_rh_and_temp()
| sl_status_t sl_si70xx_read_rh_and_temp | ( | sl_i2cspm_t * |
i2cspm,
|
| uint8_t |
addr,
|
||
| uint32_t * |
rhData,
|
||
| int32_t * |
tData
|
||
| ) |
Read relative humidity and temperature from an Si7006/13/20/21 sensor.
- Parameters
-
[in] i2cspmThe I2C peripheral to use. [in] addrThe I2C address of the sensor. [out] rhDataThe relative humidity in percent (multiplied by 1000). [out] tDataThe temperature in milliCelsius.
- Return values
-
SL_STATUS_OKSuccess SL_STATUS_TRANSMITI2C transmission error
◆ sl_si70xx_start_no_hold_measure_rh_and_temp()
| sl_status_t sl_si70xx_start_no_hold_measure_rh_and_temp | ( | sl_i2cspm_t * |
i2cspm,
|
| uint8_t |
addr
|
||
| ) |
Start a no hold measurement of relative humidity and temperature from an Si7006/13/20/21 sensor.
- Parameters
-
[in] i2cspmThe I2C peripheral to use. [in] addrThe I2C address of the sensor.
- Return values
-
SL_STATUS_OKSuccess SL_STATUS_TRANSMITI2C transmission error
◆ sl_si7013_measure_analog_voltage()
| sl_status_t sl_si7013_measure_analog_voltage | ( | sl_i2cspm_t * |
i2cspm,
|
| uint8_t |
addr,
|
||
| int32_t * |
vData
|
||
| ) |
Measure the analog voltage or thermistor temperature from the Si7013 sensor.
- Note
- Analog voltage measurement only supported by Si7013
- Parameters
-
[in] i2cspmThe I2C peripheral to use. [in] addrThe I2C address of the sensor. [out] vDataThe data read from the sensor.
- Return values
-
SL_STATUS_OKSuccess SL_STATUS_TRANSMITI2C transmission error SL_STATUS_FAILFailure due to incorrect device ID
Macro Definition Documentation
◆ SI7006_ADDR
| #define SI7006_ADDR 0X40 |
I2C device address for Si7006.
◆ SI7013_ADDR
| #define SI7013_ADDR 0x41 |
I2C device address for Si7013.
◆ SI7020_ADDR
| #define SI7020_ADDR 0X40 |
I2C device address for Si7020.
◆ SI7021_ADDR
| #define SI7021_ADDR 0x40 |
I2C device address for Si7021.
◆ SI7006_DEVICE_ID
| #define SI7006_DEVICE_ID 0x06 |
Device ID value for Si7006.
◆ SI7013_DEVICE_ID
| #define SI7013_DEVICE_ID 0x0D |
Device ID value for Si7013.
◆ SI7020_DEVICE_ID
| #define SI7020_DEVICE_ID 0x14 |
Device ID value for Si7020.
◆ SI7021_DEVICE_ID
| #define SI7021_DEVICE_ID 0x15 |
Device ID value for Si7021.