TPS25762-Q1: Do I need to burn the latest version of firmware to the IC to support PD3.0?How to quick start TPS25762-Q1?

Part Number: TPS25762-Q1
Other Parts Discussed in Thread: TPS25762Q1EVM


Do I need to burn the latest version of firmware to the IC to support PD3.0?How to quick start TPS25762-Q1?

When I burn the firmware,the log show error,what mean of the error?



  • BTW, what mean about IntDCDCCurrCode/IntDCDCVCode(0x1A STATUS Register)? 

    Can you explain the meaning of these two parameters?

  • Hello Ling,

    Is the error shown from a TPS25762Q1EVM or custom board? On the EVM, the on-board EEPROM comes preprogrammed to enable PD out of the box.

    If this is a custom board, the patch bundle with the latest FW must be loaded to the IC from an EEPROM first to enable PD. The same is true for USB Endpoint FW update, but the Production/Engineering keys must match the keys that is already programmed and saved in the EEPROM. 

    The two parameters are the internal DC/DC's Voltage and Current Code readings. The image below was taken from the GUI's telemetry menu, "Device Communication".



  • Thanks for your reply.

    This error is on the custom board. Can you give more error description? 

    In my custom design, I don't use can see my design block.


    I have other questions:

    1. The official manual of TPS25762CQRQLRQ1 states that the recommended range of NTC resistors is 47-100K, but the official demo board uses 10K. There should be no problem in choosing 10K, right?

    2. There are 5 thermal sensors inside the IC, such as T SD_BB, T SD_PA_VCONN, etc. Can we get the specific temperature values ​​of these sensors? Why do we need to add NTC externally?

    3. In this charging application, USB DP and DM are not occupied, because according to the description of Figure 10-1. Simplified Single USB PD Charger in the data sheet, it is possible not to use DPDM. Are there any dependencies?

  • Ling,

    So the purple block is not an EEPROM? It is just an MCU? USB Endpoint FW Update is a method to essentially program an EEPROM through the TPS25762-Q1, so you won't be able to load new patch bundles without one. FYI - if an EEPROM will ever be used, it must be connected to I2C1. 

    To load a new patch bundle using an MCU, see Section 4.3 in the TPS257x-Q1/77x-Q1 Firmware Update with a Host application note

    1. Yes. We'll need to update this in the datasheet.
    2. The NTC is used for lower temperatures thresholds for thermal foldback as opposed to thermal shutdown. See the SPM appnote for more information on the device's Power Foldback Policies.
    3. For USB PD charging, only the CC pins are needed, so no, there are no dependencies not to connect DP/DM to the PD controller.



  • Hi Seong

    Thanks for your reply

    Purple block is  an EEPROM(belong to MCU), it connect at I2C2.

    You mean that for PD3.0 application, EEPROM is must to have? 

  • Add more question:

    TVSP can set boot mode, I set R TVSP =93.1K, I think I can boot from MCU, why need another eeprom?

  • Hi Ling,

    A patch bundle (firmware patch and app config) must be loaded to TSP75262-Q1 in order to enable USB PD 3.1. 

    Table 9-3 in the datasheet shows the various TVSP settings and the 3 boot modes (3 ways to load a patch bundle after POR):

    • EEPROM - load patch bundle to TSP75262-Q1 from an external EEPROM. The EEPROM must have target address 0x50 and other requirements listed in Section
    • HUB/MCU - load patch bundle to TSP75262-Q1 from an MCU
    • Firmware Update aka USB Endpoint (TVSP Index8) - program an external EEPROM from the USB-C connector or MCU.
      • After the EEPROM is programmed from the USB-C connector or MCU using this method, the TVSP setting will be changed to TVSP Index0, for example, and a POR will be executed to load the new patch bundle from the EEPROM. 

    Yes, you do not need an EEPROM if you plan on using an MCU. To load a new patch bundle using an MCU, see Section 4.3 in the TPS257x-Q1/77x-Q1 Firmware Update with a Host application note

    The image of the GUI from your initial post shows that you were getting an error when attempting USB Endpoint Flash (TVSP Index8). For USB Endpoint Flash, you need an EEPROM.

    Now we are aligned that an EEPROM will not be used on your custom board. Again, see Section 4.3 in the TPS257x-Q1/77x-Q1 Firmware Update with a Host application note for the MCU boot method. 

    Hope this helps,


  • OK I understand, your reply is very useful. Thanks again~

  • Hi Seong

    Add another question

    If I update firmware through MCU,, may I need to burn fireware every time when MCU start?

  • MCU update  TPS257x-Q1‘s firmware through I2C2 or I2C1? I see the datasheet show that both I2C1&I2C2 are OK. Help me double check this, thanks~

  • Hi Ling,

    The patch bundle must be loaded to the TPS25762-Q1 after every POR. Was this your question?

    Yes, either I2C1 or I2C2 can be used.



  • Yes, got it

  • Hi Seong

    When I add a external EEPROM, and use USB burn FW,It shows that  Error Status: 0451_aceb$3_60_2 must be open before calling controlTransfer.

     Can you give me some advice?

    BTW, because of EEPROM limit, for now I use 128Kbit, MPN is CAT24C128WI-GT3(I will change to 256Kbit asap).

  • Hello Ling,

    Have you requested and downloaded the firmware package? Has the EEPROM been programmed with a patch bundle and keys from the firmware package? The GUI's USB Endpoint programming feature demonstrates secure programming, so the EEPROM must first be programmed with key data. Then when USB Endpoint programming is executed, it will only be successful if the keys match. 

    Also, has your custom board schematic been reviewed? 



  • My operation step by step. Please help me check if any mistake


    Import keys


    Build secure image


    Burn firmware use USB typeC,and It shows error.(Just to demonstrate the burning process for you, please ignore that the USB is not connected)

  • I have been send to local FAE, but they didn‘t give me effective advice.

  • 1. Yes,I have been download firmware package,<TPS257xxQ1BaseFirmwareImage-F311.03.10.0003-windows-installer.exe>

    2. Yes,my EEPROM programed <base_lowregion_F311_guiCfg_6-15-55-31_USBEP_binary.bin>

    3. I have been send to local FAE, but they didn‘t give me effective advice.

  • Hi Seong

    For now, I have been download firmware succeed

    Summary my problem for more people aviod time.

    First of all, I didn't install USB driver, so the GUI show timeout & error.

    Secondary, I didn't add EEPROM IC in my design, beside I didn't Pre-burn EEPROM firmware.

    Seong, Many thanks for your help.

  • Hi Seong

    Add one question

    when I use I2C2 get Vbus Ibus,I find that Ibus didn't meet description <47:40 VbusCurrent VBUS current ADC reading (23 mA LSB)>

    I use PD decoy + electronic load, how to calculate 47:40? shunt resistance is 0.003R.

    current 1A,47:40=0x0d

    current 2A,47:40=0x19

    current 3A,47:40=0x26

  • Hi Ling,

    Are you certain you're checking between the Byte6-12 range?



  • YES is there any problem?

  • Ling,

    If you are certain that you are checking 47:40 from Byte 6 and not 47:40 from Byte 0, then yes, there is a problem.

    Reading 0x26 means that the Vbus current is 0.87A. But if the actual Vbus current you are measuring/confirming is 3A, then the ADC reading is obviously incorrect.

     What about the other ADC readings? Are the VntcVoltage, VbusVoltage, VinVoltage readings correct?



  • Other ADC I think is correctly,this is one I2C2 return data,I use multimeter test Vout/Vntc/Vin:15V/2.25V/16V,0x99/0xa1/0xc9, I calculate this hex data through your formula,result is 14.994V/2.254V/16.08V。My test current is 3A,remote data calculate is dec(0x24)*23mA=36*23=828mA

    0x6 0x7b 0xc9 0x99 0x24 0xa1 0x0 0x0

  • Ling,

    What do you mean test current? How are you drawing 3A? Are you using an electronic load? Or via USB Power Delivery with a sink device?

    Have you measured the Vbus current to confirm your 3A test current?



  • I uses an electronic load,setting 3A load. and current multimeter test 2.999A.

  • Ling,

    Noted. Can you please provide the raw I2C reading of register 0x1A when drawing 3A?



  • OK. Raw data is show below when drawing 3A, Vbus voltage = 15V, Vinput voltage=15.12V

    read data: 0x6 0x7c 0xbf 0x99 0x26 0x84 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 

  • Hi Ling,

    Something is off about this data. 

    How are you reading the raw data? Are you using a Saleae logic analyzer?

    If so, can you please save the capture and share the Saleae file?

    Instead of an electronic load, have you tried the same test and measurement when connected to an actual PD device?



  • This data is get through my MCU.

    I didn't have Saleae logic analyzer, but you can see that 0xbf is input voltage(15.28V),0x99 is output voltage(14.994V),0x84 is NTC voltage(1.848V),so I think 0x26 is output current.

    read data: 0x6 0x7c 0xbf 0x99 0x26 0x84 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 0x0 

  • Hi Ling,

    Breaking down your raw data in the table below:

    Bytes 6-12

    Bits Name Raw Data ADC Meas.
    55:48 VntcVoltage 0x06 0.084V
    47:40 VbusCurrent 0x7C 2.852A
    39:32 VbusVoltage 0xBF 18.718V
    31:24 VinVoltage 0x99 12.24V
    23:16 IntDCDCCurrCode 0x26 0.95A
    15:0 IntDCDCVCode (Lower 12bits) 0x8400 10.24V

    The ADC is reading the Vbus current correctly, but Vbus voltage and Vin voltage ADC readings and your multimeter measurements have a substantial delta. The Internal DCDC voltage and current readings also do not look correct as they should be slightly higher than the Vbus voltage and current, respectively. 

    What is the voltage on LDO_1V5, LDO_3V3, and LDO_5V? Do they correlate with the typical values stated in the datasheet?

    Instead of an electronic load, have you tried the same test when connected to an actual PD device? How does the data compare?



  • Hi Seong

    Thanks for your reply.

    your data conversion seems somethings wrong.0x99 is VbusVoltage,0xBF is VinVoltage.

    0x06 is the low bytes,is IntDCDCVCode (Lower 12bits)

    0x7c is IntDCDCCurrCode

    0xbf is VinVoltage

    0x99 is VbusVoltage

    0x26 is VbusCurrent

    0x84 is VntcVoltage

    LDO_1V5, LDO_3V3, and LDO_5V meet datasheet‘s typical values description.

  • Hi Ling,

    This is the correct way to translate the raw data to the register map.

    Perhaps it would make more sense if you tried the same experiment but with an actual PD device.

    Is this something you can try with a PD analyzer also connected to see which contract is negotiated?