Comparisons / INA219 vs INA226
INA219 vs INA226
Register-level differences, generated from both maps.
They cannot share an I²C bus by default. Both answer on
0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F. Re-strap one, use a multiplexer, or put them on separate buses.| INA219 | INA226 | |
|---|---|---|
| Manufacturer | Texas Instruments | Texas Instruments |
| What it is | High-side bidirectional current and power monitor with I2C | Bidirectional current and power monitor with alert and I2C |
| Registers | 6 | 10 |
| Buses | I2C | I2C |
| I²C addresses | 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F | 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F |
| Shared registers | 6 | 6 |
| Unique registers | 0 | 4 |
Same name, different behaviour
These registers exist on both parts but are not interchangeable. This is where a driver ported between them breaks quietly.
| Register | INA219 | INA226 |
|---|---|---|
| CONFIG | 0x00 · 16-bit · reset 0x399F | 0x00 · 16-bit · reset 0x4127 |
Only on the INA226
| Addr | Register | Description |
|---|---|---|
| 0x07 | ALERT_LIMIT | Threshold compared against whichever alert source MASK_ENABLE selects |
| 0xFF | DIE_ID | Die ID and revision. Reads 0x2260. |
| 0xFE | MANUFACTURER_ID | Manufacturer ID. Reads 0x5449, which is 'TI' in ASCII. |
| 0x06 | MASK_ENABLE | Alert source selection and status flags |
Get either as C
regforge gen INA219 --out ./src --driver --tests
regforge gen INA226 --out ./src --driver --tests