EFR32 Blue Gecko 12 Software Documentation  efr32bg12-doc-5.1.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
si1133.h File Reference

Detailed Description

Driver for the Si1133 Ambient Light and UV sensor.

Version
5.1.1

License

Copyright 2016 Silicon Laboratories, Inc. http://www.silabs.com

This file is licensed under the Silicon Labs License Agreement. See the file "Silabs_License_Agreement.txt" for details. Before using this software for any purpose, you must agree to the terms of that agreement.

Definition in file si1133.h.

#include "si1133_config.h"

Go to the source code of this file.

Data Structures

struct  SI1133_Coeff_TypeDef
 Structure to store the calculation coefficients. More...
 
struct  SI1133_LuxCoeff_TypeDef
 Structure to store the coefficients used for Lux calculation. More...
 
struct  SI1133_Samples_TypeDef
 Structure to store the data measured by the Si1133. More...
 

Macros

#define SI1133_CMD_FORCE_CH   0x11
 
#define SI1133_CMD_NEW_ADDR   0x02
 
#define SI1133_CMD_PARAM_QUERY   0x40
 
#define SI1133_CMD_PARAM_SET   0x80
 
#define SI1133_CMD_PAUSE_CH   0x12
 
#define SI1133_CMD_RESET   0x01
 
#define SI1133_CMD_RESET_CMD_CTR   0x00
 
#define SI1133_CMD_START   0x13
 
#define SI1133_CONFIG_I2C_BUS_ADDRESS   (0xAA)
 
#define SI1133_CONFIG_I2C_DEVICE   (I2C0)
 
#define SI1133_ERROR_I2C_TRANSACTION_FAILED   0x0001
 
#define SI1133_ERROR_SLEEP_FAILED   0x0002
 
#define SI1133_I2C_DEVICE   (SI1133_CONFIG_I2C_DEVICE)
 
#define SI1133_I2C_DEVICE_BUS_ADDRESS   (SI1133_CONFIG_I2C_BUS_ADDRESS)
 
#define SI1133_OK   0x0000
 
#define SI1133_PARAM_ADCCONFIG0   0x02
 
#define SI1133_PARAM_ADCCONFIG1   0x06
 
#define SI1133_PARAM_ADCCONFIG2   0x0A
 
#define SI1133_PARAM_ADCCONFIG3   0x0E
 
#define SI1133_PARAM_ADCCONFIG4   0x12
 
#define SI1133_PARAM_ADCCONFIG5   0x16
 
#define SI1133_PARAM_ADCPOST0   0x04
 
#define SI1133_PARAM_ADCPOST1   0x08
 
#define SI1133_PARAM_ADCPOST2   0x0C
 
#define SI1133_PARAM_ADCPOST3   0x10
 
#define SI1133_PARAM_ADCPOST4   0x14
 
#define SI1133_PARAM_ADCPOST5   0x18
 
#define SI1133_PARAM_ADCSENS0   0x03
 
#define SI1133_PARAM_ADCSENS1   0x07
 
#define SI1133_PARAM_ADCSENS2   0x0B
 
#define SI1133_PARAM_ADCSENS3   0x0F
 
#define SI1133_PARAM_ADCSENS4   0x13
 
#define SI1133_PARAM_ADCSENS5   0x17
 
#define SI1133_PARAM_BURST   0x2B
 
#define SI1133_PARAM_CH_LIST   0x01
 
#define SI1133_PARAM_I2C_ADDR   0x00
 
#define SI1133_PARAM_MEASCONFIG0   0x05
 
#define SI1133_PARAM_MEASCONFIG1   0x09
 
#define SI1133_PARAM_MEASCONFIG2   0x0D
 
#define SI1133_PARAM_MEASCONFIG3   0x11
 
#define SI1133_PARAM_MEASCONFIG4   0x15
 
#define SI1133_PARAM_MEASCONFIG5   0x19
 
#define SI1133_PARAM_MEASCOUNT0   0x1C
 
#define SI1133_PARAM_MEASCOUNT1   0x1D
 
#define SI1133_PARAM_MEASCOUNT2   0x1E
 
#define SI1133_PARAM_MEASRATE_H   0x1A
 
#define SI1133_PARAM_MEASRATE_L   0x1B
 
#define SI1133_PARAM_THRESHOLD0_H   0x25
 
#define SI1133_PARAM_THRESHOLD0_L   0x26
 
#define SI1133_PARAM_THRESHOLD1_H   0x27
 
#define SI1133_PARAM_THRESHOLD1_L   0x28
 
#define SI1133_PARAM_THRESHOLD2_H   0x29
 
#define SI1133_PARAM_THRESHOLD2_L   0x2A
 
#define SI1133_REG_COMMAND   0x0B
 
#define SI1133_REG_HOSTIN0   0x0A
 
#define SI1133_REG_HOSTOUT0   0x13
 
#define SI1133_REG_HOSTOUT1   0x14
 
#define SI1133_REG_HOSTOUT10   0x1D
 
#define SI1133_REG_HOSTOUT11   0x1E
 
#define SI1133_REG_HOSTOUT12   0x1F
 
#define SI1133_REG_HOSTOUT13   0x20
 
#define SI1133_REG_HOSTOUT14   0x21
 
#define SI1133_REG_HOSTOUT15   0x22
 
#define SI1133_REG_HOSTOUT16   0x23
 
#define SI1133_REG_HOSTOUT17   0x24
 
#define SI1133_REG_HOSTOUT18   0x25
 
#define SI1133_REG_HOSTOUT19   0x26
 
#define SI1133_REG_HOSTOUT2   0x15
 
#define SI1133_REG_HOSTOUT20   0x27
 
#define SI1133_REG_HOSTOUT21   0x28
 
#define SI1133_REG_HOSTOUT22   0x29
 
#define SI1133_REG_HOSTOUT23   0x2A
 
#define SI1133_REG_HOSTOUT24   0x2B
 
#define SI1133_REG_HOSTOUT25   0x2C
 
#define SI1133_REG_HOSTOUT3   0x16
 
#define SI1133_REG_HOSTOUT4   0x17
 
#define SI1133_REG_HOSTOUT5   0x18
 
#define SI1133_REG_HOSTOUT6   0x19
 
#define SI1133_REG_HOSTOUT7   0x1A
 
#define SI1133_REG_HOSTOUT8   0x1B
 
#define SI1133_REG_HOSTOUT9   0x1C
 
#define SI1133_REG_HW_ID   0x01
 
#define SI1133_REG_IRQ_ENABLE   0x0F
 
#define SI1133_REG_IRQ_STATUS   0x12
 
#define SI1133_REG_PART_ID   0x00
 
#define SI1133_REG_RESPONSE0   0x11
 
#define SI1133_REG_RESPONSE1   0x10
 
#define SI1133_REG_REV_ID   0x02
 
#define SI1133_RSP0_CHIPSTAT_MASK   0xE0
 
#define SI1133_RSP0_COUNTER_MASK   0x1F
 
#define SI1133_RSP0_SLEEP   0x20
 

Functions

uint32_t SI1133_deInit (void)
 Stops the measurements on all channel and waits until the chip goes to sleep state. More...
 
uint32_t SI1133_getHardwareID (uint8_t *hardwareID)
 Reads Hardware ID from the SI1133 sensor. More...
 
uint32_t SI1133_getIrqStatus (uint8_t *irqStatus)
 Reads the interrupt status register of the device. More...
 
int32_t SI1133_getLux (int32_t vis_high, int32_t vis_low, int32_t ir, SI1133_LuxCoeff_TypeDef *lk)
 Compute lux value. More...
 
uint32_t SI1133_getMeasurement (float *lux, float *uvi)
 Retrieve the sample values from the chip and convert them to lux and UV index values. More...
 
int32_t SI1133_getUv (int32_t uv, SI1133_Coeff_TypeDef *uk)
 Compute UV index. More...
 
uint32_t SI1133_init (void)
 Initializes the Si1133 chip. More...
 
uint32_t SI1133_measureLuxUvi (float *lux, float *uvi)
 Measure lux and UV index using the Si1133 sensor. More...
 
uint32_t SI1133_measurementForce (void)
 Sends a FORCE command to the Si1133. More...
 
uint32_t SI1133_measurementGet (SI1133_Samples_TypeDef *samples)
 Read samples from the Si1133 chip. More...
 
static uint32_t SI1133_measurementPause (void)
 Sends a PAUSE command to the Si1133. More...
 
uint32_t SI1133_measurementStart (void)
 Sends a START command to the Si1133. More...
 
uint32_t SI1133_paramRead (uint8_t address)
 Reads a parameter from the Si1133. More...
 
uint32_t SI1133_paramSet (uint8_t address, uint8_t value)
 Writes a byte to an Si1133 Parameter. More...
 
uint32_t SI1133_registerBlockRead (uint8_t reg, uint8_t length, uint8_t *data)
 Reads a block of data from the Si1133 sensor. More...
 
uint32_t SI1133_registerBlockWrite (uint8_t reg, uint8_t length, uint8_t *data)
 Writes a block of data to the Si1133 sensor. More...
 
uint32_t SI1133_registerRead (uint8_t reg, uint8_t *data)
 Reads register from the Si1133 sensor. More...
 
uint32_t SI1133_registerWrite (uint8_t reg, uint8_t data)
 Writes register in the Si1133 sensor. More...
 
uint32_t SI1133_reset (void)
 Resets the Si1133. More...
 
uint32_t SI1133_resetCmdCtr (void)
 Sends a RESET COMMAND COUNTER command to the Si1133. More...