![]() |
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"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. | |
| int | ade7913_read_waveforms (struct ade7913_dev *dev, uint8_t reg_addr, uint8_t *reg_data) |
| Read multiple devices. | |
| int | ade7913_write (struct ade7913_dev *dev, uint8_t reg_addr, uint8_t reg_data) |
| Write device register. | |
| int | ade7913_write_broadcast (struct ade7913_dev *dev, uint8_t reg_addr, uint8_t *reg_data) |
| Write broadcast. | |
| int | ade7913_init (struct ade7913_dev **device, struct ade7913_init_param init_param) |
| Initialize the device. | |
| int | ade7913_remove (struct ade7913_dev *dev) |
| Remove the device and release resources. | |
| int | ade7913_sw_reset (struct ade7913_dev *dev) |
| Reset the device using SW reset. | |
| int | ade7913_wr_lock (struct ade7913_dev *dev) |
| Lock device. | |
| int | ade7913_wr_unlock (struct ade7913_dev *dev) |
| Unlock device. | |
| int | ade7913_get_sync_cnt_val (struct ade7913_dev *dev, uint16_t *counter) |
| Get synchronization counter value. | |
| int | ade7913_set_clkout_en (struct ade7913_dev *dev, uint8_t clkout_en) |
| Set clkout enable. | |
| int | ade7913_pwrdwn (struct ade7913_dev *dev, uint8_t pwrdwn) |
| Power down enable. | |
| int | ade7913_temp_en (struct ade7913_dev *dev, uint8_t temp_en) |
| Temperature enable. | |
| int | ade7913_sync_en (struct ade7913_dev *dev) |
| Sync enable. | |
| int | ade7913_adc_freq (struct ade7913_dev *dev, enum ade7913_adc_freq_e frequency) |
| Set ADC frequency. | |
| int | ade7913_lfp_bw (struct ade7913_dev *dev, uint8_t bw) |
| Digital lpf bandwith select. | |
| int | ade7913_crc_status (struct ade7913_dev *dev, uint8_t *status) |
| CRC of config registers status. | |
| int | ade7913_ic_prot_status (struct ade7913_dev *dev, uint8_t *status) |
| IC config regs protection status. | |
| int | ade7913_emi_ctrl (struct ade7913_dev *dev, uint8_t emi_ctrl) |
| Set EMI CTRL register. | |
| int | ade7913_adc_na_status (struct ade7913_dev *dev, uint8_t *status) |
| ADC not accesed during one period status. | |
| int | ade7913_cnt_snapshot_val (struct ade7913_dev *dev, uint16_t *val) |
| Cnt snapshot. | |
| int | ade7913_get_version_product (struct ade7913_dev *dev, uint8_t *ver_product) |
| Get version product value. | |
Header file of ADE7913 Driver.
Copyright 2023(c) Analog Devices, Inc.
SPDX-License-Identifier: BSD-3-Clause
| #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. |