161 #include "WProgram.h" 215 #ifndef INA_I2C_MODES // I2C related constants 216 #define INA_I2C_MODES 217 const uint32_t INA_I2C_STANDARD_MODE{100000}; 218 const uint32_t INA_I2C_FAST_MODE{400000}; 219 const uint32_t INA_I2C_FAST_MODE_PLUS{1000000}; 220 const uint32_t INA_I2C_HIGH_SPEED_MODE{3400000}; 294 void setMode(
const uint8_t mode,
const uint8_t
deviceNumber = UINT8_MAX);
295 void setAveraging(
const uint16_t averages,
const uint8_t
deviceNumber = UINT8_MAX);
296 void setBusConversion(
const uint32_t convTime,
const uint8_t
deviceNumber = UINT8_MAX);
297 void setShuntConversion(
const uint32_t convTime,
const uint8_t
deviceNumber = UINT8_MAX);
298 uint16_t getBusMilliVolts(
const uint8_t
deviceNumber = 0);
300 int32_t getShuntMicroVolts(
const uint8_t
deviceNumber = 0);
302 int32_t getBusMicroAmps(
const uint8_t
deviceNumber = 0);
303 int64_t getBusMicroWatts(
const uint8_t
deviceNumber = 0);
304 const char* getDeviceName(
const uint8_t
deviceNumber = 0);
305 uint8_t getDeviceAddress(
const uint8_t
deviceNumber = 0);
307 bool conversionFinished(
const uint8_t
deviceNumber = 0);
308 void waitForConversion(
const uint8_t
deviceNumber = UINT8_MAX);
309 bool alertOnConversion(
const bool alertState,
const uint8_t
deviceNumber = UINT8_MAX);
310 bool alertOnShuntOverVoltage(
const bool alertState,
const int32_t milliVolts,
312 bool alertOnShuntUnderVoltage(
const bool alertState,
const int32_t milliVolts,
314 bool alertOnBusOverVoltage(
const bool alertState,
const int32_t milliVolts,
316 bool alertOnBusUnderVoltage(
const bool alertState,
const int32_t milliVolts,
318 bool alertOnPowerOverLimit(
const bool alertState,
const int32_t milliAmps,
320 uint16_t _EEPROM_offset = 0;
321 #if defined(ESP32) || defined(ESP8266) 322 uint16_t _EEPROM_size = 512;
325 int16_t readWord(
const uint8_t addr,
const uint8_t deviceAddress)
const;
326 int32_t read3Bytes(
const uint8_t addr,
const uint8_t deviceAddress)
const;
327 void writeWord(
const uint8_t addr,
const uint16_t data,
const uint8_t deviceAddress)
const;
331 uint8_t _DeviceCount{0};
332 uint8_t _currentINA{UINT8_MAX};
333 uint8_t _expectedDevices{0};
337 #if defined(__AVR__) || defined(CORE_TEENSY) || defined(ESP32) || defined(ESP8266) || \ const uint16_t INA226_CONFIG_BADC_MASK
INA226 Bits 6-8 masked.
Definition: INA.h:257
uint8_t type
0-15 see enumerated "ina_Type" for details
Definition: INA.h:169
uint32_t maxBusAmps
0-1023 Store initialization value
Definition: INA.h:172
const uint16_t INA_RESET_DEVICE
Write to config to reset device.
Definition: INA.h:230
const uint8_t INA_ALERT_CONVERSION_RDY_BIT
Register bit.
Definition: INA.h:239
const uint8_t INA_ALERT_BUS_UNDER_VOLT_BIT
Register bit.
Definition: INA.h:237
const uint16_t INA260_CONFIG_SADC_MASK
INA260 Bits 3-5 masked.
Definition: INA.h:274
const uint16_t xINA228_CONFIG_SADC_MASK
INA228 Bits 3-4.
Definition: INA.h:268
Continuous shunt, no bus.
Definition: INA.h:208
const uint16_t INA228_BUS_VOLTAGE_LSB
INA228 LSB in uV *100 1953125uV, extra code.
Definition: INA.h:263
uint8_t operatingMode
0-15 Default to continuous mode
Definition: INA.h:170
const uint16_t INA226_SHUNT_VOLTAGE_LSB
INA226 LSB in uV *10 2.5uV.
Definition: INA.h:254
const uint16_t INA260_BUS_VOLTAGE_LSB
INA260 LSB in uV *100 1.25mV.
Definition: INA.h:272
const uint8_t INA_MASK_ENABLE_REGISTER
Mask enable Register (some devices)
Definition: INA.h:226
const uint8_t INA_MANUFACTURER_ID_REGISTER
Mfgr ID Register (some devices)
Definition: INA.h:228
Device powered down.
Definition: INA.h:203
const uint8_t INA228_SHUNT_VOLTAGE_REGISTER
INA228 Shunt Voltage Register.
Definition: INA.h:264
const uint8_t INA228_DIE_ID_REGISTER
INA228 Device_ID Register.
Definition: INA.h:260
const uint16_t INA226_CONFIG_AVG_MASK
INA226 Bits 9-11.
Definition: INA.h:255
const uint8_t INA219_BRNG_BIT
INA219 Bit for BRNG in config reg.
Definition: INA.h:249
uint8_t busVoltageRegister
0- 7, Bus Voltage Register
Definition: INA.h:177
uint32_t microOhmR
0-1,048,575 Store initialization value
Definition: INA.h:173
const uint8_t INA228_BUS_VOLTAGE_REGISTER
INA228 Bus Voltage Register.
Definition: INA.h:262
const uint16_t INA3221_SHUNT_VOLTAGE_LSB
INA3221 LSB in uV *10 40uV.
Definition: INA.h:277
uint8_t currentRegister
0- 7, Current Register
Definition: INA.h:179
inaDet()
struct constructor
Definition: INA.cpp:16
Continuous bus, no shunt.
Definition: INA.h:209
Both continuous, default value.
Definition: INA.h:210
const uint16_t INA226_DIE_ID_VALUE
INA226 Hard-coded Die ID for INA226.
Definition: INA.h:256
const uint16_t INA_ALERT_MASK
Mask off bits 0-9.
Definition: INA.h:233
const uint16_t INA219_CONFIG_BADC_MASK
INA219 Bits 7-10 masked.
Definition: INA.h:247
const uint16_t INA226_BUS_VOLTAGE_LSB
INA226 LSB in uV *100 1.25mV.
Definition: INA.h:253
const uint8_t INA_ALERT_POWER_OVER_WATT_BIT
Register bit.
Definition: INA.h:238
Triggered bus and shunt.
Definition: INA.h:206
const uint16_t INA219_CONFIG_SADC_MASK
INA219 Bits 3-5.
Definition: INA.h:248
const uint16_t INA3221_CONFIG_BADC_MASK
INA3221 Bits 7-10 masked.
Definition: INA.h:278
const uint8_t INA226_SHUNT_VOLTAGE_REGISTER
INA226 Shunt Voltage Register.
Definition: INA.h:251
const uint8_t INA_ALERT_SHUNT_UNDER_VOLT_BIT
Register bit.
Definition: INA.h:235
ina_Mode
Definition: INA.h:202
const uint8_t INA_POWER_REGISTER
Power Register address.
Definition: INA.h:224
Triggered shunt, no bus.
Definition: INA.h:204
const uint16_t INA219_CONFIG_PG_MASK
INA219 Bits 11-12 masked.
Definition: INA.h:246
const uint8_t INA260_CURRENT_REGISTER
INA260 Current Register.
Definition: INA.h:271
const uint16_t xINA228_CONFIG_BADC_MASK
INA228 Bits 6-8 masked.
Definition: INA.h:267
uint32_t address
0-127 I2C Address of device
Definition: INA.h:171
const uint8_t INA219_PG_FIRST_BIT
INA219 1st bit of Programmable Gain.
Definition: INA.h:250
const uint8_t INA_DIE_ID_REGISTER
Die ID Register (some devices)
Definition: INA.h:229
Forward definitions for the INA_Class.
Definition: INA.h:283
const uint8_t INA219_CURRENT_REGISTER
INA219 Current Register.
Definition: INA.h:242
uint16_t shuntVoltage_LSB
Device dependent LSB factor.
Definition: INA.h:180
const uint16_t INA226_CONFIG_SADC_MASK
INA226 Bits 3-4.
Definition: INA.h:258
volatile uint8_t deviceNumber
Device Number to use in example.
Definition: BackgroundRead.ino:94
const uint8_t INA_CONFIGURATION_REGISTER
Configuration Register address.
Definition: INA.h:222
const uint8_t INA_BUS_VOLTAGE_REGISTER
Bus Voltage Register address.
Definition: INA.h:223
const uint8_t INA3221_MASK_REGISTER
INA32219 Mask register.
Definition: INA.h:279
Triggered bus, no shunt.
Definition: INA.h:205
uint32_t power_LSB
Wattage LSB.
Definition: INA.h:183
const uint16_t xINA228_CONFIG_AVG_MASK
INA228 Bits 9-11.
Definition: INA.h:266
const uint8_t INA219_SHUNT_VOLTAGE_REGISTER
INA219 Shunt Voltage Register.
Definition: INA.h:241
const uint8_t INA260_SHUNT_VOLTAGE_REGISTER
INA260 Register doesn't exist.
Definition: INA.h:270
const uint8_t INA_DEFAULT_OPERATING_MODE
Default continuous mode.
Definition: INA.h:240
ina_Type
Definition: INA.h:189
const uint16_t INA219_BUS_VOLTAGE_LSB
INA219 LSB in uV *100 4.00mV.
Definition: INA.h:243
const uint8_t I2C_DELAY
Microsecond delay on I2C writes.
Definition: INA.h:280
const uint16_t INA219_SHUNT_VOLTAGE_LSB
INA219 LSB in uV *10 10.0uV.
Definition: INA.h:244
const uint8_t xINA228_CURRENT_REGISTER
INA228 Current Register.
Definition: INA.h:265
const uint8_t INA_ALERT_LIMIT_REGISTER
Alert Limit Register (some devices)
Definition: INA.h:227
const uint16_t INA_CONVERSION_READY_MASK
Bit 4.
Definition: INA.h:231
const uint16_t INA228_DIE_ID_VALUE
INA228 Hard-coded Die ID for INA228.
Definition: INA.h:261
const uint8_t INA_ALERT_SHUNT_OVER_VOLT_BIT
Register bit.
Definition: INA.h:234
uint8_t shuntVoltageRegister
0- 7, Shunt Voltage Register
Definition: INA.h:178
const uint8_t INA_ALERT_BUS_OVER_VOLT_BIT
Register bit.
Definition: INA.h:236
uint32_t current_LSB
Amperage LSB.
Definition: INA.h:182
const uint8_t INA_CALIBRATION_REGISTER
Calibration Register address.
Definition: INA.h:225
const uint8_t INA226_CURRENT_REGISTER
INA226 Current Register.
Definition: INA.h:252
const uint16_t INA260_CONFIG_BADC_MASK
INA260 Bits 6-8 masked.
Definition: INA.h:273
shutdown or power-down
Definition: INA.h:207
const uint32_t INA_I2C_STANDARD_MODE
Default normal I2C 100KHz speed.
Definition: INA.h:217
uint16_t busVoltage_LSB
Device dependent LSB factor.
Definition: INA.h:181
const uint16_t INA_CONFIG_MODE_MASK
Bits 0-3.
Definition: INA.h:232
const uint16_t INA219_CONFIG_AVG_MASK
INA219 Bits 3-6, 7-10.
Definition: INA.h:245
const uint8_t INA3221_SHUNT_VOLTAGE_REGISTER
INA3221 Register number 1.
Definition: INA.h:275
const uint16_t INA3221_BUS_VOLTAGE_LSB
INA3221 LSB in uV *100 8mV.
Definition: INA.h:276