@@ -38,88 +38,83 @@ SOFTWARE.
3838
3939#define INA226_ADDRESS (0x40 )
4040
41- #define INA226_REG_CONFIG (0x00 )
41+ #define INA226_REG_CONFIG (0x00 )
4242#define INA226_REG_SHUNTVOLTAGE (0x01 )
43- #define INA226_REG_BUSVOLTAGE (0x02 )
44- #define INA226_REG_POWER (0x03 )
45- #define INA226_REG_CURRENT (0x04 )
46- #define INA226_REG_CALIBRATION (0x05 )
47- #define INA226_REG_MASKENABLE (0x06 )
48- #define INA226_REG_ALERTLIMIT (0x07 )
49-
50- #define INA226_BIT_SOL (0x8000 )
51- #define INA226_BIT_SUL (0x4000 )
52- #define INA226_BIT_BOL (0x2000 )
53- #define INA226_BIT_BUL (0x1000 )
54- #define INA226_BIT_POL (0x0800 )
43+ #define INA226_REG_BUSVOLTAGE (0x02 )
44+ #define INA226_REG_POWER (0x03 )
45+ #define INA226_REG_CURRENT (0x04 )
46+ #define INA226_REG_CALIBRATION (0x05 )
47+ #define INA226_REG_MASKENABLE (0x06 )
48+ #define INA226_REG_ALERTLIMIT (0x07 )
49+
50+ #define INA226_BIT_SOL (0x8000 )
51+ #define INA226_BIT_SUL (0x4000 )
52+ #define INA226_BIT_BOL (0x2000 )
53+ #define INA226_BIT_BUL (0x1000 )
54+ #define INA226_BIT_POL (0x0800 )
5555#define INA226_BIT_CNVR (0x0400 )
56- #define INA226_BIT_AFF (0x0010 )
56+ #define INA226_BIT_AFF (0x0010 )
5757#define INA226_BIT_CVRF (0x0008 )
58- #define INA226_BIT_OVF (0x0004 )
58+ #define INA226_BIT_OVF (0x0004 )
5959#define INA226_BIT_APOL (0x0002 )
60- #define INA226_BIT_LEN (0x0001 )
61-
62- typedef enum
63- {
64- INA226_AVERAGES_1 = 0b000 ,
65- INA226_AVERAGES_4 = 0b001 ,
66- INA226_AVERAGES_16 = 0b010 ,
67- INA226_AVERAGES_64 = 0b011 ,
68- INA226_AVERAGES_128 = 0b100 ,
69- INA226_AVERAGES_256 = 0b101 ,
70- INA226_AVERAGES_512 = 0b110 ,
60+ #define INA226_BIT_LEN (0x0001 )
61+
62+ typedef enum {
63+ INA226_AVERAGES_1 = 0b000 ,
64+ INA226_AVERAGES_4 = 0b001 ,
65+ INA226_AVERAGES_16 = 0b010 ,
66+ INA226_AVERAGES_64 = 0b011 ,
67+ INA226_AVERAGES_128 = 0b100 ,
68+ INA226_AVERAGES_256 = 0b101 ,
69+ INA226_AVERAGES_512 = 0b110 ,
7170 INA226_AVERAGES_1024 = 0b111
7271} ina226_averages_t ;
7372
74- typedef enum
75- {
76- INA226_BUS_CONV_TIME_140US = 0b000 ,
77- INA226_BUS_CONV_TIME_204US = 0b001 ,
78- INA226_BUS_CONV_TIME_332US = 0b010 ,
79- INA226_BUS_CONV_TIME_588US = 0b011 ,
73+ typedef enum {
74+ INA226_BUS_CONV_TIME_140US = 0b000 ,
75+ INA226_BUS_CONV_TIME_204US = 0b001 ,
76+ INA226_BUS_CONV_TIME_332US = 0b010 ,
77+ INA226_BUS_CONV_TIME_588US = 0b011 ,
8078 INA226_BUS_CONV_TIME_1100US = 0b100 ,
8179 INA226_BUS_CONV_TIME_2116US = 0b101 ,
8280 INA226_BUS_CONV_TIME_4156US = 0b110 ,
8381 INA226_BUS_CONV_TIME_8244US = 0b111
8482} ina226_busConvTime_t;
8583
86- typedef enum
87- {
88- INA226_SHUNT_CONV_TIME_140US = 0b000 ,
89- INA226_SHUNT_CONV_TIME_204US = 0b001 ,
90- INA226_SHUNT_CONV_TIME_332US = 0b010 ,
91- INA226_SHUNT_CONV_TIME_588US = 0b011 ,
84+ typedef enum {
85+ INA226_SHUNT_CONV_TIME_140US = 0b000 ,
86+ INA226_SHUNT_CONV_TIME_204US = 0b001 ,
87+ INA226_SHUNT_CONV_TIME_332US = 0b010 ,
88+ INA226_SHUNT_CONV_TIME_588US = 0b011 ,
9289 INA226_SHUNT_CONV_TIME_1100US = 0b100 ,
9390 INA226_SHUNT_CONV_TIME_2116US = 0b101 ,
9491 INA226_SHUNT_CONV_TIME_4156US = 0b110 ,
9592 INA226_SHUNT_CONV_TIME_8244US = 0b111
9693} ina226_shuntConvTime_t;
9794
98- typedef enum
99- {
100- INA226_MODE_POWER_DOWN = 0b000 ,
101- INA226_MODE_SHUNT_TRIG = 0b001 ,
102- INA226_MODE_BUS_TRIG = 0b010 ,
95+ typedef enum {
96+ INA226_MODE_POWER_DOWN = 0b000 ,
97+ INA226_MODE_SHUNT_TRIG = 0b001 ,
98+ INA226_MODE_BUS_TRIG = 0b010 ,
10399 INA226_MODE_SHUNT_BUS_TRIG = 0b011 ,
104- INA226_MODE_ADC_OFF = 0b100 ,
105- INA226_MODE_SHUNT_CONT = 0b101 ,
106- INA226_MODE_BUS_CONT = 0b110 ,
100+ INA226_MODE_ADC_OFF = 0b100 ,
101+ INA226_MODE_SHUNT_CONT = 0b101 ,
102+ INA226_MODE_BUS_CONT = 0b110 ,
107103 INA226_MODE_SHUNT_BUS_CONT = 0b111 ,
108104} ina226_mode_t ;
109105
110- class INA226_Class : public m5 ::I2C_Device
111- {
106+ class INA226_Class : public m5 ::I2C_Device {
112107public:
113108 INA226_Class (std::uint8_t i2c_addr = INA226_ADDRESS, std::uint32_t freq = 400000 , m5::I2C_Class* i2c = &m5::In_I2C)
114109 : I2C_Device(i2c_addr, freq, i2c)
115110 {
116111 }
117112
118113 bool begin ();
119- bool configure (ina226_averages_t avg = INA226_AVERAGES_1,
120- ina226_busConvTime_t busConvTime = INA226_BUS_CONV_TIME_1100US,
114+ bool configure (ina226_averages_t avg = INA226_AVERAGES_1,
115+ ina226_busConvTime_t busConvTime = INA226_BUS_CONV_TIME_1100US,
121116 ina226_shuntConvTime_t shuntConvTime = INA226_SHUNT_CONV_TIME_1100US,
122- ina226_mode_t mode = INA226_MODE_SHUNT_BUS_CONT);
117+ ina226_mode_t mode = INA226_MODE_SHUNT_BUS_CONT);
123118 bool calibrate (float rShuntValue = 0.1 , float iMaxExcepted = 2 );
124119
125120 ina226_averages_t getAverages (void );
0 commit comments