ISL29125 RGB light sensor

Device driver for the ISL29125 RGB light sensor. More...

Detailed Description

Device driver for the ISL29125 RGB light sensor.

Description

The device supports level conversion in 12, and 16 bit depth per channel. Selecting a higher precision results in a longer conversion time.

The driver uses the color_rgb_t color definition from color.h for value representation. It does not depend on the color module however.

Usage

Examine tests/driver_isr29125 for an exemplary application using this driver.

Caveats

A GPIO pin definition has been included in the interface for future compatibility only.

Files

file  isl29125.h
 Device driver interface for the ISL29125 RGB light sensor.
 
file  isl29125-internal.h
 Definitions for the ISL29125 RGB light sensor.
 
file  isl29125_params.h
 Default configuration for ISL29125 devices.
 

Data Structures

struct  isl29125_rgb_t
 Data type for storing lux RGB sensor readings. More...
 
struct  isl29125_params_t
 Device parameters for ISL29125 sensors. More...
 
struct  isl29125_t
 Device descriptor for ISL29125 sensors. More...
 

Enumerations

enum  isl29125_mode_t {
  ISL29125_MODE_DOWN = 0x00, ISL29125_MODE_STANDBY = 0x04, ISL29125_MODE_RGB = 0x05, ISL29125_MODE_R = 0x02,
  ISL29125_MODE_G = 0x01, ISL29125_MODE_B = 0x03, ISL29125_MODE_RG = 0x06, ISL29125_MODE_GB = 0x07
}
 Supported operation modes of the ISL29125 sensor's AD conversion. More...
 
enum  isl29125_range_t { ISL29125_RANGE_375 = 0x00, ISL29125_RANGE_10K = 0x08 }
 Supported RGB sensing range values of the ISL29125 sensor. More...
 
enum  isl29125_resolution_t { ISL29125_RESOLUTION_12 = 0x10, ISL29125_RESOLUTION_16 = 0x00 }
 Supported color resolutions of the ISL29125 sensor's AD conversion. More...
 
enum  isl29125_interrupt_status_t { ISL29125_INTERRUPT_STATUS_NONE = 0x00, ISL29125_INTERRUPT_STATUS_GREEN = 0x01, ISL29125_INTERRUPT_STATUS_RED = 0x02, ISL29125_INTERRUPT_STATUS_BLUE = 0x03 }
 Configuration-3 Register 0x03 B1:0. More...
 
enum  isl29125_interrupt_persist_t { ISL29125_INTERRUPT_PERSIST_1 = (0x00 << 2), ISL29125_INTERRUPT_PERSIST_2 = (0x01 << 2), ISL29125_INTERRUPT_PERSIST_4 = (0x02 << 2), ISL29125_INTERRUPT_PERSIST_8 = (0x03 << 2) }
 Configuration-3 Register 0x03 B3:2. More...
 
enum  isl29125_interrupt_conven_t { ISL29125_INTERRUPT_CONV_DIS = (0x0 << 4), ISL29125_INTERRUPT_CONV_EN = (0x1 << 4) }
 Configuration-3 Register 0x03 B4. More...
 

Functions

int isl29125_init (isl29125_t *dev, const isl29125_params_t *params)
 Initialize a new ISL29125 device. More...
 
int isl29125_init_int (isl29125_t *dev, isl29125_interrupt_status_t interrupt_status, isl29125_interrupt_persist_t interrupt_persist, isl29125_interrupt_conven_t interrupt_conven, uint16_t lower_threshold, uint16_t higher_threshold, gpio_cb_t cb, void *arg)
 Initialize interrupts. More...
 
void isl29125_read_rgb_lux (const isl29125_t *dev, isl29125_rgb_t *dest)
 Read RGB values from device. More...
 
void isl29125_read_rgb_color (const isl29125_t *dev, color_rgb_t *dest)
 Read color values from device. More...
 
void isl29125_set_mode (const isl29125_t *dev, isl29125_mode_t mode)
 Set the device's operation mode. More...
 
int isl29125_read_irq_status (const isl29125_t *dev)
 Read isl29125 interrupt status. More...
 

Enumeration Type Documentation

◆ isl29125_interrupt_conven_t

Configuration-3 Register 0x03 B4.

Enumerator
ISL29125_INTERRUPT_CONV_DIS 

RGB Conversion done to ~INT Control disable.

ISL29125_INTERRUPT_CONV_EN 

RGB Conversion done to ~INT Control enable.

Definition at line 143 of file isl29125.h.

◆ isl29125_interrupt_persist_t

Configuration-3 Register 0x03 B3:2.

Enumerator
ISL29125_INTERRUPT_PERSIST_1 

Int.

Persist: Number of integration cycle 1

ISL29125_INTERRUPT_PERSIST_2 

Int.

Persist: Number of integration cycle 2

ISL29125_INTERRUPT_PERSIST_4 

Int.

Persist: Number of integration cycle 4

ISL29125_INTERRUPT_PERSIST_8 

Int.

Persist: Number of integration cycle 8

Definition at line 133 of file isl29125.h.

◆ isl29125_interrupt_status_t

Configuration-3 Register 0x03 B1:0.

Enumerator
ISL29125_INTERRUPT_STATUS_NONE 

No interrupt.

ISL29125_INTERRUPT_STATUS_GREEN 

GREEN interrupt.

ISL29125_INTERRUPT_STATUS_RED 

RED interrupt.

ISL29125_INTERRUPT_STATUS_BLUE 

BLUE interrupt.

Definition at line 123 of file isl29125.h.

◆ isl29125_mode_t

Supported operation modes of the ISL29125 sensor's AD conversion.

Enumerator
ISL29125_MODE_DOWN 

ADC powered down.

ISL29125_MODE_STANDBY 

AD conversion not performed.

ISL29125_MODE_RGB 

RGB conversion.

ISL29125_MODE_R 

red conversion only

ISL29125_MODE_G 

green conversion only

ISL29125_MODE_B 

blue conversion only

ISL29125_MODE_RG 

red and green conversion only

ISL29125_MODE_GB 

green and blue conversion only

Definition at line 74 of file isl29125.h.

◆ isl29125_range_t

Supported RGB sensing range values of the ISL29125 sensor.

Enumerator
ISL29125_RANGE_375 

range: 5.7m - 375 lux

ISL29125_RANGE_10K 

range: 0.152 - 10,000 lux

Definition at line 88 of file isl29125.h.

◆ isl29125_resolution_t

Supported color resolutions of the ISL29125 sensor's AD conversion.

Enumerator
ISL29125_RESOLUTION_12 

resolution: 12 bit

ISL29125_RESOLUTION_16 

resolution: 16 bit

Definition at line 97 of file isl29125.h.

Function Documentation

◆ isl29125_init()

int isl29125_init ( isl29125_t dev,
const isl29125_params_t params 
)

Initialize a new ISL29125 device.

Parameters
[in]devdevice descriptor of an ISL29125 device
[in]paramsinitialization parameters
Returns
0 on success
-1 on error

◆ isl29125_init_int()

int isl29125_init_int ( isl29125_t dev,
isl29125_interrupt_status_t  interrupt_status,
isl29125_interrupt_persist_t  interrupt_persist,
isl29125_interrupt_conven_t  interrupt_conven,
uint16_t  lower_threshold,
uint16_t  higher_threshold,
gpio_cb_t  cb,
void *  arg 
)

Initialize interrupts.

Parameters
[in]devdevice descriptor of an ISL29125 device
[in]interrupt_statusInterrupt status
[in]interrupt_persistInterrupt persistency
[in]interrupt_convenRGB conversion done to interrupt control, enable
[in]lower_thresholdLower interrupt threshold
[in]higher_thresholdHigher interrupt threshold
[in]cbCallback function on interrupts
[in]argArgument passed to the callback function
Returns
0 on success
-1 on error

◆ isl29125_read_irq_status()

int isl29125_read_irq_status ( const isl29125_t dev)

Read isl29125 interrupt status.

Parameters
[in]devdevice descriptor of an ISL29125 device
Returns
interrupt status

◆ isl29125_read_rgb_color()

void isl29125_read_rgb_color ( const isl29125_t dev,
color_rgb_t dest 
)

Read color values from device.

Parameters
[in]devdevice descriptor of an ISL29125 device
[in]destpointer to RGB color object data is written to

◆ isl29125_read_rgb_lux()

void isl29125_read_rgb_lux ( const isl29125_t dev,
isl29125_rgb_t dest 
)

Read RGB values from device.

Parameters
[in]devdevice descriptor of an ISL29125 device
[in]destpointer to lux RGB color object data is written to

◆ isl29125_set_mode()

void isl29125_set_mode ( const isl29125_t dev,
isl29125_mode_t  mode 
)

Set the device's operation mode.

Parameters
[in]devdevice descriptor of an ISL29125 device
[in]modeoperation mode