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.

TPS65987D: Use TPS65987 without external flash, initialize via I2C

Part Number: TPS65987D


The documentation found online suggests the TPS65987D can be used without external flash:

  • Datasheet (SLVSES1B, pg 18) mentions that the external flash is optional.
  • Datasheet also indcates that SPI pins should be grounded when not used
  • The EVM SW has an option to write 'to device RAM'
  • The TRM (SLVUBH2B, pg 138) mentions that patch can be loaded from SRAM/I2C

For space & manufacturing reasons we made a design with two PD controllers without the external flash. We intended to configure the PD controller over I2C with an MCU. Start-up time is not critical in our use case.


Initially the system is powered at 5V from the USB-C connector, after which the MCU configures the PD controller for more power and complex power schemes.

However as we started to integrate SW we run into problems as configuring the PD controller seems to be not so straight forward.

Q1: Is the above plan possible or is an external flash required?

Q2: The documentation is a bit unclear on firmware, patch and configuration settings. Our understanding at this time is that the PD controller has masked ROM. Using the configuration tool a patch to this ROM and some read-only device configurations such as register 0x5C are combined into a flash-image.

At boot the PD controller first needs to load firmware, apply the patches, set the read-only registers and will then start to operate (this state can be read with register 0x03).
Is this understanding correct?


Q3: With the configuration tool, a flash-image can be generated as a ‘.c’ file and other files. (How) can we boot the PD controller with this image?

Q4: We did find SLVA783A, but this seems to discuss patching the flash using I2C bus, not booting without flash. Is this correct?

(we have SPI_MOSI connected to GND, ADCIN1 iso also connected to GND, we can read mode register 0x03 it shows PTCH state, IntEventX 0x14 has value 0x02, ready to receive patch bundle from host)


Kind regards,

Mark

  • Hello Mark,

    Thank you for the background and questions. You can find my input below:

    Q1: Yes, it is possible to upload the binary image generated by the GUI via I2C using an external MCU. Please send me a friend request on the forums, and I will share a document with you outlining this functionality and procedure. 

    Q2: Yes your understanding is correct. The binary generated using the GUI is what we call the "patch bundle", which is comprised of both the configuration you program in the GUI as well as the firmware base image (aka the patch). This image is then loaded to the PD controller either through an external EEPROM or MCU. 

    Q3: This question should be answered in the app note I will share with you. Let me know if you still have questions on this after reading the document

    Q4: That is correct.