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.

USB-PD-CHG-EVM-01: EEPROM patching while device is powered

Part Number: USB-PD-CHG-EVM-01
Other Parts Discussed in Thread: TPS25750, BQ25792

Hello,

I have a questions regarding the process of burning patches into the EEPROM. I've referred to your evaluation module for my board design.

1-) I've successfully burned the required patches into the EEPROM using the I2Cm SDA and SCL pins with the help of an STM32 Nucleo Board. My concern is whether this process is safe to perform while the device is powered. Could it potentially lead to race conditions, such as a master-master conflict, between the TPS25750 and the STM32 board?

2-)Let's say I have burned and checked the mode register (0x03) of the TPS25750 and observed that the device is in "APP " mode. Does this indicate that my patch loading process was successful? Can I use this method to verify whether my patch has been loaded correctly?

Thank you for your assistance.

  • Hi Azad,

    1.

    Could it potentially lead to race conditions, such as a master-master conflict, between the TPS25750 and the STM32 board?

    Yes, you could run into master-master conflict issues, but in general, you can still safely write to the EEPROM using the STM32 board. Looking at the block diagram shown, you would mainly have to be concerned about interfering with the EEPROM and the BQ25792 I2C communications. The PD only communicates with the EEPROM on boot. The PD only communicates with the BQ device on initial boot, during USB-C PD PDO Voltage changes, and during fault events.

    In general, as long as those events are not happening, it is safe to write to the EEPROM.  

    2.

    No, the PD only reads from the Flash in Patch phase, which only happens on power cycle. "APP" mode indicates that the PD has loaded firmware and is in an operational mode, but it will be running the firmware that was on the flash at initial boot.

    For example, if on boot, you have firmware version V1 on the EEPROM, the PD will load and run V1. While still powered, you re-flash the EEPROM with V2. The PD will still run V1 and will not re-read the EEPROM. Then, you power-cycle the PD controller. On boot, the PD will read from the EEPROM and load V2. If it enters "APP" mode successfully now, your patch should have been loaded correctly.

    Thanks and Regards,

    Chris