no-OS
|
Header file of ADE7913 Driver. More...
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
#include "no_os_util.h"
#include "no_os_spi.h"
#include "no_os_gpio.h"
#include "no_os_irq.h"
Go to the source code of this file.
Classes | |
struct | ade7913_init_param |
ADE7913 Device initialization parameters. More... | |
struct | ade7913_dev |
ADE7913 Device structure. More... | |
Enumerations | |
enum | ade7913_adc_freq_e { ADE7913_ADC_FREQ_8KHZ, ADE7913_ADC_FREQ_4KHZ, ADE7913_ADC_FREQ_2KHZ, ADE7913_ADC_FREQ_1KHZ } |
ADE7913 ADC output frequency. More... | |
Functions | |
int | ade7913_read (struct ade7913_dev *dev, uint8_t reg_addr, uint8_t *reg_data) |
Read device register. More... | |
int | ade7913_read_waveforms (struct ade7913_dev *dev, uint8_t reg_addr, uint8_t *reg_data) |
Read multiple devices. More... | |
int | ade7913_write (struct ade7913_dev *dev, uint8_t reg_addr, uint8_t reg_data) |
Write device register. More... | |
int | ade7913_write_broadcast (struct ade7913_dev *dev, uint8_t reg_addr, uint8_t *reg_data) |
Write broadcast. More... | |
int | ade7913_init (struct ade7913_dev **device, struct ade7913_init_param init_param) |
Initialize the device. More... | |
int | ade7913_remove (struct ade7913_dev *dev) |
Remove the device and release resources. More... | |
int | ade7913_sw_reset (struct ade7913_dev *dev) |
Reset the device using SW reset. More... | |
int | ade7913_wr_lock (struct ade7913_dev *dev) |
Lock device. More... | |
int | ade7913_wr_unlock (struct ade7913_dev *dev) |
Unlock device. More... | |
int | ade7913_get_sync_cnt_val (struct ade7913_dev *dev, uint16_t *counter) |
Get synchronization counter value. More... | |
int | ade7913_set_clkout_en (struct ade7913_dev *dev, uint8_t clkout_en) |
Set clkout enable. More... | |
int | ade7913_pwrdwn (struct ade7913_dev *dev, uint8_t pwrdwn) |
Power down enable. More... | |
int | ade7913_temp_en (struct ade7913_dev *dev, uint8_t temp_en) |
Temperature enable. More... | |
int | ade7913_sync_en (struct ade7913_dev *dev) |
Sync enable. More... | |
int | ade7913_adc_freq (struct ade7913_dev *dev, enum ade7913_adc_freq_e frequency) |
Set ADC frequency. More... | |
int | ade7913_lfp_bw (struct ade7913_dev *dev, uint8_t bw) |
Digital lpf bandwith select. More... | |
int | ade7913_crc_status (struct ade7913_dev *dev, uint8_t *status) |
CRC of config registers status. More... | |
int | ade7913_ic_prot_status (struct ade7913_dev *dev, uint8_t *status) |
IC config regs protection status. More... | |
int | ade7913_emi_ctrl (struct ade7913_dev *dev, uint8_t emi_ctrl) |
Set EMI CTRL register. More... | |
int | ade7913_adc_na_status (struct ade7913_dev *dev, uint8_t *status) |
ADC not accesed during one period status. More... | |
int | ade7913_cnt_snapshot_val (struct ade7913_dev *dev, uint16_t *val) |
Cnt snapshot. More... | |
int | ade7913_get_version_product (struct ade7913_dev *dev, uint8_t *ver_product) |
Get version product value. More... | |
Header file of ADE7913 Driver.
Copyright 2023(c) Analog Devices, Inc.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY ANALOG DEVICES, INC. “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ANALOG DEVICES, INC. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define ADE7913_2_CHANNEL_ADE7912 2U |
#define ADE7913_3_CHANNEL_ADE7913 3U |
#define ADE7913_ADC_FREQ_MSK NO_OS_GENMASK(5, 4) |
#define ADE7913_ADC_NA_MSK NO_OS_BIT(6) |
#define ADE7913_BW_MSK NO_OS_BIT(7) |
#define ADE7913_CLKOUT_EN_MSK NO_OS_BIT(0) |
#define ADE7913_CNT_VAL_MSK NO_OS_GENMASK(11, 0) |
#define ADE7913_CRC_STAT_MSK NO_OS_BIT(1) |
#define ADE7913_IC_PROT_MSK NO_OS_BIT(2) |
#define ADE7913_LOCK_KEY 0XCA |
#define ADE7913_LOCK_KEY_MSK NO_OS_GENMASK(5, 4) |
#define ADE7913_PWRDWN_EN_MSK NO_OS_BIT(2) |
#define ADE7913_REG_ADC_CRC 0x04 |
#define ADE7913_REG_CNT_SNAPSHOT 0x07 |
#define ADE7913_REG_CONFIG 0x08 |
#define ADE7913_REG_COUNTER0 0x0C |
#define ADE7913_REG_COUNTER1 0x0D |
#define ADE7913_REG_CTRL_CRC 0x05 |
#define ADE7913_REG_EMI_CTRL 0x0E |
#define ADE7913_REG_IWV 0x00 |
#define ADE7913_REG_LOCK 0x0A |
#define ADE7913_REG_STATUS0 0x09 |
#define ADE7913_REG_STATUS1 0x0F |
#define ADE7913_REG_SYNC_SNAP 0x0B |
#define ADE7913_REG_TEMPOS 0x08 |
#define ADE7913_REG_V1WV 0x01 |
#define ADE7913_REG_V2WV 0x02 |
#define ADE7913_RESET_ON_MSK NO_OS_BIT(0) |
#define ADE7913_SLOT0_MSK NO_OS_BIT(0) |
#define ADE7913_SLOT1_MSK NO_OS_BIT(1) |
#define ADE7913_SLOT2_MSK NO_OS_BIT(2) |
#define ADE7913_SLOT3_MSK NO_OS_BIT(3) |
#define ADE7913_SLOT4_MSK NO_OS_BIT(4) |
#define ADE7913_SLOT5_MSK NO_OS_BIT(5) |
#define ADE7913_SLOT6_MSK NO_OS_BIT(6) |
#define ADE7913_SLOT7_MSK NO_OS_BIT(7) |
#define ADE7913_SNAP_MSK NO_OS_BIT(1) |
#define ADE7913_SPI_READ NO_OS_BIT(2) |
#define ADE7913_SWRST_MSK NO_OS_BIT(6) |
#define ADE7913_SYNC_MSK NO_OS_BIT(0) |
#define ADE7913_TEMP_EN_MSK NO_OS_BIT(3) |
#define ADE7913_UNLOCK_KEY 0X9C |
#define ADE7913_VERSION_MSK NO_OS_GENMASK(2, 0) |
#define ADE7913_VREF_I (49) |
#define ADE7913_VREF_V (788) |
#define DISABLE 0u |
#define ENABLE 1u |
enum ade7913_adc_freq_e |
int ade7913_adc_freq | ( | struct ade7913_dev * | dev, |
enum ade7913_adc_freq_e | frequency | ||
) |
Set ADC frequency.
dev | - The device structure. |
frequency | - output frequency |
int ade7913_adc_na_status | ( | struct ade7913_dev * | dev, |
uint8_t * | status | ||
) |
ADC not accesed during one period status.
dev | - The device structure. |
status | - status indicator |
int ade7913_cnt_snapshot_val | ( | struct ade7913_dev * | dev, |
uint16_t * | val | ||
) |
Cnt snapshot.
dev | - The device structure. |
val | - snapshot value of counter. |
int ade7913_crc_status | ( | struct ade7913_dev * | dev, |
uint8_t * | status | ||
) |
CRC of config registers status.
dev | - The device structure. |
status | - status indicator |
int ade7913_emi_ctrl | ( | struct ade7913_dev * | dev, |
uint8_t | emi_ctrl | ||
) |
Set EMI CTRL register.
dev | - The device structure. |
emi_ctrl | - output frequency |
int ade7913_get_sync_cnt_val | ( | struct ade7913_dev * | dev, |
uint16_t * | counter | ||
) |
Get synchronization counter value.
dev | - The device structure. |
counter | - Counter value. |
int ade7913_get_version_product | ( | struct ade7913_dev * | dev, |
uint8_t * | ver_product | ||
) |
Get version product value.
dev | - The device structure. |
ver_product | - VErsion product value. |
int ade7913_ic_prot_status | ( | struct ade7913_dev * | dev, |
uint8_t * | status | ||
) |
IC config regs protection status.
dev | - The device structure. |
status | - status indicator |
int ade7913_init | ( | struct ade7913_dev ** | device, |
struct ade7913_init_param | init_param | ||
) |
Initialize the device.
device | - The device structure. |
init_param | - The structure that contains the device initial parameters. |
int ade7913_lfp_bw | ( | struct ade7913_dev * | dev, |
uint8_t | bw | ||
) |
Digital lpf bandwith select.
dev | - The device structure. |
bw | - 0 - BW = 3.3kHz, 1 - BW = 2kHz (for CLKIN 4.096 MHz and ADC freq 8kHz). |
int ade7913_pwrdwn | ( | struct ade7913_dev * | dev, |
uint8_t | pwrdwn | ||
) |
Power down enable.
dev | - The device structure. |
pwrdwn | - 0 - dc-dc is functional, 1 - dc-dc is turned off. |
int ade7913_read | ( | struct ade7913_dev * | dev, |
uint8_t | reg_addr, | ||
uint8_t * | reg_data | ||
) |
Read device register.
dev | - The device structure. |
reg_addr | - The register address. |
reg_data | - The data read from the register. |
int ade7913_read_waveforms | ( | struct ade7913_dev * | dev, |
uint8_t | reg_addr, | ||
uint8_t * | reg_data | ||
) |
Read multiple devices.
dev | - The device structure. |
reg_addr | - The register address. |
reg_data | - The data read from the register. |
int ade7913_remove | ( | struct ade7913_dev * | dev | ) |
Remove the device and release resources.
dev | - The device structure. |
int ade7913_set_clkout_en | ( | struct ade7913_dev * | dev, |
uint8_t | clkout_en | ||
) |
Set clkout enable.
dev | - The device structure. |
clkout_en | - 0 - dready functionality enabled 1 - clkout functionality enabled. |
int ade7913_sw_reset | ( | struct ade7913_dev * | dev | ) |
Reset the device using SW reset.
dev | - The device structure. |
int ade7913_sync_en | ( | struct ade7913_dev * | dev | ) |
Sync enable.
dev | - The device structure. |
int ade7913_temp_en | ( | struct ade7913_dev * | dev, |
uint8_t | temp_en | ||
) |
Temperature enable.
dev | - The device structure. |
temp_en | - 0 - voltage V2P V2M measured, 1 - internal temperature sensor measured . |
int ade7913_wr_lock | ( | struct ade7913_dev * | dev | ) |
Lock device.
dev | - The device structure. |
int ade7913_wr_unlock | ( | struct ade7913_dev * | dev | ) |
Unlock device.
dev | - The device structure. |
int ade7913_write | ( | struct ade7913_dev * | dev, |
uint8_t | reg_addr, | ||
uint8_t | reg_data | ||
) |
Write device register.
dev- | The device structure. |
reg_addr | - The register address. |
reg_data | - The data to be written. |
int ade7913_write_broadcast | ( | struct ade7913_dev * | dev, |
uint8_t | reg_addr, | ||
uint8_t * | reg_data | ||
) |
Write broadcast.
dev- | The device structure. |
reg_addr | - The register address. |
reg_data | - The data to be written. |