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.

TPS65986 ADC Read Problem

I would like to read the Vbus Voltage the TPS65986 sees via the I2C bus.

The bus access is running, I can read and write 4CC commands and other registers without problem.

When I set up the desired channel I want to read on register DATA1, I can write DATA1, then read and see that what I wrote is correct.

I can then send the 'ADCs' command to CMD1, and it clears to all nulls, which means that it recognized, and executed the command.

When I now re-read DATA1, it still contains my channel select information, and is never updated with the ADC results.

Behavior is identical whether I try to read die temperature or VBus Voltage.

What am I doing wrong?

I don't find any other things in the docs that I should have to enable. The Status register (0x1A) is properly reporting VBusStatus bits 21:20

I don't find any ADC enabling or configuration capabilities anywhere, including any implementation of the different operating modes described in the TPS65986 Data Sheet section 8.3.17.2, 3, 4, 5

Version register 0x0F reports that I am running firmware version 1.17.2

--- Graham

  • Hi Graham,

    Firmware version that you noted looks incorrect. Latest firmware (version 1.11.05) is included with TPS6598x Application Customization Tool. You can download the tool from TI.com folder link below.

    http://www.ti.com/product/TPS65982/toolssoftware

    ADCs 4CC command information is provided in Section 4.12.1 of Host Interface Technical Reference Manual (link below).

    http://www.ti.com/lit/ug/slvuan1/slvuan1.pdf

    Regards,

    Atiq

  • Atiq:

    Thank you for your response.

    I straightened out my version decoding, and it appears I am running 1.11.02.

    I will download a fresh copy and look for a later version.

    I figured out what my problem was for reading the ADC data converter.

    The docs say Byte0 is register length (always 64 for DATA1.)

    The docs say Byte1 is least significant byte for ADC, and Byte2 is most significant byte.

    What is actually returned by the TPS65986 is Byte0 is register length, Byte1 is ADC channel number, Byte2 is LSB and Byte3 is MSB.

    --- Graham

    ==