Go to the documentation of this file.
52 #define ADE9113_SPI_READ NO_OS_BIT(7)
55 #define ADE9113_OP_MODE_LONG NO_OS_BIT(6)
58 #define ADE9113_CRC8_POLY 0x07
59 #define ADE9113_CRC16_POLY 0x1021
60 #define ADE9113_CRC16_INIT_VAL 0xFFFF
67 #define ADE9113_REG_SWRST 0x001
68 #define ADE9113_REG_CONFIG0 0x002
69 #define ADE9113_REG_CONFIG_FILT 0x003
70 #define ADE9113_REG_CONFIG_ISO_ACC 0x005
71 #define ADE9113_REG_CRC_RESULT_HI 0x006
72 #define ADE9113_REG_CRC_RESULT_LO 0x007
73 #define ADE9113_REG_EFUSE_REFRESH 0x008
74 #define ADE9113_REG_EMI_CONFIG 0x009
75 #define ADE9113_REG_EMI_HI_MASK 0x00A
76 #define ADE9113_REG_EMI_LO_MASK 0x00B
77 #define ADE9113_REG_EMI_HI_LIMIT 0x00C
78 #define ADE9113_REG_EMI_MID_LIMIT 0x00D
79 #define ADE9113_REG_EMI_LO_LIMIT 0x00E
80 #define ADE9113_REG_MASK0 0x00F
81 #define ADE9113_REG_MASK1 0x010
82 #define ADE9113_REG_MASK2 0x011
83 #define ADE9113_REG_CONFIG_ZX 0x012
84 #define ADE9113_REG_SCRATCH 0x013
85 #define ADE9113_REG_SYNC_SNAP 0x014
86 #define ADE9113_REG_COUNTER_HI 0x015
87 #define ADE9113_REG_COUNTER_LO 0x016
88 #define ADE9113_REG_SNAPSHOT_COUNT_HI 0x017
89 #define ADE9113_REG_SNAPSHOT_COUNT_LO 0x018
90 #define ADE9113_REG_WR_LOCK 0x01F
91 #define ADE9113_REG_STATUS0 0x020
92 #define ADE9113_REG_STATUS1 0x021
93 #define ADE9113_REG_STATUS2 0x022
94 #define ADE9113_REG_COM_FLT_TYPE 0x023
95 #define ADE9113_REG_COM_FLT_COUNT 0x024
96 #define ADE9113_REG_CONFIG_CRC 0x025
97 #define ADE9113_REG_I_WAV_HI 0x026
98 #define ADE9113_REG_I_WAV_MD 0x027
99 #define ADE9113_REG_I_WAV_LO 0x028
100 #define ADE9113_REG_V1_WAV_HI 0x029
101 #define ADE9113_REG_V1_WAV_MD 0x02A
102 #define ADE9113_REG_V1_WAV_LO 0x02B
103 #define ADE9113_REG_V2_WAV_HI 0x02C
104 #define ADE9113_REG_V2_WAV_MD 0x02D
105 #define ADE9113_REG_V2_WAV_LO 0x02E
106 #define ADE9113_REG_UNIQUE_PART_ID_5 0x075
107 #define ADE9113_REG_UNIQUE_PART_ID_4 0x076
108 #define ADE9113_REG_UNIQUE_PART_ID_3 0x077
109 #define ADE9113_REG_UNIQUE_PART_ID_2 0x078
110 #define ADE9113_REG_UNIQUE_PART_ID_1 0x079
111 #define ADE9113_REG_UNIQUE_PART_ID_0 0x07A
112 #define ADE9113_REG_SILICON_REVISION 0x07D
113 #define ADE9113_REG_VERSION_PRODUCT 0x07E
116 #define ADE9113_SWRST_CMD 0xD6
119 #define ADE9113_STREAM_DBG_MSK NO_OS_GENMASK(3, 2)
120 #define ADE9113_CRC_EN_SPI_WRITE_MSK NO_OS_BIT(1)
121 #define ADE9113_CLOUT_EN_MSK NO_OS_BIT(0)
124 #define ADE9113_V2_ADC_INVERT_MSK NO_OS_BIT(6)
125 #define ADE9113_V1_ADC_INVERT_MSK NO_OS_BIT(5)
126 #define ADE9113_I_ADC_INVERT_MSK NO_OS_BIT(4)
127 #define ADE9113_LPF_BW_MSK NO_OS_BIT(3)
128 #define ADE9113_DATAPATH_CONFIG_MSK NO_OS_GENMASK(2, 0)
131 #define ADE9113_ISO_WR_ACC_EN_MSK NO_OS_BIT(0)
134 #define ADE9113_EFUSE_REFRESH_MSK NO_OS_BIT(0)
137 #define ADE9113_EMI_CONFIG_MSK NO_OS_GENMASK(2, 0)
140 #define ADE9113_STATUS1X_MSK NO_OS_BIT(7)
141 #define ADE9113_STATUS2X_MSK NO_OS_BIT(6)
142 #define ADE9113_COM_UP_MSK NO_OS_BIT(4)
143 #define ADE9113_CRC_CHG_MSK NO_OS_BIT(3)
144 #define ADE9113_SPI_CRC_ERR_MSK NO_OS_BIT(1)
145 #define ADE9113_COMFLT_ERR_MSK NO_OS_BIT(0)
148 #define ADE9113_V2_WAV_OVRNG_MSK NO_OS_BIT(3)
149 #define ADE9113_V1_WAV_OVRNG_MSK NO_OS_BIT(2)
150 #define ADE9113_I_WAV_OVRNG_MSK NO_OS_BIT(1)
151 #define ADE9113_ADC_SYNC_DONE_MSK NO_OS_BIT(0)
154 #define ADE9113_ISO_CLK_STBL_ERR_MSK NO_OS_BIT(6)
155 #define ADE9113_ISO_PHY_CRC_ERR_MSK NO_OS_BIT(5)
156 #define ADE9113_ISO_EFUSE_MEM_ERR_MSK NO_OS_BIT(4)
157 #define ADE9113_ISO_DIG_MOD_V2_OVF_MSK NO_OS_BIT(3)
158 #define ADE9113_ISO_DIG_MOD_V1_OVF_MSK NO_OS_BIT(2)
159 #define ADE9113_ISO_DIG_MOD_I_OVF_MSK NO_OS_BIT(1)
160 #define ADE9113_ISO_TEST_MMR_ERR_MSK NO_OS_BIT(0)
163 #define ADE9113_ZX_EDGE_SEL_MSK NO_OS_GENMASK(3, 2)
164 #define ADE9113_ZX_CHANNEL_CONFIG_MSK NO_OS_GENMASK(1, 0)
167 #define ADE9113_PREP_BROADCAST_MSK NO_OS_BIT(2)
168 #define ADE9113_ALIGN_MSK NO_OS_BIT(1)
169 #define ADE9113_SNAPSHOT_MSK NO_OS_BIT(0)
172 #define ADE9113_COUNTER_HI_MSK NO_OS_GENMASK(5, 0)
175 #define ADE9113_COUNTER_LO_MSK NO_OS_GENMASK(8, 0)
178 #define ADE9113_SNAPSHOT_COUNT_HI_MSK NO_OS_GENMASK(5, 0)
181 #define ADE9113_SNAPSHOT_COUNT_LO_MSK NO_OS_GENMASK(7, 0)
184 #define ADE9113_RESET_DONE_MSK NO_OS_BIT(5)
185 #define ADE9113_EFUSE_MEM_ERR_MSK NO_OS_BIT(2)
188 #define ADE9113_ISO_STATUS_RD_ECC_ERR_MSK NO_OS_BIT(2)
189 #define ADE9113_ISO_PHY_ERR_MSK NO_OS_BIT(1)
190 #define ADE9113_ISO_ECC_ERR_MSK NO_OS_BIT(1)
193 #define ADE9113_CRC_DONE_MSK NO_OS_BIT(1)
194 #define ADE9113_CRC_FORCE_MSK NO_OS_BIT(0)
197 #define ADE9113_NONISO_CHIP_REV_MSK NO_OS_GENMASK(7, 4)
198 #define ADE9113_ISO_CHIP_REV_MSK NO_OS_GENMASK(3, 0)
201 #define ADE9113_LOCK_KEY 0XD4
202 #define ADE9113_UNLOCK_KEY 0X5E
205 #define ADE9113_3_CHANNEL_ADE9113 0U
206 #define ADE9113_2_CHANNEL_ADE9112 1U
207 #define ADE9113_NONISOLATED_ADE9103 3U
210 #define ADE9113_VREF (1249810)
420 uint8_t *crc_en_state);
424 uint8_t crc_en_state);
520 uint8_t int_msk, uint8_t en);
788 #endif // __ADE9113_H__
ade9113_stream_debug_e
ADE9113 Stream Debug.
Definition: ade9113.h:220
int ade9113_get_comflt_err(struct ade9113_dev *dev, uint8_t *status)
Get COMFLT_ERR indicator.
Definition: ade9113.c:2013
int ade9113_enable_wa_dc_offset_mode(struct ade9113_dev *dev)
Enable write access to DC_OFFSET_MODE register.
Definition: ade9113.c:1115
int ade9113_wr_lock(struct ade9113_dev *dev)
Lock device.
Definition: ade9113.c:861
#define ADE9113_STATUS1X_MSK
Definition: ade9113.h:140
int ade9113_get_emi_mid_limit(struct ade9113_dev *dev, uint8_t *limit)
Get EMI MID limit.
Definition: ade9113.c:1271
#define ADE9113_SWRST_CMD
Definition: ade9113.h:116
#define ADE9113_REG_EFUSE_REFRESH
Definition: ade9113.h:73
#define ADE9113_REG_COM_FLT_TYPE
Definition: ade9113.h:94
int ade9113_disable_iso_test_mmr_err_int(struct ade9113_dev *dev)
Disable ISO_TEST_MMR_ERR interrupt.
Definition: ade9113.c:1778
int ade9113_convert_to_millivolts(struct ade9113_dev *dev, uint8_t dev_no, enum ade9113_wav_e ch, int32_t *mv_val)
Convert a 24-bit raw sample to millivolts.
Definition: ade9113.c:719
int ade9113_disable_status2x_int(struct ade9113_dev *dev)
Disable STATUS2X interrupt.
Definition: ade9113.c:1358
#define ADE9113_CRC_DONE_MSK
Definition: ade9113.h:193
int ade9113_enable_status2x_int(struct ade9113_dev *dev)
Enable STATUS2X interrupt.
Definition: ade9113.c:1344
#define ADE9113_REG_EMI_CONFIG
Definition: ade9113.h:74
int ade9113_get_statusx_val(struct ade9113_dev *dev, uint8_t addr, uint8_t *status)
Get STATUSx register value.
Definition: ade9113.c:1904
int ade9113_get_iso_efuse_mem_err_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_EFUSE_MEM_ERR indicator.
Definition: ade9113.c:2223
uint32_t timeout
Definition: ad413x.c:49
int ade9113_clear_crc_done_int(struct ade9113_dev *dev)
Clear the CRC_DONE int mask.
Definition: ade9113.c:2394
Structure holding the parameters for GPIO initialization.
Definition: no_os_gpio.h:79
int ade9113_invert_v1_inputs(struct ade9113_dev *dev)
Invert V1 channel inputs.
Definition: ade9113.c:995
int ade9113_disable_iso_efuse_mem_err_int(struct ade9113_dev *dev)
Disable ISO_EFUSE_MEM_ERR interrupt.
Definition: ade9113.c:1666
@ ADE9113_SINC3_LPF_EN_4_KHZ_SAMPLING
Definition: ade9113.h:247
@ ADE9113_SAWTOOTH_FREQUENCY_RISING
Definition: ade9113.h:260
int ade9113_get_adc_sync_done(struct ade9113_dev *dev, uint8_t *status)
Get ADC_SYNC_DONE indicator.
Definition: ade9113.c:2151
int ade9113_get_v2_wav_ovrng(struct ade9113_dev *dev, uint8_t *status)
Get V2_WAV_OVRNG indicator.
Definition: ade9113.c:2080
int ade9113_get_efuse_mem_err(struct ade9113_dev *dev, uint8_t *status)
Get EFUSE_MEM_ERR indicator.
Definition: ade9113.c:1988
int ade9113_enable_comflt_err_int(struct ade9113_dev *dev)
Enable COMFLT_ERR interrupt.
Definition: ade9113.c:1456
#define ADE9113_CRC16_INIT_VAL
Definition: ade9113.h:60
int ade9113_enable_iso_dig_mod_v1_ovf_int(struct ade9113_dev *dev)
Enable ISO_DIG_MOD_V1_OVF interrupt.
Definition: ade9113.c:1708
uint8_t no_devs
Definition: ade9113.h:341
#define ADE9113_REG_SYNC_SNAP
Definition: ade9113.h:85
int ade9113_enable_crc_chg_int(struct ade9113_dev *dev)
Enable CRC_CHG interrupt.
Definition: ade9113.c:1400
@ ADE9113_ZX_V2_SEL
Definition: ade9113.h:296
int ade9113_disable_status2x_int(struct ade9113_dev *dev)
Disable STATUS2X interrupt.
Definition: ade9113.c:1358
#define ADE9113_STREAM_DBG_MSK
Definition: ade9113.h:119
struct no_os_gpio_desc * gpio_reset
Definition: ade9113.h:364
int ade9113_get_iso_efuse_mem_err_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_EFUSE_MEM_ERR indicator.
Definition: ade9113.c:2223
@ ADE9113_ZX_I_SEL
Definition: ade9113.h:292
int ade9113_clear_spi_crc_err_int(struct ade9113_dev *dev)
Clear the SPI_CRC_ERR int mask.
Definition: ade9113.c:2057
int ade9113_get_iso_phy_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_PHY_ERR indicator.
Definition: ade9113.c:2356
@ ADE9113_SINC3_LPF_EN_32_KHZ_SAMPLING
Definition: ade9113.h:239
int ade9113_set_emi_lo_mask(struct ade9113_dev *dev, uint8_t msk)
Set EMI LO mask.
Definition: ade9113.c:1243
int ade9113_invert_v2_inputs(struct ade9113_dev *dev)
Invert V2 channel inputs.
Definition: ade9113.c:981
#define ADE9113_ISO_DIG_MOD_I_OVF_MSK
Definition: ade9113.h:159
#define ADE9113_I_WAV_OVRNG_MSK
Definition: ade9113.h:150
int32_t no_os_spi_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write and read data to/from SPI.
Definition: no_os_spi.c:159
int ade9113_enable_adc_sync_done_int(struct ade9113_dev *dev)
Enable ADC_SYNC_DONE interrupt.
Definition: ade9113.c:1568
int ade9113_force_crc_recalculation(struct ade9113_dev *dev)
Force background register map CRC recalculation.
Definition: ade9113.c:2408
Structure describing a callback to be registered.
Definition: no_os_irq.h:142
#define ADE9113_SNAPSHOT_MSK
Definition: ade9113.h:169
void(* drdy_callback)(void *context)
Definition: ade9113.h:339
#define ADE9113_ISO_ECC_ERR_MSK
Definition: ade9113.h:190
ade9113_datapath_config_e
ADE9113 digital signal processing configuration.
Definition: ade9113.h:235
int ade9113_get_emi_hi_mask(struct ade9113_dev *dev, uint8_t *msk)
Get EMI HI mask.
Definition: ade9113.c:1201
#define ADE9113_REG_COM_FLT_COUNT
Definition: ade9113.h:95
int ade9113_get_emi_lo_mask(struct ade9113_dev *dev, uint8_t *msk)
Get EMI LO mask.
Definition: ade9113.c:1215
int ade9113_set_normal_mode(struct ade9113_dev *dev)
Set normal mode of operation.
Definition: ade9113.c:927
int ade9113_set_dsp_config(struct ade9113_dev *dev, enum ade9113_datapath_config_e config)
Set digital signal processing configuration.
Definition: ade9113.c:1096
int ade9113_clear_v1_wav_ovrng_int(struct ade9113_dev *dev)
Clear the V1_WAV_OVRNG int mask.
Definition: ade9113.c:2116
Header file of SPI Interface.
int ade9113_set_emi_config(struct ade9113_dev *dev, enum ade9113_emi_config_e config)
Select EMI frequency hopping.
Definition: ade9113.c:1185
#define ADE9113_REG_I_WAV_MD
Definition: ade9113.h:98
Header file of IRQ interface.
int32_t no_os_irq_register_callback(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *callback_desc)
Register a callback to handle the irq events.
Definition: no_os_irq.c:92
struct no_os_gpio_init_param * gpio_reset
Definition: ade9113.h:334
int ade9113_disable_iso_clk_stbl_err_int(struct ade9113_dev *dev)
Disable ISO_CLK_STBL_ERR interrupt.
Definition: ade9113.c:1610
int ade9113_get_err_count(struct ade9113_dev *dev, uint8_t *err_count)
Get ECC or PHY Error Count on ISO to NONISO Communications.
Definition: ade9113.c:967
int ade9113_adc_prepare_broadcast(struct ade9113_dev *dev)
ADC prepare broadcast.
Definition: ade9113.c:1831
uint8_t ver_product
Definition: ade9113.h:352
int ade9113_set_data_increments_mode(struct ade9113_dev *dev)
Set data increments mode of operation.
Definition: ade9113.c:953
int ade9113_enable_adc_sync_done_int(struct ade9113_dev *dev)
Enable ADC_SYNC_DONE interrupt.
Definition: ade9113.c:1568
int ade9113_get_crc_chg(struct ade9113_dev *dev, uint8_t *status)
Get CRC_CHG indicator.
Definition: ade9113.c:1976
int ade9113_disable_v1_wav_ovrng_int(struct ade9113_dev *dev)
Disable V1_WAV_OVRNG interrupt.
Definition: ade9113.c:1526
#define ADE9113_REG_CRC_RESULT_LO
Definition: ade9113.h:72
int ade9113_enable_iso_phy_crc_err_int(struct ade9113_dev *dev)
Enable ISO_PHY_CRC_ERR interrupt.
Definition: ade9113.c:1624
uint8_t no_devs
Definition: ade9113.h:370
int ade9113_clear_iso_dig_mod_i_ovf_int(struct ade9113_dev *dev)
Clear the ISO_DIG_MOD_I_OVF int mask.
Definition: ade9113.c:2307
int ade9113_read(struct ade9113_dev *dev, uint8_t reg_addr, uint8_t *reg_data, enum ade9113_operation_e op_mode)
Read device register.
Definition: ade9113.c:63
int ade9113_disable_i_wav_ovrng_int(struct ade9113_dev *dev)
Disable I_WAV_OVRNG interrupt.
Definition: ade9113.c:1554
@ ADE9113_SINC3_32_KHZ_SAMPLING
Definition: ade9113.h:237
int ade9113_set_normal_mode(struct ade9113_dev *dev)
Set normal mode of operation.
Definition: ade9113.c:927
int ade9113_clear_iso_dig_mod_v2_ovf_int(struct ade9113_dev *dev)
Clear the ISO_DIG_MOD_V2_OVF int mask.
Definition: ade9113.c:2259
@ ADE9113_ZX_DETECT_NEGATIVE_SLOPE
Definition: ade9113.h:279
int ade9113_get_status2x(struct ade9113_dev *dev, uint8_t *status)
Get STATUS2 indicator.
Definition: ade9113.c:1940
int ade9113_invert_i_inputs(struct ade9113_dev *dev)
Invert I channel inputs.
Definition: ade9113.c:1009
int ade9113_enable_iso_efuse_mem_err_int(struct ade9113_dev *dev)
Enable ISO_EFUSE_MEM_ERR interrupt.
Definition: ade9113.c:1652
@ ADE9113_ZX_INPUT_SIGNAL_SIGN
Definition: ade9113.h:275
#define ADE9113_CRC_CHG_MSK
Definition: ade9113.h:143
int ade9113_set_stream_dbg_mode(struct ade9113_dev *dev, enum ade9113_stream_debug_e stream_dbg)
Set STREAM_DBG mode.
Definition: ade9113.c:791
int ade9113_get_com_up(struct ade9113_dev *dev, uint8_t *status)
Get COM_UP indicator.
Definition: ade9113.c:1964
int ade9113_get_v2_wav_ovrng(struct ade9113_dev *dev, uint8_t *status)
Get V2_WAV_OVRNG indicator.
Definition: ade9113.c:2080
int ade9113_get_iso_dig_mod_v1_ovf(struct ade9113_dev *dev, uint8_t *status)
Get ISO_DIG_MOD_V1_OVF indicator.
Definition: ade9113.c:2271
@ ADE9113_STREAM_FUNCTIONAL_MODE
Definition: ade9113.h:228
Header file of Delay functions.
int ade9113_select_zero_crossing_edge(struct ade9113_dev *dev, enum ade9113_zx_edge_sel_e sel)
Select zero crossing edge.
Definition: ade9113.c:1793
int ade9113_clear_iso_dig_mod_i_ovf_int(struct ade9113_dev *dev)
Clear the ISO_DIG_MOD_I_OVF int mask.
Definition: ade9113.c:2307
int ade9113_get_iso_phy_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_PHY_ERR indicator.
Definition: ade9113.c:2356
int ade9113_clear_iso_dig_mod_v2_ovf_int(struct ade9113_dev *dev)
Clear the ISO_DIG_MOD_V2_OVF int mask.
Definition: ade9113.c:2259
int ade9113_set_emi_lo_mask(struct ade9113_dev *dev, uint8_t msk)
Set EMI LO mask.
Definition: ade9113.c:1243
int32_t * i_wav
Definition: ade9113.h:356
int ade9113_get_status2x(struct ade9113_dev *dev, uint8_t *status)
Get STATUS2 indicator.
Definition: ade9113.c:1940
@ ADE9113_RANDOM_HOPPING_FREQUENCY
Definition: ade9113.h:266
int ade9113_invert_v2_inputs(struct ade9113_dev *dev)
Invert V2 channel inputs.
Definition: ade9113.c:981
int ade9113_enable_v2_wav_ovrng_int(struct ade9113_dev *dev)
Enable V2_WAV_OVRNG interrupt.
Definition: ade9113.c:1484
int ade9113_disable_iso_dig_mod_v2_ovf_int(struct ade9113_dev *dev)
Disable ISO_DIG_MOD_V2_OVF interrupt.
Definition: ade9113.c:1694
ADE9113 Device initialization parameters.
Definition: ade9113.h:328
int ade9113_set_lpf_bw_3_3(struct ade9113_dev *dev)
Set filter bandwidth to 3.3 kHz at 8ksps output data rate.
Definition: ade9113.c:1081
int ade9113_clear_adc_sync_done_int(struct ade9113_dev *dev)
Clear the ADC_SYNC_DONE int mask.
Definition: ade9113.c:2163
#define ENABLE
Definition: ad77681.h:339
int ade9113_enable_spi_crc_err_int(struct ade9113_dev *dev)
Enable SPI_CRC_ERR interrupt.
Definition: ade9113.c:1428
NO_OS_DECLARE_CRC16_TABLE(ade9113_crc16)
int ade9113_get_emi_mid_limit(struct ade9113_dev *dev, uint8_t *limit)
Get EMI MID limit.
Definition: ade9113.c:1271
Definition: ad9361_util.h:69
int ade9113_init(struct ade9113_dev **device, struct ade9113_init_param init_param)
Initialize the device.
Definition: ade9113.c:395
int ade9113_disable_com_up_int(struct ade9113_dev *dev)
Disable COM_UP interrupt.
Definition: ade9113.c:1386
int ade9113_clear_iso_phy_crc_err_int(struct ade9113_dev *dev)
Clear the ISO_PHY_CRC_ERR int mask.
Definition: ade9113.c:2211
#define ADE9113_ISO_WR_ACC_EN_MSK
Definition: ade9113.h:131
int ade9113_select_zero_crossing_channel(struct ade9113_dev *dev, enum ade9113_zx_channel_cfg_e cfg)
Select zero crossing channel.
Definition: ade9113.c:1812
@ NO_OS_GPIO_HIGH
Definition: no_os_gpio.h:117
@ ADE9113_V1_WAV
Definition: ade9113.h:318
int ade9113_disable_crc_chg_int(struct ade9113_dev *dev)
Disable CRC_CHG interrupt.
Definition: ade9113.c:1414
int ade9113_disable_v2_wav_ovrng_int(struct ade9113_dev *dev)
Disable V2_WAV_OVRNG interrupt.
Definition: ade9113.c:1498
#define ADE9113_REG_CONFIG0
Definition: ade9113.h:68
#define ADE9113_CRC16_POLY
Definition: ade9113.h:59
#define ADE9113_V1_ADC_INVERT_MSK
Definition: ade9113.h:125
struct no_os_gpio_desc * gpio_rdy
Definition: ade9113.h:362
uint8_t crc_en
Definition: ade9113.h:354
int ade9113_get_silicon_revision(struct ade9113_dev *dev, uint8_t *silicon_rev)
Get SILICON_REVISION value.
Definition: ade9113.c:2423
int ade9113_enable_iso_dig_mod_v2_ovf_int(struct ade9113_dev *dev)
Enable ISO_DIG_MOD_V2_OVF interrupt.
Definition: ade9113.c:1680
int ade9113_get_crc_en_state(struct ade9113_dev *dev, uint8_t *crc_en_state)
Get CRC enable on SPI write setting.
Definition: ade9113.c:807
NO_OS_DECLARE_CRC8_TABLE(ade9113_crc8)
int ade9113_disable_iso_clk_stbl_err_int(struct ade9113_dev *dev)
Disable ISO_CLK_STBL_ERR interrupt.
Definition: ade9113.c:1610
int ade9113_clear_iso_test_mmr_err_int(struct ade9113_dev *dev)
Clear the ISO_TEST_MMR_ERR int mask.
Definition: ade9113.c:2331
int ade9113_enable_i_wav_ovrng_int(struct ade9113_dev *dev)
Enable I_WAV_OVRNG interrupt.
Definition: ade9113.c:1540
int ade9113_set_lpf_bw_3_3(struct ade9113_dev *dev)
Set filter bandwidth to 3.3 kHz at 8ksps output data rate.
Definition: ade9113.c:1081
void * no_os_calloc(size_t nitems, size_t size)
Allocate memory and return a pointer to it, set memory to 0.
Definition: chibios_alloc.c:54
@ ADE9113_STREAM_STATIC_MODE
Definition: ade9113.h:224
int ade9113_get_crc_done_flag(struct ade9113_dev *dev, uint8_t *status)
Get CRC_DONE indicator.
Definition: ade9113.c:2382
int ade9113_read_scratchpad(struct ade9113_dev *dev, uint8_t *val)
Get the value stired in the scratchpad register.
Definition: ade9113.c:904
int32_t no_os_gpio_direction_input(struct no_os_gpio_desc *desc)
Enable the input direction of the specified GPIO.
Definition: no_os_gpio.c:124
int ade9113_disable_com_up_int(struct ade9113_dev *dev)
Disable COM_UP interrupt.
Definition: ade9113.c:1386
int ade9113_disable_v1_wav_ovrng_int(struct ade9113_dev *dev)
Disable V1_WAV_OVRNG interrupt.
Definition: ade9113.c:1526
@ ADE9113_ZX_V1_SEL
Definition: ade9113.h:294
int ade9113_enable_iso_clk_stbl_err_int(struct ade9113_dev *dev)
Enable ISO_CLK_STBL_ERR interrupt.
Definition: ade9113.c:1596
@ NO_OS_IRQ_EDGE_FALLING
Definition: no_os_irq.h:79
#define ADE9113_REG_SILICON_REVISION
Definition: ade9113.h:112
int ade9113_write(struct ade9113_dev *dev, uint8_t reg_addr, uint8_t reg_data, enum ade9113_operation_e op_mode)
Write device register.
Definition: ade9113.c:281
int ade9113_set_static_mode(struct ade9113_dev *dev)
Set static mode of operation.
Definition: ade9113.c:940
int ade9113_invert_v2_inputs_disable(struct ade9113_dev *dev)
Disable invert V2 channel inputs.
Definition: ade9113.c:1023
int ade9113_efuse_refresh(struct ade9113_dev *dev)
Refresh EFuse Memory.
Definition: ade9113.c:1170
int ade9113_get_silicon_revision(struct ade9113_dev *dev, uint8_t *silicon_rev)
Get SILICON_REVISION value.
Definition: ade9113.c:2423
int ade9113_invert_i_inputs(struct ade9113_dev *dev)
Invert I channel inputs.
Definition: ade9113.c:1009
int ade9113_enable_iso_efuse_mem_err_int(struct ade9113_dev *dev)
Enable ISO_EFUSE_MEM_ERR interrupt.
Definition: ade9113.c:1652
struct no_os_irq_ctrl_desc * irq_ctrl
Definition: ade9113.h:336
@ ADE9113_S_OP
Definition: ade9113.h:307
int ade9113_set_stream_dbg_mode(struct ade9113_dev *dev, enum ade9113_stream_debug_e stream_dbg)
Set STREAM_DBG mode.
Definition: ade9113.c:791
int ade9113_clear_reset_done_int(struct ade9113_dev *dev)
Clear the RESET_DONE int mask.
Definition: ade9113.c:2024
int ade9113_disable_adc_sync_done_int(struct ade9113_dev *dev)
Disable ADC_SYNC_DONE interrupt.
Definition: ade9113.c:1582
int ade9113_get_iso_dig_mod_v1_ovf(struct ade9113_dev *dev, uint8_t *status)
Get ISO_DIG_MOD_V1_OVF indicator.
Definition: ade9113.c:2271
int ade9113_hw_reset(struct ade9113_dev *dev)
Reset the device using SW reset.
Definition: ade9113.c:681
int ade9113_get_reset_done(struct ade9113_dev *dev, uint8_t *status)
Get RESET_DONE indicator.
Definition: ade9113.c:1952
int ade9113_invert_i_inputs_disable(struct ade9113_dev *dev)
Disable invert I channel inputs.
Definition: ade9113.c:1053
int ade9113_get_crc_done_flag(struct ade9113_dev *dev, uint8_t *status)
Get CRC_DONE indicator.
Definition: ade9113.c:2382
int ade9113_enable_v1_wav_ovrng_int(struct ade9113_dev *dev)
Enable V1_WAV_OVRNG interrupt.
Definition: ade9113.c:1512
@ NO_OS_GPIO_LOW
Definition: no_os_gpio.h:115
int ade9113_enable_iso_clk_stbl_err_int(struct ade9113_dev *dev)
Enable ISO_CLK_STBL_ERR interrupt.
Definition: ade9113.c:1596
@ ADE9113_SINC3_COMP_EN_LPF_EN_8_KHZ_SAMPLING
Definition: ade9113.h:245
int ade9113_disable_comflt_err_int(struct ade9113_dev *dev)
Disable COMFLT_ERR interrupt.
Definition: ade9113.c:1470
struct no_os_spi_desc * spi_desc
Definition: ade9113.h:350
int ade9113_set_lpf_bw_2_7(struct ade9113_dev *dev)
Set filter bandwidth to 2.7 kHz at 8ksps output data rate.
Definition: ade9113.c:1067
int ade9113_clear_iso_dig_mod_v1_ovf_int(struct ade9113_dev *dev)
Clear the ISO_DIG_MOD_V1_OVF int mask.
Definition: ade9113.c:2283
#define ADE9113_ISO_CLK_STBL_ERR_MSK
Definition: ade9113.h:154
int ade9113_set_dsp_config(struct ade9113_dev *dev, enum ade9113_datapath_config_e config)
Set digital signal processing configuration.
Definition: ade9113.c:1096
int ade9113_clear_v1_wav_ovrng_int(struct ade9113_dev *dev)
Clear the V1_WAV_OVRNG int mask.
Definition: ade9113.c:2116
int ade9113_efuse_refresh(struct ade9113_dev *dev)
Refresh EFuse Memory.
Definition: ade9113.c:1170
ade9113_zx_edge_sel_e
ADE9113 Zero Crossing Edge Select.
Definition: ade9113.h:273
#define ADE9113_REG_SCRATCH
Definition: ade9113.h:84
int ade9113_get_iso_ecc_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_ECC_ERR indicator.
Definition: ade9113.c:2369
int ade9113_enable_v2_wav_ovrng_int(struct ade9113_dev *dev)
Enable V2_WAV_OVRNG interrupt.
Definition: ade9113.c:1484
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:126
int ade9113_get_wav(struct ade9113_dev *dev, enum ade9113_wav_e selection, uint32_t *val)
Get wave value.
Definition: ade9113.c:2477
uint32_t no_os_field_prep(uint32_t mask, uint32_t val)
int ade9113_get_i_wav_ovrng(struct ade9113_dev *dev, uint8_t *status)
Get I_WAV_OVRNG indicator.
Definition: ade9113.c:2128
int ade9113_disable_adc_sync_done_int(struct ade9113_dev *dev)
Disable ADC_SYNC_DONE interrupt.
Definition: ade9113.c:1582
int ade9113_adc_prepare_broadcast(struct ade9113_dev *dev)
ADC prepare broadcast.
Definition: ade9113.c:1831
#define ADE9113_UNLOCK_KEY
Definition: ade9113.h:202
int ade9113_enable_spi_crc_err_int(struct ade9113_dev *dev)
Enable SPI_CRC_ERR interrupt.
Definition: ade9113.c:1428
int32_t no_os_irq_set_priority(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, uint32_t priority_level)
Set the priority for an interrupt.
Definition: no_os_irq.c:216
int ade9113_invert_i_inputs_disable(struct ade9113_dev *dev)
Disable invert I channel inputs.
Definition: ade9113.c:1053
int ade9113_enable_v1_wav_ovrng_int(struct ade9113_dev *dev)
Enable V1_WAV_OVRNG interrupt.
Definition: ade9113.c:1512
int ade9113_clear_iso_phy_crc_err_int(struct ade9113_dev *dev)
Clear the ISO_PHY_CRC_ERR int mask.
Definition: ade9113.c:2211
int ade9113_select_zero_crossing_channel(struct ade9113_dev *dev, enum ade9113_zx_channel_cfg_e cfg)
Select zero crossing channel.
Definition: ade9113.c:1812
int ade9113_disable_iso_phy_crc_err_int(struct ade9113_dev *dev)
Disable ISO_PHY_CRC_ERR interrupt.
Definition: ade9113.c:1638
@ ADE9113_L_OP
Definition: ade9113.h:305
int ade9113_read(struct ade9113_dev *dev, uint8_t reg_addr, uint8_t *reg_data, enum ade9113_operation_e op_mode)
Read device register.
Definition: ade9113.c:63
#define ADE9113_REG_STATUS1
Definition: ade9113.h:92
int ade9113_disable_i_wav_ovrng_int(struct ade9113_dev *dev)
Disable I_WAV_OVRNG interrupt.
Definition: ade9113.c:1554
int ade9113_enable_iso_dig_mod_v2_ovf_int(struct ade9113_dev *dev)
Enable ISO_DIG_MOD_V2_OVF interrupt.
Definition: ade9113.c:1680
int ade9113_get_crc_en_state(struct ade9113_dev *dev, uint8_t *crc_en_state)
Get CRC enable on SPI write setting.
Definition: ade9113.c:807
int ade9113_wr_unlock(struct ade9113_dev *dev)
Unlock device.
Definition: ade9113.c:874
#define ADE9113_REG_SWRST
Definition: ade9113.h:67
#define ADE9113_REG_EMI_HI_LIMIT
Definition: ade9113.h:77
int ade9113_get_int_status(struct ade9113_dev *dev, uint8_t addr, uint8_t msk, uint8_t *status)
Get interrupt indicator from STATUS register.
Definition: ade9113.c:1879
ade9113_wav_e
ADE9113 waveorm data.
Definition: ade9113.h:314
#define ADE9113_LOCK_KEY
Definition: ade9113.h:201
@ ADE9113_I_WAV
Definition: ade9113.h:316
int ade9113_enable_wa_dc_offset_mode(struct ade9113_dev *dev)
Enable write access to DC_OFFSET_MODE register.
Definition: ade9113.c:1115
#define ADE9113_V2_WAV_OVRNG_MSK
Definition: ade9113.h:148
#define ADE9113_ZX_CHANNEL_CONFIG_MSK
Definition: ade9113.h:164
int ade9113_sw_reset(struct ade9113_dev *dev)
Reset the device using SW reset.
Definition: ade9113.c:652
uint32_t no_os_get_unaligned_le24(uint8_t *buf)
int ade9113_get_emi_hi_limit(struct ade9113_dev *dev, uint8_t *limit)
Get EMI HI limit.
Definition: ade9113.c:1257
void no_os_crc8_populate_msb(uint8_t *table, const uint8_t polynomial)
int ade9113_disable_iso_test_mmr_err_int(struct ade9113_dev *dev)
Disable ISO_TEST_MMR_ERR interrupt.
Definition: ade9113.c:1778
int ade9113_get_version_product(struct ade9113_dev *dev, uint8_t *ver_product)
Get VERSION_PRODUCT value.
Definition: ade9113.c:2438
int ade9113_select_zero_crossing_edge(struct ade9113_dev *dev, enum ade9113_zx_edge_sel_e sel)
Select zero crossing edge.
Definition: ade9113.c:1793
int ade9113_get_stream_dbg_mode(struct ade9113_dev *dev, enum ade9113_stream_debug_e *stream_dbg)
Get STREAM_DBG mode.
Definition: ade9113.c:754
@ ADE9113_STREAM_NORMAL_MODE
Definition: ade9113.h:222
@ ADE9113_ZX_DETECT_POSITIVE_SLOPE
Definition: ade9113.h:277
int ade9113_clear_v2_wav_ovrng_int(struct ade9113_dev *dev)
Clear the V2_WAV_OVRNG int mask.
Definition: ade9113.c:2092
Header file of CRC-16 computation.
int ade9113_clear_reset_done_int(struct ade9113_dev *dev)
Clear the RESET_DONE int mask.
Definition: ade9113.c:2024
#define ADE9113_ADC_SYNC_DONE_MSK
Definition: ade9113.h:151
@ ADE9113_V2_WAV
Definition: ade9113.h:320
ade9113_emi_config_e
ADE9113 EMI Frequency Hopping Selection.
Definition: ade9113.h:258
#define ADE9113_V1_WAV_OVRNG_MSK
Definition: ade9113.h:149
#define ADE9113_REG_MASK1
Definition: ade9113.h:81
int ade9113_clear_adc_sync_done_int(struct ade9113_dev *dev)
Clear the ADC_SYNC_DONE int mask.
Definition: ade9113.c:2163
int ade9113_get_int_status(struct ade9113_dev *dev, uint8_t addr, uint8_t msk, uint8_t *status)
Get interrupt indicator from STATUS register.
Definition: ade9113.c:1879
int ade9113_get_adc_sync_done(struct ade9113_dev *dev, uint8_t *status)
Get ADC_SYNC_DONE indicator.
Definition: ade9113.c:2151
int ade9113_clear_iso_efuse_mem_err_int(struct ade9113_dev *dev)
Clear the ISO_EFUSE_MEM_ERR int mask.
Definition: ade9113.c:2235
int ade9113_get_emi_hi_limit(struct ade9113_dev *dev, uint8_t *limit)
Get EMI HI limit.
Definition: ade9113.c:1257
int ade9113_disable_iso_dig_mod_v1_ovf_int(struct ade9113_dev *dev)
Disable ISO_DIG_MOD_V1_OVF interrupt.
Definition: ade9113.c:1722
#define ADE9113_REG_STATUS2
Definition: ade9113.h:93
#define ADE9113_V2_ADC_INVERT_MSK
Definition: ade9113.h:124
int ade9113_get_iso_dig_mod_v2_ovf(struct ade9113_dev *dev, uint8_t *status)
Get ISO_DIG_MOD_V2_OVF indicator.
Definition: ade9113.c:2247
int ade9113_set_lpf_bw_2_7(struct ade9113_dev *dev)
Set filter bandwidth to 2.7 kHz at 8ksps output data rate.
Definition: ade9113.c:1067
#define DISABLE
Definition: ad77681.h:340
int32_t no_os_irq_unregister_callback(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, struct no_os_callback_desc *callback_desc)
Unregisters a generic IRQ handling function.
Definition: no_os_irq.c:112
int ade9113_disable_v2_wav_ovrng_int(struct ade9113_dev *dev)
Disable V2_WAV_OVRNG interrupt.
Definition: ade9113.c:1498
int ade9113_clear_iso_dig_mod_v1_ovf_int(struct ade9113_dev *dev)
Clear the ISO_DIG_MOD_V1_OVF int mask.
Definition: ade9113.c:2283
#define ADE9113_PREP_BROADCAST_MSK
Definition: ade9113.h:167
#define ADE9113_ISO_PHY_ERR_MSK
Definition: ade9113.h:189
#define ADE9113_ISO_DIG_MOD_V1_OVF_MSK
Definition: ade9113.h:158
int ade9113_clear_v2_wav_ovrng_int(struct ade9113_dev *dev)
Clear the V2_WAV_OVRNG int mask.
Definition: ade9113.c:2092
int ade9113_get_wav(struct ade9113_dev *dev, enum ade9113_wav_e selection, uint32_t *val)
Get wave value.
Definition: ade9113.c:2477
Header file of ADE9113 Driver.
int ade9113_enable_i_wav_ovrng_int(struct ade9113_dev *dev)
Enable I_WAV_OVRNG interrupt.
Definition: ade9113.c:1540
int ade9113_get_crc(struct ade9113_dev *dev, uint16_t *crc)
Get register map CRC.
Definition: ade9113.c:1145
#define ADE9113_STATUS2X_MSK
Definition: ade9113.h:141
int ade9113_write(struct ade9113_dev *dev, uint8_t reg_addr, uint8_t reg_data, enum ade9113_operation_e op_mode)
Write device register.
Definition: ade9113.c:281
int ade9113_control_interrupt(struct ade9113_dev *dev, uint8_t reg_addr, uint8_t int_msk, uint8_t en)
Enable/disable interrupt.
Definition: ade9113.c:1301
int ade9113_get_emi_hi_mask(struct ade9113_dev *dev, uint8_t *msk)
Get EMI HI mask.
Definition: ade9113.c:1201
int ade9113_get_iso_dig_mod_v2_ovf(struct ade9113_dev *dev, uint8_t *status)
Get ISO_DIG_MOD_V2_OVF indicator.
Definition: ade9113.c:2247
#define ADE9113_DATAPATH_CONFIG_MSK
Definition: ade9113.h:128
#define ADE9113_ZX_EDGE_SEL_MSK
Definition: ade9113.h:163
int ade9113_write_dc(struct ade9113_dev *dev, uint8_t reg_addr, uint8_t *reg_data)
Write device register in a daisy-chain setup.
Definition: ade9113.c:306
int ade9113_drdy_int_enable(struct ade9113_dev *dev)
DRDY inerrupt enable.
Definition: ade9113.c:2523
int ade9113_wr_unlock(struct ade9113_dev *dev)
Unlock device.
Definition: ade9113.c:874
int ade9113_get_v1_wav_ovrng(struct ade9113_dev *dev, uint8_t *status)
Get V1_WAV_OVRNG indicator.
Definition: ade9113.c:2104
int ade9113_remove(struct ade9113_dev *dev)
Remove the device and release resources.
Definition: ade9113.c:621
#define ADE9113_ISO_EFUSE_MEM_ERR_MSK
Definition: ade9113.h:156
#define ADE9113_REG_CRC_RESULT_HI
Definition: ade9113.h:71
int32_t no_os_gpio_remove(struct no_os_gpio_desc *desc)
Free the resources allocated by no_os_gpio_get().
Definition: no_os_gpio.c:104
int ade9113_get_reset_done(struct ade9113_dev *dev, uint8_t *status)
Get RESET_DONE indicator.
Definition: ade9113.c:1952
#define ADE9113_EMI_CONFIG_MSK
Definition: ade9113.h:137
Structure holding SPI descriptor.
Definition: no_os_spi.h:192
int ade9113_set_data_increments_mode(struct ade9113_dev *dev)
Set data increments mode of operation.
Definition: ade9113.c:953
#define ADE9113_I_ADC_INVERT_MSK
Definition: ade9113.h:126
int ade9113_get_crc(struct ade9113_dev *dev, uint16_t *crc)
Get register map CRC.
Definition: ade9113.c:1145
#define ADE9113_REG_WR_LOCK
Definition: ade9113.h:90
@ ADE9113_STREAM_INCREMENTS_MODE
Definition: ade9113.h:226
int ade9113_adc_align(struct ade9113_dev *dev)
ADC align.
Definition: ade9113.c:1846
int ade9113_enable_iso_test_mmr_err_int(struct ade9113_dev *dev)
Enable ISO_TEST_MMR_ERR interrupt.
Definition: ade9113.c:1764
int ade9113_enable_iso_phy_crc_err_int(struct ade9113_dev *dev)
Enable ISO_PHY_CRC_ERR interrupt.
Definition: ade9113.c:1624
int ade9113_set_crc_en_state(struct ade9113_dev *dev, uint8_t crc_en_state)
Set CRC enable on SPI write setting.
Definition: ade9113.c:836
struct no_os_irq_ctrl_desc * irq_ctrl
Definition: ade9113.h:366
int ade9113_clear_com_up_int(struct ade9113_dev *dev)
Clear the COM_UP int mask.
Definition: ade9113.c:2035
#define ADE9113_REG_MASK2
Definition: ade9113.h:82
int ade9113_remove(struct ade9113_dev *dev)
Remove the device and release resources.
Definition: ade9113.c:621
void(* callback)(void *context)
Definition: no_os_irq.h:144
#define ADE9113_LPF_BW_MSK
Definition: ade9113.h:127
Structure holding the GPIO descriptor.
Definition: no_os_gpio.h:96
int ade9113_get_com_up(struct ade9113_dev *dev, uint8_t *status)
Get COM_UP indicator.
Definition: ade9113.c:1964
int ade9113_enable_com_up_int(struct ade9113_dev *dev)
Enable COM_UP interrupt.
Definition: ade9113.c:1372
@ ADE9113_SINC3_LPF_EN_8_KHZ_SAMPLING
Definition: ade9113.h:243
int ade9113_get_iso_status_rd_ecc_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_STATUS_RD_ECC_ERR indicator.
Definition: ade9113.c:2343
int ade9113_adc_align(struct ade9113_dev *dev)
ADC align.
Definition: ade9113.c:1846
#define ADE9113_REG_EMI_LO_MASK
Definition: ade9113.h:76
int ade9113_invert_v1_inputs_disable(struct ade9113_dev *dev)
Disable invert V1 channel inputs.
Definition: ade9113.c:1038
int32_t * v1_wav
Definition: ade9113.h:358
int ade9113_get_iso_clk_stbl_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_CLK_STBL_ERR indicator.
Definition: ade9113.c:2175
int ade9113_get_emi_lo_limit(struct ade9113_dev *dev, uint8_t *limit)
Get EMI LO limit.
Definition: ade9113.c:1285
int ade9113_enable_comflt_err_int(struct ade9113_dev *dev)
Enable COMFLT_ERR interrupt.
Definition: ade9113.c:1456
int ade9113_sw_reset(struct ade9113_dev *dev)
Reset the device using SW reset.
Definition: ade9113.c:652
int ade9113_enable_com_up_int(struct ade9113_dev *dev)
Enable COM_UP interrupt.
Definition: ade9113.c:1372
int ade9113_init(struct ade9113_dev **device, struct ade9113_init_param init_param)
Initialize the device.
Definition: ade9113.c:395
#define ADE9113_COMFLT_ERR_MSK
Definition: ade9113.h:145
int ade9113_clear_comflt_err_int(struct ade9113_dev *dev)
Clear the COMFLT_ERR int mask.
Definition: ade9113.c:2068
#define ADE9113_3_CHANNEL_ADE9113
Definition: ade9113.h:205
int ade9113_set_emi_hi_mask(struct ade9113_dev *dev, uint8_t msk)
Set EMI HI mask.
Definition: ade9113.c:1229
@ ADE9113_RAMP
Definition: ade9113.h:264
int ade9113_enable_crc_chg_int(struct ade9113_dev *dev)
Enable CRC_CHG interrupt.
Definition: ade9113.c:1400
int ade9113_write_dc(struct ade9113_dev *dev, uint8_t reg_addr, uint8_t *reg_data)
Write device register in a daisy-chain setup.
Definition: ade9113.c:306
int ade9113_disable_crc_chg_int(struct ade9113_dev *dev)
Disable CRC_CHG interrupt.
Definition: ade9113.c:1414
int ade9113_drdy_int_enable(struct ade9113_dev *dev)
DRDY inerrupt enable.
Definition: ade9113.c:2523
int ade9113_disable_iso_dig_mod_i_ovf_int(struct ade9113_dev *dev)
Disable ISO_DIG_MOD_I_OVF interrupt.
Definition: ade9113.c:1750
#define ADE9113_CRC_EN_SPI_WRITE_MSK
Definition: ade9113.h:120
int ade9113_clear_spi_crc_err_int(struct ade9113_dev *dev)
Clear the SPI_CRC_ERR int mask.
Definition: ade9113.c:2057
int ade9113_get_v1_wav_ovrng(struct ade9113_dev *dev, uint8_t *status)
Get V1_WAV_OVRNG indicator.
Definition: ade9113.c:2104
int ade9113_get_iso_test_mmr_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_TEST_MMR_ERR indicator.
Definition: ade9113.c:2319
#define ADE9113_ALIGN_MSK
Definition: ade9113.h:168
int ade9113_get_iso_clk_stbl_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_CLK_STBL_ERR indicator.
Definition: ade9113.c:2175
int ade9113_clear_iso_test_mmr_err_int(struct ade9113_dev *dev)
Clear the ISO_TEST_MMR_ERR int mask.
Definition: ade9113.c:2331
#define ADE9113_SPI_CRC_ERR_MSK
Definition: ade9113.h:144
int ade9113_get_emi_lo_limit(struct ade9113_dev *dev, uint8_t *limit)
Get EMI LO limit.
Definition: ade9113.c:1285
int ade9113_write_scratchpad(struct ade9113_dev *dev, uint8_t val)
Write value in the scratchpad register.
Definition: ade9113.c:889
int ade9113_disable_wa_dc_offset_mode(struct ade9113_dev *dev)
Disable write access to DC_OFFSET_MODE register.
Definition: ade9113.c:1129
int ade9113_clear_iso_efuse_mem_err_int(struct ade9113_dev *dev)
Clear the ISO_EFUSE_MEM_ERR int mask.
Definition: ade9113.c:2235
uint8_t no_os_crc8(const uint8_t *table, const uint8_t *pdata, size_t nbytes, uint8_t crc)
#define ADE9113_REG_CONFIG_CRC
Definition: ade9113.h:96
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:69
uint16_t no_os_crc16(const uint16_t *table, const uint8_t *pdata, size_t nbytes, uint16_t crc)
ade9113_operation_e
ADE9113 long/short operation mode.
Definition: ade9113.h:303
int ade9113_clear_comflt_err_int(struct ade9113_dev *dev)
Clear the COMFLT_ERR int mask.
Definition: ade9113.c:2068
int ade9113_disable_iso_dig_mod_v1_ovf_int(struct ade9113_dev *dev)
Disable ISO_DIG_MOD_V1_OVF interrupt.
Definition: ade9113.c:1722
@ ADE9113_SINC3_COMP_EN_LPF_EN_32_KHZ_SAMPLING
Definition: ade9113.h:241
int ade9113_set_crc_en_state(struct ade9113_dev *dev, uint8_t crc_en_state)
Set CRC enable on SPI write setting.
Definition: ade9113.c:836
uint16_t no_os_get_unaligned_le16(uint8_t *buf)
int ade9113_clear_com_up_int(struct ade9113_dev *dev)
Clear the COM_UP int mask.
Definition: ade9113.c:2035
int ade9113_read_dc(struct ade9113_dev *dev, uint8_t reg_addr, uint8_t *reg_data)
Read device register in a daisy-chain setup.
Definition: ade9113.c:166
int ade9113_set_static_mode(struct ade9113_dev *dev)
Set static mode of operation.
Definition: ade9113.c:940
#define ADE9113_COM_UP_MSK
Definition: ade9113.h:142
int ade9113_get_emi_lo_mask(struct ade9113_dev *dev, uint8_t *msk)
Get EMI LO mask.
Definition: ade9113.c:1215
int ade9113_get_iso_test_mmr_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_TEST_MMR_ERR indicator.
Definition: ade9113.c:2319
int ade9113_clear_iso_clk_stbl_err_int(struct ade9113_dev *dev)
Clear the ISO_CLK_STBL_ERR int mask.
Definition: ade9113.c:2187
int ade9113_adc_snapshot(struct ade9113_dev *dev)
ADC snapshot.
Definition: ade9113.c:1861
int ade9113_get_iso_dig_mod_i_ovf(struct ade9113_dev *dev, uint8_t *status)
Get ISO_DIG_MOD_I_OVF indicator.
Definition: ade9113.c:2295
#define ADE9113_2_CHANNEL_ADE9112
Definition: ade9113.h:206
int ade9113_hw_reset(struct ade9113_dev *dev)
Reset the device using SW reset.
Definition: ade9113.c:681
int ade9113_get_status1x(struct ade9113_dev *dev, uint8_t *status)
Get STATUS1 indicator.
Definition: ade9113.c:1928
#define ADE9113_OP_MODE_LONG
Definition: ade9113.h:55
int ade9113_get_iso_status_rd_ecc_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_STATUS_RD_ECC_ERR indicator.
Definition: ade9113.c:2343
int ade9113_enable_iso_dig_mod_i_ovf_int(struct ade9113_dev *dev)
Enable ISO_DIG_MOD_I_OVF interrupt.
Definition: ade9113.c:1736
int ade9113_control_interrupt(struct ade9113_dev *dev, uint8_t reg_addr, uint8_t int_msk, uint8_t en)
Enable/disable interrupt.
Definition: ade9113.c:1301
int ade9113_clear_i_wav_ovrng_int(struct ade9113_dev *dev)
Clear the I_WAV_OVRNG int mask.
Definition: ade9113.c:2139
int ade9113_disable_status1x_int(struct ade9113_dev *dev)
Disable STATUS1X interrupt.
Definition: ade9113.c:1330
#define ADE9113_REG_I_WAV_LO
Definition: ade9113.h:99
int ade9113_disable_comflt_err_int(struct ade9113_dev *dev)
Disable COMFLT_ERR interrupt.
Definition: ade9113.c:1470
int ade9113_invert_v1_inputs_disable(struct ade9113_dev *dev)
Disable invert V1 channel inputs.
Definition: ade9113.c:1038
#define ADE9113_CRC8_POLY
Definition: ade9113.h:58
int32_t no_os_gpio_set_value(struct no_os_gpio_desc *desc, uint8_t value)
Set the value of the specified GPIO.
Definition: no_os_gpio.c:197
#define ADE9113_REG_CONFIG_ZX
Definition: ade9113.h:83
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:113
@ NO_OS_EVT_GPIO
Definition: no_os_irq.h:62
#define ADE9113_REG_MASK0
Definition: ade9113.h:80
int ade9113_disable_spi_crc_err_int(struct ade9113_dev *dev)
Disable SPI_CRC_ERR interrupt.
Definition: ade9113.c:1442
int ade9113_enable_iso_test_mmr_err_int(struct ade9113_dev *dev)
Enable ISO_TEST_MMR_ERR interrupt.
Definition: ade9113.c:1764
int ade9113_clear_i_wav_ovrng_int(struct ade9113_dev *dev)
Clear the I_WAV_OVRNG int mask.
Definition: ade9113.c:2139
#define ADE9113_ISO_DIG_MOD_V2_OVF_MSK
Definition: ade9113.h:157
int ade9113_disable_status1x_int(struct ade9113_dev *dev)
Disable STATUS1X interrupt.
Definition: ade9113.c:1330
#define ADE9113_REG_VERSION_PRODUCT
Definition: ade9113.h:113
#define ADE9113_REG_CONFIG_ISO_ACC
Definition: ade9113.h:70
int ade9113_invert_v1_inputs(struct ade9113_dev *dev)
Invert V1 channel inputs.
Definition: ade9113.c:995
int ade9113_clear_crc_chg_int(struct ade9113_dev *dev)
Clear the CRC_CHG int mask.
Definition: ade9113.c:2046
@ ADE9113_ZX_DETECT_BOTH_SLOPES
Definition: ade9113.h:281
int ade9113_disable_iso_dig_mod_v2_ovf_int(struct ade9113_dev *dev)
Disable ISO_DIG_MOD_V2_OVF interrupt.
Definition: ade9113.c:1694
#define ADE9113_ISO_STATUS_RD_ECC_ERR_MSK
Definition: ade9113.h:188
int ade9113_disable_iso_efuse_mem_err_int(struct ade9113_dev *dev)
Disable ISO_EFUSE_MEM_ERR interrupt.
Definition: ade9113.c:1666
#define ADE9113_EFUSE_REFRESH_MSK
Definition: ade9113.h:134
int ade9113_get_iso_phy_crc_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_PHY_CRC_ERR indicator.
Definition: ade9113.c:2199
int ade9113_disable_spi_crc_err_int(struct ade9113_dev *dev)
Disable SPI_CRC_ERR interrupt.
Definition: ade9113.c:1442
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition: no_os_spi.c:116
#define ADE9113_REG_CONFIG_FILT
Definition: ade9113.h:69
#define ADE9113_ISO_TEST_MMR_ERR_MSK
Definition: ade9113.h:160
int32_t no_os_irq_enable(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Enable specific interrupt.
Definition: no_os_irq.c:181
int ade9113_disable_wa_dc_offset_mode(struct ade9113_dev *dev)
Disable write access to DC_OFFSET_MODE register.
Definition: ade9113.c:1129
Header file of GPIO Interface.
#define ADE9113_REG_EMI_LO_LIMIT
Definition: ade9113.h:79
int ade9113_read_dc(struct ade9113_dev *dev, uint8_t reg_addr, uint8_t *reg_data)
Read device register in a daisy-chain setup.
Definition: ade9113.c:166
int ade9113_get_version_product(struct ade9113_dev *dev, uint8_t *ver_product)
Get VERSION_PRODUCT value.
Definition: ade9113.c:2438
@ NO_OS_GPIO_IRQ
Definition: no_os_irq.h:85
int ade9113_get_stream_dbg_mode(struct ade9113_dev *dev, enum ade9113_stream_debug_e *stream_dbg)
Get STREAM_DBG mode.
Definition: ade9113.c:754
@ ADE9113_SINC3_LPF_EN_1_KHZ_SAMPLING
Definition: ade9113.h:251
ade9113_zx_channel_cfg_e
ADE9113 Zero Crossing Channel Select.
Definition: ade9113.h:288
int ade9113_enable_status1x_int(struct ade9113_dev *dev)
Enable STATUS1X interrupt.
Definition: ade9113.c:1316
int ade9113_clear_crc_chg_int(struct ade9113_dev *dev)
Clear the CRC_CHG int mask.
Definition: ade9113.c:2046
#define ADE9113_CRC_FORCE_MSK
Definition: ade9113.h:194
int ade9113_clear_iso_clk_stbl_err_int(struct ade9113_dev *dev)
Clear the ISO_CLK_STBL_ERR int mask.
Definition: ade9113.c:2187
int32_t * v2_wav
Definition: ade9113.h:360
#define ADE9113_SPI_READ
Definition: ade9113.h:52
int ade9113_adc_snapshot(struct ade9113_dev *dev)
ADC snapshot.
Definition: ade9113.c:1861
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition: no_os_spi.c:52
int ade9113_get_status1x(struct ade9113_dev *dev, uint8_t *status)
Get STATUS1 indicator.
Definition: ade9113.c:1928
int ade9113_get_comflt_err(struct ade9113_dev *dev, uint8_t *status)
Get COMFLT_ERR indicator.
Definition: ade9113.c:2013
void no_os_crc16_populate_msb(uint16_t *table, const uint16_t polynomial)
int ade9113_wr_lock(struct ade9113_dev *dev)
Lock device.
Definition: ade9113.c:861
int ade9113_read_scratchpad(struct ade9113_dev *dev, uint8_t *val)
Get the value stired in the scratchpad register.
Definition: ade9113.c:904
int ade9113_force_crc_recalculation(struct ade9113_dev *dev)
Force background register map CRC recalculation.
Definition: ade9113.c:2408
int ade9113_get_spi_crc_err(struct ade9113_dev *dev, uint8_t *status)
Get SPI_CRC_ERR indicator.
Definition: ade9113.c:2001
int ade9113_drdy_int_disable(struct ade9113_dev *dev)
DRDY inerrupt disable.
Definition: ade9113.c:2533
int ade9113_set_emi_hi_mask(struct ade9113_dev *dev, uint8_t msk)
Set EMI HI mask.
Definition: ade9113.c:1229
Header file of utility functions.
uint32_t no_os_find_first_set_bit(uint32_t word)
int ade9113_invert_v2_inputs_disable(struct ade9113_dev *dev)
Disable invert V2 channel inputs.
Definition: ade9113.c:1023
#define ADE9113_REG_EMI_MID_LIMIT
Definition: ade9113.h:78
int ade9113_enable_status2x_int(struct ade9113_dev *dev)
Enable STATUS2X interrupt.
Definition: ade9113.c:1344
int ade9113_disable_iso_dig_mod_i_ovf_int(struct ade9113_dev *dev)
Disable ISO_DIG_MOD_I_OVF interrupt.
Definition: ade9113.c:1750
int ade9113_set_emi_config(struct ade9113_dev *dev, enum ade9113_emi_config_e config)
Select EMI frequency hopping.
Definition: ade9113.c:1185
int32_t no_os_sign_extend32(uint32_t value, int index)
@ ADE9113_SINC3_LPF_EN_2_KHZ_SAMPLING
Definition: ade9113.h:249
int32_t no_os_irq_trigger_level_set(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id, enum no_os_irq_trig_level trig)
Set interrupt trigger level.
Definition: no_os_irq.c:162
ADE9113 Device structure.
Definition: ade9113.h:348
int32_t no_os_irq_disable(struct no_os_irq_ctrl_desc *desc, uint32_t irq_id)
Disable specific interrupt.
Definition: no_os_irq.c:198
struct no_os_callback_desc irq_cb
Definition: ade9113.h:368
int ade9113_get_err_count(struct ade9113_dev *dev, uint8_t *err_count)
Get ECC or PHY Error Count on ISO to NONISO Communications.
Definition: ade9113.c:967
int ade9113_write_scratchpad(struct ade9113_dev *dev, uint8_t val)
Write value in the scratchpad register.
Definition: ade9113.c:889
int ade9113_get_efuse_mem_err(struct ade9113_dev *dev, uint8_t *status)
Get EFUSE_MEM_ERR indicator.
Definition: ade9113.c:1988
int ade9113_get_crc_chg(struct ade9113_dev *dev, uint8_t *status)
Get CRC_CHG indicator.
Definition: ade9113.c:1976
#define ADE9113_NONISOLATED_ADE9103
Definition: ade9113.h:207
int ade9113_get_spi_crc_err(struct ade9113_dev *dev, uint8_t *status)
Get SPI_CRC_ERR indicator.
Definition: ade9113.c:2001
Definition: no_os_irq.h:123
int ade9113_enable_iso_dig_mod_v1_ovf_int(struct ade9113_dev *dev)
Enable ISO_DIG_MOD_V1_OVF interrupt.
Definition: ade9113.c:1708
int32_t no_os_gpio_direction_output(struct no_os_gpio_desc *desc, uint8_t value)
Enable the output direction of the specified GPIO.
Definition: no_os_gpio.c:147
int ade9113_drdy_int_disable(struct ade9113_dev *dev)
DRDY inerrupt disable.
Definition: ade9113.c:2533
struct no_os_gpio_init_param * gpio_rdy
Definition: ade9113.h:332
int32_t number
Definition: no_os_gpio.h:100
@ ADE9113_SAWTOOTH_FREQUENCY_FALLING
Definition: ade9113.h:262
#define ADE9113_REG_EMI_HI_MASK
Definition: ade9113.h:75
int no_os_test_bit(int pos, const volatile void *addr)
Definition: no_os_util.h:132
int ade9113_get_iso_ecc_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_ECC_ERR indicator.
Definition: ade9113.c:2369
int ade9113_get_iso_phy_crc_err(struct ade9113_dev *dev, uint8_t *status)
Get ISO_PHY_CRC_ERR indicator.
Definition: ade9113.c:2199
#define ADE9113_RESET_DONE_MSK
Definition: ade9113.h:184
Header file of CRC-8 computation.
int ade9113_get_i_wav_ovrng(struct ade9113_dev *dev, uint8_t *status)
Get I_WAV_OVRNG indicator.
Definition: ade9113.c:2128
int ade9113_get_iso_dig_mod_i_ovf(struct ade9113_dev *dev, uint8_t *status)
Get ISO_DIG_MOD_I_OVF indicator.
Definition: ade9113.c:2295
#define ADE9113_ISO_PHY_CRC_ERR_MSK
Definition: ade9113.h:155
Error macro definition for ARM Compiler.
#define ADE9113_EFUSE_MEM_ERR_MSK
Definition: ade9113.h:185
int ade9113_enable_iso_dig_mod_i_ovf_int(struct ade9113_dev *dev)
Enable ISO_DIG_MOD_I_OVF interrupt.
Definition: ade9113.c:1736
int ade9113_convert_to_millivolts(struct ade9113_dev *dev, uint8_t dev_no, enum ade9113_wav_e ch, int32_t *mv_val)
Convert a 24-bit raw sample to millivolts.
Definition: ade9113.c:719
int ade9113_disable_iso_phy_crc_err_int(struct ade9113_dev *dev)
Disable ISO_PHY_CRC_ERR interrupt.
Definition: ade9113.c:1638
@ ADE9113_ZX_DISABLE
Definition: ade9113.h:290
int ade9113_get_statusx_val(struct ade9113_dev *dev, uint8_t addr, uint8_t *status)
Get STATUSx register value.
Definition: ade9113.c:1904
int ade9113_clear_crc_done_int(struct ade9113_dev *dev)
Clear the CRC_DONE int mask.
Definition: ade9113.c:2394
struct no_os_spi_init_param * spi_init
Definition: ade9113.h:330
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140
#define ADE9113_REG_STATUS0
Definition: ade9113.h:91
int ade9113_enable_status1x_int(struct ade9113_dev *dev)
Enable STATUS1X interrupt.
Definition: ade9113.c:1316
#define ADE9113_REG_I_WAV_HI
Definition: ade9113.h:97
int32_t no_os_gpio_get_optional(struct no_os_gpio_desc **desc, const struct no_os_gpio_init_param *param)
Get the value of an optional GPIO.
Definition: no_os_gpio.c:75