3dhall13 2.2.0
Loading...
Searching...
No Matches
c3dhall13.h File Reference

This file contains API for 3D Hall 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  c3dhall13_data_t
 3D Hall 13 Click data object. More...
struct  c3dhall13_t
 3D Hall 13 Click context object. More...
struct  c3dhall13_cfg_t
 3D Hall 13 Click configuration object. More...

Macros

#define C3DHALL13_REG_DEVICE_CONFIG_1   0x00
 3D Hall 13 register list.
#define C3DHALL13_REG_DEVICE_CONFIG_2   0x01
#define C3DHALL13_REG_SENSOR_CONFIG_1   0x02
#define C3DHALL13_REG_SENSOR_CONFIG_2   0x03
#define C3DHALL13_REG_THR_CONFIG_1   0x04
#define C3DHALL13_REG_THR_CONFIG_2   0x05
#define C3DHALL13_REG_THR_CONFIG_3   0x06
#define C3DHALL13_REG_SENSOR_CONFIG_3   0x07
#define C3DHALL13_REG_INT_CONFIG_1   0x08
#define C3DHALL13_REG_SENSOR_CONFIG_4   0x09
#define C3DHALL13_REG_SENSOR_CONFIG_5   0x0A
#define C3DHALL13_REG_SENSOR_CONFIG_6   0x0B
#define C3DHALL13_REG_I2C_ADDRESS   0x0C
#define C3DHALL13_REG_DEVICE_ID   0x0D
#define C3DHALL13_REG_MANUFACTURER_ID_LSB   0x0E
#define C3DHALL13_REG_MANUFACTURER_ID_MSB   0x0F
#define C3DHALL13_REG_T_RESULT_MSB   0x10
#define C3DHALL13_REG_T_RESULT_LSB   0x11
#define C3DHALL13_REG_X_RESULT_MSB   0x12
#define C3DHALL13_REG_X_RESULT_LSB   0x13
#define C3DHALL13_REG_Y_RESULT_MSB   0x14
#define C3DHALL13_REG_Y_RESULT_LSB   0x15
#define C3DHALL13_REG_Z_RESULT_MSB   0x16
#define C3DHALL13_REG_Z_RESULT_LSB   0x17
#define C3DHALL13_REG_CONV_STATUS   0x18
#define C3DHALL13_REG_ANGLE_RESULT_MSB   0x19
#define C3DHALL13_REG_ANGLE_RESULT_LSB   0x1A
#define C3DHALL13_REG_MAGNITUDE_RESULT   0x1B
#define C3DHALL13_REG_DEVICE_STATUS   0x1C
#define C3DHALL13_DEVICE_CONFIG_1_CRC_DISABLE   0x00
 3D Hall 13 DEVICE_CONFIG_1 register settings.
#define C3DHALL13_DEVICE_CONFIG_1_CRC_ENABLE   0x80
#define C3DHALL13_DEVICE_CONFIG_1_CRC_EN_MASK   0x80
#define C3DHALL13_DEVICE_CONFIG_1_MAG_TEMPCO_0   0x00
#define C3DHALL13_DEVICE_CONFIG_1_MAG_TEMPCO_0_12   0x20
#define C3DHALL13_DEVICE_CONFIG_1_MAG_TEMPCO_0_3   0x40
#define C3DHALL13_DEVICE_CONFIG_1_MAG_TEMPCO_0_2   0x60
#define C3DHALL13_DEVICE_CONFIG_1_MAG_TEMPCO_MASK   0x60
#define C3DHALL13_DEVICE_CONFIG_1_CONV_AVG_1X   0x00
#define C3DHALL13_DEVICE_CONFIG_1_CONV_AVG_2X   0x04
#define C3DHALL13_DEVICE_CONFIG_1_CONV_AVG_4X   0x08
#define C3DHALL13_DEVICE_CONFIG_1_CONV_AVG_8X   0x0C
#define C3DHALL13_DEVICE_CONFIG_1_CONV_AVG_16X   0x10
#define C3DHALL13_DEVICE_CONFIG_1_CONV_AVG_32X   0x14
#define C3DHALL13_DEVICE_CONFIG_1_CONV_AVG_MASK   0x1C
#define C3DHALL13_DEVICE_CONFIG_1_I2C_RD_STANDARD   0x00
#define C3DHALL13_DEVICE_CONFIG_1_I2C_RD_1_BYTE_16BIT   0x01
#define C3DHALL13_DEVICE_CONFIG_1_I2C_RD_1_BYTE_8BIT   0x02
#define C3DHALL13_DEVICE_CONFIG_1_I2C_RD_MASK   0x03
#define C3DHALL13_DEVICE_CONFIG_2_THR_HYST_2_LSB   0x00
 3D Hall 13 DEVICE_CONFIG_2 register settings.
#define C3DHALL13_DEVICE_CONFIG_2_THR_HYST_4_LSB   0x20
#define C3DHALL13_DEVICE_CONFIG_2_THR_HYST_8_LSB   0x40
#define C3DHALL13_DEVICE_CONFIG_2_THR_HYST_16_LSB   0x60
#define C3DHALL13_DEVICE_CONFIG_2_THR_HYST_32_LSB   0x80
#define C3DHALL13_DEVICE_CONFIG_2_THR_HYST_64_LSB   0xA0
#define C3DHALL13_DEVICE_CONFIG_2_THR_HYST_128_LSB   0xC0
#define C3DHALL13_DEVICE_CONFIG_2_THR_HYST_256_LSB   0xE0
#define C3DHALL13_DEVICE_CONFIG_2_THR_HYST_MASK   0xE0
#define C3DHALL13_DEVICE_CONFIG_2_LP_LN_ACTIVE_CURRENT_MODE   0x00
#define C3DHALL13_DEVICE_CONFIG_2_LP_LN_NOISE_MODE   0x10
#define C3DHALL13_DEVICE_CONFIG_2_LP_LN_MASK   0x10
#define C3DHALL13_DEVICE_CONFIG_2_I2C_GLITCH_FILTER_ON   0x00
#define C3DHALL13_DEVICE_CONFIG_2_I2C_GLITCH_FILTER_OFF   0x08
#define C3DHALL13_DEVICE_CONFIG_2_I2C_GLITCH_FILTER_MASK   0x08
#define C3DHALL13_DEVICE_CONFIG_2_TRIGGER_MODE_CMD   0x00
#define C3DHALL13_DEVICE_CONFIG_2_TRIGGER_MODE_INT   0x04
#define C3DHALL13_DEVICE_CONFIG_2_TRIGGER_MODE_MASK   0x04
#define C3DHALL13_DEVICE_CONFIG_2_OPERATING_MODE_STANDBY   0x00
#define C3DHALL13_DEVICE_CONFIG_2_OPERATING_MODE_SLEEP   0x01
#define C3DHALL13_DEVICE_CONFIG_2_OPERATING_MODE_CONTINUOUS   0x02
#define C3DHALL13_DEVICE_CONFIG_2_OPERATING_MODE_WS   0x03
#define C3DHALL13_DEVICE_CONFIG_2_OPERATING_MODE_MASK   0x03
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_DISABLE   0x00
 3D Hall 13 SENSOR_CONFIG_1 register settings.
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_X   0x10
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_Y   0x20
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_XY   0x30
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_Z   0x40
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_ZX   0x50
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_YZ   0x60
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_XYZ   0x70
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_XYX   0x80
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_YXY   0x90
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_YZY   0xA0
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_ENABLE_XZX   0xB0
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_XYZ_POS_OFFSET   0xC0
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_XYZ_NEG_OFFSET   0xD0
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_HALL_RES_ADC   0xE0
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_HALL_OFFSET_AFE   0xF0
#define C3DHALL13_SENSOR_CONFIG_1_MAG_CH_EN_MASK   0xF0
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_1MS   0x00
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_5MS   0x01
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_10MS   0x02
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_15MS   0x03
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_20MS   0x04
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_30MS   0x05
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_50MS   0x06
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_100MS   0x07
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_500MS   0x08
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_1000MS   0x09
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_2000MS   0x0A
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_5000MS   0x0B
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_20000MS   0x0C
#define C3DHALL13_SENSOR_CONFIG_1_SLEEPTIME_MASK   0x0F
#define C3DHALL13_SENSOR_CONFIG_2_T_RATE_SINGLE   0x00
 3D Hall 13 SENSOR_CONFIG_2 register settings.
#define C3DHALL13_SENSOR_CONFIG_2_T_RATE_AVG   0x80
#define C3DHALL13_SENSOR_CONFIG_2_T_RATE_MASK   0x80
#define C3DHALL13_SENSOR_CONFIG_2_INTB_POL_LOW   0x00
#define C3DHALL13_SENSOR_CONFIG_2_INTB_POL_HIGH   0x40
#define C3DHALL13_SENSOR_CONFIG_2_INTB_POL_MASK   0x40
#define C3DHALL13_SENSOR_CONFIG_2_MAG_THR_DIR_ABOVE   0x00
#define C3DHALL13_SENSOR_CONFIG_2_MAG_THR_DIR_BELOW   0x20
#define C3DHALL13_SENSOR_CONFIG_2_MAG_THR_DIR_MASK   0x20
#define C3DHALL13_SENSOR_CONFIG_2_MAG_GAIN_CH_1   0x00
#define C3DHALL13_SENSOR_CONFIG_2_MAG_GAIN_CH_2   0x10
#define C3DHALL13_SENSOR_CONFIG_2_MAG_GAIN_CH_MASK   0x10
#define C3DHALL13_SENSOR_CONFIG_2_ANGLE_EN_NO_ANGLE   0x00
#define C3DHALL13_SENSOR_CONFIG_2_ANGLE_EN_XY_ANGLE   0x04
#define C3DHALL13_SENSOR_CONFIG_2_ANGLE_EN_YZ_ANGLE   0x08
#define C3DHALL13_SENSOR_CONFIG_2_ANGLE_EN_XZ_ANGLE   0x0C
#define C3DHALL13_SENSOR_CONFIG_2_ANGLE_EN_MASK   0x0C
#define C3DHALL13_SENSOR_CONFIG_2_X_Y_RANGE_40MT   0x00
#define C3DHALL13_SENSOR_CONFIG_2_X_Y_RANGE_80MT   0x02
#define C3DHALL13_SENSOR_CONFIG_2_X_Y_RANGE_MASK   0x02
#define C3DHALL13_SENSOR_CONFIG_2_Z_RANGE_40MT   0x00
#define C3DHALL13_SENSOR_CONFIG_2_Z_RANGE_80MT   0x01
#define C3DHALL13_SENSOR_CONFIG_2_Z_RANGE_MASK   0x01
#define C3DHALL13_SENSOR_CONFIG_3_WOC_SEL_DISABLE   0x00
 3D Hall 13 SENSOR_CONFIG_3 register settings.
#define C3DHALL13_SENSOR_CONFIG_3_WOC_SEL_ANGLE   0x40
#define C3DHALL13_SENSOR_CONFIG_3_WOC_SEL_MAG_FIELD   0x80
#define C3DHALL13_SENSOR_CONFIG_3_WOC_SEL_MASK   0xC0
#define C3DHALL13_SENSOR_CONFIG_3_THR_SEL_DISABLE   0x00
#define C3DHALL13_SENSOR_CONFIG_3_THR_SEL_ANGLE   0x10
#define C3DHALL13_SENSOR_CONFIG_3_THR_SEL_B_FIELD   0x20
#define C3DHALL13_SENSOR_CONFIG_3_THR_SEL_BUTTON   0x30
#define C3DHALL13_SENSOR_CONFIG_3_THR_SEL_MASK   0x30
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_HYS_1_DEG   0x00
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_HYS_2_DEGS   0x04
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_HYS_4_DEGS   0x08
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_HYS_8_DEGS   0x08
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_HYS_MASK   0x0C
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_OFFSET_EN_DISABLE   0x00
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_OFFSET_EN_ENABLE   0x02
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_OFFSET_EN_MASK   0x02
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_OFFSET_DIR_ADDED   0x00
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_OFFSET_DIR_SUBSTR   0x01
#define C3DHALL13_SENSOR_CONFIG_3_ANGLE_OFFSET_DIR_MASK   0x01
#define C3DHALL13_INT_CONFIG_1_RESULT_INT_NO_ASSERT   0x00
 3D Hall 13 INT_CONFIG_1 register settings.
#define C3DHALL13_INT_CONFIG_1_RESULT_INT_ASSERT   0x80
#define C3DHALL13_INT_CONFIG_1_RESULT_INT_MASK   0x80
#define C3DHALL13_INT_CONFIG_1_THRESHOLD_INT_NO_ASSERT   0x00
#define C3DHALL13_INT_CONFIG_1_THRESHOLD_INT_ASSERT   0x40
#define C3DHALL13_INT_CONFIG_1_THRESHOLD_INT_MASK   0x40
#define C3DHALL13_INT_CONFIG_1_INT_STATE_LATCHED   0x00
#define C3DHALL13_INT_CONFIG_1_INT_STATE_PULSE_5US   0x20
#define C3DHALL13_INT_CONFIG_1_INT_STATE_MASK   0x20
#define C3DHALL13_INT_CONFIG_1_INT_MODE_NO_INT   0x00
#define C3DHALL13_INT_CONFIG_1_INT_MODE_INT   0x04
#define C3DHALL13_INT_CONFIG_1_INT_MODE_INT_WO_I2C_BUSY   0x08
#define C3DHALL13_INT_CONFIG_1_INT_MODE_SCL   0x0C
#define C3DHALL13_INT_CONFIG_1_INT_MODE_SCL_WO_I2C_BUSY   0x10
#define C3DHALL13_INT_CONFIG_1_INT_MODE_UNIPOLAR_SWITCH   0x14
#define C3DHALL13_INT_CONFIG_1_INT_MODE_OMNIPOLAR_SWITCH   0x18
#define C3DHALL13_INT_CONFIG_1_INT_MODE_MASK   0x1C
#define C3DHALL13_INT_CONFIG_1_INT_POL_EN_DISABLE   0x00
#define C3DHALL13_INT_CONFIG_1_INT_POL_EN_ENABLE   0x02
#define C3DHALL13_INT_CONFIG_1_INT_POL_EN_MASK   0x02
#define C3DHALL13_INT_CONFIG_1_MASK_INT_ENABLE   0x00
#define C3DHALL13_INT_CONFIG_1_MASK_INT_DISABLE   0x01
#define C3DHALL13_INT_CONFIG_1_MASK_INT_MASK   0x01
#define C3DHALL13_DEVICE_ID   0x00
 3D Hall 13 DEVICE_ID and MANUFACTURER_ID values.
#define C3DHALL13_DEVICE_ID_MASK   0x0C
#define C3DHALL13_MANUFACTURER_ID_LSB   0x49
#define C3DHALL13_MANUFACTURER_ID_MSB   0x54
#define C3DHALL13_CONV_STATUS_SET_COUNT_MASK   0xE0
 3D Hall 13 CONV_STATUS register settings.
#define C3DHALL13_CONV_STATUS_POR   0x10
#define C3DHALL13_CONV_STATUS_DIAG_STATUS   0x02
#define C3DHALL13_CONV_STATUS_DATA_READY   0x01
#define C3DHALL13_DEVICE_STATUS_INTB_RB   0x10
 3D Hall 13 DEVICE_STATUS register settings.
#define C3DHALL13_DEVICE_STATUS_INT_ER   0x04
#define C3DHALL13_DEVICE_STATUS_OTP_CRC_ER   0x02
#define C3DHALL13_DEVICE_STATUS_THR_CROSS   0x01
#define C3DHALL13_TEMP_SENS_T0   25.0
 3D Hall 13 calculation values.
#define C3DHALL13_TEMP_ADC_T0   17512
#define C3DHALL13_TEMP_ADC_RESOLUTION   58.2
#define C3DHALL13_ANGLE_RESOLUTION   16.0
#define C3DHALL13_XYZ_SENSITIVITY_40MT   885.0
#define C3DHALL13_XYZ_SENSITIVITY_80MT   446.0
#define C3DHALL13_DEVICE_ADDRESS_0   0x34
 3D Hall 13 device address setting.
#define C3DHALL13_DEVICE_ADDRESS_1   0x35
#define C3DHALL13_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.

Enumerations

enum  c3dhall13_return_value_t { C3DHALL13_OK = 0 , C3DHALL13_ERROR = -1 }
 3D Hall 13 Click return value data. More...

Functions

void c3dhall13_cfg_setup (c3dhall13_cfg_t *cfg)
 3D Hall 13 configuration object setup function.
err_t c3dhall13_init (c3dhall13_t *ctx, c3dhall13_cfg_t *cfg)
 3D Hall 13 initialization function.
err_t c3dhall13_default_cfg (c3dhall13_t *ctx)
 3D Hall 13 default configuration function.
err_t c3dhall13_generic_write (c3dhall13_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 3D Hall 13 I2C writing function.
err_t c3dhall13_generic_read (c3dhall13_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 3D Hall 13 I2C reading function.
err_t c3dhall13_write_register (c3dhall13_t *ctx, uint8_t reg, uint8_t data_in)
 3D Hall 13 write register function.
err_t c3dhall13_read_register (c3dhall13_t *ctx, uint8_t reg, uint8_t *data_out)
 3D Hall 13 read register function.
uint8_t c3dhall13_get_int_pin (c3dhall13_t *ctx)
 3D Hall 13 get int pin function.
err_t c3dhall13_check_communication (c3dhall13_t *ctx)
 3D Hall 13 check communication function.
err_t c3dhall13_read_data (c3dhall13_t *ctx, c3dhall13_data_t *data_out)
 3D Hall 13 read data function.

Detailed Description

This file contains API for 3D Hall 13 Click Driver.

Enumeration Type Documentation

◆ c3dhall13_return_value_t

3D Hall 13 Click return value data.

Predefined enum values for driver return values.

Enumerator
C3DHALL13_OK 
C3DHALL13_ERROR