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: Minimum patch size and dynamic configuration in SPI less system

Part Number: TPS65987D
Other Parts Discussed in Thread: BQ25703A

Hello,

I have a couple of questions regarding the use of the TPS65987D in a system without SPI flash where the PD controller acts as an I2C slave to a host MCU:

  1. What is the absolute minimum amount of flash on the host MCU that must be allocated for the TPS65987D patch file? 
  2. Can any of the devices registers/configurations be changed dynamically i.e. without requiring a POR and rewriting of the entire patch file?
  3. Does the entirety of the patch have to be written at power-up or is it possible for this to be burned into the devices ROM via the host MCU? 

Thanks!

Chris

  • Hi Chris,

    The minimum amount of flash space you would need is 64kB. I also recommend looking into the SPI Flash Firmware Update over I2C Application Note as it goes into the process in more detail.

    As far as changing register values, unfortunately these have to be programmed to take effect. However, the MCU can send 4CC commands for certain operations without rewriting the entire patch file. For more information on this and the commands, please look at the Host Interface Technical Reference Manual.

    For programming the patch, this must be done from either the SPI FLASH or from the MCU itself via I2C if you don't have FLASH. However, it cannot be burned into the ROM, these configurations must be loaded upon every bootup for full functionality.

    Thank you,

    Hari

  • Hello Hari,

    Thank you for the quick feedback. I've read through the SPI Flash Firmware Update over I2C app note that you provided, however, it was still not clear whether or not you truly needed to have redundant copies of the patch bundle in flash. Is this 100% necessary? Is there no way that the patch and subsequent memory footprint that it requires can be optimized?

    On a different note, if the device were to be configured as an I2C slave to the host MCU and as a master to the BQ25703A, would it be possible to "pass" I2C commands from the host MCU to BQ25703A? For example, if an over-temperature event occurs on the battery pack, could the host MCU disable the BQ25703A by issuing an I2C command to the PD controller which would pass it on to the BQ25703A?

    Thanks again,

    Chris

  • Hey Chris,

    It's not necessary to have copies of the patch bundle in flash. You just need 1 copy if you want to use flash. Alternatively, you can check out the SPI Less Host Programming Over I2C Application Note if you prefer to do it using the EC.

    I don't believe you can pass I2C commands over from one to another. You will have to program using the PD controller. However, you are able to program it using the PD controller's event maps. I recommend looking at the Using I2C Master in TPS65987D PD Controllers application note as there is a section on specifically Configuring I2C Master for BQ25703A Battery Management Controller (BMC) in section 4

    Thank you,

    Hari