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.

TPS25750: Patching TPS25750 from MCU.

Part Number: TPS25750
Other Parts Discussed in Thread: BQ25792

Hello.

I'm designing TPS25750+BQ25792 sink solution.

The board mainly consists of those two IC's mentioned above & MCU (microcontroller unit). There is no separate EEPROM for TPS25750.

My intention is to have MCU load patch to TPS25750 via I2C.

  • I have generated full binary flash (.c) using TI's GUI. I assume this should be loaded byte by byte on a single I2C transaction after i put TPS25750 in PTCH mode, and after PMBs command is sent and accepted?
  • Do I need to do this every time TPS25750 is powered up, or once it is patched, it stores that indefinitely?
  • What should I provide as PMBs I2C Slave address (Byte 5, Bits 6:0)? Should it be just the I2C address of the TPS25750?
  • PBMc seems to require no input data (INPUT DATAX = None), but Task Completion Description for PBMc says: This Task is rejected if the DATAX input does not contain the total patch size

I hope you understand my idea and will share your opinion about feasibility of that and possible issues.

Regards Mateusz Kusmierz

  • Hi Mateusz,

    Please see my responses below:

    I have generated full binary flash (.c) using TI's GUI. I assume this should be loaded byte by byte on a single I2C transaction after i put TPS25750 in PTCH mode, and after PMBs command is sent and accepted?

    • Yes, PBMs will load the patch byte by byte, in bursts or bundles.

    Do I need to do this every time TPS25750 is powered up, or once it is patched, it stores that indefinitely?

    • Yes, PBMs patches to the PD controller's SRAM, which is volatile memory. You need an EEPROM or Flash to avoid this.

    What should I provide as PMBs I2C Slave address (Byte 5, Bits 6:0)? Should it be just the I2C address of the TPS25750?

    • For the PBMs I2C Slave address, you can provide any address, other than the address of the port you chose using the ADCIN settings. For example, you could use 0x28. You cannot use the I2C address of the TPS25750. Then, when you write the actual patch data over I2C, you must write to the same slave address you wrote in the DataX register for PBMs. The address you use here acts as a pointer to where the patch will be stored.

    PBMc seems to require no input data (INPUT DATAX = None), but Task Completion Description for PBMc says: This Task is rejected if the DATAX input does not contain the total patch size

    • This is incorrect in the manual. No DataX input is needed for PBMc.

    Best,

    Alex