The INA260 is a high-side current shunt monitor with an integrated I2C interface, designed for precise measurement of voltage, current, and power. It features a built-in precision shunt resistor, eliminating the need for external components, and offers high accuracy across a wide input voltage range. The INA260 is ideal for power monitoring applications in industrial equipment, battery management systems, and consumer electronics.
The INA260 is available in a 10-pin VSSOP package. Below is the pinout and description:
Pin | Name | Type | Description |
---|---|---|---|
1 | GND | Power | Ground connection. |
2 | VIN+ | Analog Input | Positive input for the voltage to be measured. |
3 | VIN- | Analog Input | Negative input for the voltage to be measured. |
4 | SDA | Digital I/O | I2C data line. |
5 | SCL | Digital Input | I2C clock line. |
6 | ALERT | Digital Output | Alert output for configurable over-limit conditions. |
7 | ADDR | Digital Input | Address pin for setting the I2C address. |
8 | NC | - | No connection. |
9 | VBUS | Analog Input | Voltage bus input for power measurement. |
10 | VCC | Power | Power supply input (2.7V to 5.5V). |
Below is an example of how to interface the INA260 with an Arduino UNO using the Wire library:
#include <Wire.h>
#define INA260_ADDRESS 0x40 // Default I2C address of the INA260
void setup() {
Wire.begin(); // Initialize I2C communication
Serial.begin(9600); // Initialize serial communication for debugging
// Configure INA260 (optional: default settings are usually sufficient)
Wire.beginTransmission(INA260_ADDRESS);
Wire.write(0x00); // Point to configuration register
Wire.write(0x61); // Set configuration (e.g., averaging, conversion time)
Wire.write(0x27); // Complete configuration settings
Wire.endTransmission();
Serial.println("INA260 Initialized");
}
void loop() {
// Request current measurement
Wire.beginTransmission(INA260_ADDRESS);
Wire.write(0x01); // Point to current register
Wire.endTransmission();
Wire.requestFrom(INA260_ADDRESS, 2); // Request 2 bytes of data
if (Wire.available() == 2) {
int16_t currentRaw = (Wire.read() << 8) | Wire.read(); // Combine MSB and LSB
float current = currentRaw * 1.25 / 1000; // Convert to Amperes (1.25 mA/LSB)
Serial.print("Current: ");
Serial.print(current);
Serial.println(" A");
}
delay(1000); // Wait 1 second before next reading
}
No I2C Communication:
Incorrect Current or Voltage Readings:
Alert Pin Not Triggering:
Q: Can the INA260 measure negative currents?
A: Yes, the INA260 can measure both positive and negative currents, as it supports bidirectional current sensing.
Q: How many INA260 devices can I connect to a single I2C bus?
A: Up to 16 INA260 devices can be connected to the same I2C bus by configuring their ADDR pins to different addresses.
Q: What is the resolution of the current measurement?
A: The INA260 provides a resolution of 1.25 mA per least significant bit (LSB).
Q: Is the internal shunt resistor replaceable?
A: No, the shunt resistor is integrated into the INA260 and cannot be replaced.
By following this documentation, users can effectively integrate the INA260 into their projects for accurate power monitoring.