52 sfTkError_t
calibrate(
float shuntResOhms,
float maxCurrentA)
73 return busVoltageToVolts<uint16_t, false>(volts,
kBusLSB);
82 return currentToAmps<int16_t, false>(amps);
111 return readSignedMeasurementRaw<int16_t, false>(
kRegVShunt, value);
119 return readUnsignedMeasurementRaw<uint16_t, false>(
kRegVBus, value);
127 return readSignedMeasurementRaw<int16_t, false>(
kRegCurrent, value);
INA237 power monitor driver (also covers the register-compatible INA238).
Definition: sfDevINA237.h:37
sfTkError_t calibrate(float shuntResOhms, float maxCurrentA)
Calibrate the device for current and power measurements.
Definition: sfDevINA237.h:52
static constexpr uint8_t kDieTempShift
DIETEMP data is a 12-bit value in [15:4].
Definition: sfDevINA237.h:147
sfTkError_t getBusVoltage_V(float &volts)
Read the bus voltage in Volts (16-bit VBUS, 3.125 mV/LSB).
Definition: sfDevINA237.h:71
static constexpr float kTempLSB
Die temperature LSB in deg-C.
Definition: sfDevINA237.h:144
static constexpr float kShuntLSBDefault
Shunt LSB in volts (ADCRANGE = 0).
Definition: sfDevINA237.h:141
sfTkError_t getBusVoltageRaw(uint16_t &value)
Read the raw 16-bit bus voltage value.
Definition: sfDevINA237.h:117
static constexpr float kBusLSB
Bus voltage LSB in volts.
Definition: sfDevINA237.h:143
sfTkError_t getDieTemp_C(float &celsius)
Read the die temperature in degrees Celsius.
Definition: sfDevINA237.h:99
static constexpr float kPowerLSBScale
Power LSB = 0.2 x CURRENT_LSB.
Definition: sfDevINA237.h:146
static constexpr float kCalScale
Calibration scale constant.
Definition: sfDevINA237.h:140
sfDevINA237()
Definition: sfDevINA237.h:39
sfTkError_t getCurrentRaw(int16_t &value)
Read the raw 16-bit current value.
Definition: sfDevINA237.h:125
sfTkError_t getPower_W(float &watts)
Read the calculated power in Watts (24-bit POWER, scaled by 0.2 * CURRENT_LSB).
Definition: sfDevINA237.h:89
sfTkError_t getShuntVoltage_mV(float &milliVolts)
Read the shunt voltage in millivolts (16-bit VSHUNT).
Definition: sfDevINA237.h:63
sfTkError_t getPowerRaw(uint32_t &value)
Read the raw 24-bit power value.
Definition: sfDevINA237.h:133
static constexpr float kCurrentFullScale
2^15, positive half of the 16-bit ADC.
Definition: sfDevINA237.h:145
sfTkError_t getCurrent_A(float &s)
Read the calculated current in Amps (16-bit CURRENT, scaled by CURRENT_LSB).
Definition: sfDevINA237.h:80
static constexpr float kShuntLSBReduced
Shunt LSB in volts (ADCRANGE = 1).
Definition: sfDevINA237.h:142
sfTkError_t getShuntVoltageRaw(int16_t &value)
Read the raw 16-bit shunt voltage value.
Definition: sfDevINA237.h:109
Platform-independent base driver for the INA228/INA237 power monitor ICs.
Definition: sfDevINA2XX.h:189
sfTkError_t powerToWatts(float &watts, float powerLSBScale)
Shared POWER -> watts conversion. powerLSBScale is 3.2 (INA228) or 0.2 (INA237).
Definition: sfDevINA2XX.cpp:778
sfTkError_t calibrateImpl(float shuntResOhms, float maxCurrentA, float calScale, float currentFullScale)
Shared calibration math; only the two scale constants differ per device.
Definition: sfDevINA2XX.cpp:745
static const uint8_t kRegVShunt
Shunt Voltage Measurement (24/16-bit, R)
Definition: sfDevINA2XX.h:649
static const uint8_t kRegCurrent
Current Result (24/16-bit, R)
Definition: sfDevINA2XX.h:652
sfTkError_t readPowerRaw(uint32_t &value)
Shared raw POWER read (24-bit, unsigned) — identical on both devices.
Definition: sfDevINA2XX.cpp:808
sfTkError_t dieTemperatureToCelsius(float &celsius, uint8_t shift, float tempLSB)
Shared DIETEMP -> Celsius conversion.
Definition: sfDevINA2XX.cpp:790
static const uint8_t kRegVBus
Bus Voltage Measurement (24/16-bit, R)
Definition: sfDevINA2XX.h:650
Header file for the SparkFun INA2XX family base driver.