pwrmeter390a  2.1.0.0
Data Structures | Macros | Enumerations | Functions
pwrmeter390a.h File Reference

This file contains API for PWR Meter 3 90A 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  pwrmeter390a_t
 PWR Meter 3 90A Click context object. More...
 
struct  pwrmeter390a_cfg_t
 PWR Meter 3 90A Click configuration object. More...
 

Macros

#define PWRMETER390A_REG_EEPROM_0B   0x0B
 PWR Meter 3 90A EEPROM registers. More...
 
#define PWRMETER390A_REG_EEPROM_0C   0x0C
 
#define PWRMETER390A_REG_EEPROM_0D   0x0D
 
#define PWRMETER390A_REG_EEPROM_0E   0x0E
 
#define PWRMETER390A_REG_EEPROM_0F   0x0F
 
#define PWRMETER390A_REG_SHADOW_1B   0x1B
 PWR Meter 3 90A SHADOW registers. More...
 
#define PWRMETER390A_REG_SHADOW_1C   0x1C
 
#define PWRMETER390A_REG_SHADOW_1D   0x1D
 
#define PWRMETER390A_REG_SHADOW_1E   0x1E
 
#define PWRMETER390A_REG_SHADOW_1F   0x1F
 
#define PWRMETER390A_REG_VOLATILE_20   0x20
 PWR Meter 3 90A VOLATILE registers. More...
 
#define PWRMETER390A_REG_VOLATILE_21   0x21
 
#define PWRMETER390A_REG_VOLATILE_22   0x22
 
#define PWRMETER390A_REG_VOLATILE_25   0x25
 
#define PWRMETER390A_REG_VOLATILE_26   0x26
 
#define PWRMETER390A_REG_VOLATILE_27   0x27
 
#define PWRMETER390A_REG_VOLATILE_28   0x28
 
#define PWRMETER390A_REG_VOLATILE_29   0x29
 
#define PWRMETER390A_REG_VOLATILE_2A   0x2A
 
#define PWRMETER390A_REG_VOLATILE_2C   0x2C
 
#define PWRMETER390A_REG_VOLATILE_2D   0x2D
 
#define PWRMETER390A_REG_VOLATILE_2F   0x2F
 
#define PWRMETER390A_REG_VOLATILE_30   0x30
 
#define PWRMETER390A_CUST_ACCESS_CODE   0x4F70656Eul
 PWR Meter 3 90A access code values. More...
 
#define PWRMETER390A_CUST_ACCESS_CODE_CLEAR   0x00000000ul
 
#define PWRMETER390A_VEVENT_CYCS_MASK   0x0000003Ful
 PWR Meter 3 90A register 0E/1E settings. More...
 
#define PWRMETER390A_OVERVREG_MASK   0x00003F00ul
 
#define PWRMETER390A_UNDERVREG_MASK   0x000FC000ul
 
#define PWRMETER390A_DELAYCNT_SEL_MASK   0x00100000ul
 
#define PWRMETER390A_HALFCYCLC_EN_MASK   0x00200000ul
 
#define PWRMETER390A_SQUAREWAVE_EN_MASK   0x00400000ul
 
#define PWRMETER390A_ZEROCROSSCHANSEL_MASK   0x00800000ul
 
#define PWRMETER390A_ZEROCROSSEDGESEL_MASK   0x01000000ul
 
#define PWRMETER390A_ECC_MASK   0xFC000000ul
 
#define PWRMETER390A_OVERVREG_MAX   63
 
#define PWRMETER390A_UNDERVREG_MAX   63
 
#define PWRMETER390A_OVERVREG_3   3
 
#define PWRMETER390A_UNDERVREG_1   1
 
#define PWRMETER390A_I2C_SLV_ADDR_MASK   0x000001FCul
 PWR Meter 3 90A register 0F/1F settings. More...
 
#define PWRMETER390A_I2C_DIS_SLV_ADDR   0x00000200ul
 
#define PWRMETER390A_DIO_0_SEL_MASK   0x00000C00ul
 
#define PWRMETER390A_DIO_1_SEL_MASK   0x00003000ul
 
#define PWRMETER390A_N_MASK   0x00FFC000ul
 
#define PWRMETER390A_BYPASS_N_EN_MASK   0x01000000ul
 
#define PWRMETER390A_DIO_0_SEL_ZC   0
 
#define PWRMETER390A_DIO_0_SEL_OV   1
 
#define PWRMETER390A_DIO_0_SEL_UV   2
 
#define PWRMETER390A_DIO_0_SEL_OV_UV   3
 
#define PWRMETER390A_DIO_1_SEL_OCF   0
 
#define PWRMETER390A_DIO_1_SEL_UV   1
 
#define PWRMETER390A_DIO_1_SEL_OV   2
 
#define PWRMETER390A_DIO_1_SEL_OV_UV_OCF   3
 
#define PWRMETER390A_BYPASS_N_DISABLE   0
 
#define PWRMETER390A_BYPASS_N_ENABLE   1
 
#define PWRMETER390A_MAX_NUM_SAMPLES   1023u
 
#define PWRMETER390A_RSENSE_OHM   2000.0f
 PWR Meter 3 90A RMS voltage and current calculation values. More...
 
#define PWRMETER390A_AC_RDIV_OHM   2000000.0f
 
#define PWRMETER390A_DC_RDIV_OHM   4000000.0f
 
#define PWRMETER390A_ADC_FSCALE   55000u
 
#define PWRMETER390A_DELTA_VIN_MAX_mV   250
 
#define PWRMETER390A_mV_TO_V   1000u
 
#define PWRMETER390A_MAX_CURRENT   90
 
#define PWRMETER390A_DEF_AVG_SAMPLES   500u
 
#define PWRMETER390A_DEVICE_ADDRESS_0   0x60
 PWR Meter 3 90A device address setting. More...
 
#define PWRMETER390A_DEVICE_ADDRESS_1   0x61
 
#define PWRMETER390A_DEVICE_ADDRESS_2   0x64
 
#define PWRMETER390A_DEVICE_ADDRESS_3   0x65
 
#define PWRMETER390A_MAP_MIKROBUS(cfg, mikrobus)
 MikroBUS pin mapping. More...
 

Enumerations

enum  pwrmeter390a_return_value_t { PWRMETER390A_OK = 0, PWRMETER390A_ERROR = -1 }
 PWR Meter 3 90A Click return value data. More...
 

Functions

void pwrmeter390a_cfg_setup (pwrmeter390a_cfg_t *cfg)
 PWR Meter 3 90A configuration object setup function. More...
 
err_t pwrmeter390a_init (pwrmeter390a_t *ctx, pwrmeter390a_cfg_t *cfg)
 PWR Meter 3 90A initialization function. More...
 
err_t pwrmeter390a_default_cfg (pwrmeter390a_t *ctx)
 PWR Meter 3 90A default configuration function. More...
 
err_t pwrmeter390a_write_register (pwrmeter390a_t *ctx, uint8_t reg, uint32_t data_in)
 PWR Meter 3 90A write register function. More...
 
err_t pwrmeter390a_read_register (pwrmeter390a_t *ctx, uint8_t reg, uint32_t *data_out)
 PWR Meter 3 90A read register function. More...
 
uint8_t pwrmeter390a_get_dio0_pin (pwrmeter390a_t *ctx)
 PWR Meter 3 90A get dio0 pin function. More...
 
uint8_t pwrmeter390a_get_dio1_pin (pwrmeter390a_t *ctx)
 PWR Meter 3 90A get dio1 pin function. More...
 
void pwrmeter390a_enable_device (pwrmeter390a_t *ctx)
 PWR Meter 3 90A enable device function. More...
 
void pwrmeter390a_disable_device (pwrmeter390a_t *ctx)
 PWR Meter 3 90A disable device function. More...
 
err_t pwrmeter390a_allow_write_access (pwrmeter390a_t *ctx)
 PWR Meter 3 90A allow write access function. More...
 
err_t pwrmeter390a_deny_write_access (pwrmeter390a_t *ctx)
 PWR Meter 3 90A deny write access function. More...
 
err_t pwrmeter390a_set_bypass_n_state (pwrmeter390a_t *ctx, uint8_t state)
 PWR Meter 3 90A set bypass n state function. More...
 
err_t pwrmeter390a_set_num_samples (pwrmeter390a_t *ctx, uint16_t num_samples)
 PWR Meter 3 90A set num samples function. More...
 
err_t pwrmeter390a_set_dio0_sel (pwrmeter390a_t *ctx, uint8_t dio_sel)
 PWR Meter 3 90A set dio0 sel function. More...
 
err_t pwrmeter390a_set_dio1_sel (pwrmeter390a_t *ctx, uint8_t dio_sel)
 PWR Meter 3 90A set dio1 sel function. More...
 
err_t pwrmeter390a_set_ovrms_thold (pwrmeter390a_t *ctx, uint8_t ovrms)
 PWR Meter 3 90A set ovrms threshold function. More...
 
err_t pwrmeter390a_set_uvrms_thold (pwrmeter390a_t *ctx, uint8_t uvrms)
 PWR Meter 3 90A set uvrms threshold function. More...
 
err_t pwrmeter390a_read_rms (pwrmeter390a_t *ctx, float *v_rms, float *i_rms)
 PWR Meter 3 90A read rms function. More...
 
err_t pwrmeter390a_read_average_rms (pwrmeter390a_t *ctx, float *v_rms, float *i_rms, uint16_t num_avg)
 PWR Meter 3 90A read average rms function. More...
 

Detailed Description

This file contains API for PWR Meter 3 90A Click Driver.

Enumeration Type Documentation

◆ pwrmeter390a_return_value_t

PWR Meter 3 90A Click return value data.

Predefined enum values for driver return values.

Enumerator
PWRMETER390A_OK 
PWRMETER390A_ERROR