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.

TPS23881: Issue reading more than 4 byte in a raw in I2C

Part Number: TPS23881
Other Parts Discussed in Thread: TPS23882

Hi,

I am accessing a TPS2881 driver in I2C configuration B (16 bits-access)

When reading several registers, the contents of the first 4 bytes are OK but the following bytes are read as 0xFF.

Is it possible to read more 4 bytes in a raw like in any I2C device?

Does the issue come from the configuration B?

I have 36 bytes in a raw to access (simply done by the DMA of my microcontroller) and hope I will not have to make 9 read operations!

Is there a trick?

Thank you

  • Hi Stephane, we have assigned this to our PoE FW apps engineer. An answer will be posted when available. Thanks!

  • Hi

    This not a FW issue but an HardWare issue !

    I have noticed that when reading 4 bytes or more in I2C from the tps23881 :

    - 1 byte is returned ok then next bytes are 0xFF when reading non-parametric in 8 bits access

    - 2 bytes are returned ok then next bytes are 0xFF when reading parametric in 8 bits access

    - 2 bytes are returned ok then next bytes are 0xFF when reading non-parametric in 16 bits access

    - 4 bytes are returned ok then next bytes are 0xFF when reading parametric in 16 bits access

    It seems the tps23881 is only able to transmit one register.

    Is there a trick or a bit to configure in order to read several registers like a sequencial read with an I2C memory ?

  • Hi,

    You are correct. The TPS23881 is able to transmit only one register at a time. 

    When reading/writing RAM locations for patch downloads the autoincrement is supported.

    Regards,

    Nitya Ramdas

  • Hi,

    What a pity! What a strange choice that prevent an I2C master controlled by DMA to read the current and voltage of all the channels in a raw. As any I2C devices, MAX5980 enables this and it is so efficient!

    Maybe one day, a tps23882 will correct this…

    However, thank you for help.

    Best Regards

    Stephane