ESPHome 2026.5.1
Loading...
Searching...
No Matches
ade7880_registers.h
Go to the documentation of this file.
1#pragma once
2
3// This file is a modified version of the one created by Michaƫl Piron (@michaelpiron on GitHub)
4
5// Source: https://www.analog.com/media/en/technical-documentation/application-notes/AN-1127.pdf
6
7namespace esphome::ade7880 {
8
9// DSP Data Memory RAM registers
10constexpr uint16_t AIGAIN = 0x4380;
11constexpr uint16_t AVGAIN = 0x4381;
12constexpr uint16_t BIGAIN = 0x4382;
13constexpr uint16_t BVGAIN = 0x4383;
14constexpr uint16_t CIGAIN = 0x4384;
15constexpr uint16_t CVGAIN = 0x4385;
16constexpr uint16_t NIGAIN = 0x4386;
17
18constexpr uint16_t DICOEFF = 0x4388;
19
20constexpr uint16_t APGAIN = 0x4389;
21constexpr uint16_t AWATTOS = 0x438A;
22constexpr uint16_t BPGAIN = 0x438B;
23constexpr uint16_t BWATTOS = 0x438C;
24constexpr uint16_t CPGAIN = 0x438D;
25constexpr uint16_t CWATTOS = 0x438E;
26constexpr uint16_t AIRMSOS = 0x438F;
27constexpr uint16_t AVRMSOS = 0x4390;
28constexpr uint16_t BIRMSOS = 0x4391;
29constexpr uint16_t BVRMSOS = 0x4392;
30constexpr uint16_t CIRMSOS = 0x4393;
31constexpr uint16_t CVRMSOS = 0x4394;
32constexpr uint16_t NIRMSOS = 0x4395;
33constexpr uint16_t HPGAIN = 0x4398;
34constexpr uint16_t ISUMLVL = 0x4399;
35
36constexpr uint16_t VLEVEL = 0x439F;
37
38constexpr uint16_t AFWATTOS = 0x43A2;
39constexpr uint16_t BFWATTOS = 0x43A3;
40constexpr uint16_t CFWATTOS = 0x43A4;
41
42constexpr uint16_t AFVAROS = 0x43A5;
43constexpr uint16_t BFVAROS = 0x43A6;
44constexpr uint16_t CFVAROS = 0x43A7;
45
46constexpr uint16_t AFIRMSOS = 0x43A8;
47constexpr uint16_t BFIRMSOS = 0x43A9;
48constexpr uint16_t CFIRMSOS = 0x43AA;
49
50constexpr uint16_t AFVRMSOS = 0x43AB;
51constexpr uint16_t BFVRMSOS = 0x43AC;
52constexpr uint16_t CFVRMSOS = 0x43AD;
53
54constexpr uint16_t HXWATTOS = 0x43AE;
55constexpr uint16_t HYWATTOS = 0x43AF;
56constexpr uint16_t HZWATTOS = 0x43B0;
57constexpr uint16_t HXVAROS = 0x43B1;
58constexpr uint16_t HYVAROS = 0x43B2;
59constexpr uint16_t HZVAROS = 0x43B3;
60
61constexpr uint16_t HXIRMSOS = 0x43B4;
62constexpr uint16_t HYIRMSOS = 0x43B5;
63constexpr uint16_t HZIRMSOS = 0x43B6;
64constexpr uint16_t HXVRMSOS = 0x43B7;
65constexpr uint16_t HYVRMSOS = 0x43B8;
66constexpr uint16_t HZVRMSOS = 0x43B9;
67
68constexpr uint16_t AIRMS = 0x43C0;
69constexpr uint16_t AVRMS = 0x43C1;
70constexpr uint16_t BIRMS = 0x43C2;
71constexpr uint16_t BVRMS = 0x43C3;
72constexpr uint16_t CIRMS = 0x43C4;
73constexpr uint16_t CVRMS = 0x43C5;
74constexpr uint16_t NIRMS = 0x43C6;
75
76constexpr uint16_t ISUM = 0x43C7;
77
78// Internal DSP Memory RAM registers
79constexpr uint16_t RUN = 0xE228;
80
81constexpr uint16_t AWATTHR = 0xE400;
82constexpr uint16_t BWATTHR = 0xE401;
83constexpr uint16_t CWATTHR = 0xE402;
84constexpr uint16_t AFWATTHR = 0xE403;
85constexpr uint16_t BFWATTHR = 0xE404;
86constexpr uint16_t CFWATTHR = 0xE405;
87constexpr uint16_t ARWATTHR = 0xE406;
88constexpr uint16_t BRWATTHR = 0xE407;
89constexpr uint16_t CRWATTHR = 0xE408;
90constexpr uint16_t AFVARHR = 0xE409;
91constexpr uint16_t BFVARHR = 0xE40A;
92constexpr uint16_t CFVARHR = 0xE40B;
93
94constexpr uint16_t AVAHR = 0xE40C;
95constexpr uint16_t BVAHR = 0xE40D;
96constexpr uint16_t CVAHR = 0xE40E;
97
98constexpr uint16_t IPEAK = 0xE500;
99constexpr uint16_t VPEAK = 0xE501;
100
101constexpr uint16_t STATUS0 = 0xE502;
102constexpr uint16_t STATUS1 = 0xE503;
103
104constexpr uint16_t AIMAV = 0xE504;
105constexpr uint16_t BIMAV = 0xE505;
106constexpr uint16_t CIMAV = 0xE506;
107
108constexpr uint16_t OILVL = 0xE507;
109constexpr uint16_t OVLVL = 0xE508;
110constexpr uint16_t SAGLVL = 0xE509;
111constexpr uint16_t MASK0 = 0xE50A;
112constexpr uint16_t MASK1 = 0xE50B;
113
114constexpr uint16_t IAWV = 0xE50C;
115constexpr uint16_t IBWV = 0xE50D;
116constexpr uint16_t ICWV = 0xE50E;
117constexpr uint16_t INWV = 0xE50F;
118constexpr uint16_t VAWV = 0xE510;
119constexpr uint16_t VBWV = 0xE511;
120constexpr uint16_t VCWV = 0xE512;
121
122constexpr uint16_t AWATT = 0xE513;
123constexpr uint16_t BWATT = 0xE514;
124constexpr uint16_t CWATT = 0xE515;
125
126constexpr uint16_t AFVAR = 0xE516;
127constexpr uint16_t BFVAR = 0xE517;
128constexpr uint16_t CFVAR = 0xE518;
129
130constexpr uint16_t AVA = 0xE519;
131constexpr uint16_t BVA = 0xE51A;
132constexpr uint16_t CVA = 0xE51B;
133
134constexpr uint16_t CHECKSUM = 0xE51F;
135constexpr uint16_t VNOM = 0xE520;
136constexpr uint16_t LAST_RWDATA_24BIT = 0xE5FF;
137constexpr uint16_t PHSTATUS = 0xE600;
138constexpr uint16_t ANGLE0 = 0xE601;
139constexpr uint16_t ANGLE1 = 0xE602;
140constexpr uint16_t ANGLE2 = 0xE603;
141constexpr uint16_t PHNOLOAD = 0xE608;
142constexpr uint16_t LINECYC = 0xE60C;
143constexpr uint16_t ZXTOUT = 0xE60D;
144constexpr uint16_t COMPMODE = 0xE60E;
145constexpr uint16_t GAIN = 0xE60F;
146constexpr uint16_t CFMODE = 0xE610;
147constexpr uint16_t CF1DEN = 0xE611;
148constexpr uint16_t CF2DEN = 0xE612;
149constexpr uint16_t CF3DEN = 0xE613;
150constexpr uint16_t APHCAL = 0xE614;
151constexpr uint16_t BPHCAL = 0xE615;
152constexpr uint16_t CPHCAL = 0xE616;
153constexpr uint16_t PHSIGN = 0xE617;
154constexpr uint16_t CONFIG = 0xE618;
155constexpr uint16_t MMODE = 0xE700;
156constexpr uint16_t ACCMODE = 0xE701;
157constexpr uint16_t LCYCMODE = 0xE702;
158constexpr uint16_t PEAKCYC = 0xE703;
159constexpr uint16_t SAGCYC = 0xE704;
160constexpr uint16_t CFCYC = 0xE705;
161constexpr uint16_t HSDC_CFG = 0xE706;
162constexpr uint16_t VERSION = 0xE707;
163constexpr uint16_t DSPWP_SET = 0xE7E3;
164constexpr uint16_t LAST_RWDATA_8BIT = 0xE7FD;
165constexpr uint16_t DSPWP_SEL = 0xE7FE;
166constexpr uint16_t FVRMS = 0xE880;
167constexpr uint16_t FIRMS = 0xE881;
168constexpr uint16_t FWATT = 0xE882;
169constexpr uint16_t FVAR = 0xE883;
170constexpr uint16_t FVA = 0xE884;
171constexpr uint16_t FPF = 0xE885;
172constexpr uint16_t VTHDN = 0xE886;
173constexpr uint16_t ITHDN = 0xE887;
174constexpr uint16_t HXVRMS = 0xE888;
175constexpr uint16_t HXIRMS = 0xE889;
176constexpr uint16_t HXWATT = 0xE88A;
177constexpr uint16_t HXVAR = 0xE88B;
178constexpr uint16_t HXVA = 0xE88C;
179constexpr uint16_t HXPF = 0xE88D;
180constexpr uint16_t HXVHD = 0xE88E;
181constexpr uint16_t HXIHD = 0xE88F;
182constexpr uint16_t HYVRMS = 0xE890;
183constexpr uint16_t HYIRMS = 0xE891;
184constexpr uint16_t HYWATT = 0xE892;
185constexpr uint16_t HYVAR = 0xE893;
186constexpr uint16_t HYVA = 0xE894;
187constexpr uint16_t HYPF = 0xE895;
188constexpr uint16_t HYVHD = 0xE896;
189constexpr uint16_t HYIHD = 0xE897;
190constexpr uint16_t HZVRMS = 0xE898;
191constexpr uint16_t HZIRMS = 0xE899;
192constexpr uint16_t HZWATT = 0xE89A;
193constexpr uint16_t HZVAR = 0xE89B;
194constexpr uint16_t HZVA = 0xE89C;
195constexpr uint16_t HZPF = 0xE89D;
196constexpr uint16_t HZVHD = 0xE89E;
197constexpr uint16_t HZIHD = 0xE89F;
198constexpr uint16_t HCONFIG = 0xE900;
199constexpr uint16_t APF = 0xE902;
200constexpr uint16_t BPF = 0xE903;
201constexpr uint16_t CPF = 0xE904;
202constexpr uint16_t APERIOD = 0xE905;
203constexpr uint16_t BPERIOD = 0xE906;
204constexpr uint16_t CPERIOD = 0xE907;
205constexpr uint16_t APNOLOAD = 0xE908;
206constexpr uint16_t VARNOLOAD = 0xE909;
207constexpr uint16_t VANOLOAD = 0xE90A;
208constexpr uint16_t LAST_ADD = 0xE9FE;
209constexpr uint16_t LAST_RWDATA_16BIT = 0xE9FF;
210constexpr uint16_t CONFIG3 = 0xEA00;
211constexpr uint16_t LAST_OP = 0xEA01;
212constexpr uint16_t WTHR = 0xEA02;
213constexpr uint16_t VARTHR = 0xEA03;
214constexpr uint16_t VATHR = 0xEA04;
215
216constexpr uint16_t HX_REG = 0xEA08;
217constexpr uint16_t HY_REG = 0xEA09;
218constexpr uint16_t HZ_REG = 0xEA0A;
219constexpr uint16_t LPOILVL = 0xEC00;
220constexpr uint16_t CONFIG2 = 0xEC01;
221
222// STATUS1 Register Bits
223constexpr uint32_t STATUS1_RSTDONE = (1 << 15);
224
225// CONFIG Register Bits
226constexpr uint16_t CONFIG_SWRST = (1 << 7);
227
228// CONFIG2 Register Bits
229constexpr uint8_t CONFIG2_I2C_LOCK = (1 << 1);
230
231// COMPMODE Register Bits
232constexpr uint16_t COMPMODE_DEFAULT = 0x01FF;
233constexpr uint16_t COMPMODE_SELFREQ = (1 << 14);
234
235// RUN Register Bits
236constexpr uint16_t RUN_ENABLE = (1 << 0);
237
238// DSPWP_SET Register Bits
239constexpr uint8_t DSPWP_SET_RO = (1 << 7);
240
241// DSPWP_SEL Register Bits
242constexpr uint8_t DSPWP_SEL_SET = 0xAD;
243
244} // namespace esphome::ade7880
constexpr uint16_t LCYCMODE
constexpr uint16_t CIRMS
constexpr uint16_t HXWATTOS
constexpr uint16_t PHSIGN
constexpr uint16_t HYVAROS
constexpr uint16_t ISUMLVL
constexpr uint16_t SAGLVL
constexpr uint16_t APGAIN
constexpr uint16_t CIGAIN
constexpr uint16_t LAST_RWDATA_16BIT
constexpr uint16_t BVRMSOS
constexpr uint16_t CWATT
constexpr uint16_t AIMAV
constexpr uint16_t HSDC_CFG
constexpr uint16_t NIRMSOS
constexpr uint16_t HXVAR
constexpr uint16_t ANGLE0
constexpr uint16_t HYIHD
constexpr uint16_t CFIRMSOS
constexpr uint16_t AIGAIN
constexpr uint16_t DSPWP_SEL
constexpr uint16_t HZVAROS
constexpr uint16_t CVRMSOS
constexpr uint16_t IAWV
constexpr uint16_t BPERIOD
constexpr uint16_t AWATT
constexpr uint16_t APERIOD
constexpr uint16_t CWATTOS
constexpr uint16_t BFVAR
constexpr uint16_t CPHCAL
constexpr uint16_t GAIN
constexpr uint16_t MASK1
constexpr uint16_t HYVHD
constexpr uint16_t CF2DEN
constexpr uint16_t HZIHD
constexpr uint16_t FPF
constexpr uint16_t CHECKSUM
constexpr uint16_t BWATTHR
constexpr uint16_t HXIRMS
constexpr uint8_t DSPWP_SEL_SET
constexpr uint16_t APHCAL
constexpr uint16_t CFVAR
constexpr uint16_t HXVAROS
constexpr uint16_t BPHCAL
constexpr uint16_t LAST_RWDATA_24BIT
constexpr uint16_t VLEVEL
constexpr uint16_t HXVRMS
constexpr uint16_t HZVA
constexpr uint16_t BIMAV
constexpr uint16_t HZWATTOS
constexpr uint16_t AFWATTOS
constexpr uint16_t ICWV
constexpr uint16_t CIRMSOS
constexpr uint16_t BFVRMSOS
constexpr uint16_t AWATTOS
constexpr uint16_t AFWATTHR
constexpr uint16_t AVGAIN
constexpr uint16_t AVAHR
constexpr uint16_t BFVARHR
constexpr uint16_t HZVRMS
constexpr uint16_t ITHDN
constexpr uint16_t NIGAIN
constexpr uint16_t BVA
constexpr uint16_t BFWATTOS
constexpr uint16_t AFIRMSOS
constexpr uint16_t AFVARHR
constexpr uint16_t APF
constexpr uint16_t ANGLE1
constexpr uint16_t LPOILVL
constexpr uint16_t VBWV
constexpr uint16_t FVA
constexpr uint16_t LAST_RWDATA_8BIT
constexpr uint16_t CFVARHR
constexpr uint8_t DSPWP_SET_RO
constexpr uint16_t HYIRMS
constexpr uint16_t LINECYC
constexpr uint16_t HYVA
constexpr uint16_t INWV
constexpr uint16_t CFCYC
constexpr uint16_t AIRMS
constexpr uint16_t HZ_REG
constexpr uint16_t HYWATT
constexpr uint16_t BVGAIN
constexpr uint16_t HXVHD
constexpr uint16_t CVRMS
constexpr uint16_t PHNOLOAD
constexpr uint16_t HZVHD
constexpr uint16_t HZVRMSOS
constexpr uint16_t CIMAV
constexpr uint16_t BWATT
constexpr uint16_t VATHR
constexpr uint16_t LAST_ADD
constexpr uint16_t WTHR
constexpr uint16_t HZPF
constexpr uint16_t VARTHR
constexpr uint16_t APNOLOAD
constexpr uint16_t BVRMS
constexpr uint16_t NIRMS
constexpr uint16_t OVLVL
constexpr uint16_t RUN_ENABLE
constexpr uint16_t FVRMS
constexpr uint16_t OILVL
constexpr uint16_t HZWATT
constexpr uint16_t MMODE
constexpr uint16_t CFWATTHR
constexpr uint16_t BPGAIN
constexpr uint16_t FIRMS
constexpr uint16_t HXVA
constexpr uint16_t CONFIG3
constexpr uint16_t CF3DEN
constexpr uint16_t HYVRMSOS
constexpr uint16_t PHSTATUS
constexpr uint16_t BVAHR
constexpr uint16_t HXVRMSOS
constexpr uint16_t CVA
constexpr uint16_t HX_REG
constexpr uint16_t HZIRMS
constexpr uint16_t BIGAIN
constexpr uint16_t LAST_OP
constexpr uint16_t CONFIG
constexpr uint16_t FWATT
constexpr uint16_t AFVAROS
constexpr uint16_t HY_REG
constexpr uint16_t CONFIG_SWRST
constexpr uint16_t VERSION
constexpr uint16_t AVA
constexpr uint16_t CPERIOD
constexpr uint16_t RUN
constexpr uint16_t HYIRMSOS
constexpr uint16_t HXIHD
constexpr uint16_t CONFIG2
constexpr uint16_t BIRMS
constexpr uint16_t BFVAROS
constexpr uint16_t HYVAR
constexpr uint16_t AVRMSOS
constexpr uint16_t BIRMSOS
constexpr uint16_t STATUS0
constexpr uint16_t HCONFIG
constexpr uint16_t HXWATT
constexpr uint16_t HYWATTOS
constexpr uint16_t HYPF
constexpr uint16_t CFWATTOS
constexpr uint16_t FVAR
constexpr uint16_t IPEAK
constexpr uint16_t VAWV
constexpr uint16_t CPF
constexpr uint16_t VTHDN
constexpr uint16_t VANOLOAD
constexpr uint16_t BPF
constexpr uint16_t VNOM
constexpr uint16_t AFVAR
constexpr uint16_t CF1DEN
constexpr uint16_t CVAHR
constexpr uint16_t COMPMODE
constexpr uint16_t VCWV
constexpr uint16_t MASK0
constexpr uint16_t VARNOLOAD
constexpr uint16_t BRWATTHR
constexpr uint16_t ISUM
constexpr uint16_t HZVAR
constexpr uint16_t CWATTHR
constexpr uint16_t HXPF
constexpr uint8_t CONFIG2_I2C_LOCK
constexpr uint16_t COMPMODE_SELFREQ
constexpr uint16_t ARWATTHR
constexpr uint16_t HPGAIN
constexpr uint16_t CFVRMSOS
constexpr uint16_t BFIRMSOS
constexpr uint16_t AIRMSOS
constexpr uint16_t HZIRMSOS
constexpr uint16_t CFVAROS
constexpr uint16_t BFWATTHR
constexpr uint16_t HXIRMSOS
constexpr uint16_t SAGCYC
constexpr uint16_t DSPWP_SET
constexpr uint16_t CFMODE
constexpr uint16_t CVGAIN
constexpr uint16_t HYVRMS
constexpr uint16_t PEAKCYC
constexpr uint16_t AFVRMSOS
constexpr uint16_t AVRMS
constexpr uint16_t COMPMODE_DEFAULT
constexpr uint16_t ACCMODE
constexpr uint16_t BWATTOS
constexpr uint16_t AWATTHR
constexpr uint16_t STATUS1
constexpr uint16_t IBWV
constexpr uint16_t ZXTOUT
constexpr uint16_t DICOEFF
constexpr uint16_t CPGAIN
constexpr uint16_t ANGLE2
constexpr uint16_t CRWATTHR
constexpr uint32_t STATUS1_RSTDONE
constexpr uint16_t VPEAK
static void uint32_t