ChibiOS/EX
1.2.0
|
VL53L0X MEMS interface module header. More...
#include "ex_rangefinder.h"
Go to the source code of this file.
Data Structures | |
struct | VL53L0XConfig |
VL53L0X configuration structure. More... | |
struct | VL53L0XVMT |
VL53L0X virtual methods table. More... | |
struct | VL53L0XDriver |
VL53L0X 2-axis rangemeter/thermometer class. More... | |
Macros | |
#define | vl53l0xRangeFinderGetAxesNumber(devp) rangemeterGetAxesNumber(&((devp)->range_if)) |
Return the number of axes of the BaseRangeFinder. More... | |
#define | vl53l0xRangeFinderReadRaw(devp, axes) rangemeterReadRaw(&((devp)->range_if), axes) |
Retrieves raw data from the BaseRangeFinder. More... | |
#define | vl53l0xRangeFinderReadCooked(devp, axes) rangemeterReadCooked(&((devp)->range_if), axes) |
Retrieves cooked data from the BaseRangeFinder. More... | |
Version identification | |
#define | EX_VL53L0X_VERSION "1.0.0" |
VL53L0X driver version string. More... | |
#define | EX_VL53L0X_MAJOR 1 |
VL53L0X driver version major number. More... | |
#define | EX_VL53L0X_MINOR 0 |
VL53L0X driver version minor number. More... | |
#define | EX_VL53L0X_PATCH 0 |
VL53L0X driver version patch number. More... | |
#define | VL53L0X_RANGE_NUMBER_OF_AXES 1U |
VL53L0X rangefinder subsystem characteristics. More... | |
VL53L0X register addresses | |
#define | VL53L0X_REG_SYSRANGE_START 0x00 |
#define | VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG 0x01 |
#define | VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD 0x04 |
#define | VL53L0X_REG_SYSTEM_RANGE_CONFIG 0x09 |
#define | VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO 0x0A |
#define | VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR 0x0B |
#define | VL53L0X_REG_SYSTEM_THRESH_HIGH 0x0C |
#define | VL53L0X_REG_SYSTEM_THRESH_LOW 0x0E |
#define | VL53L0X_REG_RESULT_INTERRUPT_STATUS 0x13 |
#define | VL53L0X_REG_RESULT_RANGE_STATUS 0x14 |
#define | VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS 0x20 |
#define | VL53L0X_REG_PRE_RANGE_CONFIG_MIN_SNR 0x27 |
#define | VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM 0x28 |
#define | VL53L0X_REG_ALGO_PHASECAL_LIM 0x30 |
#define | VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT 0x30 |
#define | VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH 0x32 |
#define | VL53L0X_REG_HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT 0x33 |
#define | VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT 0x44 |
#define | VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW 0x47 |
#define | VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH 0x48 |
#define | VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD 0x4E |
#define | VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET 0x4F |
#define | VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD 0x50 |
#define | VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI 0x51 |
#define | VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO 0x52 |
#define | VL53L0X_REG_HISTOGRAM_CONFIG_READOUT_CTRL 0x55 |
#define | VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW 0x56 |
#define | VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH 0x57 |
#define | VL53L0X_REG_MSRC_CONFIG_CONTROL 0x60 |
#define | VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_HI 0x61 |
#define | VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_LO 0x62 |
#define | VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT 0x64 |
#define | VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_SNR 0x67 |
#define | VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD 0x70 |
#define | VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI 0x71 |
#define | VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO 0x72 |
#define | VL53L0X_REG_POWER_MANAGEMENT_GO1_POWER_FORCE 0x80 |
#define | VL53L0X_REG_SYSTEM_HISTOGRAM_BIN 0x81 |
#define | VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH 0x84 |
#define | VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV 0x89 |
#define | VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS 0x8A |
#define | VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0 0xB0 |
#define | VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_1 0xB1 |
#define | VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_2 0xB2 |
#define | VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_3 0xB3 |
#define | VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_4 0xB4 |
#define | VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_5 0xB5 |
#define | VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT 0xB6 |
#define | VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF 0xB6 |
#define | VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN 0xBC |
#define | VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N 0xBF |
#define | VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_RTN 0xC0 |
#define | VL53L0X_REG_IDENTIFICATION_MODEL_ID 0xC0 |
#define | VL53L0X_REG_IDENTIFICATION_REVISION_ID 0xC2 |
#define | VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF 0xD0 |
#define | VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_REF 0xD4 |
#define | VL53L0X_REG_OSC_CALIBRATE_VAL 0xF8 |
VL53L0X_INT_CFG register bits definitions | |
#define | VL53L0X_INT_CFG_MASK 0xFF |
#define | VL53L0X_INT_CFG_PHE (1 << 0) |
#define | VL53L0X_INT_CFG_PLE (1 << 1) |
#define | VL53L0X_INT_CFG_LIR (1 << 2) |
#define | VL53L0X_INT_CFG_DIFF_EN (1 << 3) |
#define | VL53L0X_INT_CFG_RESET_AZ (1 << 4) |
#define | VL53L0X_INT_CFG_AUTOZERO (1 << 5) |
#define | VL53L0X_INT_CFG_RESET_ARP (1 << 6) |
#define | VL53L0X_INT_CFG_AUTORIFP (1 << 7) |
VL53L0X_CTRL_REG1 register bits definitions | |
#define | VL53L0X_CTRL_REG1_MASK 0x7F |
#define | VL53L0X_CTRL_REG1_SIM (1 << 0) |
#define | VL53L0X_CTRL_REG1_BDU (1 << 1) |
#define | VL53L0X_CTRL_REG1_LPFP_CFG (1 << 2) |
#define | VL53L0X_CTRL_REG1_LPFP_EN (1 << 3) |
#define | VL53L0X_CTRL_REG1_ODR0 (1 << 4) |
#define | VL53L0X_CTRL_REG1_ODR1 (1 << 5) |
#define | VL53L0X_CTRL_REG1_ODR2 (1 << 6) |
VL53L0X_CTRL_REG2 register bits definitions | |
#define | VL53L0X_CTRL_REG2_MASK 0xFD |
#define | VL53L0X_CTRL_REG2_ONE_SHOT (1 << 0) |
#define | VL53L0X_CTRL_REG2_SWRESET (1 << 2) |
#define | VL53L0X_CTRL_REG2_I2C_DIS (1 << 3) |
#define | VL53L0X_CTRL_REG2_IF_ADD_INC (1 << 4) |
#define | VL53L0X_CTRL_REG2_STOP_ON_FTH (1 << 5) |
#define | VL53L0X_CTRL_REG2_FIFO_EN (1 << 6) |
#define | VL53L0X_CTRL_REG2_BOOT (1 << 7) |
VL53L0X_CTRL_REG3 register bits definitions | |
#define | VL53L0X_CTRL_REG3_MASK 0xFF |
#define | VL53L0X_CTRL_REG3_INT_S1 (1 << 0) |
#define | VL53L0X_CTRL_REG3_INT_S2 (1 << 1) |
#define | VL53L0X_CTRL_REG3_DRDY (1 << 2) |
#define | VL53L0X_CTRL_REG3_F_OVR (1 << 3) |
#define | VL53L0X_CTRL_REG3_F_FTH (1 << 4) |
#define | VL53L0X_CTRL_REG3_F_FSS5 (1 << 5) |
#define | VL53L0X_CTRL_REG3_PP_OD (1 << 6) |
#define | VL53L0X_CTRL_REG3_INT_H_L (1 << 7) |
VL53L0X_INT_SRC register bits definitions | |
#define | VL53L0X_INT_SRC_MASK 0x87 |
#define | VL53L0X_INT_SRC_PH (1 << 0) |
#define | VL53L0X_INT_SRC_PL (1 << 1) |
#define | VL53L0X_INT_SRC_IA (1 << 2) |
#define | VL53L0X_INT_SRC_BOOT_STATUS (1 << 8) |
Configuration options | |
#define | VL53L0X_USE_I2C TRUE |
VL53L0X I2C interface switch. More... | |
#define | VL53L0X_SHARED_I2C FALSE |
VL53L0X shared I2C switch. More... | |
#define | VL53L0X_USE_ADVANCED FALSE |
VL53L0X advanced configurations switch. More... | |
VL53L0X data structures and types. | |
#define | _vl53l0x_methods_alone |
VL53L0X specific methods. More... | |
#define | _vl53l0x_methods |
VL53L0X specific methods with inherited ones. More... | |
#define | _vl53l0x_data |
VL53L0XDriver specific data. More... | |
enum | vl53l0x_sad_t { VL53L0X_SAD_DEFAULT = 0x29 } |
VL53L0X slave address. More... | |
enum | vl53l0x_state_t { VL53L0X_UNINIT = 0, VL53L0X_STOP = 1, VL53L0X_READY = 2 } |
Driver state machine possible states. More... | |
typedef struct VL53L0XDriver | VL53L0XDriver |
Structure representing a VL53L0X driver. More... | |
VL53L0X MEMS interface module header.
Definition in file vl53l0x.h.