haptic3 2.0.0.0
haptic3.h File Reference

This file contains API for HAPTIC 3 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  haptic3_t
 HAPTIC 3 Click context object. More...
 
struct  haptic3_cfg_t
 HAPTIC 3 Click configuration object. More...
 

Macros

#define HAPTIC3_REG_CHIP_REV   0x00
 HAPTIC 3 Register Map.
 
#define HAPTIC3_REG_IRQ_EVENT1   0x03
 
#define HAPTIC3_REG_IRQ_EVENT_WARNING_DIAG   0x04
 
#define HAPTIC3_REG_IRQ_EVENT_SEQ_DIAG   0x05
 
#define HAPTIC3_REG_IRQ_STATUS1   0x06
 
#define HAPTIC3_REG_IRQ_MASK1   0x07
 
#define HAPTIC3_REG_CIF_I2C1   0x08
 
#define HAPTIC3_REG_FRQ_LRA_PER_H   0x0A
 
#define HAPTIC3_REG_FRQ_LRA_PER_L   0x0B
 
#define HAPTIC3_REG_ACTUATOR1   0x0C
 
#define HAPTIC3_REG_ACTUATOR2   0x0D
 
#define HAPTIC3_REG_ACTUATOR3   0x0E
 
#define HAPTIC3_REG_CALIB_V2I_H   0x0F
 
#define HAPTIC3_REG_CALIB_V2I_L   0x10
 
#define HAPTIC3_REG_CALIB_IMP_H   0x11
 
#define HAPTIC3_REG_CALIB_IMP_L   0x12
 
#define HAPTIC3_REG_TOP_CFG1   0x13
 
#define HAPTIC3_REG_TOP_CFG2   0x14
 
#define HAPTIC3_REG_TOP_CFG3   0x15
 
#define HAPTIC3_REG_TOP_CFG4   0x16
 
#define HAPTIC3_REG_TOP_INT_CFG1   0x17
 
#define HAPTIC3_REG_TOP_INT_CFG6_H   0x1C
 
#define HAPTIC3_REG_TOP_INT_CFG6_L   0x1D
 
#define HAPTIC3_REG_TOP_INT_CFG7_H   0x1E
 
#define HAPTIC3_REG_TOP_INT_CFG7_L   0x1F
 
#define HAPTIC3_REG_TOP_INT_CFG8   0x20
 
#define HAPTIC3_REG_TOP_CTL1   0x22
 
#define HAPTIC3_REG_TOP_CTL2   0x23
 
#define HAPTIC3_REG_SEQ_CTL1   0x24
 
#define HAPTIC3_REG_SWG_C1   0x25
 
#define HAPTIC3_REG_SWG_C2   0x26
 
#define HAPTIC3_REG_SWG_C3   0x27
 
#define HAPTIC3_REG_SEQ_CTL2   0x28
 
#define HAPTIC3_REG_GPI_0_CTL   0x29
 
#define HAPTIC3_REG_GPI_1_CTL   0x2A
 
#define HAPTIC3_REG_GPI_2_CTL   0x2B
 
#define HAPTIC3_REG_MEM_CTL1   0x2C
 
#define HAPTIC3_REG_MEM_CTL2   0x2D
 
#define HAPTIC3_REG_ADC_DATA_H1   0x2E
 
#define HAPTIC3_REG_ADC_DATA_L1   0x2F
 
#define HAPTIC3_REG_POLARITY   0x43
 
#define HAPTIC3_REG_LRA_AVR_H   0x44
 
#define HAPTIC3_REG_LRA_AVR_L   0x45
 
#define HAPTIC3_REG_FRQ_LRA_PER_ACT_H   0x46
 
#define HAPTIC3_REG_FRQ_LRA_PER_ACT_L   0x47
 
#define HAPTIC3_REG_FRQ_PHASE_H   0x48
 
#define HAPTIC3_REG_FRQ_PHASE_L   0x49
 
#define HAPTIC3_REG_FRQ_CTL   0x4C
 
#define HAPTIC3_REG_TRIM3   0x5F
 
#define HAPTIC3_REG_TRIM4   0x60
 
#define HAPTIC3_REG_TRIM6   0x62
 
#define HAPTIC3_REG_TOP_CFG5   0x6E
 
#define HAPTIC3_REG_IRQ_EVENT_ACTUATOR_FAULT   0x81
 
#define HAPTIC3_REG_IRQ_STATUS2   0x82
 
#define HAPTIC3_REG_IRQ_MASK2   0x83
 
#define HAPTIC3_REG_SNP_MEM_X   0x84
 
#define HAPTIC3_CHIP_REV   0xDA
 HAPTIC 3 chip rev value.
 
#define HAPTIC3_TOP_CFG1_EMB_MODE_MANUAL   0x00
 HAPTIC 3 top cfg 1 register settings.
 
#define HAPTIC3_TOP_CFG1_EMB_MODE_AUTO   0x80
 
#define HAPTIC3_TOP_CFG1_EMB_MODE_MASK   0x80
 
#define HAPTIC3_TOP_CFG1_ACT_TYPE_LRA   0x00
 
#define HAPTIC3_TOP_CFG1_ACT_TYPE_ERM   0x20
 
#define HAPTIC3_TOP_CFG1_ACT_TYPE_MASK   0x20
 
#define HAPTIC3_TOP_CFG1_BEMF_SENSE_CUSTOM_WF   0x00
 
#define HAPTIC3_TOP_CFG1_BEMF_SENSE_STANDARD   0x10
 
#define HAPTIC3_TOP_CFG1_BEMF_SENSE_MASK   0x10
 
#define HAPTIC3_TOP_CFG1_FREQ_TRACK_DISABLE   0x00
 
#define HAPTIC3_TOP_CFG1_FREQ_TRACK_ENABLE   0x08
 
#define HAPTIC3_TOP_CFG1_FREQ_TRACK_MASK   0x08
 
#define HAPTIC3_TOP_CFG1_ACCEL_DISABLE   0x00
 
#define HAPTIC3_TOP_CFG1_ACCEL_ENABLE   0x04
 
#define HAPTIC3_TOP_CFG1_ACCEL_MASK   0x04
 
#define HAPTIC3_TOP_CFG1_RAPID_STOP_DISABLE   0x00
 
#define HAPTIC3_TOP_CFG1_RAPID_STOP_ENABLE   0x02
 
#define HAPTIC3_TOP_CFG1_RAPID_STOP_MASK   0x02
 
#define HAPTIC3_TOP_CFG1_AMPLITUDE_PID_DISABLE   0x00
 
#define HAPTIC3_TOP_CFG1_AMPLITUDE_PID_ENABLE   0x01
 
#define HAPTIC3_TOP_CFG1_AMPLITUDE_PID_MASK   0x01
 
#define HAPTIC3_TOP_CTL1_SEQ_STOP   0x00
 HAPTIC 3 top ctl 1 register settings.
 
#define HAPTIC3_TOP_CTL1_SEQ_START   0x10
 
#define HAPTIC3_TOP_CTL1_SEQ_MASK   0x10
 
#define HAPTIC3_TOP_CTL1_STANDBY_DISABLE   0x00
 
#define HAPTIC3_TOP_CTL1_STANDBY_ENABLE   0x08
 
#define HAPTIC3_TOP_CTL1_STANDBY_MASK   0x08
 
#define HAPTIC3_TOP_CTL1_OP_MODE_INACTIVE   0x00
 
#define HAPTIC3_TOP_CTL1_OP_MODE_DRO   0x01
 
#define HAPTIC3_TOP_CTL1_OP_MODE_PWM   0x02
 
#define HAPTIC3_TOP_CTL1_OP_MODE_RTWM   0x03
 
#define HAPTIC3_TOP_CTL1_OP_MODE_ETWM   0x04
 
#define HAPTIC3_TOP_CTL1_OP_MODE_MASK   0x07
 
#define HAPTIC3_ACTUATOR_VOLTAGE_MIN   0.0
 HAPTIC 3 calculation macros.
 
#define HAPTIC3_ACTUATOR_VOLTAGE_MAX   6.0
 
#define HAPTIC3_ACTUATOR_VOLTAGE_RESOLUTION   0.0234
 
#define HAPTIC3_ACTUATOR_IMAX_MIN   28.6
 
#define HAPTIC3_ACTUATOR_IMAX_MAX   251.8
 
#define HAPTIC3_ACTUATOR_IMAX_DIVIDER   7.2
 
#define HAPTIC3_ACTUATOR_IMAX_RESOLUTION   0x1F
 
#define HAPTIC3_ACTUATOR_IMPEDANCE_MIN   4.0
 
#define HAPTIC3_ACTUATOR_IMPEDANCE_MAX   50.0
 
#define HAPTIC3_ACTUATOR_V2I_FACTOR_DIVIDER   1.6104
 
#define HAPTIC3_ACTUATOR_LRA_FREQ_MIN   0.0
 
#define HAPTIC3_ACTUATOR_LRA_FREQ_MAX   300.0
 
#define HAPTIC3_ACTUATOR_LRA_FREQ_RESOLUTION   0.00000133332
 
#define HAPTIC3_VIBRATION_LEVEL_MIN   -1.0
 
#define HAPTIC3_VIBRATION_LEVEL_MAX   1.0
 
#define HAPTIC3_VIBRATION_LEVEL_MIN_ACC_EN   0.0
 
#define HAPTIC3_VIBRATION_LEVEL_RESOLUTION   0.008
 
#define HAPTIC3_ROUND_TO_NEAREST_INT   0.5
 
#define HAPTIC3_DEFAULT_ACTUATOR_TYPE   HAPTIC3_TOP_CFG1_ACT_TYPE_LRA
 HAPTIC 3 actuator settings default values.
 
#define HAPTIC3_DEFAULT_ACTUATOR_ABS_VOLT   2.808
 
#define HAPTIC3_DEFAULT_ACTUATOR_NOM_VOLT   2.106
 
#define HAPTIC3_DEFAULT_ACTUATOR_IMAX   194.0
 
#define HAPTIC3_DEFAULT_ACTUATOR_IMPEDANCE   16.0
 
#define HAPTIC3_DEFAULT_ACTUATOR_LRA_FREQ   174.0
 
#define HAPTIC3_DEVICE_ADDRESS   0x4A
 HAPTIC 3 device address setting.
 
#define HAPTIC3_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping.
 

Enumerations

enum  haptic3_return_value_t { HAPTIC3_OK = 0 , HAPTIC3_ERROR = -1 }
 HAPTIC 3 Click return value data. More...
 

Functions

void haptic3_cfg_setup (haptic3_cfg_t *cfg)
 HAPTIC 3 configuration object setup function.
 
err_t haptic3_init (haptic3_t *ctx, haptic3_cfg_t *cfg)
 HAPTIC 3 initialization function.
 
err_t haptic3_default_cfg (haptic3_t *ctx)
 HAPTIC 3 default configuration function.
 
err_t haptic3_generic_write (haptic3_t *ctx, uint8_t reg, uint8_t *tx_buf, uint8_t tx_len)
 HAPTIC 3 I2C writing function.
 
err_t haptic3_generic_read (haptic3_t *ctx, uint8_t reg, uint8_t *rx_buf, uint8_t rx_len)
 HAPTIC 3 I2C reading function.
 
err_t haptic3_write_register (haptic3_t *ctx, uint8_t reg, uint8_t data_in)
 HAPTIC 3 write register function.
 
err_t haptic3_read_register (haptic3_t *ctx, uint8_t reg, uint8_t *data_out)
 HAPTIC 3 read register function.
 
err_t haptic3_write_register_bits (haptic3_t *ctx, uint8_t reg, uint8_t mask, uint8_t data_in)
 HAPTIC 3 write register bits function.
 
err_t haptic3_check_communication (haptic3_t *ctx)
 HAPTIC 3 check communication function.
 
void haptic3_enable_device (haptic3_t *ctx)
 HAPTIC 3 enable device function.
 
void haptic3_disable_device (haptic3_t *ctx)
 HAPTIC 3 disable device function.
 
uint8_t haptic3_get_int_pin (haptic3_t *ctx)
 HAPTIC 3 get INT pin function.
 
err_t haptic3_set_actuator_type (haptic3_t *ctx, uint8_t type)
 HAPTIC 3 set actuator type function.
 
err_t haptic3_set_actuator_abs_volt (haptic3_t *ctx, float abs_volt)
 HAPTIC 3 set actuator abs volt function.
 
err_t haptic3_set_actuator_nom_volt (haptic3_t *ctx, float nom_volt)
 HAPTIC 3 set actuator nom volt function.
 
err_t haptic3_set_actuator_imax (haptic3_t *ctx, float max_curr)
 HAPTIC 3 set actuator imax function.
 
err_t haptic3_set_actuator_impedance (haptic3_t *ctx, float impedance)
 HAPTIC 3 set actuator impedance function.
 
err_t haptic3_set_actuator_lra_freq (haptic3_t *ctx, float frequency)
 HAPTIC 3 set actuator lra freq function.
 
err_t haptic3_set_operation_mode (haptic3_t *ctx, uint8_t op_mode)
 HAPTIC 3 set operation mode function.
 
err_t haptic3_set_freq_track (haptic3_t *ctx, uint8_t freq_track_en)
 HAPTIC 3 set freq track function.
 
err_t haptic3_set_acceleration_mode (haptic3_t *ctx, uint8_t accel_en)
 HAPTIC 3 set acceleration mode function.
 
err_t haptic3_set_vibration_level (haptic3_t *ctx, float level)
 HAPTIC 3 set vibration level function.
 
err_t haptic3_get_vibration_level (haptic3_t *ctx, float *level)
 HAPTIC 3 get vibration level function.
 

Detailed Description

This file contains API for HAPTIC 3 Click Driver.

Enumeration Type Documentation

◆ haptic3_return_value_t

HAPTIC 3 Click return value data.

Predefined enum values for driver return values.

Enumerator
HAPTIC3_OK 
HAPTIC3_ERROR