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.

TPS65912: I2C Protocol

Part Number: TPS65912

I follow the same exact I2C protocol outlined in the Datasheet. However, the PMIC never acknowledges. Should I even expect an ACK? Is there any trick or known bugs for the I2C bus of this PMIC? Is there any tested code that you can share so that I can communicate with the PMIC without trouble? I'd appreciate any help or insight you could provide on this topic.

  • Artin,
    Check to see if the I2C interface has been activated.

    6.14 Configuration Pins CONFIG1, CONFIG2 and DEF_SPI_I2C-GPIO
    TPS65912x contains two banks of OTP memory that define the default settings programmed. CONFIG1 selects between these two banks of memory. The logic level at pin CONFIG1 in state CONFIG determines which of the OTP banks is used and its content is copied to the user registers to set all OTP configurable options like default voltages and power-up timing. CONFIG2 is used to remap functions to pins. For CONFIG2=1, pins EN1 to EN4 as well as SCL_AVS, SDA_AVS and SLEEP are active. With CONFIG2=0, these pins are used as DCDCx_SEL and CLK_REQ1, CLK_REQ2 and PWR_REQ pins.
    DEF_SPI_I2C-GPIO defines whether the SPI interface or the I2C interface is used as the standard communication interface. DEF_SPI_I2C-GPIO =0 defines SPI as the standard interface associated to pins SCL_SCK, SDA_MOSI, GPIO1_MISO and GPIO2_CE. CONFIG1, CONFIG2 and DEF_SPI_I2C-GPIO should be tied to GND for a low level and to LDOAO for a logic high level. Pins CONFIG1, CONFIG2 and DEF_SPI_I2C-GPIO should not be switched in operation but hardwired to a logic low level (GND) or a logic high level by connecting them to the LDOAO voltage.

    I know it sounds silly, but make sure you have pull up resistors on the SDA and SCL lines.

    If you want to communicate using HS mode you have to send the configuration byte in LS mode first.

    Also make sure you are using the correct set of I2C line and not the I2C_ AVS lines at first.

    After you have verified all of these items, and if you still have a problem, let me know and provide as much information as possible about your setup as possible.
  • Thank you for your prompt reply, Gordon!

    I didn't think that CONFIG1 and CONFIG2 were playing any role in the standard I2C. Please correct me if I'm wrong. In the schematic below you can see how the pins are wires. I have DIP switches for CONFIGx pins so I can set them at the startup to get the default voltages that I want, etc. If you see an issue here, please let me know.

    On a different note, can I leave the unused pins floating? Or, they needs to be wires to a known voltage level?

    Thanks,

    ADM

  • Artin,

    You can leave the unused pins floating. Also, this schematic looks okay.

    Thanks,
    Nastasha