|
| #define | ADE7754_SPI_READ NO_OS_BIT(7) |
| |
| #define | ADE7754_VERSION 0x3F |
| |
| #define | ADE7754_REG_VERSION_PRODUCT 0x0D |
| |
| #define | IS_5BITS_REG(x) |
| |
| #define | IS_8BITS_REG(x) |
| |
| #define | IS_12BITS_REG(x) |
| |
| #define | IS_15BITS_REG(x) |
| |
| #define | IS_16BITS_REG(x) |
| |
| #define | IS_24BITS_REG(x) |
| |
| #define | ADE7754_RESET_DEL 20 |
| |
| #define | ADE7754_REG_AENERGY 0x01 |
| |
| #define | ADE7754_REG_RAENERGY 0x02 |
| |
| #define | ADE7754_REG_LAENERGY 0x03 |
| |
| #define | ADE7754_REG_VAENERGY 0x04 |
| |
| #define | ADE7754_REG_RVAENERGY 0x05 |
| |
| #define | ADE7754_REG_LVAENERGY 0x06 |
| |
| #define | ADE7754_REG_PERIOD 0x07 |
| |
| #define | ADE7754_REG_TEMP 0x08 |
| |
| #define | ADE7754_REG_WFORM 0x09 |
| |
| #define | ADE7754_REG_OPMODE 0x0A |
| |
| #define | ADE7754_REG_MMODE 0x0B |
| |
| #define | ADE7754_REG_WAVMODE 0x0C |
| |
| #define | ADE7754_REG_WATMODE 0x0D |
| |
| #define | ADE7754_REG_VAMODE 0X0E |
| |
| #define | ADE7754_REG_IRQEN 0x0F |
| |
| #define | ADE7754_REG_STATUS 0x10 |
| |
| #define | ADE7754_REG_RSTATUS 0x11 |
| |
| #define | ADE7754_REG_ZXTOUT 0x12 |
| |
| #define | ADE7754_REG_LINCYC 0x13 |
| |
| #define | ADE7754_REG_SAGCYC 0x14 |
| |
| #define | ADE7754_REG_SAGLVL 0x15 |
| |
| #define | ADE7754_REG_VPEAK 0x16 |
| |
| #define | ADE7754_REG_IPEAK 0x17 |
| |
| #define | ADE7754_REG_GAIN 0x18 |
| |
| #define | ADE7754_REG_AWG 0x19 |
| |
| #define | ADE7754_REG_BWG 0x1A |
| |
| #define | ADE7754_REG_CWG 0X1B |
| |
| #define | ADE7754_REG_AVAG 0x1C |
| |
| #define | ADE7754_REG_BVAG 0x1D |
| |
| #define | ADE7754_REG_CVAG 0x1E |
| |
| #define | ADE7754_REG_APHCAL 0x1F |
| |
| #define | ADE7754_REG_BPHCAL 0x20 |
| |
| #define | ADE7754_REG_CPHCAL 0x21 |
| |
| #define | ADE7754_REG_AAPOS 0x22 |
| |
| #define | ADE7754_REG_BAPOS 0x23 |
| |
| #define | ADE7754_REG_CAPOS 0x24 |
| |
| #define | ADE7754_REG_CFNUM 0x25 |
| |
| #define | ADE7754_REG_CFDEN 0x26 |
| |
| #define | ADE7754_REG_WDIV 0x27 |
| |
| #define | ADE7754_REG_VADIV 0x28 |
| |
| #define | ADE7754_REG_AIRMS 0x29 |
| |
| #define | ADE7754_REG_BIRMS 0x2A |
| |
| #define | ADE7754_REG_CIRMS 0x2B |
| |
| #define | ADE7754_REG_AVRMS 0x2C |
| |
| #define | ADE7754_REG_BVRMS 0x2D |
| |
| #define | ADE7754_REG_CVRMS 0x2E |
| |
| #define | ADE7754_REG_AIRMSOS 0x2F |
| |
| #define | ADE7754_REG_BIRMSOS 0x30 |
| |
| #define | ADE7754_REG_CIRMSOS 0x31 |
| |
| #define | ADE7754_REG_AVRMSOS 0x32 |
| |
| #define | ADE7754_REG_BVRMSOS 0x33 |
| |
| #define | ADE7754_REG_CVRMSOS 0x34 |
| |
| #define | ADE7754_REG_AAPGAIN 0x35 |
| |
| #define | ADE7754_REG_BAPGAIN 0x36 |
| |
| #define | ADE7754_REG_CAPGAIN 0x37 |
| |
| #define | ADE7754_REG_AVGAIN 0x38 |
| |
| #define | ADE7754_REG_BVGAIN 0x39 |
| |
| #define | ADE7754_REG_CVGAIN 0x3A |
| |
| #define | ADE7754_REG_CHKSUM 0x3E |
| |
| #define | ADE7754_REG_VERSION 0x3F |
| |
| #define | ADE7754_SWRST_MSK NO_OS_BIT(6) |
| |
| #define | ADE7754_DISMOD_MSK NO_OS_GENMASK(5, 3) |
| |
| #define | ADE7754_DISCF_MSK NO_OS_BIT(2) |
| |
| #define | ADE7754_DISLPF_MSK NO_OS_BIT(1) |
| |
| #define | ADE7754_DISHPF_MSK NO_OS_BIT(0) |
| |
| #define | ADE7754_PGA2_MSK NO_OS_GENMASK(6, 5) |
| |
| #define | ADE7754_NO_LOAD_MSK NO_OS_BIT(3) |
| |
| #define | ADE7754_ABS_MSK NO_OS_BIT(2) |
| |
| #define | ADE7754_PGA1_MSK NO_OS_GENMASK(1, 0) |
| |
| #define | ADE7754_NEGC_MSK NO_OS_BIT(14) |
| |
| #define | ADE7754_NEGB_MSK NO_OS_BIT(13) |
| |
| #define | ADE7754_NEGA_MSK NO_OS_BIT(12) |
| |
| #define | ADE7754_CFNUM_MSK NO_OS_GENMASK(11, 0) |
| |
| #define | ADE7754_ZXSEL_MSK NO_OS_GENMASK(6, 4) |
| |
| #define | ADE7754_PEAKSEL_MSK NO_OS_GENMASK(3, 2) |
| |
| #define | ADE7754_PERDSEL_MSK NO_OS_GENMASK(1, 0) |
| |
| #define | ADE7754_LVARSEL_MSK NO_OS_BIT(5) |
| |
| #define | ADE7754_DTRT_MSK NO_OS_GENMASK(4, 3) |
| |
| #define | ADE7754_WAVSEL_MSK NO_OS_GENMASK(2, 0) |
| |
| #define | ADE7754_WATM_MSK NO_OS_GENMASK(7, 6) |
| |
| #define | ADE7754_WATSEL_MSK NO_OS_GENMASK(5, 3) |
| |
| #define | ADE7754_LWATSEL_MSK NO_OS_GENMASK(2, 0) |
| |
| #define | ADE7754_VAMOD_MSK NO_OS_GENMASK(7, 6) |
| |
| #define | ADE7754_VASEL_MSK NO_OS_GENMASK(5, 3) |
| |
| #define | ADE7754_LVASEL_MSK NO_OS_GENMASK(2, 0) |
| |
| #define | ADE7754_VAEHF_MSK NO_OS_BIT(15) |
| |
| #define | ADE7754_WFSM_MSK NO_OS_BIT(14) |
| |
| #define | ADE7754_PKI_MSK NO_OS_BIT(13) |
| |
| #define | ADE7754_PKV_MSK NO_OS_BIT(12) |
| |
| #define | ADE7754_RESET_MSK NO_OS_BIT(11) |
| |
| #define | ADE7754_LENERGY_MSK NO_OS_BIT(10) |
| |
| #define | ADE7754_ZXC_MSK NO_OS_BIT(9) |
| |
| #define | ADE7754_ZXB_MSK NO_OS_BIT(8) |
| |
| #define | ADE7754_ZXA_MSK NO_OS_BIT(7) |
| |
| #define | ADE7754_ZXTOC_MSK NO_OS_BIT(6) |
| |
| #define | ADE7754_ZXTOB_MSK NO_OS_BIT(5) |
| |
| #define | ADE7754_ZXTOA_MSK NO_OS_BIT(4) |
| |
| #define | ADE7754_SAGC_MSK NO_OS_BIT(3) |
| |
| #define | ADE7754_SAGB_MSK NO_OS_BIT(2) |
| |
| #define | ADE7754_SAGA_MSK NO_OS_BIT(1) |
| |
| #define | ADE7754_AEHF_MSK NO_OS_BIT(0) |
| |
|
| enum | ade7754_dismod {
ADE7754_NORMAL_OPERATION
,
ADE7754_SWITCH_OFF_CURRENT_ADC
,
ADE7754_SWITCH_OFF_VOLTAGE_ADC
,
ADE7754_SLEEP_MODE
,
ADE7754_SWAP_VOLTAGE_CURRENT
,
ADE7754_OFF_CURRENT_ADCS_REDIRECTED_TO_VOLTAGE
,
ADE7754_OFF_VOLTAGE_ADCS_REDIRECTED_TO_CURRENT
,
ADE7754_POWER_DOWN_MODE
} |
| | ADE7754 ADCs can be turned off by using these bits. More...
|
| |
| enum | ade7754_pga_gain {
ADE7754_PGA_GAIN_1
,
ADE7754_PGA_GAIN_2
,
ADE7754_PGA_GAIN_4
} |
| | ADE7754 select the PGA gain for current and voltage ch inputs. More...
|
| |
| enum | ade7754_phsel {
ADE7754_PHASE_A
,
ADE7754_PHASE_B
,
ADE7754_PHASE_C
} |
| | ADE7754 select the phase of peak detection or the source for the voltage line period measurement. More...
|
| |
| enum | ade7754_formsel {
ADE7754_FORMULA_PART_1
,
ADE7754_FORMULA_PART_2
,
ADE7754_FORMULA_PART_3
} |
| | ADE7754 select each part of the formula separately depending on the line active energy measurement method. More...
|
| |
| enum | ade7754_wavsel {
ADE7754_VOLTAGE_PHASE_A
,
ADE7754_VOLTAGE_PHASE_B
,
ADE7754_VOLTAGE_PHASE_C
,
ADE7754_CURRENT_PHASE_A
,
ADE7754_CURRENT_PHASE_B
,
ADE7754_CURRENT_PHASE_C
} |
| | ADE7754 select the source of the waveform sample. More...
|
| |
| enum | ade7754_data_rate {
ADE7754_DATA_RATE_26_KSPS
,
ADE7754_DATA_RATE_13_KSPS
,
ADE7754_DATA_RATE_6_5KSPS
,
ADE7754_DATA_RATE_3_KSPS
} |
| | ADE7754 select the data rate. More...
|
| |
| enum | ade7754_watm {
ADE7754_ACTIVE_E_FORMULA_1
,
ADE7754_ACTIVE_E_FORMULA_2
,
ADE7754_ACTIVE_E_FORMULA_3
} |
| | ADE7754 select the formula used for active energy calculation. More...
|
| |
| enum | ade7754_vamod {
ADE7754_APP_E_FORMULA_1
,
ADE7754_APP_E_FORMULA_2
,
ADE7754_APP_E_FORMULA_3
} |
| | ADE7754 select the formula used for apparent energy calculation. More...
|
| |
|
| int | ade7754_init (struct ade7754_dev **device, struct ade7754_init_param init_param) |
| | Initialize the device.
|
| |
| int | ade7754_setup (struct ade7754_dev *dev) |
| | Setup the ADE7754 device.
|
| |
| int | ade7754_read (struct ade7754_dev *dev, uint16_t reg_addr, int32_t *reg_data) |
| | Read device register.
|
| |
| int | ade7754_write (struct ade7754_dev *dev, uint16_t reg_addr, uint32_t reg_data) |
| | Write device register.
|
| |
| int | ade7754_update_bits (struct ade7754_dev *dev, uint16_t reg_addr, uint32_t mask, uint32_t reg_data) |
| | Update specific register bits.
|
| |
| int | ade7754_remove (struct ade7754_dev *dev) |
| | Remove the device and release resources.
|
| |
| int | ade7754_sw_reset (struct ade7754_dev *dev) |
| | Reset the device using SW reset.
|
| |
| int | ade7754_hw_reset (struct ade7754_dev *dev) |
| | Reset the device using HW reset.
|
| |
| int | ade7754_version_product (struct ade7754_dev *dev, uint32_t *data_read) |
| | Version product.
|
| |
| int | ade7754_write_ipk_val (struct ade7754_dev *dev, uint32_t val) |
| | Write Ipeak val.
|
| |
| int | ade7754_write_vpk_val (struct ade7754_dev *dev, uint32_t val) |
| | Write Vpeak val.
|
| |
| int | ade7754_get_int_status (struct ade7754_dev *dev, uint32_t msk, uint8_t *status) |
| | Get interrupt indicator from STATUS register.
|
| |
| int | ade7754_clear_irq_status (struct ade7754_dev *dev, int32_t *reg_data) |
| | Clear irq status flags.
|
| |
| int | ade7754_enable_irq (struct ade7754_dev *dev, uint32_t msk, uint8_t en) |
| | Enable/Disable interrupt.
|
| |
| int | ade7754_wave_update_rate (struct ade7754_dev *dev, enum ade7754_data_rate sel) |
| | Select waveform register update rate.
|
| |
| int | ade7754_wave_sample_data_source (struct ade7754_dev *dev, enum ade7754_wavsel sel) |
| | Select source of sampled data for wave register.
|
| |
| int | ade7754_current_gain (struct ade7754_dev *dev, enum ade7754_pga_gain sel) |
| | Select the gain of the current channels inputs.
|
| |
| int | ade7754_voltage_gain (struct ade7754_dev *dev, enum ade7754_pga_gain sel) |
| | Select the gain of the voltage channels inputs.
|
| |
| int | ade7754_active_energy_formula (struct ade7754_dev *dev, enum ade7754_watm sel) |
| | Select the formula used for active energy calculation.
|
| |
| int | ade7754_apparent_energy_formula (struct ade7754_dev *dev, enum ade7754_vamod sel) |
| | Select the formula used for apparent energy calculation.
|
| |
| int | ade7754_period_source (struct ade7754_dev *dev, enum ade7754_phsel sel) |
| | Select the source of the measurement of the voltage line period.
|
| |
| int | ade7754_zxsel (struct ade7754_dev *dev, enum ade7754_phsel sel) |
| | Select the phases used for counting the number of zero crossing in the line active and apparent accumulation modes and enables these phases for the zero-crossing timeout detection, zero crossing, period measurement, and SAG detection.
|
| |
| int | ade7754_lwat_formula_term (struct ade7754_dev *dev, enum ade7754_formsel sel) |
| | Select part of the line active energy formula separately, depending on the line active energy measurement method.
|
| |
| int | ade7754_lva_formula_term (struct ade7754_dev *dev, enum ade7754_formsel sel) |
| | Select part of the line apparent energy formula separately, depending on the line active energy measurement method.
|
| |
| int | ade7754_wat_formula_term (struct ade7754_dev *dev, enum ade7754_formsel sel) |
| | Select part of the active energy formula separately, depending on the line active energy measurement method.
|
| |
| int | ade7754_va_formula_term (struct ade7754_dev *dev, enum ade7754_formsel sel) |
| | Select part of the apparent energy formula separately, depending on the line active energy measurement method.
|
| |
| int | ade7754_peak_source (struct ade7754_dev *dev, enum ade7754_phsel sel) |
| | Select the source of the voltage & current peak detection.
|
| |
| int | ade7754_adcs_mode (struct ade7754_dev *dev, enum ade7754_dismod sel) |
| | Operation mode of the ADCs.
|
| |
| int | ade7754_energy_vals (struct ade7754_dev *dev, struct ade7754_energy_values *data) |
| | Read energy values.
|
| |
| int | ade7754_rms_vals_phase_a (struct ade7754_dev *dev, struct ade7754_rms_values *data) |
| | Read rms values phase A.
|
| |
| int | ade7754_rms_vals_phase_b (struct ade7754_dev *dev, struct ade7754_rms_values *data) |
| | Read rms values phase B.
|
| |
| int | ade7754_rms_vals_phase_c (struct ade7754_dev *dev, struct ade7754_rms_values *data) |
| | Read rms values phase C.
|
| |
| int | ade7754_period_val (struct ade7754_dev *dev, struct ade7754_period_value *data) |
| | Read period value.
|
| |
| int | ade7754_temperature_val (struct ade7754_dev *dev, struct ade7754_temp_value *data) |
| | Read temperature value.
|
| |
Header file of ADE7754 Driver.
- Author
- REtz (radu..nosp@m.etz@.nosp@m.analo.nosp@m.g.co.nosp@m.m)
Copyright 2025(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause