-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhlw811x_regs.h
94 lines (89 loc) · 2.9 KB
/
hlw811x_regs.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
/*
* SPDX-FileCopyrightText: 2024 Kyunghwan Kwon <[email protected]>
*
* SPDX-License-Identifier: MIT
*/
#ifndef HLW811X_REGS_H
#define HLW811X_REGS_H
#if defined(__cplusplus)
extern "C" {
#endif
typedef enum {
/* Calibration Parameters and Metering Control Registers */
HLW811X_REG_SYS_CTRL = 0x00u,
HLW811X_REG_METER_CTRL = 0x01u,
HLW811X_REG_PULSE_FREQ = 0x02u,
HLW811X_REG_PASTART = 0x03u,
HLW811X_REG_PBSTART = 0x04u,
HLW811X_REG_POWER_GAIN_A = 0x05u,
HLW811X_REG_POWER_GAIN_B = 0x06u,
HLW811X_REG_PHASE_A = 0x07u,
HLW811X_REG_PHASE_B = 0x08u,
HLW811X_REG_ACTIVE_POWER_OFFSET_A = 0x0Au,
HLW811X_REG_ACTIVE_POWER_OFFSET_B = 0x0Bu,
HLW811X_REG_RMS_OFFSET_IA = 0x0Eu,
HLW811X_REG_RMS_OFFSET_IB = 0x0Fu,
HLW811X_REG_GAIN_IB = 0x10u,
HLW811X_REG_APPARENT_POWER_GAIN = 0x11u,
HLW811X_REG_VISUAL_POWER_OFFSET = 0x12u,
HLW811X_REG_METER_CTRL_2 = 0x13u,
HLW811X_REG_DC_OFFSET_IA = 0x14u,
HLW811X_REG_DC_OFFSET_IB = 0x15u,
HLW811X_REG_DC_OFFSET_IC = 0x16u,
HLW811X_REG_PERIOD_VOL_SAG = 0x17u,
HLW811X_REG_THRESHOLD_VOL_SAG = 0x18u,
HLW811X_REG_THRESHOLD_VOL = 0x19u,
HLW811X_REG_THRESHOLD_IA = 0x1Au,
HLW811X_REG_THRESHOLD_IB = 0x1Bu,
HLW811X_REG_THRESHOLD_ACTIVE_POWER_OVERLOAD = 0x1Cu,
HLW811X_REG_INT = 0x1Du,
/* Meter Parameters and Status Registers */
HLW811X_REG_PFCNTPA = 0x20u,
HLW811X_REG_PFCNTPB = 0x21u,
HLW811X_REG_ANGLE = 0x22u,
HLW811X_REG_FREQUENCY_L_LINE = 0x23u,
HLW811X_REG_RMS_IA = 0x24u,
HLW811X_REG_RMS_IB = 0x25u,
HLW811X_REG_RMS_U = 0x26u,
HLW811X_REG_POWER_FACTOR = 0x27u,
HLW811X_REG_ENERGY_PA = 0x28u,
HLW811X_REG_ENERGY_PB = 0x29u,
HLW811X_REG_POWER_PA = 0x2Cu,
HLW811X_REG_POWER_PB = 0x2Du,
HLW811X_REG_POWER_S = 0x2Eu,
HLW811X_REG_METER_STATUS = 0x2Fu,
HLW811X_REG_PEAK_IA = 0x30u,
HLW811X_REG_PEAK_IB = 0x31u,
HLW811X_REG_PEAK_U = 0x32u,
HLW811X_REG_INSTAN_IA = 0x33u,
HLW811X_REG_INSTAN_IB = 0x34u,
HLW811X_REG_INSTAN_U = 0x35u,
HLW811X_REG_WAVE_IA = 0x36u,
HLW811X_REG_WAVE_IB = 0x37u,
HLW811X_REG_WAVE_U = 0x38u,
HLW811X_REG_INSTAN_P = 0x3Cu,
HLW811X_REG_INSTAN_S = 0x3Du,
/* Interrupt Registers */
HLW811X_REG_IE = 0x40u,
HLW811X_REG_IF = 0x41u,
HLW811X_REG_RIF = 0x42u,
/* System Status Registers */
HLW811X_REG_SYS_STATUS = 0x43u,
HLW811X_REG_SPI_LATEST_DATA_R = 0x44u,
HLW811X_REG_SPI_LATEST_DATA_W = 0x45u,
HLW811X_REG_COEFF_CHKSUM = 0x6Fu,
HLW811X_REG_RMS_IA_COEFF = 0x70u,
HLW811X_REG_RMS_IB_COEFF = 0x71u,
HLW811X_REG_RMS_U_COEFF = 0x72u,
HLW811X_REG_POWER_A_COEFF = 0x73u,
HLW811X_REG_POWER_B_COEFF = 0x74u,
HLW811X_REG_POWER_S_COEFF = 0x75u,
HLW811X_REG_ENERGY_A_COEFF = 0x76u,
HLW811X_REG_ENERGY_B_COEFF = 0x77u,
/* Command Register. Always 0xEA as write-only */
HLW811X_REG_COMMAND = 0x6Au,
} hlw811x_reg_addr_t;
#if defined(__cplusplus)
}
#endif
#endif /* HLW811X_REGS_H */