Detailed Description

Silicon Labs Si7013 Relative Humidity and Temperature Sensor I2C driver.

Macros

#define SI7013_ADDR 0x82
#define SI7013_DEVICE_ID 0x0D
#define SI7020_DEVICE_ID 0x14
#define SI7021_ADDR 0x80
#define SI7021_DEVICE_ID 0x21

Functions

bool Si7013_Detect (I2C_TypeDef *i2c, uint8_t addr, uint8_t *deviceId)
Checks if a Si7013 is present on the I2C bus or not.
int32_t Si7013_GetFirmwareRevision (I2C_TypeDef *i2c, uint8_t addr, uint8_t *fwRev)
Reads Firmware Revision from a Si7013 sensor.
int32_t Si7013_MeasureRHAndTemp (I2C_TypeDef *i2c, uint8_t addr, uint32_t *rhData, int32_t *tData)
Reads relative humidity and temperature from a Si7013 sensor.
int32_t Si7013_MeasureV (I2C_TypeDef *i2c, uint8_t addr, int32_t *vData)
Reads relative humidity and temperature from a Si7013 sensor.
int32_t Si7013_ReadNoHoldRHAndTemp (I2C_TypeDef *i2c, uint8_t addr, uint32_t *rhData, int32_t *tData)
Reads relative humidity and temperature from a Si7013 sensor.
int32_t Si7013_StartNoHoldMeasureRHAndTemp (I2C_TypeDef *i2c, uint8_t addr)
Starts no hold measurement of relative humidity and temperature from a Si7013 sensor.

Macro Definition Documentation

#define SI7013_ADDR   0x82

I2C device address for Si7013

Definition at line 56 of file si7013.h .

#define SI7013_DEVICE_ID   0x0D

Device ID value for Si7013

Definition at line 61 of file si7013.h .

#define SI7020_DEVICE_ID   0x14

Device ID value for Si7020

Definition at line 63 of file si7013.h .

#define SI7021_ADDR   0x80

I2C device address for Si7021

Definition at line 58 of file si7013.h .

#define SI7021_DEVICE_ID   0x21

Device ID value for Si7021

Definition at line 65 of file si7013.h .

Referenced by SI7021_init() .

Function Documentation

bool Si7013_Detect ( I2C_TypeDef * i2c,
uint8_t addr,
uint8_t * deviceId
)

Checks if a Si7013 is present on the I2C bus or not.

Parameters
[in] i2c The I2C peripheral to use (Not used).
[in] addr The I2C address to probe.
[out] deviceId Write 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
Returns
True if a Si70xx is detected, false otherwise.

Definition at line 410 of file si7013.c .

References I2C_TransferSeq_TypeDef::addr , I2C_TransferSeq_TypeDef::buf , I2C_TransferSeq_TypeDef::data , I2C_TransferSeq_TypeDef::flags , I2C_FLAG_WRITE_READ , I2CSPM_Transfer() , i2cTransferDone , and I2C_TransferSeq_TypeDef::len .

int32_t Si7013_GetFirmwareRevision ( I2C_TypeDef * i2c,
uint8_t addr,
uint8_t * fwRev
)

Reads Firmware Revision from a Si7013 sensor.

Parameters
[in] i2c The I2C peripheral to use.
[in] addr The I2C address of the sensor.
[out] fwRev The internal firmware revision. 0xFF === 1.0
Returns
Returns zero on OK, non-zero otherwise.

Definition at line 180 of file si7013.c .

References I2C_TransferSeq_TypeDef::addr , I2C_TransferSeq_TypeDef::buf , I2C_TransferSeq_TypeDef::data , I2C_TransferSeq_TypeDef::flags , I2C_FLAG_WRITE_READ , I2CSPM_Transfer() , i2cTransferDone , and I2C_TransferSeq_TypeDef::len .

int32_t Si7013_MeasureRHAndTemp ( I2C_TypeDef * i2c,
uint8_t addr,
uint32_t * rhData,
int32_t * tData
)

Reads relative humidity and temperature from a Si7013 sensor.

Parameters
[in] i2c The I2C peripheral to use.
[in] addr The I2C address of the sensor.
[out] rhData The relative humidity in percent (multiplied by 1000).
[out] tData The temperature in milli-Celsius.
Returns
Returns zero on OK, non-zero otherwise.

Definition at line 319 of file si7013.c .

int32_t Si7013_MeasureV ( I2C_TypeDef * i2c,
uint8_t addr,
int32_t * vData
)

Reads relative humidity and temperature from a Si7013 sensor.

Parameters
[in] i2c The I2C peripheral to use.
[in] addr The I2C address of the sensor.
[out] vData The data read from the sensor.
Returns
Returns zero on OK, non-zero otherwise.

Definition at line 383 of file si7013.c .

int32_t Si7013_ReadNoHoldRHAndTemp ( I2C_TypeDef * i2c,
uint8_t addr,
uint32_t * rhData,
int32_t * tData
)

Reads relative humidity and temperature from a Si7013 sensor.

Parameters
[in] i2c The I2C peripheral to use.
[in] addr The I2C address of the sensor.
[out] rhData The relative humidity in percent (multiplied by 1000).
[out] tData The temperature in milli-Celsius.
Returns
Returns zero on OK, non-zero otherwise.

Definition at line 282 of file si7013.c .

int32_t Si7013_StartNoHoldMeasureRHAndTemp ( I2C_TypeDef * i2c,
uint8_t addr
)

Starts no hold measurement of relative humidity and temperature from a Si7013 sensor.

Parameters
[in] i2c The I2C peripheral to use.
[in] addr The I2C address of the sensor.
Returns
Returns zero on OK, non-zero otherwise.

Definition at line 219 of file si7013.c .