current3 2.0.0.0
current3.h File Reference

This file contains API for Current 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  current3_t
 Click ctx object definition. More...
 
struct  current3_cfg_t
 Click configuration structure definition. More...
 
struct  current3_cfg_data_t
 Click configuration data definition. More...
 
struct  current3_status_data_t
 Click status data structure definition. More...
 
struct  current3_voltage_cfg_data_t
 Click voltage configuration structure definition. More...
 
struct  current3_sense_cfg_data_t
 Click sense configuration structure definition. More...
 

Macros

#define CURRENT3_MAP_MIKROBUS(cfg, mikrobus)
 
#define CURRENT3_OK   0
 
#define CURRENT3_ERROR   -1
 
#define CURRENT3_I2C_SLAVE_ADDR   0x4C
 
#define CURRENT3_ALERT_RESPONSE_ADDRESS   0x0C
 
#define CURRENT3_REG_INT_DIODE_DATA_HIGH_BYTE   0x00
 
#define CURRENT3_REG_EXT_DIODE_1_DATA_HIGH_BYTE   0x01
 
#define CURRENT3_REG_STATUS   0x02
 
#define CURRENT3_REG_CFG   0x03
 
#define CURRENT3_REG_CONVERSION_RATE   0x04
 
#define CURRENT3_REG_INT_DIODE_HIGH_LIMIT   0x05
 
#define CURRENT3_REG_INT_DIODE_LOW_LIMIT   0x06
 
#define CURRENT3_REG_EXT_DIODE_1_HIGH_LIMIT_HIGH_BYTE   0x07
 
#define CURRENT3_REG_EXT_DIODE_1_LOW_LIMIT_HIGH_BYTE   0x08
 
#define CURRENT3_REG_ONE_SHOT   0x0F
 
#define CURRENT3_REG_EXT_DIODE_1_DATA_LOW_BYTE   0x10
 
#define CURRENT3_REG_EXT_DIODE_1_HIGH_LIMIT_LOW_BYTE   0x13
 
#define CURRENT3_REG_EXT_DIODE_1_LOW_LIMIT_LOW_BYTE   0x14
 
#define CURRENT3_REG_EXT_DIODE_1_TCRIT_LIMIT   0x19
 
#define CURRENT3_REG_EXT_DIODE_FAULT   0x1B
 
#define CURRENT3_REG_CHANNEL_MASK_REGISTER   0x1F
 
#define CURRENT3_REG_INT_DIODE_TCRIT_LIMIT   0x20
 
#define CURRENT3_REG_TCRIT_HYSTERESIS   0x21
 
#define CURRENT3_REG_CONSECUTIVE_ALERT   0x22
 
#define CURRENT3_REG_EXT_DIODE_1_BETA_CFG   0x25
 
#define CURRENT3_REG_EXT_DIODE_1_IDEALITY_FACTOR   0x27
 
#define CURRENT3_REG_INT_DIODE_DATA_LOW_BYTE   0x29
 
#define CURRENT3_REG_HIGH_LIMIT_STATUS   0x35
 
#define CURRENT3_REG_LOW_LIMIT_STATUS   0x36
 
#define CURRENT3_REG_CRIT_LIMIT_STATUS   0x37
 
#define CURRENT3_REG_INT_DIODE_HIGH_BYTE   0x38
 
#define CURRENT3_REG_INT_DIODE_LOW_BYTE   0x39
 
#define CURRENT3_REG_EXT_DIODE_1_HIGH_BYTE   0x3A
 
#define CURRENT3_REG_EXT_DIODE_1_LOW_BYTE   0x3B
 
#define CURRENT3_REG_AVERAGING_CONTROL   0x40
 
#define CURRENT3_REG_VOLTAGE_SAMPLING_CFG   0x50
 
#define CURRENT3_REG_CURRENT_SENSE_SAMPLING_CFG   0x51
 
#define CURRENT3_REG_PEAK_DETECTION_CONFIG   0x52
 
#define CURRENT3_REG_SENSE_VOLTAGE_HIGH_BYTE   0x54
 
#define CURRENT3_REG_SENSE_VOLTAGE_LOW_BYTE   0x55
 
#define CURRENT3_REG_SOURCE_VOLTAGE_HIGH_BYTE   0x58
 
#define CURRENT3_REG_SOURCE_VOLTAGE_LOW_BYTE   0x59
 
#define CURRENT3_REG_POWER_RATIO_HIGH_BYTE   0x5B
 
#define CURRENT3_REG_POWER_RATIO_LOW_BYTE   0x5C
 
#define CURRENT3_REG_SENSE_VOLTAGE_HIGH_LIMIT   0x60
 
#define CURRENT3_REG_SENSE_VOLTAGE_LOW_LIMIT   0x61
 
#define CURRENT3_REG_SOURCE_VOLTAGE_HIGH_LIMIT   0x64
 
#define CURRENT3_REG_SOURCE_VOLTAGE_LOW_LIMIT   0x65
 
#define CURRENT3_REG_SENSE_VOLTAGE_VCRIT_LIMIT   0x66
 
#define CURRENT3_REG_SOURCE_VOLTAGE_VCRIT_LIMIT   0x68
 
#define CURRENT3_REG_SENSE_VCRIT_HYSTERESIS   0x69
 
#define CURRENT3_REG_SOURCE_VOLTAGE_VCRIT_HYSTERESIS   0x6A
 
#define CURRENT3_REG_PRODUCT_FEATURES   0xFC
 
#define CURRENT3_REG_PRODUCT_ID   0xFD
 
#define CURRENT3_REG_SMSC_ID   0xFE
 
#define CURRENT3_REG_REVISION   0xFF
 
#define CURRENT3_DEV_ID   0x39
 
#define CURRENT3_TEMP_INTERNAL_DIODE   0x00
 
#define CURRENT3_TEMP_EXTERNAL_DIODE   0x01
 
#define CURRENT3_PK_ALERT   0x00
 
#define CURRENT3_PK_THERM   0x01
 
#define CURRENT3_V_QUEUE_1   0x00
 
#define CURRENT3_V_QUEUE_2   0x01
 
#define CURRENT3_V_QUEUE_3   0x02
 
#define CURRENT3_V_QUEUE_4   0x03
 
#define CURRENT3_V_AVG_DISABLE   0x00
 
#define CURRENT3_V_AVG_2x   0x01
 
#define CURRENT3_V_AVG_4x   0x02
 
#define CURRENT3_V_AVG_8x   0x03
 
#define CURRENT3_NUM_OF_CONS_OUT_LIMIT_MEASUR_1   0x00
 
#define CURRENT3_NUM_OF_CONS_OUT_LIMIT_MEASUR_2   0x01
 
#define CURRENT3_NUM_OF_CONS_OUT_LIMIT_MEASUR_3   0x02
 
#define CURRENT3_NUM_OF_CONS_OUT_LIMIT_MEASUR_4   0x03
 
#define CURRENT3_CURRENT_SENSE_AVG_1X   0x00
 
#define CURRENT3_CURRENT_SENSE_AVG_2X   0x01
 
#define CURRENT3_CURRENT_SENSE_AVG_4X   0x02
 
#define CURRENT3_CURRENT_SENSE_AVG_8X   0x03
 
#define CURRENT3_CS_SAMP_TIME_82ms   0x00
 
#define CURRENT3_CS_SAMP_TIME_164ms   0x02
 
#define CURRENT3_CS_SAMP_TIME_328ms   0x03
 
#define CURRENT3_SENSOR_RANGE_BIT_MASK   0x03
 
#define CURRENT3_SENSOR_RANGE_10_mV   0x00
 
#define CURRENT3_SENSOR_RANGE_20_mV   0x01
 
#define CURRENT3_SENSOR_RANGE_40_mV   0x02
 
#define CURRENT3_SENSOR_RANGE_80_mV   0x03
 
#define CURRENT3_MASK_ALL_ALERT_NOT_MASKED   0x00
 
#define CURRENT3_MASK_ALL_ALERT_INTERRUPT_MODE   0x01
 
#define CURRENT3_TMEAS_STOP_MEASURING_ALL   0x00
 
#define CURRENT3_TMEAS_STOP_NOT_MEASURING   0x01
 
#define CURRENT3_ALERT_COMP_MODE_INTERRUPT   0x00
 
#define CURRENT3_ALERT_COMP_MODE_COMPARATOR   0x01
 
#define CURRENT3_DIS_REC1_ENABLED   0x00
 
#define CURRENT3_DIS_REC1_DISABLED   0x01
 
#define CURRENT3_IMEAS_SOURCE_SENSE_VOLTAGE_STOP_MEASUR   0x00
 
#define CURRENT3_IMEAS_SOURCE_SENSE_VOLTAGE_START_MEASUR   0x01
 
#define CURRENT3_DAVG_DIS_ENABLED   0x00
 
#define CURRENT3_DAVG_DIS_DISABLED   0x01
 
#define CURRENT3_SENSOR_RANGE_VALUE_10_mV   10.0
 
#define CURRENT3_SENSOR_RANGE_VALUE_20_mV   20.0
 
#define CURRENT3_SENSOR_RANGE_VALUE_40_mV   40.0
 
#define CURRENT3_SENSOR_RANGE_VALUE_80_mV   80.0
 
#define CURRENT3_DEFAULT_RSENSE   10.0
 
#define CURRENT3_FULL_SCALE_SENSE_VOLTAGE   2047
 
#define CURRENT3_CON_FCT_mV_TO_V   1000
 
#define CURRENT3_SOURCE_VOLTAGE_CALC_FACT   0.0117
 
#define CURRENT3_TEMPERATURE_CALC_FACT   0.125
 

Functions

void current3_cfg_setup (current3_cfg_t *cfg)
 Config Object Initialization function.
 
err_t current3_init (current3_t *ctx, current3_cfg_t *cfg)
 Initialization function.
 
void current3_default_cfg (current3_t *ctx, current3_sense_cfg_data_t sense_cfg_data)
 Click Default Configuration function.
 
err_t current3_generic_write (current3_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
 Generic write function.
 
err_t current3_generic_read (current3_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
 Generic read function.
 
float current3_get_temperature (current3_t *ctx, uint8_t temp_sel)
 Get temperature function.
 
void current3_get_status (current3_t *ctx, current3_status_data_t *status_cfg)
 Get status function.
 
void current3_set_configuration (current3_t *ctx, current3_cfg_data_t cfg_data)
 Set configuration function.
 
void current3_get_configuration (current3_t *ctx, current3_cfg_data_t *cfg_data)
 Get configuration function.
 
void current3_set_voltage_sampling_config (current3_t *ctx, current3_voltage_cfg_data_t vtg_cfg_data)
 Set voltage sampling configuration function.
 
void current3_get_voltage_sampling_config (current3_t *ctx, current3_voltage_cfg_data_t *vtg_cfg_data)
 Get voltage sampling configuration function.
 
void current3_set_sense_sampling_config (current3_t *ctx, current3_sense_cfg_data_t sense_cfg_data)
 Set sense sampling configuration function.
 
void current3_get_sense_sampling_config (current3_t *ctx, current3_sense_cfg_data_t *sense_cfg_data)
 Get sense sampling configuration function.
 
int16_t current3_get_sense_voltage (current3_t *ctx)
 Get sense voltage function.
 
float current3_get_source_voltage (current3_t *ctx)
 Get source voltage function.
 
float current3_get_current (current3_t *ctx)
 Get current measurement function.
 
uint8_t current3_check_therm (current3_t *ctx)
 Check therm ststus function.
 
uint8_t current3_check_alert (current3_t *ctx)
 Check alert ststus function.
 

Detailed Description

This file contains API for Current 3 Click driver.