Go to the documentation of this file.
39 #ifdef PREINIT_SUPPORTED
43 #ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_i2c_master.h"
73 #define PROXIMITY21_REG_I2C_SLAVE_ADDRESS 0x0001
74 #define PROXIMITY21_REG_VHV_CONFIG_TIMEOUT 0x0008
75 #define PROXIMITY21_REG_XTALK_PLANE_OFFSET_KCPS 0x0016
76 #define PROXIMITY21_REG_XTALK_X_PLANE_GRADIENT_KCPS 0x0018
77 #define PROXIMITY21_REG_XTALK_Y_PLANE_GRADIENT_KCPS 0x001A
78 #define PROXIMITY21_REG_RANGE_OFFSET_MM 0x001E
79 #define PROXIMITY21_REG_INNER_OFFSET_MM 0x0020
80 #define PROXIMITY21_REG_OUTER_OFFSET_MM 0x0022
81 #define PROXIMITY21_REG_GPIO_HV_MUX_CTRL 0x0030
82 #define PROXIMITY21_REG_GPIO_TIO_HV_STATUS 0x0031
83 #define PROXIMITY21_REG_SYSTEM_INTERRUPT 0x0046
84 #define PROXIMITY21_REG_RANGE_CONFIG_A 0x005E
85 #define PROXIMITY21_REG_RANGE_CONFIG_B 0x0061
86 #define PROXIMITY21_REG_RANGE_CONFIG_SIGMA_THRESH 0x0064
87 #define PROXIMITY21_REG_MIN_COUNT_RATE_RTN_LIMIT_MCPS 0x0066
88 #define PROXIMITY21_REG_INTERMEASUREMENT_MS 0x006C
89 #define PROXIMITY21_REG_THRESH_HIGH 0x0072
90 #define PROXIMITY21_REG_THRESH_LOW 0x0074
91 #define PROXIMITY21_REG_SYSTEM_INTERRUPT_CLEAR 0x0086
92 #define PROXIMITY21_REG_SYSTEM_START 0x0087
93 #define PROXIMITY21_REG_RESULT_RANGE_STATUS 0x0089
94 #define PROXIMITY21_REG_RESULT_SPAD_NB 0x008C
95 #define PROXIMITY21_REG_RESULT_SIGNAL_RATE 0x008E
96 #define PROXIMITY21_REG_RESULT_AMBIENT_RATE 0x0090
97 #define PROXIMITY21_REG_RESULT_SIGMA 0x0092
98 #define PROXIMITY21_REG_RESULT_DISTANCE 0x0096
99 #define PROXIMITY21_REG_RESULT_OSC_CALIBRATE_VAL 0x00DE
100 #define PROXIMITY21_REG_FIRMWARE_SYSTEM_STATUS 0x00E5
101 #define PROXIMITY21_REG_MODEL_ID 0x010F
119 #define PROXIMITY21_RANGE_STATUS_VALID 0
120 #define PROXIMITY21_RANGE_STATUS_SIGMA_HIGH 1
121 #define PROXIMITY21_RANGE_STATUS_SIGMA_LOW 2
122 #define PROXIMITY21_RANGE_STATUS_DISTANCE_LOW 3
123 #define PROXIMITY21_RANGE_STATUS_PHASE_LIMIT 4
124 #define PROXIMITY21_RANGE_STATUS_HW_FAIL 5
125 #define PROXIMITY21_RANGE_STATUS_WRAP_CHECK 6
126 #define PROXIMITY21_RANGE_STATUS_PHASE_NO_MATCH 7
127 #define PROXIMITY21_RANGE_STATUS_PROCESSING_FAIL 8
128 #define PROXIMITY21_RANGE_STATUS_CROSSTALK_FAIL 9
129 #define PROXIMITY21_RANGE_STATUS_INTERRUPT_ERROR 10
130 #define PROXIMITY21_RANGE_STATUS_MERGED_TARGET 11
131 #define PROXIMITY21_RANGE_STATUS_SIGNAL_TOO_LOW 12
132 #define PROXIMITY21_RANGE_STATUS_ERROR 255
138 #define PROXIMITY21_DEVICE_ID 0xECAA
146 #define PROXIMITY21_DEVICE_ADDRESS 0x29
164 #define PROXIMITY21_MAP_MIKROBUS( cfg, mikrobus ) \
165 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
166 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
167 cfg.xshut = MIKROBUS( mikrobus, MIKROBUS_RST ); \
168 cfg.gpio1 = MIKROBUS( mikrobus, MIKROBUS_INT )
535 #endif // PROXIMITY21_H
uint8_t range_status
Definition: proximity21.h:180
@ PROXIMITY21_OK
Definition: proximity21.h:241
err_t proximity21_init(proximity21_t *ctx, proximity21_cfg_t *cfg)
Proximity 21 initialization function.
uint8_t slave_address
Definition: proximity21.h:214
err_t proximity21_reg_read_bytes(proximity21_t *ctx, uint16_t reg, uint8_t *data_out, uint8_t len)
Proximity 21 reg read bytes function.
err_t proximity21_set_i2c_address(proximity21_t *ctx, uint8_t address)
Proximity 21 set I2C address function.
err_t proximity21_reg_write_byte(proximity21_t *ctx, uint16_t reg, uint8_t data_in)
Proximity 21 reg write byte function.
err_t proximity21_clear_interrupt(proximity21_t *ctx)
Proximity 21 clear interrupt function.
err_t proximity21_reg_write_word(proximity21_t *ctx, uint16_t reg, uint16_t data_in)
Proximity 21 reg write word function.
Proximity 21 Click context object.
Definition: proximity21.h:203
uint8_t i2c_address
Definition: proximity21.h:231
err_t proximity21_set_range_timing(proximity21_t *ctx, uint32_t timing_budget_ms, uint32_t inter_measurement_ms)
Proximity 21 set range timing function.
uint16_t signal_per_spad_kcps
Definition: proximity21.h:190
pin_name_t scl
Definition: proximity21.h:224
pin_name_t xshut
Definition: proximity21.h:227
uint16_t ambient_per_spad_kcps
Definition: proximity21.h:186
digital_out_t xshut
Definition: proximity21.h:205
err_t proximity21_default_cfg(proximity21_t *ctx)
Proximity 21 default configuration function.
uint16_t number_of_spad
Definition: proximity21.h:192
Proximity 21 Click configuration object.
Definition: proximity21.h:223
err_t proximity21_start_ranging(proximity21_t *ctx)
Proximity 21 start ranging function.
uint16_t ambient_rate_kcps
Definition: proximity21.h:184
err_t proximity21_reg_read_byte(proximity21_t *ctx, uint16_t reg, uint8_t *data_out)
Proximity 21 reg read byte function.
void proximity21_disable_device(proximity21_t *ctx)
Proximity 21 disable device function.
err_t proximity21_reg_read_dword(proximity21_t *ctx, uint16_t reg, uint32_t *data_out)
Proximity 21 reg read dword function.
i2c_master_t i2c
Definition: proximity21.h:211
digital_in_t gpio1
Definition: proximity21.h:208
void proximity21_enable_device(proximity21_t *ctx)
Proximity 21 enable device function.
uint16_t distance_mm
Definition: proximity21.h:182
err_t proximity21_reg_read_word(proximity21_t *ctx, uint16_t reg, uint16_t *data_out)
Proximity 21 reg read word function.
uint8_t proximity21_get_gpio1_pin(proximity21_t *ctx)
Proximity 21 get GPIO1 pin function.
pin_name_t sda
Definition: proximity21.h:225
void proximity21_cfg_setup(proximity21_cfg_t *cfg)
Proximity 21 configuration object setup function.
err_t proximity21_stop_ranging(proximity21_t *ctx)
Proximity 21 stop ranging function.
err_t proximity21_check_comm(proximity21_t *ctx)
Proximity 21 check comm function.
proximity21_return_value_t
Proximity 21 Click return value data.
Definition: proximity21.h:240
err_t proximity21_reg_write_bytes(proximity21_t *ctx, uint16_t reg, uint8_t *data_in, uint8_t len)
Proximity 21 reg write bytes function.
err_t proximity21_get_result(proximity21_t *ctx, proximity21_data_t *results)
Proximity 21 get result function.
err_t proximity21_reg_write_dword(proximity21_t *ctx, uint16_t reg, uint32_t data_in)
Proximity 21 reg write dword function.
@ PROXIMITY21_ERROR
Definition: proximity21.h:242
pin_name_t gpio1
Definition: proximity21.h:228
uint16_t sigma_mm
Definition: proximity21.h:194
Proximity 21 Click results data object.
Definition: proximity21.h:178
uint32_t i2c_speed
Definition: proximity21.h:230
uint16_t signal_rate_kcps
Definition: proximity21.h:188