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

This file contains API for LightRanger 13 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  lightranger13_info_t
 LightRanger 13 Click device information object. More...
struct  lightranger13_meas_cfg_t
 LightRanger 13 Click device measurement config object. More...
struct  lightranger13_meas_result_t
 LightRanger 13 Click device measurement results object. More...
struct  lightranger13_t
 LightRanger 13 Click context object. More...
struct  lightranger13_cfg_t
 LightRanger 13 Click configuration object. More...

Macros

#define LIGHTRANGER13_REG_APPID   0x00
 LightRanger 13 always available registers list.
#define LIGHTRANGER13_REG_APPREV_MAJOR   0x01
#define LIGHTRANGER13_REG_APPREQID   0x02
#define LIGHTRANGER13_REG_ENABLE   0xE0
#define LIGHTRANGER13_REG_INT_STATUS   0xE1
#define LIGHTRANGER13_REG_INT_ENAB   0xE2
#define LIGHTRANGER13_REG_ID   0xE3
#define LIGHTRANGER13_REG_REVID   0xE4
#define LIGHTRANGER13_REG_APP0_CMD_DATA_9   0x06
 LightRanger 13 App0 registers list.
#define LIGHTRANGER13_REG_APP0_CMD_DATA_8   0x07
#define LIGHTRANGER13_REG_APP0_CMD_DATA_7   0x08
#define LIGHTRANGER13_REG_APP0_CMD_DATA_6   0x09
#define LIGHTRANGER13_REG_APP0_CMD_DATA_5   0x0A
#define LIGHTRANGER13_REG_APP0_CMD_DATA_4   0x0B
#define LIGHTRANGER13_REG_APP0_CMD_DATA_3   0x0C
#define LIGHTRANGER13_REG_APP0_CMD_DATA_2   0x0D
#define LIGHTRANGER13_REG_APP0_CMD_DATA_1   0x0E
#define LIGHTRANGER13_REG_APP0_CMD_DATA_0   0x0F
#define LIGHTRANGER13_REG_APP0_CMD   0x10
#define LIGHTRANGER13_REG_APP0_PREVIOUS   0x11
#define LIGHTRANGER13_REG_APP0_APPREV_MINOR   0x12
#define LIGHTRANGER13_REG_APP0_APPREV_PATCH   0x13
#define LIGHTRANGER13_REG_APP0_STATE   0x1C
#define LIGHTRANGER13_REG_APP0_STATUS   0x1D
#define LIGHTRANGER13_REG_APP0_REGISTER_CONTENTS   0x1E
#define LIGHTRANGER13_REG_APP0_TID   0x1F
#define LIGHTRANGER13_REG_APP0_ODR_RESULT_NUMBER   0x20
 LightRanger 13 object detection results registers list.
#define LIGHTRANGER13_REG_APP0_ODR_RESULT_INFO   0x21
#define LIGHTRANGER13_REG_APP0_ODR_DISTANCE_PEAK_0   0x22
#define LIGHTRANGER13_REG_APP0_ODR_DISTANCE_PEAK_1   0x23
#define LIGHTRANGER13_REG_APP0_ODR_SYS_CLOCK_0   0x24
#define LIGHTRANGER13_REG_APP0_ODR_SYS_CLOCK_1   0x25
#define LIGHTRANGER13_REG_APP0_ODR_SYS_CLOCK_2   0x26
#define LIGHTRANGER13_REG_APP0_ODR_SYS_CLOCK_3   0x27
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_0   0x28
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_1   0x29
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_2   0x2A
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_3   0x2B
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_4   0x2C
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_5   0x2D
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_6   0x2E
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_7   0x2F
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_8   0x30
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_9   0x31
#define LIGHTRANGER13_REG_APP0_ODR_STATE_DATA_10   0x32
#define LIGHTRANGER13_REG_APP0_ODR_TEMPERATURE   0x33
#define LIGHTRANGER13_REG_APP0_ODR_REFERENCE_HITS_0   0x34
#define LIGHTRANGER13_REG_APP0_ODR_REFERENCE_HITS_1   0x35
#define LIGHTRANGER13_REG_APP0_ODR_REFERENCE_HITS_2   0x36
#define LIGHTRANGER13_REG_APP0_ODR_REFERENCE_HITS_3   0x37
#define LIGHTRANGER13_REG_APP0_ODR_OBJECT_HITS_0   0x38
#define LIGHTRANGER13_REG_APP0_ODR_OBJECT_HITS_1   0x39
#define LIGHTRANGER13_REG_APP0_ODR_OBJECT_HITS_2   0x3A
#define LIGHTRANGER13_REG_APP0_ODR_OBJECT_HITS_3   0x3B
#define LIGHTRANGER13_REG_APP0_ODR_XTALK_MSB   0x3C
#define LIGHTRANGER13_REG_APP0_ODR_XTALK_LSB   0x3D
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_0   0x20
 LightRanger 13 calibration and algorithm state data exchange registers list.
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_1   0x21
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_2   0x22
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_3   0x23
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_4   0x24
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_5   0x25
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_6   0x26
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_7   0x27
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_8   0x28
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_9   0x29
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_10   0x2A
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_11   0x2B
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_12   0x2C
#define LIGHTRANGER13_REG_APP0_CAD_FACTORY_CALIB_13   0x2D
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_0   0x2E
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_1   0x2F
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_2   0x30
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_3   0x31
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_4   0x32
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_5   0x33
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_6   0x34
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_7   0x35
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_8   0x36
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_9   0x37
#define LIGHTRANGER13_REG_APP0_CAD_STATE_DATA_WR_10   0x38
#define LIGHTRANGER13_REG_APP0_RH_HIST_START   0x20
 LightRanger 13 RAW histogram registers list.
#define LIGHTRANGER13_REG_APP0_RH_HIST_END   0x9F
#define LIGHTRANGER13_REG_APP0_SN_SERIAL_NUMBER_0   0x28
 LightRanger 13 serial number registers list.
#define LIGHTRANGER13_REG_APP0_SN_SERIAL_NUMBER_1   0x29
#define LIGHTRANGER13_REG_APP0_SN_IDENTI_NUMBER_0   0x2A
#define LIGHTRANGER13_REG_APP0_SN_IDENTI_NUMBER_1   0x2B
#define LIGHTRANGER13_REG_APP0_IS_PERSISTENCE   0x20
 LightRanger 13 interrupt suppression registers list.
#define LIGHTRANGER13_REG_APP0_IS_LOW_THOLD_LSB   0x21
#define LIGHTRANGER13_REG_APP0_IS_LOW_THOLD_MSB   0x22
#define LIGHTRANGER13_REG_APP0_IS_HIGH_THOLD_LSB   0x23
#define LIGHTRANGER13_REG_APP0_IS_HIGH_THOLD_MSB   0x24
#define LIGHTRANGER13_CMD_NOP   0x00
 LightRanger 13 App0 commands list.
#define LIGHTRANGER13_CMD_START_MEASUREMENT   0x02
#define LIGHTRANGER13_CMD_WRITE_ADD_CFG   0x08
#define LIGHTRANGER13_CMD_READ_ADD_CFG   0x09
#define LIGHTRANGER13_CMD_CUSTOMER_FACTORY_CALIB   0x0A
#define LIGHTRANGER13_CMD_GPIO_CONTROL   0x0F
#define LIGHTRANGER13_CMD_ENABLE_HISTOGRAM_ROUT   0x30
#define LIGHTRANGER13_CMD_CONTINUE_HISTOGRAM_ROUT   0x32
#define LIGHTRANGER13_CMD_READ_SERIAL_NUMBER   0x47
#define LIGHTRANGER13_CMD_CHANGE_I2C_ADDRESS   0x49
#define LIGHTRANGER13_CMD_READ_HISTOGRAM   0x80
#define LIGHTRANGER13_CMD_STOP_COMMAND   0xFF
#define LIGHTRANGER13_REG_BL_CMD_STAT   0x08
 LightRanger 13 bootloader registers list.
#define LIGHTRANGER13_REG_BL_SIZE   0x09
#define LIGHTRANGER13_REG_BL_DATA   0x0A
#define LIGHTRANGER13_BL_CMD_RAMREMAP_RESET   0x11
 LightRanger 13 bootloader commands list.
#define LIGHTRANGER13_BL_CMD_DOWNLOAD_INIT   0x14
#define LIGHTRANGER13_BL_CMD_W_RAM   0x41
#define LIGHTRANGER13_BL_CMD_ADDR_RAM   0x43
#define LIGHTRANGER13_MASK_ALL   0xFF
 LightRanger 13 wait register state setting.
#define LIGHTRANGER13_STATUS_IDLE   0x00
 LightRanger 13 STATUS register setting.
#define LIGHTRANGER13_STATUS_DIAGNOSTIC   0x01
#define LIGHTRANGER13_STATUS_START   0x02
#define LIGHTRANGER13_STATUS_CALIBRATION   0x03
#define LIGHTRANGER13_STATUS_LIGHT_COL   0x04
#define LIGHTRANGER13_STATUS_ALGORITHM   0x05
#define LIGHTRANGER13_STATUS_STARTUP   0x06
#define LIGHTRANGER13_STATUS_VCSEL_PWR_FAIL   0x10
#define LIGHTRANGER13_STATUS_VCSEL_LED_A_FAIL   0x11
#define LIGHTRANGER13_STATUS_VCSEL_LED_K_FAIL   0x12
#define LIGHTRANGER13_STATUS_CALIB_ERROR   0x1B
#define LIGHTRANGER13_STATUS_INVAL_CMD   0x1C
#define LIGHTRANGER13_STATUS_ERR_MISSING_FACT_CAL   0x27
#define LIGHTRANGER13_STATUS_ERR_INVALID_FACT_CAL   0x28
#define LIGHTRANGER13_STATUS_ERR_INVALID_ALG_STATE   0x29
#define LIGHTRANGER13_ENABLE_CPU_RESET   0x80
 LightRanger 13 ENABLE register setting.
#define LIGHTRANGER13_ENABLE_CPU_READY   0x40
#define LIGHTRANGER13_ENABLE_PON   0x01
#define LIGHTRANGER13_ENABLE_STANDBY   0x00
#define LIGHTRANGER13_APPID_BOOTLOADER   0x80
 LightRanger 13 APPID register setting.
#define LIGHTRANGER13_APPID_APP0   0xC0
#define LIGHTRANGER13_REGISTER_CONTENTS_CALIBRATION   0x0A
 LightRanger 13 REGISTER_CONTENTS data setting.
#define LIGHTRANGER13_REGISTER_CONTENTS_SN   0x47
#define LIGHTRANGER13_REGISTER_CONTENTS_MEASUREMENT   0x55
#define LIGHTRANGER13_REGISTER_CONTENTS_HISTOGRAM   0x80
#define LIGHTRANGER13_INTERRUPT_RESULT   0x01
 LightRanger 13 interrupt setting.
#define LIGHTRANGER13_INTERRUPT_DIAGNOSTIC   0x02
#define LIGHTRANGER13_MEAS_CFG_9_AMPLITUDE_MASK   0x0F
 LightRanger 13 measurement config setting.
#define LIGHTRANGER13_MEAS_CFG_9_CONFIG_MASK   0x30
#define LIGHTRANGER13_MEAS_CFG_8_AMPLITUDE_MASK   0x0F
#define LIGHTRANGER13_MEAS_CFG_8_CONFIG_MASK   0x30
#define LIGHTRANGER13_MEAS_CFG_7_FACTORY_CAL_MASK   0x01
#define LIGHTRANGER13_MEAS_CFG_7_ALG_STATE_MASK   0x02
#define LIGHTRANGER13_MEAS_CFG_7_SPAD_DEAD_T_MASK   0x38
#define LIGHTRANGER13_MEAS_CFG_7_SPAD_SELECT_MASK   0xC0
#define LIGHTRANGER13_MEAS_CFG_6_DISTANCE_EN_MASK   0x02
#define LIGHTRANGER13_MEAS_CFG_6_VCSEL_CLKDIV2_MASK   0x04
#define LIGHTRANGER13_MEAS_CFG_6_DISTANCE_MODE_MASK   0x08
#define LIGHTRANGER13_MEAS_CFG_6_IMMEDIATE_INT_MASK   0x10
#define LIGHTRANGER13_MEAS_CFG_6_ALG_KEEP_RDY_MASK   0x80
#define LIGHTRANGER13_MEAS_CFG_5_GPIO_0_MASK   0x0F
#define LIGHTRANGER13_MEAS_CFG_5_GPIO_1_MASK   0xF0
#define LIGHTRANGER13_MEAS_CFG_4_ALS_DELAY_MASK   0x03
#define LIGHTRANGER13_MEAS_CFG_3_THRESHOLD_MASK   0x3F
#define LIGHTRANGER13_MEAS_CFG_3_VCSEL_SS_AMP_MASK   0xC0
#define LIGHTRANGER13_MEAS_CFG_2_REP_PERIOD_MS_MASK   0xFF
#define LIGHTRANGER13_MEAS_CFG_1_K_ITERS_LSB_MASK   0xFF
#define LIGHTRANGER13_MEAS_CFG_0_K_ITERS_MSB_MASK   0xFF
#define LIGHTRANGER13_FACTORY_CALIB_STATE   0x00
 LightRanger 13 factory calibration setting.
#define LIGHTRANGER13_FACTORY_CALIB_K_ITERS   0xA000
#define LIGHTRANGER13_FACTORY_CALIB_0   0x02
 LightRanger 13 default factory calib, state data, and measurement config setting.
#define LIGHTRANGER13_FACTORY_CALIB_1   0x00
#define LIGHTRANGER13_FACTORY_CALIB_2   0x00
#define LIGHTRANGER13_FACTORY_CALIB_3   0x00
#define LIGHTRANGER13_FACTORY_CALIB_4   0x00
#define LIGHTRANGER13_FACTORY_CALIB_5   0x00
#define LIGHTRANGER13_FACTORY_CALIB_6   0x00
#define LIGHTRANGER13_FACTORY_CALIB_7   0x00
#define LIGHTRANGER13_FACTORY_CALIB_8   0x00
#define LIGHTRANGER13_FACTORY_CALIB_9   0x00
#define LIGHTRANGER13_FACTORY_CALIB_10   0x00
#define LIGHTRANGER13_FACTORY_CALIB_11   0x00
#define LIGHTRANGER13_FACTORY_CALIB_12   0x00
#define LIGHTRANGER13_FACTORY_CALIB_13   0x00
#define LIGHTRANGER13_STATE_DATA_0   0x02
#define LIGHTRANGER13_STATE_DATA_1   0x3C
#define LIGHTRANGER13_STATE_DATA_2   0x00
#define LIGHTRANGER13_STATE_DATA_3   0x00
#define LIGHTRANGER13_STATE_DATA_4   0x7C
#define LIGHTRANGER13_STATE_DATA_5   0x7C
#define LIGHTRANGER13_STATE_DATA_6   0x00
#define LIGHTRANGER13_STATE_DATA_7   0x00
#define LIGHTRANGER13_STATE_DATA_8   0x00
#define LIGHTRANGER13_STATE_DATA_9   0x00
#define LIGHTRANGER13_STATE_DATA_10   0x00
#define LIGHTRANGER13_MEAS_CFG_SS_SPAD_CHG_PUMP   0x00
#define LIGHTRANGER13_MEAS_CFG_SS_VCSEL_CHG_PUMP   0x00
#define LIGHTRANGER13_MEAS_CFG_CALIB_STATE
#define LIGHTRANGER13_MEAS_CFG_ALGO   LIGHTRANGER13_MEAS_CFG_6_DISTANCE_EN_MASK
#define LIGHTRANGER13_MEAS_CFG_GPIO_CTRL   0x00
#define LIGHTRANGER13_MEAS_CFG_DAX_DELAY_100US   0x00
#define LIGHTRANGER13_MEAS_CFG_SNR   0x06
#define LIGHTRANGER13_MEAS_CFG_REP_PERIOD_MS   33
#define LIGHTRANGER13_MEAS_CFG_K_ITERS   400
#define LIGHTRANGER13_TIMEOUT_INFINITE   0
 LightRanger 13 timeout setting.
#define LIGHTRANGER13_TIMEOUT_1MS   1
#define LIGHTRANGER13_TIMEOUT_2MS   2
#define LIGHTRANGER13_TIMEOUT_3MS   3
#define LIGHTRANGER13_TIMEOUT_5MS   5
#define LIGHTRANGER13_TIMEOUT_10MS   10
#define LIGHTRANGER13_TIMEOUT_150MS   150
#define LIGHTRANGER13_TIMEOUT_5S   5000
#define LIGHTRANGER13_DEVICE_ADDRESS   0x41
 LightRanger 13 device address setting.
#define LIGHTRANGER13_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.

Enumerations

enum  lightranger13_return_value_t { LIGHTRANGER13_OK = 0 , LIGHTRANGER13_ERROR = -1 }
 LightRanger 13 Click return value data. More...

Functions

void lightranger13_cfg_setup (lightranger13_cfg_t *cfg)
 LightRanger 13 configuration object setup function.
err_t lightranger13_init (lightranger13_t *ctx, lightranger13_cfg_t *cfg)
 LightRanger 13 initialization function.
err_t lightranger13_default_cfg (lightranger13_t *ctx)
 LightRanger 13 default configuration function.
err_t lightranger13_write_regs (lightranger13_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 LightRanger 13 write regs function.
err_t lightranger13_read_regs (lightranger13_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 LightRanger 13 read regs function.
err_t lightranger13_write_reg (lightranger13_t *ctx, uint8_t reg, uint8_t data_in)
 LightRanger 13 write reg function.
err_t lightranger13_read_reg (lightranger13_t *ctx, uint8_t reg, uint8_t *data_out)
 LightRanger 13 read reg function.
err_t lightranger13_send_cmd (lightranger13_t *ctx, uint8_t cmd, uint8_t *payload, uint8_t payload_len, uint16_t timeout_ms)
 LightRanger 13 send cmd function.
err_t lightranger13_wait_reg_state (lightranger13_t *ctx, uint8_t reg, uint8_t mask, uint8_t state, uint16_t timeout_ms)
 LightRanger 13 wait reg state function.
void lightranger13_enable_device (lightranger13_t *ctx)
 LightRanger 13 enable device function.
void lightranger13_disable_device (lightranger13_t *ctx)
 LightRanger 13 disable device function.
uint8_t lightranger13_get_int_pin (lightranger13_t *ctx)
 LightRanger 13 get int pin function.
err_t lightranger13_power_up (lightranger13_t *ctx)
 LightRanger 13 power up function.
err_t lightranger13_read_info (lightranger13_t *ctx)
 LightRanger 13 read info function.
err_t lightranger13_clear_interrupts (lightranger13_t *ctx)
 LightRanger 13 clear interrupts function.
err_t lightranger13_factory_calib (lightranger13_t *ctx)
 LightRanger 13 factory calib function.
err_t lightranger13_set_threshold (lightranger13_t *ctx, uint16_t t_low, uint16_t t_high, uint8_t persistance)
 LightRanger 13 set threshold function.
err_t lightranger13_start_measurement (lightranger13_t *ctx)
 LightRanger 13 start measurement function.
err_t lightranger13_stop_measurement (lightranger13_t *ctx)
 LightRanger 13 stop measurement function.
err_t lightranger13_read_result (lightranger13_t *ctx, lightranger13_meas_result_t *result)
 LightRanger 13 read result function.

Detailed Description

This file contains API for LightRanger 13 Click Driver.

Enumeration Type Documentation

◆ lightranger13_return_value_t

LightRanger 13 Click return value data.

Predefined enum values for driver return values.

Enumerator
LIGHTRANGER13_OK 
LIGHTRANGER13_ERROR