53#define ADE9153A_SPI_READ NO_OS_BIT(3)
56#define ADE9153A_LOCK_KEY 0x3C64
59#define ADE9153A_UNLOCK_KEY 0x4AD1
62#define ADE9153A_COMPMODEVAL 0x0005
65#define ADE9153A_RUN 0x0001
66#define ADE9153A_STOP 0x0000
69#define ADE9153A_VERSION 0x9153a
72#define ADE9153A_RESET_DEL 0x1F4
75#define ADE9153A_START_16ADDR 0x473
76#define ADE9153A_END_16ADDR 0x600
79#define ADE9153A_CRC16_POLY 0x1021
80#define ADE9153A_CRC16_INIT_VAL 0xFFFF
82#define ADE9153A_NO_BYTES_W_16 0x0004
83#define ADE9153A_NO_BYTES_W_32 0x0006
84#define ADE9153A_NO_BYTES_R_16 0x0006
85#define ADE9153A_NO_BYTES_R_32 0x0008
93#define ADE9153A_REG_AIGAIN 0x000
94#define ADE9153A_REG_APHASECAL 0x001
95#define ADE9153A_REG_AVGAIN 0x002
96#define ADE9153A_REG_AIRMS_OS 0x003
97#define ADE9153A_REG_AVRMS_OS 0x004
98#define ADE9153A_REG_APGAIN 0x005
99#define ADE9153A_REG_AWATT_OS 0x006
100#define ADE9153A_REG_AFVAR_OS 0x007
101#define ADE9153A_REG_AVRMS_OC_OS 0x008
102#define ADE9153A_REG_AIRMS_OC_OS 0x009
103#define ADE9153A_REG_BIGAIN 0x010
104#define ADE9153A_REG_BPHASECAL 0x011
105#define ADE9153A_REG_BIRMS_OS 0x013
106#define ADE9153A_REG_BIRMS_OC_OS 0x019
107#define ADE9153A_REG_CONFIG0 0x020
108#define ADE9153A_REG_VNOM 0x021
109#define ADE9153A_REG_DICOEFF 0x022
110#define ADE9153A_REG_BI_PGAGAIN 0x023
111#define ADE9153A_REG_MS_ACAL_CFG 0x030
112#define ADE9153A_REG_MS_AICC_USER 0x045
113#define ADE9153A_REG_MS_BICC_USER 0x046
114#define ADE9153A_REG_MS_AVCC_USER 0x047
115#define ADE9153A_REG_CT_PHASE_DELAY 0x049
116#define ADE9153A_REG_CT_CORNER 0x04A
117#define ADE9153A_REG_VDIV_RSMALL 0x04C
118#define ADE9153A_REG_AI_WAV 0x200
119#define ADE9153A_REG_AV_WAV 0x201
120#define ADE9153A_REG_AIRMS 0x202
121#define ADE9153A_REG_AVRMS 0x203
122#define ADE9153A_REG_AWATT 0x204
123#define ADE9153A_REG_AVA 0x206
124#define ADE9153A_REG_AFVAR 0x207
125#define ADE9153A_REG_APF 0x208
126#define ADE9153A_REG_AIRMS_OC 0x209
127#define ADE9153A_REG_AVRMS_OC 0x20A
128#define ADE9153A_REG_BI_WAV 0x210
129#define ADE9153A_REG_BIRMS 0x212
130#define ADE9153A_REG_BIRMS_OC 0x219
131#define ADE9153A_REG_MS_ACAL_AICC 0x220
132#define ADE9153A_REG_MS_ACAL_AICERT 0x221
133#define ADE9153A_REG_MS_ACAL_BICC 0x222
134#define ADE9153A_REG_MS_ACAL_BICERT 0x223
135#define ADE9153A_REG_MS_ACAL_AVCC 0x224
136#define ADE9153A_REG_MS_ACAL_AVCERT 0x225
137#define ADE9153A_REG_MS_STATUS_CURRENT 0x240
138#define ADE9153A_REG_VERSION_DSP 0x241
139#define ADE9153A_REG_VERSION_PRODUCT 0x242
140#define ADE9153A_REG_AWATT_ACC 0x39D
141#define ADE9153A_REG_AWATTHR_LO 0x39E
142#define ADE9153A_REG_AWATTHR_HI 0x39F
143#define ADE9153A_REG_AVA_ACC 0x3B1
144#define ADE9153A_REG_AVAHR_LO 0x3B2
145#define ADE9153A_REG_AVAHR_HI 0x3B3
146#define ADE9153A_REG_AFVAR_ACC 0x3BB
147#define ADE9153A_REG_AFVARHR_LO 0x3BC
148#define ADE9153A_REG_AFVARHR_HI 0x3BD
149#define ADE9153A_REG_PWATT_ACC 0x3EB
150#define ADE9153A_REG_NWATT_ACC 0x3EF
151#define ADE9153A_REG_PFVAR_ACC 0x3F3
152#define ADE9153A_REG_NFVAR_ACC 0x3F7
153#define ADE9153A_REG_IPEAK 0x400
154#define ADE9153A_REG_VPEAK 0x401
155#define ADE9153A_REG_STATUS 0x402
156#define ADE9153A_REG_MASK 0x405
157#define ADE9153A_REG_OI_LVL 0x409
158#define ADE9153A_REG_OIA 0x40A
159#define ADE9153A_REG_OIB 0x40B
160#define ADE9153A_REG_USER_PERIOD 0x40E
161#define ADE9153A_REG_VLEVEL 0x40F
162#define ADE9153A_REG_DIP_LVL 0x410
163#define ADE9153A_REG_DIPA 0x411
164#define ADE9153A_REG_SWELL_LVL 0x414
165#define ADE9153A_REG_SWELLA 0x415
166#define ADE9153A_REG_APERIOD 0x418
167#define ADE9153A_REG_ACT_NL_LVL 0x41C
168#define ADE9153A_REG_REACT_NL_LVL 0x41D
169#define ADE9153A_REG_APP_NL_LVL 0x41E
170#define ADE9153A_REG_PHNOLOAD 0x41F
171#define ADE9153A_REG_WTHR 0x420
172#define ADE9153A_REG_VARTHR 0x421
173#define ADE9153A_REG_VATHR 0x422
174#define ADE9153A_REG_LAST_DATA_32 0x423
175#define ADE9153A_REG_CT_PHASE_MEAS 0x424
176#define ADE9153A_REG_CF_LCFG 0x425
177#define ADE9153A_REG_TEMP_TRIM 0x471
178#define ADE9153A_REG_CHIP_ID_HI 0x472
179#define ADE9153A_REG_CHIP_ID_LO 0x473
180#define ADE9153A_REG_RUN 0x480
181#define ADE9153A_REG_CONFIG1 0x481
182#define ADE9153A_REG_ANGL_AV_AI 0x485
183#define ADE9153A_REG_ANGL_AI_BI 0x488
184#define ADE9153A_REG_DIP_CYC 0x48B
185#define ADE9153A_REG_SWELL_CYC 0x48C
186#define ADE9153A_REG_CFMODE 0x490
187#define ADE9153A_REG_COMPMODE 0x491
188#define ADE9153A_REG_ACCMODE 0x492
189#define ADE9153A_REG_CONFIG3 0x493
190#define ADE9153A_REG_CF1DEN 0x494
191#define ADE9153A_REG_CF2DEN 0x495
192#define ADE9153A_REG_ZXTOUT 0x498
193#define ADE9153A_REG_ZXTHRSH 0x499
194#define ADE9153A_REG_ZX_CFG 0x49A
195#define ADE9153A_REG_PHSIGN 0x49D
196#define ADE9153A_REG_CRC_RSLT 0x4A8
197#define ADE9153A_REG_CRC_SPI 0x4A9
198#define ADE9153A_REG_LAST_DATA_16 0x4AC
199#define ADE9153A_REG_LAST_CMD 0x4AE
200#define ADE9153A_REG_CONFIG2 0x4AF
201#define ADE9153A_REG_EP_CFG 0x4B0
202#define ADE9153A_REG_PWR_TIME 0x4B1
203#define ADE9153A_REG_EGY_TIME 0x4B2
204#define ADE9153A_REG_CRC_FORCE 0x4B4
205#define ADE9153A_REG_TEMP_CFG 0x4B6
206#define ADE9153A_REG_TEMP_RSLT 0x4B7
207#define ADE9153A_REG_AI_PGAGAIN 0x4B9
208#define ADE9153A_REG_WR_LOCK 0x4BF
209#define ADE9153A_REG_MS_STATUS_IRQ 0x4C0
210#define ADE9153A_REG_EVENT_STATUS 0x4C1
211#define ADE9153A_REG_CHIP_STATUS 0x4C2
212#define ADE9153A_REG_UART_BAUD_SWITCH 0x4DC
213#define ADE9153A_REG_VERSION 0x4FE
214#define ADE9153A_REG_AI_WAV_1 0x600
215#define ADE9153A_REG_AV_WAV_1 0x601
216#define ADE9153A_REG_BI_WAV_1 0x602
217#define ADE9153A_REG_AIRMS_1 0x604
218#define ADE9153A_REG_BIRMS_1 0x605
219#define ADE9153A_REG_AVRMS_1 0x606
220#define ADE9153A_REG_AWATT_1 0x608
221#define ADE9153A_REG_AFVAR_1 0x60A
222#define ADE9153A_REG_AVA_1 0x60C
223#define ADE9153A_REG_APF_1 0x60E
224#define ADE9153A_REG_ AI_WAV_2 0x610
225#define ADE9153A_REG_AV_WAV_2 0x611
226#define ADE9153A_REG_AIRMS_2 0x612
227#define ADE9153A_REG_AVRMS_2 0x613
228#define ADE9153A_REG_AWATT_2 0x614
229#define ADE9153A_REG_AVA_2 0x615
230#define ADE9153A_REG_AFVAR_2 0x616
231#define ADE9153A_REG_APF_2 0x617
232#define ADE9153A_REG_BI_WAV_2 0x618
233#define ADE9153A_REG_BIRMS_2 0x61A
236#define ADE9153A_DISRPLPF_MSK NO_OS_BIT(8)
237#define ADE9153A_DISAPLPF_MSK NO_OS_BIT(7)
238#define ADE9153A_VNOMA_EN_MSK NO_OS_BIT(5)
239#define ADE9153A_RMS_OC_SRC_MSK NO_OS_BIT(4)
240#define ADE9153A_ZX_SRC_SEL_MSK NO_OS_BIT(3)
241#define ADE9153A_INTEN_BI_MSK NO_OS_BIT(2)
242#define ADE9153A_HPFDIS_MSK NO_OS_BIT(0)
245#define ADE9153A_BI_PGAGAIN_MSK NO_OS_GENMASK(31, 0)
248#define ADE9153A_AUTOCAL_AV_MSK NO_OS_BIT(6)
249#define ADE9153A_AUTOCAL_BI_MSK NO_OS_BIT(5)
250#define ADE9153A_AUTOCAL_AI_MSK NO_OS_BIT(4)
251#define ADE9153A_ACALMODE_BI_MSK NO_OS_BIT(3)
252#define ADE9153A_ACALMODE_AI_MSK NO_OS_BIT(2)
253#define ADE9153A_ACAL_RUN_MSK NO_OS_BIT(1)
254#define ADE9153A_ACAL_MODE_MSK NO_OS_BIT(0)
257#define ADE9153A_MS_SYSRDYP_MSK NO_OS_BIT(0)
260#define ADE9153A_IPPHASE_MSK NO_OS_GENMASK(26, 24)
261#define ADE9153A_IPEAKVAL_MSK NO_OS_GENMASK(23, 0)
264#define ADE9153A_VPEAKVAL_MSK NO_OS_GENMASK(23, 0)
267#define ADE9153A_CHIP_STAT_MSK NO_OS_BIT(31)
268#define ADE9153A_EVENT_STAT_MSK NO_OS_BIT(30)
269#define ADE9153A_MS_STAT_MSK NO_OS_BIT(29)
270#define ADE9153A_PF_RDY_MSK NO_OS_BIT(25)
271#define ADE9153A_CRC_CHG_MSK NO_OS_BIT(24)
272#define ADE9153A_CRC_DONE_MSK NO_OS_BIT(23)
273#define ADE9153A_ZXTOAV_MSK NO_OS_BIT(21)
274#define ADE9153A_ZXBI_MSK NO_OS_BIT(20)
275#define ADE9153A_ZXAI_MSK NO_OS_BIT(19)
276#define ADE9153A_ZXAV_MSK NO_OS_BIT(17)
277#define ADE9153A_RSTDONE_MSK NO_OS_BIT(16)
278#define ADE9153A_FVARNL_MSK NO_OS_BIT(15)
279#define ADE9153A_VANL_MSK NO_OS_BIT(14)
280#define ADE9153A_WATTNL_MSK NO_OS_BIT(13)
281#define ADE9153A_TEMP_RDY_MSK NO_OS_BIT(12)
282#define ADE9153A_RMS_OC_RDY_MSK NO_OS_BIT(11)
283#define ADE9153A_PWRRDY_MSK NO_OS_BIT(10)
284#define ADE9153A_DREADY_MSK NO_OS_BIT(9)
285#define ADE9153A_EGYRDY_MSK NO_OS_BIT(8)
286#define ADE9153A_CF2_MSK NO_OS_BIT(7)
287#define ADE9153A_CF1_MSK NO_OS_BIT(6)
288#define ADE9153A_REVPCF2_MSK NO_OS_BIT(5)
289#define ADE9153A_REVPCF1_MSK NO_OS_BIT(4)
290#define ADE9153A_REVRPA_MSK NO_OS_BIT(2)
291#define ADE9153A_REVAPA_MSK NO_OS_BIT(0)
294#define ADE9153A_OILVL_VAL_MSK NO_OS_GENMASK(23, 0)
297#define ADE9153A_OIA_VAL_MSK NO_OS_GENMASK(23, 0)
300#define ADE9153A_OIB_VAL_MSK NO_OS_GENMASK(23, 0)
303#define ADE9153A_VLEVEL_VAL_MSK NO_OS_GENMASK(23, 0)
306#define ADE9153A_DIPA_VAL_MSK NO_OS_GENMASK(23, 0)
309#define ADE9153A_SWELLA_VAL_MSK NO_OS_GENMASK(23, 0)
312#define ADE9153A_AFVARNL_MSK NO_OS_BIT(2)
313#define ADE9153A_AVANL_MSK NO_OS_BIT(1)
314#define ADE9153A_AWATTNL_MSK NO_OS_BIT(0)
317#define ADE9153A_CF2_LT_MSK NO_OS_BIT(20)
318#define ADE9153A_CF1_LT_MSK NO_OS_BIT(19)
319#define ADE9153A_CF_LTMR_MSK NO_OS_GENMASK(18, 0)
322#define ADE9153A_TEMP_OFFSET_MSK NO_OS_GENMASK(31, 16)
323#define ADE9153A_TEMP_GAIN_MSK NO_OS_GENMASK(15, 0)
326#define ADE9153A_EXT_REF_MSK NO_OS_BIT(15)
327#define ADE9153A_DIP_SWELL_IRQ_MODE_MSK NO_OS_BIT(14)
328#define ADE9153A_BURST_EN_MSK NO_OS_BIT(11)
329#define ADE9153A_PWR_SETTLE_MSK NO_OS_GENMASK(9, 8)
330#define ADE9153A_CF_ACC_CLR_MSK NO_OS_BIT(5)
331#define ADE9153A_ZX_OUT_OE_MSK NO_OS_BIT(2)
332#define ADE9153A_DREADY_OE_MSK NO_OS_BIT(1)
333#define ADE9153A_SWRST_MSK NO_OS_BIT(0)
336#define ADE9153A_CF2DIS_MSK NO_OS_BIT(7)
337#define ADE9153A_CF1DIS_MSK NO_OS_BIT(6)
338#define ADE9153A_CF2SEL_MSK NO_OS_GENMASK(5, 3)
339#define ADE9153A_CF1SEL_MSK NO_OS_GENMASK(2, 0)
342#define ADE9153A_SELFREQ_MSK NO_OS_BIT(4)
343#define ADE9153A_VARACC_MSK NO_OS_GENMASK(3, 2)
344#define ADE9153A_WATTACC_MSK NO_OS_GENMASK(1, 0)
347#define ADE9153A_PEAK_SEL_MSK NO_OS_GENMASK(3, 2)
348#define ADE9153A_OIB_EN_MSK NO_OS_BIT(1)
349#define ADE9153A_OIA_EN_MSK NO_OS_BIT(0)
352#define ADE9153A_DISZXLPF_MSK NO_OS_BIT(0)
355#define ADE9153A_CF2SIGN_MSK NO_OS_BIT(7)
356#define ADE9153A_CF1SIGN_MSK NO_OS_BIT(6)
357#define ADE9153A_AVARSIGN_MSK NO_OS_BIT(1)
358#define ADE9153A_AWSIGN_MSK NO_OS_BIT(0)
361#define ADE9153A_UPERIOD_SEL_MSK NO_OS_BIT(12)
362#define ADE9153A_HPF_CRN_MSK NO_OS_GENMASK(11, 9)
365#define ADE9153A_NOLOAD_TMR_MSK NO_OS_GENMASK(7, 5)
366#define ADE9153A_RD_RST_EN_MSK NO_OS_BIT(3)
367#define ADE9153A_EGY_LD_ACCUM_MSK NO_OS_BIT(2)
368#define ADE9153A_EGY_TMR_MODE_MSK NO_OS_BIT(1)
369#define ADE9153A_EGY_PWR_EN_MSK NO_OS_BIT(0)
372#define ADE9153A_FORCE_CRC_UPDATE_MSK NO_OS_BIT(0)
375#define ADE9153A_TEMP_START_MSK NO_OS_BIT(3)
376#define ADE9153A_TEMP_EN_MSK NO_OS_BIT(2)
377#define ADE9153A_TEMP_TIME_MSK NO_OS_GENMASK(1, 0)
380#define ADE9153A_TEMP_RESULT_MSK NO_OS_GENMASK(11, 0)
383#define ADE9153A_AI_SWAP_MSK NO_OS_BIT(4)
384#define ADE9153A_AI_GAIN_MSK NO_OS_GENMASK(2, 0)
387#define ADE9153A_MS_SYSRDY_MSK NO_OS_BIT(14)
388#define ADE9153A_MS_CONFERR_MSK NO_OS_BIT(13)
389#define ADE9153A_MS_ABSENT_MSK NO_OS_BIT(12)
390#define ADE9153A_MS_TIMEOUT_MSK NO_OS_BIT(3)
391#define ADE9153A_MS_READY_MSK NO_OS_BIT(1)
392#define ADE9153A_MS_SHIFT_MSK NO_OS_BIT(0)
395#define ADE9153A_OIB_MSK NO_OS_BIT(5)
396#define ADE9153A_OIA_MSK NO_OS_BIT(4)
397#define ADE9153A_SWELLA_MSK NO_OS_BIT(2)
398#define ADE9153A_DIPA_MSK NO_OS_BIT(0)
401#define ADE9153A_UART_RESET_MSK NO_OS_BIT(7)
402#define ADE9153A_UART_ERROR2_MSK NO_OS_BIT(6)
403#define ADE9153A_UART_ERROR1_MSK NO_OS_BIT(5)
404#define ADE9153A_UART_ERROR0_MSK NO_OS_BIT(4)
405#define ADE9153A_ERROR3_MSK NO_OS_BIT(3)
406#define ADE9153A_ERROR2_MSK NO_OS_BIT(2)
407#define ADE9153A_ERROR1_MSK NO_OS_BIT(1)
408#define ADE9153A_ERROR0_MSK NO_OS_BIT(0)
817static void ade9153a_irq_handler(
void *dev);
835static int ade9153a_update_bits(
struct ade9153a_dev *dev, uint16_t reg_addr,
836 uint32_t mask, uint32_t reg_data);
1068 uint32_t int_msk, uint8_t en);
struct ad7616_init_param init_param
Definition ad7616_sdz.c:107
int ade9153a_clear_vanl(struct ade9153a_dev *dev)
Clear total apparent energy no load condition int mask.
Definition ade9153a.c:1562
int ade9153a_egy_tmr_mode(struct ade9153a_dev *dev, uint8_t en)
Energy accumulated based on the number of 4 kSPS samples or zero-crossing events.
Definition ade9153a.c:3579
int ade9153a_get_fvarnl(struct ade9153a_dev *dev, uint8_t *status)
Get fundamental reactive energy no load condition indicator.
Definition ade9153a.c:1204
int ade9153a_version_product(struct ade9153a_dev *dev, uint32_t *data_read)
Version product.
Definition ade9153a.c:634
ade9153a_ai_gain_e
ADE9153A PGA gain for current CH A.
Definition ade9153a.h:597
@ ADE9153A_AI_GAIN_24
Definition ade9153a.h:602
@ ADE9153A_AI_GAIN_32
Definition ade9153a.h:604
@ ADE9153A_AI_GAIN_38_4
Definition ade9153a.h:606
@ ADE9153A_AI_GAIN_16
Definition ade9153a.h:600
int ade9153a_force_crc_update(struct ade9153a_dev *dev)
Force CRC calculation to start (update).
Definition ade9153a.c:3607
int ade9153a_disable_dready_int(struct ade9153a_dev *dev)
Disable data ready interrupt.
Definition ade9153a.c:2317
int ade9153a_enable_dready_int(struct ade9153a_dev *dev)
Enable data ready interrupt.
Definition ade9153a.c:2303
int ade9153a_auto_calibration_stop(struct ade9153a_dev *dev)
Auto calibration stop.
Definition ade9153a.c:919
int ade9153a_get_zxbi(struct ade9153a_dev *dev, uint8_t *status)
Get zero crossing detect on I ch B indicator.
Definition ade9153a.c:1140
int ade9153a_enable_pf_rdy_int(struct ade9153a_dev *dev)
Enable pf ready interrupt.
Definition ade9153a.c:1939
int ade9153a_clear_temp_rdy(struct ade9153a_dev *dev)
Clear new temperature reading ready int mask.
Definition ade9153a.c:1592
int ade9153a_clear_pf_rdy(struct ade9153a_dev *dev)
Clear PF ready int mask.
Definition ade9153a.c:1427
int ade9153a_disable_cf1_int(struct ade9153a_dev *dev)
Disable CF1 interrupt.
Definition ade9153a.c:2401
int ade9153a_get_event_stat(struct ade9153a_dev *dev, uint8_t *status)
Get event status indicator.
Definition ade9153a.c:1782
ade9153a_accmode_e
ADE9153A varacc/watacc acc mode.
Definition ade9153a.h:497
@ ADE9153A_NEGATIVE_ACC_MODE
Definition ade9153a.h:507
@ ADE9153A_SIGNED_ACC_MODE
Definition ade9153a.h:501
@ ADE9153A_POSITIVE_ACC_MODE
Definition ade9153a.h:505
@ ADE9153A_ABSOLUTE_VAL_ACC_MODE
Definition ade9153a.h:503
int ade9153a_disable_revapa_int(struct ade9153a_dev *dev)
Disable Phase A total active power changed sign interrupt.
Definition ade9153a.c:2513
int ade9153a_start_autocal_av(struct ade9153a_dev *dev, enum ade9153a_acalmode_e mode)
Start autocalibration AV channel.
Definition ade9153a.c:4338
int ade9153a_clear_apa_chg_sgn(struct ade9153a_dev *dev)
Clear APA (active power) sign change int mask.
Definition ade9153a.c:1739
int ade9153a_disable_crc_done_int(struct ade9153a_dev *dev)
Disable crc done interrupt.
Definition ade9153a.c:2009
int ade9153a_clear_event_stat(struct ade9153a_dev *dev, uint32_t *reg_val)
Clear event status int.
Definition ade9153a.c:1796
int ade9153a_setup(void *dev, struct ade9153a_init_param init_param)
ADE9153A setup.
Definition ade9153a.c:288
int ade9153a_zx_out_oe(struct ade9153a_dev *dev)
ZX driven to CF2 pin.
Definition ade9153a.c:2992
int ade9153a_remove(struct ade9153a_dev *dev)
Remove the device and release resources.
Definition ade9153a.c:506
int ade9153a_get_crc_done(struct ade9153a_dev *dev, uint8_t *status)
Get CRC done indicator.
Definition ade9153a.c:1108
int ade9153a_enable_crc_done_int(struct ade9153a_dev *dev)
Enable crc done interrupt.
Definition ade9153a.c:1995
ade9153a_noload_tmr_e
ADE9153A Hpf no load tmr.
Definition ade9153a.h:556
@ ADE9153A_NOLOAD_TMR_SAMPLES_128
Definition ade9153a.h:562
@ ADE9153A_NOLOAD_TMR_SAMPLES_1024
Definition ade9153a.h:568
@ ADE9153A_NOLOAD_TMR_SAMPLES_64
Definition ade9153a.h:560
@ ADE9153A_NOLOAD_TMR_SAMPLES_256
Definition ade9153a.h:564
@ ADE9153A_NOLOAD_TMR_SAMPLES_4096
Definition ade9153a.h:572
@ ADE9153A_NOLOAD_TMR_SAMPLES_512
Definition ade9153a.h:566
@ ADE9153A_NOLOAD_TMR_SAMPLES_2048
Definition ade9153a.h:570
@ ADE9153A_NOLOAD_TMR_DISABLE
Definition ade9153a.h:574
int ade9153a_start_autocal_ai(struct ade9153a_dev *dev, enum ade9153a_acalmode_e mode)
Start autocalibration AI channel.
Definition ade9153a.c:4274
ade9153a_cf2sel_e
ADE9153A CF2SEL type of energy output at CF2 Pin.
Definition ade9153a.h:481
@ ADE9153A_TOTAL_ACTIVE_POWER
Definition ade9153a.h:486
@ ADE9153A_TOTAL_APPARENT_POWER
Definition ade9153a.h:488
@ ADE9153A_TOTAL_FUNDAMENTAL_REACTIVE_POWER
Definition ade9153a.h:490
int ade9153a_sw_reset(struct ade9153a_dev *dev)
Reset the device using SW reset.
Definition ade9153a.c:548
int ade9153a_disable_wattnl_int(struct ade9153a_dev *dev)
Disable total active energy no load condition interrupt.
Definition ade9153a.c:2205
int ade9153a_ms_conferr(struct ade9153a_dev *dev, uint8_t *status)
Invalid config of mSure status.
Definition ade9153a.c:3834
int ade9153a_disable_temp_rdy_int(struct ade9153a_dev *dev)
Disable new temperature reading interrupt.
Definition ade9153a.c:2233
int ade9153a_disable_pwrrdy_int(struct ade9153a_dev *dev)
Disable PWRRDY interrupt.
Definition ade9153a.c:2289
int ade9153a_ext_ref_status(struct ade9153a_dev *dev, uint8_t *status)
External_reference status.
Definition ade9153a.c:2869
int ade9153a_oib_val(struct ade9153a_dev *dev, uint32_t *val)
Ch B overcurrent val.
Definition ade9153a.c:2578
int ade9153a_get_vanl(struct ade9153a_dev *dev, uint8_t *status)
Get total apparent energy no load condition indicator.
Definition ade9153a.c:1220
int ade9153a_enable_ms_stat_int(struct ade9153a_dev *dev)
Enable an interrupt when any bit in MS_STATUS_IRQ reg is set.
Definition ade9153a.c:1911
int ade9153a_burst_en(struct ade9153a_dev *dev)
Burst read enable/disable.
Definition ade9153a.c:2925
int ade9153a_clear_chip_stat(struct ade9153a_dev *dev, uint32_t *reg_val)
Clear chip status int.
Definition ade9153a.c:1768
int ade9153a_enable_zxai_int(struct ade9153a_dev *dev)
Enable zero corssing detected on I ch A interrupt.
Definition ade9153a.c:2079
int ade9153a_egy_pwr_en(struct ade9153a_dev *dev)
Enable the energy and power accumulator when the run bit is also set.
Definition ade9153a.c:3593
int ade9153a_auto_calibration_run(struct ade9153a_dev *dev)
Auto calibration run.
Definition ade9153a.c:894
int ade9153a_rms_vals(struct ade9153a_dev *dev, struct ade9153a_rms_values *data)
Read rms values.
Definition ade9153a.c:4169
int ade9153a_ai_swap(struct ade9153a_dev *dev, uint8_t set)
Set the signal side of the PGA.
Definition ade9153a.c:3757
ade9153a_selfreq_e
select frequency
Definition ade9153a.h:452
@ F_50_HZ
Definition ade9153a.h:454
@ F_60_HZ
Definition ade9153a.h:456
int ade9153a_energy_vals(struct ade9153a_dev *dev, struct ade9153a_energy_values *data)
Read energy values.
Definition ade9153a.c:4091
int ade9153a_set_interface_serial(struct ade9153a_dev *dev)
Select comms interface Serial.
Definition ade9153a.c:90
int ade9153a_chip_status(struct ade9153a_dev *dev, uint8_t *status)
Chip status.
Definition ade9153a.c:3969
int ade9153a_enable_zxtoav_int(struct ade9153a_dev *dev)
Enable zero corssing timeout on voltage ch interrupt.
Definition ade9153a.c:2023
int ade9153a_power_vals(struct ade9153a_dev *dev, struct ade9153a_power_values *data)
Read power values.
Definition ade9153a.c:4130
int ade9153a_read(struct ade9153a_dev *dev, uint16_t reg_addr, uint32_t *reg_data)
Read device register.
Definition ade9153a.c:358
int ade9153a_clear_fvarnl(struct ade9153a_dev *dev)
Clear fundamental reactive energy no load condition int mask.
Definition ade9153a.c:1547
ade9153a_temp_time_e
ADE9153A Temperature readings.
Definition ade9153a.h:581
@ ADE9153A_TEMP_TIME_SAMPLES_1
Definition ade9153a.h:584
@ ADE9153A_TEMP_TIME_SAMPLES_256
Definition ade9153a.h:586
@ ADE9153A_TEMP_TIME_SAMPLES_1024
Definition ade9153a.h:590
@ ADE9153A_TEMP_TIME_SAMPLES_512
Definition ade9153a.h:588
dip_swell_irq_mode_en
Dip swell irq mode.
Definition ade9153a.h:650
@ ONE_INT
Definition ade9153a.h:654
@ CONTINUOUSE
Definition ade9153a.h:652
int ade9153a_get_ms_stat(struct ade9153a_dev *dev, uint8_t *status)
Get MS status indicator.
Definition ade9153a.c:1810
int ade9153a_enable_vanl_int(struct ade9153a_dev *dev)
Enable total apparent energy no load condition interrupt.
Definition ade9153a.c:2163
int ade9153a_enable_temp_rdy_int(struct ade9153a_dev *dev)
Enable new temperature reading interrupt.
Definition ade9153a.c:2219
int ade9153a_temp_gain_val(struct ade9153a_dev *dev, uint32_t *val)
temperature sensor gain.
Definition ade9153a.c:2832
int ade9153a_power_quality_vals(struct ade9153a_dev *dev, struct ade9153a_pq_values *data)
Read power quaility values.
Definition ade9153a.c:4235
int ade9153a_vpk_val(struct ade9153a_dev *dev, uint32_t *val)
Vpeak val.
Definition ade9153a.c:1023
int ade9153a_uperiod_sel(struct ade9153a_dev *dev, uint8_t en)
User period select.
Definition ade9153a.c:3429
int ade9153a_get_rpa_chg_sgn(struct ade9153a_dev *dev, uint8_t *status)
Get RPA (reactive power) sign change indicator.
Definition ade9153a.c:1396
int ade9153a_enable_event_stat_int(struct ade9153a_dev *dev)
Enable an interrupt when any bit in EVENT_STATUS reg is set.
Definition ade9153a.c:1883
int ade9153a_set_interface_spi(struct ade9153a_dev *dev)
Select comms interface SPI.
Definition ade9153a.c:58
int ade9153a_temp_start(struct ade9153a_dev *dev)
Manually request a new temperature sensor reading.
Definition ade9153a.c:3622
ade9153a_get_zxav(struct ade9153a_dev *dev, uint8_t *status)
Get zero crossing detect on V ch indicator.
Definition ade9153a.c:1172
int ade9153a_ms_absent(struct ade9153a_dev *dev, uint8_t *status)
mSure not detected on the last enabled ch
Definition ade9153a.c:3861
int ade9153a_clear_rpa_chg_sgn(struct ade9153a_dev *dev)
Clear RPA (reactive power) sign change int mask.
Definition ade9153a.c:1725
int ade9153a_hpf_crn(struct ade9153a_dev *dev, enum ade9153a_hpf_crn_e hpf_corner_freq)
Hpf corner freq.
Definition ade9153a.c:3444
ade9153a_peak_sel_e
ADE9153A Peak sel.
Definition ade9153a.h:514
@ ADE9153A_PEAK_DETECTION_DISABLE_PHA_PHB
Definition ade9153a.h:517
@ ADE9153A_PEAK_DETECTION_ENABLE_V_I_PHA_PHB
Definition ade9153a.h:525
@ ADE9153A_PEAK_DETECTION_ENABLE_I_PHB
Definition ade9153a.h:523
@ ADE9153A_PEAK_DETECTION_ENABLE_V_I_PHA
Definition ade9153a.h:520
int ade9153a_get_cf2(struct ade9153a_dev *dev, uint8_t *status)
Get CF2 pulse issued indicator.
Definition ade9153a.c:1332
int ade9153a_get_pf_rdy(struct ade9153a_dev *dev, uint8_t *status)
Get PF ready indicator.
Definition ade9153a.c:1076
ade9153a_phnoload_e
Type of energy that is in no load condition.
Definition ade9153a.h:636
@ AWATTNL
Definition ade9153a.h:643
@ AFVARNL
Definition ade9153a.h:639
@ AVANL
Definition ade9153a.h:641
int ade9153a_clear_rms_oc_rdy(struct ade9153a_dev *dev)
Clear RMS_OC values update int mask.
Definition ade9153a.c:1607
int ade9153a_avarsign_status(struct ade9153a_dev *dev, uint8_t *status)
Sign of reactive power.
Definition ade9153a.c:3375
int ade9153a_clear_cf1_chg(struct ade9153a_dev *dev)
Clear CF1 polarity change int mask.
Definition ade9153a.c:1711
int ade9153a_get_apa_chg_sgn(struct ade9153a_dev *dev, uint8_t *status)
Get APA (active power) sign change indicator.
Definition ade9153a.c:1412
int ade9153a_enable_zxav_int(struct ade9153a_dev *dev)
Enable zero corssing detected on V ch interrupt.
Definition ade9153a.c:2107
ade9153a_clear_cf1(struct ade9153a_dev *dev)
Clear CF1 pulse issued int mask.
Definition ade9153a.c:1682
int ade9153a_oib_en(struct ade9153a_dev *dev)
Ch B overcurretn detection enable.
Definition ade9153a.c:3278
int ade9153a_disable_egyrdy_int(struct ade9153a_dev *dev)
Disable EGYRDY interrupt.
Definition ade9153a.c:2345
int ade9153a_enable_revrpa_int(struct ade9153a_dev *dev)
Enable Phase A fundamental reactive power changed sign interrupt.
Definition ade9153a.c:2471
int ade9153a_disable_ms_stat_int(struct ade9153a_dev *dev)
Disable MS_STAT interrupt.
Definition ade9153a.c:1925
int ade9153a_cf2_lt_status(struct ade9153a_dev *dev, uint8_t *status)
CF2_LT status.
Definition ade9153a.c:2712
int ade9153a_selfreq(struct ade9153a_dev *dev, enum ade9153a_selfreq_e freq)
Frequency select.
Definition ade9153a.c:3115
int ade9153a_ipk_val(struct ade9153a_dev *dev, uint32_t *val)
Ipeak val.
Definition ade9153a.c:998
ade9153a_acal_ch_e
select channels for autocalibration
Definition ade9153a.h:428
@ AUTOCAL_AV
Definition ade9153a.h:430
@ AUTOCAL_BI
Definition ade9153a.h:432
@ AUTOCAL_AI
Definition ade9153a.h:434
int ade9153a_enable_revpcf2_int(struct ade9153a_dev *dev)
Enable CF2 polarity change sign interrupt.
Definition ade9153a.c:2415
int ade9153a_enable_zxbi_int(struct ade9153a_dev *dev)
Enable zero corssing detected on I ch B interrupt.
Definition ade9153a.c:2051
int ade9153a_wr_lock(struct ade9153a_dev *dev)
Lock device.
Definition ade9153a.c:601
int ade9153a_disable_rms_oc_rdy_int(struct ade9153a_dev *dev)
Disable RMS_OC values update interrupt.
Definition ade9153a.c:2261
int ade9153a_cf1sel(struct ade9153a_dev *dev, enum ade9153a_cf2sel_e energy_type)
Set type of energy output on CF1 pin.
Definition ade9153a.c:3082
int ade9153a_clear_crc_done(struct ade9153a_dev *dev)
Clear CRC done int mask.
Definition ade9153a.c:1457
int ade9153a_clear_cf2_chg(struct ade9153a_dev *dev)
Clear CF2 polarity change int mask.
Definition ade9153a.c:1697
int ade9153a_cf2dis(struct ade9153a_dev *dev)
CF2 output disable.
Definition ade9153a.c:3020
int ade9153a_disable_fvarnl_int(struct ade9153a_dev *dev)
Disable fundamental reactive energy no load condition interrupt.
Definition ade9153a.c:2149
int ade9153a_cf1_lt_status(struct ade9153a_dev *dev, uint8_t *status)
CF1_LT status.
Definition ade9153a.c:2739
int ade9153a_noload_tmr(struct ade9153a_dev *dev, enum ade9153a_noload_tmr_e noload_samples)
Set no. of samples for no load condition.
Definition ade9153a.c:3496
int ade9153a_rms_oc_src_adc_samples_enable(struct ade9153a_dev *dev)
Use ADC samples, before the high-pass filter for the RMS_OC calculation.
Definition ade9153a.c:730
int ade9153a_rms_oc_src_x_wav_enable(struct ade9153a_dev *dev)
Use x_WAV waveforms after the high-pass filter and phase compensation for the RMS_OC calculation.
Definition ade9153a.c:712
int ade9153a_disable_zxtoav_int(struct ade9153a_dev *dev)
Disable zero corssing timeout on voltage ch interrupt.
Definition ade9153a.c:2037
int ade9153a_enable_cf1_int(struct ade9153a_dev *dev)
Enable CF1 interrupt.
Definition ade9153a.c:2387
int ade9153a_stop(struct ade9153a_dev *dev)
Stop measurements.
Definition ade9153a.c:3741
int ade9153a_write(struct ade9153a_dev *dev, uint16_t reg_addr, uint32_t reg_data)
Write device register.
Definition ade9153a.c:438
int ade9153a_get_crc_chg(struct ade9153a_dev *dev, uint8_t *status)
Get CRC change indicator.
Definition ade9153a.c:1092
int ade9153a_clear_ms_stat(struct ade9153a_dev *dev, uint32_t *reg_val)
Clear MS status int.
Definition ade9153a.c:1824
int ade9153a_half_rms_vals(struct ade9153a_dev *dev, struct ade9153a_half_rms_values *data)
Read half rms values.
Definition ade9153a.c:4202
int ade9153a_disable_cf2_int(struct ade9153a_dev *dev)
Disable CF2 interrupt.
Definition ade9153a.c:2373
int ade9153a_dip_swell_irq_mode(struct ade9153a_dev *dev, enum dip_swell_irq_mode_en mode)
Dip swell interrupt mode.
Definition ade9153a.c:2896
int ade9153a_egy_ld_accum(struct ade9153a_dev *dev, uint8_t en)
Internal energy register accum.
Definition ade9153a.c:3563
int ade9153a_oi_lvl_val(struct ade9153a_dev *dev, uint32_t *val)
Overcurrent detection threshold level val.
Definition ade9153a.c:2528
int ade9153a_disable_crc_chg_int(struct ade9153a_dev *dev)
Disable crc change interrupt.
Definition ade9153a.c:1981
int ade9153a_wr_unlock(struct ade9153a_dev *dev)
Unlock device.
Definition ade9153a.c:617
int ade9153a_disable_pf_rdy_int(struct ade9153a_dev *dev)
Disable pf ready interrupt.
Definition ade9153a.c:1953
int ade9153a_clear_wattnl(struct ade9153a_dev *dev)
Clear total active energy no load condition int mask.
Definition ade9153a.c:1577
int ade9153a_peak_sel(struct ade9153a_dev *dev, enum ade9153a_peak_sel_e peak_sel)
Select peak detection channels.
Definition ade9153a.c:3240
int ade9153a_cf1dis(struct ade9153a_dev *dev)
CF1 output disable.
Definition ade9153a.c:3034
int ade9153a_cf2sign_status(struct ade9153a_dev *dev, uint8_t *status)
Sign of CF2 power.
Definition ade9153a.c:3321
int ade9153a_varacc(struct ade9153a_dev *dev, enum ade9153a_accmode_e varacc_type)
Select fundamental reactive power accumulation mode.
Definition ade9153a.c:3168
int ade9153a_enable_crc_chg_int(struct ade9153a_dev *dev)
Enable crc change interrupt.
Definition ade9153a.c:1967
int ade9153a_cf2sel(struct ade9153a_dev *dev, enum ade9153a_cf2sel_e energy_type)
Set type of energy output on CF2 pin.
Definition ade9153a.c:3049
int ade9153a_temp_time(struct ade9153a_dev *dev, enum ade9153a_temp_time_e temp_no_samples)
Select the number of temperature readings to average.
Definition ade9153a.c:3651
int ade9153a_dipa_val(struct ade9153a_dev *dev, uint32_t *val)
Voltage value during dip condition.
Definition ade9153a.c:2628
int ade9153a_start_autocal_bi(struct ade9153a_dev *dev, enum ade9153a_acalmode_e mode)
Start autocalibration BI channel.
Definition ade9153a.c:4306
int ade9153a_oia_val(struct ade9153a_dev *dev, uint32_t *val)
Ch A overcurrent val.
Definition ade9153a.c:2553
int ade9153a_clear_crc_chg(struct ade9153a_dev *dev)
Clear CRC change int mask.
Definition ade9153a.c:1442
int ade9153a_dready_oe(struct ade9153a_dev *dev)
DREADY driven to CF2 pin.
Definition ade9153a.c:3006
int ade9153a_temp_result(struct ade9153a_dev *dev, uint16_t *val)
Temperature result.
Definition ade9153a.c:3687
int ade9153a_temp_val(struct ade9153a_dev *dev, struct ade9153a_temperature_value *data)
Temperature value in deg C.
Definition ade9153a.c:4018
int ade9153a_pwr_settle_set(struct ade9153a_dev *dev, enum ade9153a_pwr_settle_e time)
Set PWR_SETTLE.
Definition ade9153a.c:2943
int ade9153a_get_dready(struct ade9153a_dev *dev, uint8_t *status)
Get new waveform samples ready indicator.
Definition ade9153a.c:1300
int ade9153a_enable_fvarnl_int(struct ade9153a_dev *dev)
Enable fundamental reactive energy no load condition interrupt.
Definition ade9153a.c:2135
int ade9153a_get_cf1(struct ade9153a_dev *dev, uint8_t *status)
Get CF1 pulse issued indicator.
Definition ade9153a.c:1348
ade9153a_chip_stat_err_e
ADE9153A chip status errors.
Definition ade9153a.h:613
@ ADE9153A_ERROR0
Definition ade9153a.h:615
@ ADE9153A_UART_ERROR2
Definition ade9153a.h:627
@ ADE9153A_UART_ERROR0
Definition ade9153a.h:623
@ ADE9153A_UART_RESET
Definition ade9153a.h:629
@ ADE9153A_ERROR2
Definition ade9153a.h:619
@ ADE9153A_UART_ERROR1
Definition ade9153a.h:625
@ ADE9153A_ERROR3
Definition ade9153a.h:621
@ ADE9153A_ERROR1
Definition ade9153a.h:617
int ade9153a_msure_status(struct ade9153a_dev *dev, uint8_t *status)
mSure status
Definition ade9153a.c:938
int ade9153a_get_rms_oc_rdy(struct ade9153a_dev *dev, uint8_t *status)
Get RMS_OC values update indicator.
Definition ade9153a.c:1268
int ade9153a_cf_acc_clr(struct ade9153a_dev *dev)
Clear accumulation in the digital freq conv.
Definition ade9153a.c:2978
int ade9153a_disable_event_stat_int(struct ade9153a_dev *dev)
Disable EVENT_STAT interrupt.
Definition ade9153a.c:1897
int ade9153a_cf_ltmr_val(struct ade9153a_dev *dev, uint32_t *val)
cf_ltmr read value.
Definition ade9153a.c:2781
int ade9153a_clear_rstdone(struct ade9153a_dev *dev)
Clear reset done int mask.
Definition ade9153a.c:1532
int ade9153a_clear_zxai(struct ade9153a_dev *dev)
Clear zero crossing detect on I ch A int mask.
Definition ade9153a.c:1502
int ade9153a_swella_val(struct ade9153a_dev *dev, uint32_t *val)
Voltage value during swell condition.
Definition ade9153a.c:2653
int ade9153a_enable_cf2_int(struct ade9153a_dev *dev)
Enable CF2 interrupt.
Definition ade9153a.c:2359
int ade9153a_read_autocal_vals(struct ade9153a_dev *dev, struct ade9153a_autocal_vals *data)
Read autocalibration values.
Definition ade9153a.c:4370
int ade9153a_lpf_rp_disable(struct ade9153a_dev *dev)
Disable the low pass filter in the fundamental reactive power datapath.
Definition ade9153a.c:659
int ade9153a_hpf_disable(struct ade9153a_dev *dev)
Disable hpf for all channels.
Definition ade9153a.c:798
int ade9153a_get_rstdone(struct ade9153a_dev *dev, uint8_t *status)
Get reset done indicator.
Definition ade9153a.c:1188
int ade9153a_oia_en(struct ade9153a_dev *dev)
Ch A overcurretn detection enable.
Definition ade9153a.c:3292
int ade9153a_cf1sign_status(struct ade9153a_dev *dev, uint8_t *status)
Sign of CF1 power.
Definition ade9153a.c:3348
int ade9153a_compmode(struct ade9153a_dev *dev)
COMPMODE.
Definition ade9153a.c:3711
int ade9153a_diszxlpf(struct ade9153a_dev *dev)
Zero crossing lpf disable.
Definition ade9153a.c:3306
int ade9153a_disable_vanl_int(struct ade9153a_dev *dev)
Disable total apparent energy no load condition interrupt.
Definition ade9153a.c:2177
int ade9153a_enable_pwrrdy_int(struct ade9153a_dev *dev)
Enable PWRRDY interrupt.
Definition ade9153a.c:2275
int ade9153a_get_chip_stat(struct ade9153a_dev *dev, uint8_t *status)
Get chip status indicator.
Definition ade9153a.c:1754
ade9153a_hpf_crn_e
ADE9153A Hpf crn high pass filter corner freq.
Definition ade9153a.h:532
@ ADE9153A_HPF_CORNER_1_2475_HZ
Definition ade9153a.h:545
@ ADE9153A_HPF_CORNER_9_895_HZ
Definition ade9153a.h:539
@ ADE9153A_HPF_CORNER_38_695_HZ
Definition ade9153a.h:535
@ ADE9153A_HPF_CORNER_0_625_HZ
Definition ade9153a.h:547
@ ADE9153A_HPF_CORNER_4_9675_HZ
Definition ade9153a.h:541
@ ADE9153A_HPF_CORNER_0_3125_HZ
Definition ade9153a.h:549
@ ADE9153A_HPF_CORNER_19_6375_HZ
Definition ade9153a.h:537
@ ADE9153A_HPF_CORNER_2_49_HZ
Definition ade9153a.h:543
int ade9153a_clear_zxbi(struct ade9153a_dev *dev)
Clear zero crossing detect on I ch B int mask.
Definition ade9153a.c:1487
int ade9153a_get_egyrdy(struct ade9153a_dev *dev, uint8_t *status)
Get power values egy ready indicator.
Definition ade9153a.c:1316
int ade9153a_enable_revpcf1_int(struct ade9153a_dev *dev)
Enable CF1 polarity change sign interrupt.
Definition ade9153a.c:2443
int ade9153a_clear_zxav(struct ade9153a_dev *dev)
Clear zero crossing detect on V ch int mask.
Definition ade9153a.c:1517
int ade9153a_enable_revapa_int(struct ade9153a_dev *dev)
Enable Phase A total active power changed sign interrupt.
Definition ade9153a.c:2499
int ade9153a_control_interrupt(struct ade9153a_dev *dev, uint16_t reg_addr, uint32_t int_msk, uint8_t en)
Enable/disable interrupt.
Definition ade9153a.c:1840
int ade9153a_ms_timeout(struct ade9153a_dev *dev, uint8_t *status)
mSure timed out (600s)
Definition ade9153a.c:3888
int ade9153a_vnoma_enable(struct ade9153a_dev *dev)
Use the nominal phase voltage rms, VNOM, in the computation of the Phase A total apparent power.
Definition ade9153a.c:694
int ade9153a_get_int_status(struct ade9153a_dev *dev, uint32_t msk, uint8_t *status)
Get interrupt indicator from STATUS register.
Definition ade9153a.c:1049
int ade9153a_zx_src_after_hpf_enable(struct ade9153a_dev *dev)
ZX data source after hpf and phase compensation.
Definition ade9153a.c:747
int ade9153a_disable_zxav_int(struct ade9153a_dev *dev)
Disable zero corssing detected on V ch interrupt.
Definition ade9153a.c:2121
int ade9153a_cf_ltmr_write(struct ade9153a_dev *dev, uint32_t reg_data)
cf_ltmr write value.
Definition ade9153a.c:2766
ade9153a_bi_gain_e
ADE9153A Bi Gain.
Definition ade9153a.h:414
@ ADE9153A_PGA_CHB_GAIN_4
Definition ade9153a.h:421
@ ADE9153A_PGA_CHB_GAIN_1
Definition ade9153a.h:417
@ ADE9153A_PGA_CHB_GAIN_2
Definition ade9153a.h:419
int ade9153a_freq_s_status(struct ade9153a_dev *dev, uint8_t *status)
Frequency setting.
Definition ade9153a.c:3141
int ade9153a_get_cf1_chg(struct ade9153a_dev *dev, uint8_t *status)
Get CF1 polarity change indicator.
Definition ade9153a.c:1380
int ade9153a_temp_en(struct ade9153a_dev *dev)
Enable the temperature sensor.
Definition ade9153a.c:3636
int ade9153a_get_zxai(struct ade9153a_dev *dev, uint8_t *status)
Get zero crossing detect on I ch A indicator.
Definition ade9153a.c:1156
int ade9153a_wattacc(struct ade9153a_dev *dev, enum ade9153a_accmode_e wattacc_type)
Select Total active power accumulation mode.
Definition ade9153a.c:3204
int ade9153a_enable_chip_stat_int(struct ade9153a_dev *dev)
Enable an interrupt when any bit in CHIP_STATUS reg is set.
Definition ade9153a.c:1855
int ade9153a_vlevel_val(struct ade9153a_dev *dev, uint32_t *val)
Vlevel val.
Definition ade9153a.c:2603
int ade9153a_i_ch_b_int_enable(struct ade9153a_dev *dev)
Current channel B integrator enable.
Definition ade9153a.c:781
int ade9153a_awsign_status(struct ade9153a_dev *dev, uint8_t *status)
Sign of active power.
Definition ade9153a.c:3402
int ade9153a_init(struct ade9153a_dev **device, struct ade9153a_init_param init_param)
Initialize the device.
Definition ade9153a.c:150
int ade9153a_hw_reset(struct ade9153a_dev *dev)
Reset the device using HW reset.
Definition ade9153a.c:571
int ade9153a_zx_src_before_hpf_enable(struct ade9153a_dev *dev)
ZX data source before hpf and phase compensation.
Definition ade9153a.c:764
int ade9153a_disable_zxbi_int(struct ade9153a_dev *dev)
Disable zero corssing detected on I ch B interrupt.
Definition ade9153a.c:2065
int ade9153a_ip_phase(struct ade9153a_dev *dev, uint8_t *ch)
Ipeak channel phase.
Definition ade9153a.c:965
int ade9153a_ext_ref(struct ade9153a_dev *dev, uint8_t en)
External voltage reference enable/disable.
Definition ade9153a.c:2857
int ade9153a_get_phnoload_status(struct ade9153a_dev *dev, uint8_t *status)
Get phnoload status.
Definition ade9153a.c:2678
int ade9153a_get_pwrrdy(struct ade9153a_dev *dev, uint8_t *status)
Get power values registers update indicator.
Definition ade9153a.c:1284
int ade9153a_enable_wattnl_int(struct ade9153a_dev *dev)
Enable total active energy no load condition interrupt.
Definition ade9153a.c:2191
int ade9153a_get_wattnl(struct ade9153a_dev *dev, uint8_t *status)
Get total active energy no load condition indicator.
Definition ade9153a.c:1236
int ade9153a_disable_chip_stat_int(struct ade9153a_dev *dev)
Disable CHIP_STAT interrupt.
Definition ade9153a.c:1869
int ade9153a_clear_egyrdy(struct ade9153a_dev *dev)
Clear power values egy ready int mask.
Definition ade9153a.c:1652
int ade9153a_enable_egyrdy_int(struct ade9153a_dev *dev)
Enable EGYRDY interrupt.
Definition ade9153a.c:2331
int ade9153a_ms_sysrdy(struct ade9153a_dev *dev, uint8_t *status)
New run of mSure ready.
Definition ade9153a.c:3807
int ade9153a_clear_dready(struct ade9153a_dev *dev)
Clear new waveform samples ready int mask.
Definition ade9153a.c:1637
int ade9153a_enable_rms_oc_rdy_int(struct ade9153a_dev *dev)
Enable RMS_OC values update interrupt.
Definition ade9153a.c:2247
int ade9153a_disable_revpcf1_int(struct ade9153a_dev *dev)
Disable CF1 polarity change sign interrupt.
Definition ade9153a.c:2457
int ade9153a_rd_rst_en(struct ade9153a_dev *dev)
Energy register read with value reset.
Definition ade9153a.c:3547
int ade9153a_clear_cf2(struct ade9153a_dev *dev)
Clear CF2 pulse issued int mask.
Definition ade9153a.c:1667
int ade9153a_clear_pwrrdy(struct ade9153a_dev *dev)
Clear power values registers update int mask.
Definition ade9153a.c:1622
int ade9153a_disable_revrpa_int(struct ade9153a_dev *dev)
Disable Phase A fundamental reactive power changed sign interrupt.
Definition ade9153a.c:2485
int ade9153a_bi_pgagain_set(struct ade9153a_dev *dev, enum ade9153a_bi_gain_e gain)
Set PGA gain for current channel B.
Definition ade9153a.c:816
int ade9153a_disable_zxai_int(struct ade9153a_dev *dev)
Disable zero corssing detected on I ch A interrupt.
Definition ade9153a.c:2093
int ade9153a_ms_ready(struct ade9153a_dev *dev, uint8_t *status)
mSure ready
Definition ade9153a.c:3915
int ade9153a_disable_revpcf2_int(struct ade9153a_dev *dev)
Disable CF2 polarity change sign interrupt.
Definition ade9153a.c:2429
int ade9153a_get_cf2_chg(struct ade9153a_dev *dev, uint8_t *status)
Get CF2 polarity change indicator.
Definition ade9153a.c:1364
int ade9153a_run(struct ade9153a_dev *dev)
Start measurements.
Definition ade9153a.c:3726
ade9153a_pwr_settle_e
ADE9153A Power settle.
Definition ade9153a.h:463
@ ADE9153A_SETTLE_256_MS
Definition ade9153a.h:472
@ ADE9153A_SETTLE_0_MS
Definition ade9153a.h:474
@ ADE9153A_SETTLE_64_MS
Definition ade9153a.h:468
@ ADE9153A_SETTLE_128_MS
Definition ade9153a.h:470
int ade9153a_auto_calibration_cfg(struct ade9153a_dev *dev, enum ade9153a_acal_ch_e ch, enum ade9153a_acalmode_e mode)
Auto calibration config.
Definition ade9153a.c:845
int ade9153a_lpf_ap_disable(struct ade9153a_dev *dev)
Disable the low-pass filter in the total active power datapath.
Definition ade9153a.c:676
int ade9153a_get_temp_rdy(struct ade9153a_dev *dev, uint8_t *status)
Get new temperature reading ready indicator.
Definition ade9153a.c:1252
int ade9153a_temp_offset_val(struct ade9153a_dev *dev, uint32_t *val)
temperature sensor offset.
Definition ade9153a.c:2806
int ade9153a_get_zxtoav(struct ade9153a_dev *dev, uint8_t *status)
Get zero crossing timout on V ch indicator.
Definition ade9153a.c:1124
int ade9153a_clear_zxtoav(struct ade9153a_dev *dev)
Clear zero crossing timout on V ch int mask.
Definition ade9153a.c:1472
int ade9153a_ai_gain(struct ade9153a_dev *dev, enum ade9153a_ai_gain_e gain)
Set the PGA gain for I chA.
Definition ade9153a.c:3772
int ade9153a_ms_shift(struct ade9153a_dev *dev, uint8_t *status)
mSure shift detected in CC val
Definition ade9153a.c:3942
ade9153a_acalmode_e
select power mode for ch B, ch A
Definition ade9153a.h:441
@ TURBO
Definition ade9153a.h:445
@ NORMAL
Definition ade9153a.h:443
Error macro definition for ARM Compiler.
Header file of CRC-16 computation.
Header file of Delay functions.
Header file of GPIO Interface.
Header file of IRQ interface.
Header file of SPI Interface.
Header file of utility functions.
ADE9153A temperature value.
Definition ade9153a.h:799
uint32_t avcert_reg_val
Definition ade9153a.h:807
uint32_t aicert_reg_val
Definition ade9153a.h:803
uint32_t avcc_reg_val
Definition ade9153a.h:805
uint32_t aicc_reg_val
Definition ade9153a.h:801
ADE9153A Device structure.
Definition ade9153a.h:701
struct no_os_spi_desc * spi_desc
Definition ade9153a.h:703
struct no_os_irq_ctrl_desc * irq_ctrl
Definition ade9153a.h:715
struct no_os_callback_desc irq_cb
Definition ade9153a.h:717
uint8_t burst_en
Definition ade9153a.h:705
struct no_os_gpio_desc * gpio_ss
Definition ade9153a.h:711
struct no_os_gpio_desc * gpio_reset
Definition ade9153a.h:709
struct no_os_gpio_desc * gpio_sck
Definition ade9153a.h:713
struct no_os_gpio_desc * gpio_rdy
Definition ade9153a.h:707
ADE9153A energy registers values.
Definition ade9153a.h:724
int32_t active_energy_reg_val
Definition ade9153a.h:726
int32_t fundamental_reactive_energy_reg_val
Definition ade9153a.h:728
int32_t apparent_energy_reg_val
Definition ade9153a.h:730
ADE9153A half rms registers values.
Definition ade9153a.h:762
int32_t voltage_h_rms_reg_val
Definition ade9153a.h:766
int32_t current_h_rms_reg_val
Definition ade9153a.h:764
ADE9153a Device initialization parameters.
Definition ade9153a.h:661
enum ade9153a_selfreq_e freq
Definition ade9153a.h:683
uint8_t spi_en
Definition ade9153a.h:673
struct no_os_irq_ctrl_desc * irq_ctrl
Definition ade9153a.h:675
enum ade9153a_ai_gain_e ai_pga_gain
Definition ade9153a.h:679
struct no_os_spi_init_param * gpio_sck
Definition ade9153a.h:671
uint32_t vlevel
Definition ade9153a.h:685
struct no_os_gpio_init_param * gpio_reset
Definition ade9153a.h:667
struct no_os_spi_init_param * gpio_ss
Definition ade9153a.h:669
uint32_t no_samples
Definition ade9153a.h:689
uint8_t ai_swap
Definition ade9153a.h:677
uint32_t ai_gain
Definition ade9153a.h:691
struct no_os_gpio_init_param * gpio_rdy
Definition ade9153a.h:665
void(* drdy_callback)(void *context)
Definition ade9153a.h:694
struct no_os_spi_init_param * spi_init
Definition ade9153a.h:663
uint32_t rsmall
Definition ade9153a.h:687
enum ade9153a_hpf_crn_e hpf_crn
Definition ade9153a.h:681
ADE9153A power registers values.
Definition ade9153a.h:737
int32_t active_power_reg_val
Definition ade9153a.h:739
int32_t apparent_power_reg_val
Definition ade9153a.h:743
int32_t fundamental_reactive_power_reg_val
Definition ade9153a.h:741
ADE9153A power quality registers values.
Definition ade9153a.h:773
int32_t period_reg_val
Definition ade9153a.h:777
int32_t power_factor_reg_val
Definition ade9153a.h:775
int32_t angle_ai_av_reg_val
Definition ade9153a.h:779
ADE9153A rms registers values.
Definition ade9153a.h:750
int32_t current_rms_reg_val
Definition ade9153a.h:752
int32_t voltage_rms_reg_val
Definition ade9153a.h:754
ADE9153A temperature value.
Definition ade9153a.h:786
uint16_t gain_reg_val
Definition ade9153a.h:792
uint16_t offset_reg_val
Definition ade9153a.h:790
int16_t temperature_reg_val
Definition ade9153a.h:788
Definition ad9361_util.h:63
Structure describing a callback to be registered.
Definition no_os_irq.h:136
Structure holding the GPIO descriptor.
Definition no_os_gpio.h:84
Structure holding the parameters for GPIO initialization.
Definition no_os_gpio.h:67
Definition no_os_irq.h:117
Structure holding SPI descriptor.
Definition no_os_spi.h:180
Structure holding the parameters for SPI initialization.
Definition no_os_spi.h:128