Hi TI
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?
Thanks~
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.
Hi TI
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?
Thanks~
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".
BR,
Seong
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 eeprom.you can see my design block.
I have other questions:
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?
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?
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.
BR,
Seong
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):
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,
Seong
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.
BR,
Seong
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?
BR,
Seong
My operation step by step. Please help me check if any mistake
step0
Import keys
step1/2
Build secure image
step3/4/5/6
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)
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?
BR,
Seong
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?
BR,
Seong
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?
BR,
Seong
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?
BR,
Seong
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?
BR,
Seong
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?
BR,
Seong
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?
BR,
Seong