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.

TPS25751: Clarification on TPS25751 Configuration Without EEPROM

Part Number: TPS25751
Other Parts Discussed in Thread: BQ25798, USB-PD-CHG-EVM-01, USB-TO-GPIO2

Tool/software:

Hi there,

We are planning to use the TPS25751 along with the BQ25798 in our product, which will be running Linux.

In our design, we have not included an EEPROM connected to the TPS25751’s I2C bus.

According to the TPS25751 datasheet (Page 44, Section 8.4 Device Functional Modes), it states:

“During the boot procedure, the device reads the ADCINx pins and sets the configurations based on the table below. The device then attempts to load a configuration from an external EEPROM on the I2C bus. If no EEPROM is detected, then the device waits for an external host to load a configuration.”

From this, my understanding is that if the EEPROM is not present, the TPS25751 will wait for the host processor to load the configuration via I2C.

Could you please confirm if this is correct? Specifically, does this mean that the host (Linux) needs to send the configuration file—generated using the GUI application—over the I2C bus at kernel boot time?

Additionally, do you have any reference examples or application notes where this kind of setup (without EEPROM) is used?

Finally, I’d like to test this scenario using the USB-PD-CHG-EVM-01 evaluation board. However, since this EVM includes an EEPROM, the device will load its configuration from the EEPROM by default and won’t wait for the host. What steps would you recommend to test the host-controlled configuration loading on this EVM?

Looking forward for your support.

Thanks and Regards,

Pratham.

  • Hi Pratham,

    From this, my understanding is that if the EEPROM is not present, the TPS25751 will wait for the host processor to load the configuration via I2C.

    Correct.

    Could you please confirm if this is correct? Specifically, does this mean that the host (Linux) needs to send the configuration file—generated using the GUI application—over the I2C bus at kernel boot time?

    Correct.

    Additionally, do you have any reference examples or application notes where this kind of setup (without EEPROM) is used?

    Please see section 5.2 in the DS. This app note provides additional guidance on the Patch Burst Mode PD config loading over I2C.

    Finally, I’d like to test this scenario using the USB-PD-CHG-EVM-01 evaluation board. However, since this EVM includes an EEPROM, the device will load its configuration from the EEPROM by default and won’t wait for the host. What steps would you recommend to test the host-controlled configuration loading on this EVM?

    If the EEPROM has an invalid image, the TPS25751 will attempt to load the image from the EEPROM, fail, and get stuck in a similar state. If you erase the EEPROM, you should be able to get the PD controller in the desired state and test the patch loading over I2C process.

    Thanks and Regards,

    Chris

  • Hi Chris, 

    Thanks for the prompt reply. I just have a quick question:

    How can I erase or reprogram the EEPROM using my PC, and what hardware and software will I need for this?

    For your information, I have the TI USB Interface Adapter (USB-TO-GPIO2), which also supports I2C. Can I use this to program the EEPROM? If yes, could you please guide me on how to do it? If not, what hardware would you recommend for programming the EEPROM?

    Also, is having an Aardvark I2C/SPI Host Adapter necessary for this, or can I do it with the USB-TO-GPIO2 alone?

    Thanks again for your support!

    Thanks and Regards,

    Pratham.

  • Hi Pratham,

    How can I erase or reprogram the EEPROM using my PC, and what hardware and software will I need for this?

    I can only recommend the way we do it, but it is not necessarily the only option.

    Take a TotalPhase Aardvark, and connect the I2C lines. Use their Flash Center Utility to erase the EEPROM.

    If you have some I2C host you can connect to the lines, you may be able to just write directly to the EEPROM and erase it using some generic tool. The EEPROM is only used by the PD controller at power on, so you should be able to go in with another I2C host after power up.

    In addition, you only need to corrupt the image, not necessarily Erase the whole thing. The device should still get stuck in PTCH mode if the image that is loaded from the EEPROM is not verified to be a valid image.

    Finally, if you know you don't need the EEPROM for loading the PD image, you could choose to remove it entirely by taking it off the board.

    For your information, I have the TI USB Interface Adapter (USB-TO-GPIO2), which also supports I2C. Can I use this to program the EEPROM? If yes, could you please guide me on how to do it? If not, what hardware would you recommend for programming the EEPROM?

    I'm not familiar with this tool so can not confirm or deny if it will work. As mentioned above, I have used the Aardvark in the past, but I also believe that if you can figure out how to write to the I2C EEPROM with your tool, it should work as well.

    Also, is having an Aardvark I2C/SPI Host Adapter necessary for this, or can I do it with the USB-TO-GPIO2 alone?

    I don't think it is necessary, but am not familiar with the other tool.

    Thanks and Regards,

    Chris