This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

INA228: Registers do not save written values

Part Number: INA228

Tool/software:

Hi, 

I currently have the problem, that I don't know if the values I send to any register on the INA228 are saved correctly or not.
When I try for example to write 0x9000 to the ADC_CONFIG_REGISTER, the chip acknowledges the values. When I then try to read the value from the ADC_CONFIG_REGISTER I can only read 0x22FF, which should be impossible because the bits 3-0 are reserved and always set to zero.

My question is: Am I doing something wrong with the writing or the reading process?

  • Hello Michael,

    The reserved bits 0-3 are for register 0x0, not register 0x1, so this would still be an acceptable value for register 0x1. 

    I recommend trying to read the MANUFACTURER_ID or DEVICE_ID register, this way you can confirm the communication with a known value. You could also try writing and reading to the SHUNT_CAL, since there are no restrictions to this register.

    I also recommend looking at the communication with an oscilloscope instead of a logic analyzer to confirm communication. It's possible that the logic analyzer's high and low thresholds are not set to match the signal very well. It's also possible that the I2C communication is not driving low enough to GND, causing some low values to register as high by the logic analyzer (or by the device or MCU).

    Regards,

    Mitch