proximity22 2.2.0
Loading...
Searching...
No Matches
proximity22.h File Reference

This file contains API for Proximity 22 Click Driver. More...

#include "drv_digital_out.h"
#include "drv_digital_in.h"
#include "drv_i2c_master.h"

Go to the source code of this file.

Data Structures

struct  proximity22_t
 Proximity 22 Click context object. More...
struct  proximity22_cfg_t
 Proximity 22 Click configuration object. More...
struct  proximity22_als_t
 Proximity 22 Click als data object. More...
struct  proximity22_data_t
 Proximity 22 Click data object. More...

Macros

#define PROXIMITY22_REG_LOTL   0x07
 Proximity 22 registers map.
#define PROXIMITY22_REG_LOTH   0x08
#define PROXIMITY22_REG_SNL   0x09
#define PROXIMITY22_REG_SNH   0x0A
#define PROXIMITY22_REG_IPTAT   0x1A
#define PROXIMITY22_REG_ENABLE   0x80
#define PROXIMITY22_REG_PTIME   0x82
#define PROXIMITY22_REG_AILTL   0x84
#define PROXIMITY22_REG_AILTH   0x85
#define PROXIMITY22_REG_AIHTL   0x86
#define PROXIMITY22_REG_AIHTH   0x87
#define PROXIMITY22_REG_PILTL   0x88
#define PROXIMITY22_REG_PILTH   0x89
#define PROXIMITY22_REG_PIHTL   0x8A
#define PROXIMITY22_REG_PIHTH   0x8B
#define PROXIMITY22_REG_PERS   0x8C
#define PROXIMITY22_REG_CFG0   0x8D
#define PROXIMITY22_REG_PCFG0   0x8E
#define PROXIMITY22_REG_PCFG1   0x8F
#define PROXIMITY22_REG_PCFG2   0x90
#define PROXIMITY22_REG_REVID   0x91
#define PROXIMITY22_REG_ID   0x92
#define PROXIMITY22_REG_REVID2   0x93
#define PROXIMITY22_REG_CFG1   0x94
#define PROXIMITY22_REG_AGAIN_1_0   0x95
#define PROXIMITY22_REG_AGAIN_3_2   0x96
#define PROXIMITY22_REG_LDR0_CFG   0x9A
#define PROXIMITY22_REG_LDR1_CFG   0x9B
#define PROXIMITY22_REG_EYE_SAFETY_CFG   0x9E
#define PROXIMITY22_REG_EYE_SAFETY_STATUS   0x9F
#define PROXIMITY22_REG_STATUS   0xA0
#define PROXIMITY22_REG_STATUS_2   0xA1
#define PROXIMITY22_REG_STATUS_3   0xA2
#define PROXIMITY22_REG_PID_L   0xA5
#define PROXIMITY22_REG_PID_H   0xA6
#define PROXIMITY22_REG_CFG2   0xA7
#define PROXIMITY22_REG_RESET   0xA8
#define PROXIMITY22_REG_CFG3   0xAB
#define PROXIMITY22_REG_CFG6   0xAE
#define PROXIMITY22_REG_PWM_CFG   0xB0
#define PROXIMITY22_REG_VSYNC_CFG   0xB1
#define PROXIMITY22_REG_VSYNC_PRD_L   0xB2
#define PROXIMITY22_REG_VSYNC_PRD_H   0xB3
#define PROXIMITY22_REG_PWM_PRD_L   0xB5
#define PROXIMITY22_REG_PWM_PRD_H   0xB6
#define PROXIMITY22_REG_PWM_HIP_L   0xB7
#define PROXIMITY22_REG_PWM_HIP_H   0xB8
#define PROXIMITY22_REG_POFFSET   0xC0
#define PROXIMITY22_REG_POFFSET_SIGN   0xC1
#define PROXIMITY22_REG_AZ_CONFIG   0xD6
#define PROXIMITY22_REG_CALIB   0xD7
#define PROXIMITY22_REG_CALIB_OFFSET   0xD8
#define PROXIMITY22_REG_CALIBCFG   0xD9
#define PROXIMITY22_REG_PCFG4   0xDA
#define PROXIMITY22_REG_CALIBSTAT   0xDC
#define PROXIMITY22_REG_INTENAB   0xDD
#define PROXIMITY22_REG_INTENAB_2   0xDE
#define PROXIMITY22_REG_ASD_L   0xE0
#define PROXIMITY22_REG_ASD_H   0xE1
#define PROXIMITY22_REG_ASP1_L   0xE2
#define PROXIMITY22_REG_ASP1_H   0xE3
#define PROXIMITY22_REG_ASP2_L   0xE4
#define PROXIMITY22_REG_ASP2_H   0xE5
#define PROXIMITY22_REG_ATIME   0xE6
#define PROXIMITY22_REG_AWTIME   0xE7
#define PROXIMITY22_REG_ACFG   0xE8
#define PROXIMITY22_REG_PSD_L   0xEA
#define PROXIMITY22_REG_PSD_H   0xEB
#define PROXIMITY22_REG_PWTIME   0xEC
#define PROXIMITY22_REG_FIFO_STATUS_1   0xF0
#define PROXIMITY22_REG_FIFO_CONTROL   0xF1
#define PROXIMITY22_REG_PDATA_L   0xF4
#define PROXIMITY22_REG_PDATA_H   0xF5
#define PROXIMITY22_REG_TDATA_L   0xF6
#define PROXIMITY22_REG_TDATA_H   0xF7
#define PROXIMITY22_REG_FIFO_ADATA_7   0xF8
#define PROXIMITY22_REG_FIFO_ADATA_6   0xF9
#define PROXIMITY22_REG_FIFO_ADATA_5   0xFA
#define PROXIMITY22_REG_FIFO_ADATA_4   0xFB
#define PROXIMITY22_REG_FIFO_ADATA_3   0xFC
#define PROXIMITY22_REG_FIFO_ADATA_2   0xFD
#define PROXIMITY22_REG_FIFO_ADATA_1   0xFE
#define PROXIMITY22_REG_FIFO_ADATA_0   0xFF
#define PROXIMITY22_IPTAT_INIT   0x03
 Proximity 22 IPTAT register setting.
#define PROXIMITY22_ENABLE_PVSYNC_EN   0x80
 Proximity 22 ENABLE register setting.
#define PROXIMITY22_ENABLE_AVSYNC_EN   0x40
#define PROXIMITY22_ENABLE_TEN   0x20
#define PROXIMITY22_ENABLE_PWEN   0x10
#define PROXIMITY22_ENABLE_AWEN   0x08
#define PROXIMITY22_ENABLE_PEN   0x04
#define PROXIMITY22_ENABLE_AEN   0x02
#define PROXIMITY22_ENABLE_PON   0x01
#define PROXIMITY22_PTIME_88_US   0x00
 Proximity 22 PTIME register setting.
#define PROXIMITY22_PTIME_2_816_MS   0x1F
#define PROXIMITY22_PTIME_22_528_US   0xFF
#define PROXIMITY22_PCFG0_PGAIN_1X   0x00
 Proximity 22 PCFG0 register setting.
#define PROXIMITY22_PCFG0_PGAIN_2X   0x20
#define PROXIMITY22_PCFG0_PGAIN_4X   0x40
#define PROXIMITY22_PCFG0_PGAIN_8X   0x60
#define PROXIMITY22_PCFG0_PGAIN_16X   0x80
#define PROXIMITY22_PCFG0_PGAIN_MASK   0xE0
#define PROXIMITY22_PCFG0_PGAIN2_2_5X   0x00
#define PROXIMITY22_PCFG0_PGAIN2_5X   0x01
#define PROXIMITY22_PCFG0_PGAIN2_10X   0x03
#define PROXIMITY22_PCFG0_PGAIN2_MASK   0x03
#define PROXIMITY22_PCFG1_PPULSE_LENH_MASK   0xC0
 Proximity 22 PCFG1 register setting.
#define PROXIMITY22_PCFG1_PPULSE_1   0x00
#define PROXIMITY22_PCFG1_PPULSE_32   0x1F
#define PROXIMITY22_PCFG1_PPULSE_64   0x3F
#define PROXIMITY22_PCFG1_PPULSE_MASK   0x3F
#define PROXIMITY22_PCFG2_PPULSE_LENL_2_US   0x00
 Proximity 22 PCFG2 register setting.
#define PROXIMITY22_PCFG2_PPULSE_LENL_34_US   0x20
#define PROXIMITY22_PCFG2_PPULSE_LENL_257_US   0xFF
#define PROXIMITY22_DEVICE_ID   0x82
 Proximity 22 ID register setting.
#define PROXIMITY22_CFG1_PD_MUX_SEL_TWO_CHANN_MODE   0x00
 Proximity 22 CFG1 register setting.
#define PROXIMITY22_CFG1_PD_MUX_SEL_COLOR_MODE   0x06
#define PROXIMITY22_CFG1_PD_MUX_SEL_MASK   0x0E
#define PROXIMITY22_CFG1_ENAB_TEMP_SENSOR   0x01
#define PROXIMITY22_AGAIN_1X   0x00
 Proximity 22 AGAIN_1_0/AGAIN_3_2 register setting.
#define PROXIMITY22_AGAIN_2X   0x01
#define PROXIMITY22_AGAIN_4X   0x02
#define PROXIMITY22_AGAIN_8X   0x03
#define PROXIMITY22_AGAIN_16X   0x04
#define PROXIMITY22_AGAIN_32X   0x05
#define PROXIMITY22_AGAIN_64X   0x06
#define PROXIMITY22_AGAIN_128X   0x07
#define PROXIMITY22_AGAIN_256X   0x08
#define PROXIMITY22_AGAIN_512X   0x09
#define PROXIMITY22_AGAIN_1024X   0x0A
#define PROXIMITY22_AGAIN_2048X   0x0B
#define PROXIMITY22_AGAIN_4096X   0x0C
#define PROXIMITY22_LDR0_CFG_EN_LDR_0   0x40
 Proximity 22 LDR0_CFG register setting.
#define PROXIMITY22_LDR0_CFG_ISINK_LSB_0_5_MA   0x00
#define PROXIMITY22_LDR0_CFG_ISINK_LSB_1_0_MA   0x10
#define PROXIMITY22_LDR0_CFG_ISINK_LSB_1_5_MA   0x20
#define PROXIMITY22_LDR0_CFG_ISINK_LSB_2_0_MA   0x30
#define PROXIMITY22_LDR0_CFG_ISINK_LSB_MASK   0x30
#define PROXIMITY22_LDR0_CFG_PLDRIVE0_0   0x00
#define PROXIMITY22_LDR0_CFG_PLDRIVE0_4   0x04
#define PROXIMITY22_LDR0_CFG_PLDRIVE0_15   0x0F
#define PROXIMITY22_LDR0_CFG_PLDRIVE0_MASK   0x0F
#define PROXIMITY22_LDR1_CFG_EN_LDR_1   0x40
 Proximity 22 LDR1_CFG register setting.
#define PROXIMITY22_LDR1_CFG_PLDRIVE1_0   0x00
#define PROXIMITY22_LDR1_CFG_PLDRIVE1_4   0x04
#define PROXIMITY22_LDR1_CFG_PLDRIVE1_15   0x0F
#define PROXIMITY22_LDR1_CFG_PLDRIVE1_MASK   0x0F
#define PROXIMITY22_STATUS_3_PWM_PRD_CHG_INT   0x80
 Proximity 22 STATUS_3 register setting.
#define PROXIMITY22_STATUS_3_ATINT   0x10
#define PROXIMITY22_STATUS_3_FTINT   0x08
#define PROXIMITY22_STATUS_3_AWINT   0x04
#define PROXIMITY22_STATUS_3_ASAT   0x02
#define PROXIMITY22_STATUS_3_AINT   0x01
#define PROXIMITY22_RESET_INV_XRES   0x08
 Proximity 22 RESET register setting.
#define PROXIMITY22_RESET_ENAB_XRES   0x04
#define PROXIMITY22_RESET_HARD_RESET   0x02
#define PROXIMITY22_RESET_SOFT_RESET   0x01
#define PROXIMITY22_CFG3_INT_READ_CLEAR   0x80
 Proximity 22 CFG3 register setting.
#define PROXIMITY22_CFG3_MODE_CFG_SEQUENTIAL   0x00
#define PROXIMITY22_CFG3_MODE_CFG_CONCURRENT   0x20
#define PROXIMITY22_CFG3_MODE_CFG_FULL_PARALLEL   0x40
#define PROXIMITY22_CFG3_MODE_CFG_MASK   0x60
#define PROXIMITY22_CFG3_SAI   0x10
#define PROXIMITY22_CFG3_PID_EN   0x08
#define PROXIMITY22_CFG3_RESERVED   0x01
#define PROXIMITY22_CFG6_DISABLE_APC   0x40
 Proximity 22 CFG6 register setting.
#define PROXIMITY22_CFG6_RESERVED   0x3F
#define PROXIMITY22_CALIB_OFFCAL_ENAB_AVG   0x80
 Proximity 22 CALIB register setting.
#define PROXIMITY22_CALIB_ELECTRICAL_CALIBRATION   0x20
#define PROXIMITY22_CALIB_PTIME_IN_CALIB   0x10
#define PROXIMITY22_CALIB_START_OFFSET_CAL   0x01
#define PROXIMITY22_CALIBCFG_BINSRCH_TARGET_3   0x00
 Proximity 22 CALIBCFG register setting.
#define PROXIMITY22_CALIBCFG_BINSRCH_TARGET_7   0x20
#define PROXIMITY22_CALIBCFG_BINSRCH_TARGET_15   0x40
#define PROXIMITY22_CALIBCFG_BINSRCH_TARGET_31   0x60
#define PROXIMITY22_CALIBCFG_BINSRCH_TARGET_63   0x80
#define PROXIMITY22_CALIBCFG_BINSRCH_TARGET_127   0xA0
#define PROXIMITY22_CALIBCFG_BINSRCH_TARGET_255   0xC0
#define PROXIMITY22_CALIBCFG_BINSRCH_TARGET_511   0xE0
#define PROXIMITY22_CALIBCFG_BINSRCH_TARGET_MASK   0xE0
#define PROXIMITY22_CALIBCFG_RESERVED   0x10
#define PROXIMITY22_CALIBCFG_PROX_AUTO_OFFSET_ADJ   0x08
#define PROXIMITY22_CALIBCFG_PROX_DATA_AVG_DIS   0x00
#define PROXIMITY22_CALIBCFG_PROX_DATA_AVG_2   0x01
#define PROXIMITY22_CALIBCFG_PROX_DATA_AVG_4   0x02
#define PROXIMITY22_CALIBCFG_PROX_DATA_AVG_8   0x03
#define PROXIMITY22_CALIBCFG_PROX_DATA_AVG_16   0x04
#define PROXIMITY22_CALIBCFG_PROX_DATA_AVG_MASK   0x07
#define PROXIMITY22_CALIBSTAT_OFFSET_ADJUSTED   0x04
 Proximity 22 CALIBSTAT register setting.
#define PROXIMITY22_CALIBSTAT_CALIB_FINISHED   0x01
#define PROXIMITY22_INTENAB_2_PWMIEN   0x80
 Proximity 22 INTENAB_2 register setting.
#define PROXIMITY22_INTENAB_2_ESIEN   0x10
#define PROXIMITY22_INTENAB_2_ATIEN   0x08
#define PROXIMITY22_INTENAB_2_FTIEN   0x04
#define PROXIMITY22_INTENAB_2_PWIEN   0x02
#define PROXIMITY22_INTENAB_2_AWIEN   0x01
#define PROXIMITY22_ATIME_2_779_MS   0x00
 Proximity 22 ATIME register setting.
#define PROXIMITY22_ATIME_88_923_MS   0x1F
#define PROXIMITY22_ATIME_711_381_MS   0xFF
#define PROXIMITY22_AWTIME_2_779_MS   0x00
 Proximity 22 AWTIME register setting.
#define PROXIMITY22_AWTIME_200_088_MS   0x47
#define PROXIMITY22_AWTIME_711_381_MS   0xFF
#define PROXIMITY22_FIFO_CONTROL_FIFO_LVL_LSB   0x40
 Proximity 22 FIFO_CONTROL register setting.
#define PROXIMITY22_FIFO_CONTROL_FIFO_THR_LVL_MASK   0x38
#define PROXIMITY22_FIFO_CONTROL_FIFO_CLR   0x04
#define PROXIMITY22_FIFO_CONTROL_FIFO_EMPTY   0x02
#define PROXIMITY22_FIFO_CONTROL_FIFO_OVF   0x01
#define PROXIMITY22_TEMP_OFFSET   399.0
 Proximity 22 temperature calculation setting.
#define PROXIMITY22_TEMP_RES   1.48
#define PROXIMITY22_DEVICE_ADDRESS   0x39
 Proximity 22 device address setting.
#define PROXIMITY22_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.

Enumerations

enum  proximity22_return_value_t { PROXIMITY22_OK = 0 , PROXIMITY22_ERROR = -1 }
 Proximity 22 Click return value data. More...

Functions

void proximity22_cfg_setup (proximity22_cfg_t *cfg)
 Proximity 22 configuration object setup function.
err_t proximity22_init (proximity22_t *ctx, proximity22_cfg_t *cfg)
 Proximity 22 initialization function.
err_t proximity22_default_cfg (proximity22_t *ctx)
 Proximity 22 default configuration function.
err_t proximity22_write_regs (proximity22_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 Proximity 22 write registers function.
err_t proximity22_read_regs (proximity22_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 Proximity 22 read registers function.
err_t proximity22_write_reg (proximity22_t *ctx, uint8_t reg, uint8_t data_in)
 Proximity 22 write register function.
err_t proximity22_read_reg (proximity22_t *ctx, uint8_t reg, uint8_t *data_out)
 Proximity 22 read register function.
void proximity22_set_rst_pin (proximity22_t *ctx, uint8_t state)
 Proximity 22 set RST pin function.
uint8_t proximity22_get_int_pin (proximity22_t *ctx)
 Proximity 22 get INT pin function.
void proximity22_reset_device (proximity22_t *ctx)
 Proximity 22 reset device function.
err_t proximity22_check_comm (proximity22_t *ctx)
 Proximity 22 check communication function.
err_t proximity22_soft_reset (proximity22_t *ctx)
 Proximity 22 software reset function.
err_t proximity22_clear_fifo (proximity22_t *ctx)
 Proximity 22 clear FIFO function.
err_t proximity22_read_prox (proximity22_t *ctx, uint16_t *prox)
 Proximity 22 read proximity function.
err_t proximity22_read_temp (proximity22_t *ctx, float *temp)
 Proximity 22 read temperature function.
err_t proximity22_read_als (proximity22_t *ctx, proximity22_als_t *als)
 Proximity 22 read ALS data function.
err_t proximity22_read_data (proximity22_t *ctx, proximity22_data_t *data_out)
 Proximity 22 read sensor data function.

Detailed Description

This file contains API for Proximity 22 Click Driver.

Enumeration Type Documentation

◆ proximity22_return_value_t

Proximity 22 Click return value data.

Predefined enum values for driver return values.

Enumerator
PROXIMITY22_OK 
PROXIMITY22_ERROR