The TI E2E™ design support forums will undergo maintenance from Sept. 28 to Oct. 2. If you need design support during this time, contact your TI representative or open a new support request with our customer support center.

TPS25750: About pass-through mode by USB2ANY

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

Hi Team,

Sorry for the duplicate question in the thread below.

However, I would be grateful if you could reply as soon as possible.

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1110189/tps25750-about-how-do-i-use-the-host-interface-docx/4131049#4131049

Our customer use USB-PD-CHG-EVM-01 and USB2ANY.

However, they can’t read suitable register value.

 

Even if they use USB-PD-CHG-EVM-01,

is it possible to execute pass-through mode using USB2ANY?

 

By the way, they tried to read to REG0F_Charger_Control_0 Register of BQ25792 on USB-PD-CHG-EVM-01 by USB2ANY.

However, the read result is " 0x04 0x00 0x00 0x00 0x00 ".

This value is incorrect because resister default value is 0x12.

 

If USB2ANY can support pass-through mode, could you please let us know appropriate method?

 

-----------

Step1

PD address | DATA1 register | #byte count | BQ address | BQ register | BQ #read bytes eg:

0x21       | 0x09          | 0x03       | 0x6B       | 0x0F       | 0x01

 

Step2

PD address | CMD1 register | #byte count | 'I'    | '2'   | 'C'  | 'r'

0x21       | 0x08          | 0x04       | 0x49 | 0x32 | 0x43 | 0x72

 

Step3

The read result is " 0x04 0x00 0x00 0x00 0x00 ".

This value is incorrect because resister default value is 0x12.

 

<BQ25792 datasheet>

-----------

 

Regards,

Hide

  • Hi Ghouse-san,

    I have not received the answers to the following questions.

    Could you give me this answer?

    I’d greatly appreciate your verification.

    Regards,

    Hide

  • Hi Ghouse-san,

    Could you please let us know the current status?

    We need your cooperation.

    I would be grateful if you could reply as soon as possible.

    Regards,

    Hide

  • Hi Team,

     

    I understand that I can’t use USB2ANY for pass-through mode.

    Currently, I would like to use pass-through mode at USB-PD-CHG-EVM-01.

     

    I have two questions.

     

    --------

    [Q1]

    I understand that Aardvark is a writing tool to EEPROM.

    Therefore, Aardvark can’t be used for pass-through mode.

    Is my understanding correct?

     

    If no, could you please let us know the way to use?

    --------

     

    [Q2]

    I don’t have TIVA but have other MCU.

    If I use other MCU instead of USB2ANY, can I use pass-through mode?

     

    If yes, could you please let us know the way to use?

     

    By the way, I can’t understand contents of How do I use the Host Interface.docx”.

    Therefore, I need example code for read and write by pass-through mode.

     

    I'm sorry I didn't understand the content.

    I need your help.

     

    <My image>

     

    --------

     

    It's really troubling that I cannot use this.

    I would be grateful if you could reply as soon as possible.

     

    If necessary, I can respond by your private email.

    (First, I will register as friendship.)

    I’d greatly appreciate your verification.

     

    Regards,

    Hide

  • Hi Team,

     

    Our customer used other MCU and tried pass-through mode.

    However, not working properly.

     

    Therefore, they have to decide whether to use pass-through mode.

     

    ---

    [Our latest question]

    I dont have TIVA but have other MCU.

    If I use other MCU instead of USB2ANY, can I use pass-through mode?

     

    If yes, could you please let us know the way to use?

     

    By the way, I cant understand Contents of How do I use the Host Interface.docx.

    Therefore, I need example code for read and write by pass-through mode.

    ---

     

    They would like to use pass-through mode.

    So, we need your cooperation.

     

    I would be grateful if you could reply as soon as possible.

     

    Regards,

    Hide

  • Hi Hide,

    Were you trying to use the USB2ANY to program the TPS25750?  The TPS25750 can only be programmed through the Aardvark header, the USB2ANY is to configure the BQ25792.

    Regards,

    Raymond Lin

  • Hi Raymond-san,

     

    Thank you for your prompt reply.

    I would like to use pass-through mode so read and write the register of BQ25792 via TPS25750.

    (Image is Case1.)

     

    I understand that USB2ANY can’t support pass-through mode.

    However, I have some questions.

     

    -----

    [Q1]

    I understand that Aardvark is a writing tool to EEPROM and Aardvark is connected to I2Cm of TPS25750.

    It's not writing directly to the TPS25750 and BQ25792 registers.

    And, pass-through mode have to use I2Cs of TPS25750.

     

    Therefore, I guess that Aardvark can’t support pass-through mode.

    Is my understanding correct?

     

    If no, could you please let us know appropriate method of write and read by pass-through mode?

    -----

     

    [Q2]

    I understand that pass-through mode can write and read to BQ25792 resisters through TPS25750.

    So, Case1 can be configured.

    Is my understanding correct?

     

    If no(If my definition for " pass-through mode " is wrong), could you please let us know correct information?

     

    <Supplement >

    For pass-through mode, I referred to the following thread.

    And, I heard that Application_Customization_Tool ver7.0.3 improved the bug of pass-through mode from other thread.

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1024293/tps25750-i2cw

    -----

     

    [Q3]

    Our customer used USB2ANY but can’t operate read of pass-through mode.

    Therefore, they used other MCU and tried pass-through mode.

    However, not working properly.

     

    Could you please let us know appropriate method of write and read by pass-through mode?

    I need reference example.

     

    <Their confirm steps of read>

    Step1

    PD address | DATA1 register | #byte count | BQ address | BQ register | BQ #read bytes eg:

    0x21       | 0x09          | 0x03       | 0x6B       | 0x0F       | 0x01

     

    Step2

    PD address | CMD1 register | #byte count | 'I'    | '2'   | 'C'  | 'r'

    0x21       | 0x08          | 0x04       | 0x49 | 0x32 | 0x43 | 0x72

     

    Step3

    The read result is " 0x04 0x00 0x00 0x00 0x00 ".

    This value is incorrect because resister default value is 0x12.

     

    <Setting image>

     

    -----

     

    Regards,

    Hide

  • Hi Hide,

    1. Aardvark can support pass-through mode. You would need to manually wire the Aardvark header connector I2C SDA and SCL pinouts (from the Aardvark programmer) directly to the USB2ANY connector's I2Cs SDA and SCL pins (on the board). The ground pins from the Aardvark connector will also need to be grounded with the board (one available on the J7 header and the other is on the USB2ANY connector)

    2. Case 1 is correct. The main issue is the USB2ANY not reading/writing correctly. We recommend using the Aardvark for all pass-through activities. 

    3. As mentioned previously, the USB2ANY causes many issues with reading and writing, that's why we highly recommend to use the Aardvark instead. 

    To summarize everything, the Aardvark is the prefer programmer/connector over the USB2ANY. To program the TPS25750, connect the Aardvark directly to its respective connector on the EVM board. To use pass-through mode, user will need to take the Aardvark and use jumper wires (male to female) and connect the I2C SCL and SDA directly to the USB2ANY Connector on the board. Users will also need to attach the ground from the Aardvark onto the EVM's ground (there are 2 available, located on the Aardvark Connector on the EVM).

    During pass-through mode, the Aardvark will read/write into the I2Cs ports of the TPS25750 (I2Cs_SDA/SCL) and then out through the master ports (I2Cm_SDA/SCL) to the BQ. When programming the TPS25750, the Aardvark will flash onto the EEPROM and shouldn't affect the BQ whatsoever because of the I2C addresses.

    Refer to this pdf for pinouts from the EVM board:USB_PD_CHG_EM_01_PINOUT.pdf

    Let me know if this help answer your questions.

    Regards,

    Raymond Lin

  • Hi Raymond-san,

     

    Thank you for always kind support and detail information.

    I understand that Aardvark can support pass-through mode.

     

    I have additional questions.

     

    -----

    [Q4]

    I understood the Aardvark connection as follows(My image).

    Then, is the power supply “BATT=5V”?

     

    <My image>

    -----

     

    [Q5]

    I understand the following your comment.

    >During pass-through mode, the Aardvark will read/write into the I2Cs ports of the TPS25750 (I2Cs_SDA/SCL) and

    then out through the master ports (I2Cm_SDA/SCL) to the BQ. When programming the TPS25750

     

    Could you please let us know I2C command of write and read by Aardvark?

     

    I refer to the thread below for "Write" method.

    https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1024293/tps25750-i2cw

     

    “Read" method was deduced from the same thread.

    That's “<Their confirm steps of read> of [Q3]”.

     

    I would like to know if this command is correct when using Aardvark.

    -----

     

    Regards,

    Hide

  • Hi Hide,

    Then, is the power supply “BATT=5V”?

    Yes that is correct, make sure whatever power supply you connect, the max current is 5A. 

    Regarding Q5, I would need time to look into it as I'm not too familiar with using Aardvark yet. Let me ask my team and get back to you next Monday.

    Regards,

    Raymond Lin 

  • Hi Raymond-san,

    Thank you for always kind support.

    I’m looking forward to hearing from you.

    Regards,

    Hide

  • Hi Hide,

    Apologies for the wait, I'm still in the middle of getting access to our configuration tool. Once I have access, I'll let you know any findings I come across.

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond-san,

    Thank you for your response.

    I’m looking forward to hearing from you.

    Regards,

    Hide

  • Hi Hide,

    If you're using the Aardvark I2C/SPI Control Center (from TotalPhase), this website walks through the specifics about how to read and write. Once I get more information, I'll pass it onto you.

    Regards,

    Raymond Lin

    https://www.totalphase.com/support/articles/200350096-How-to-Read-and-Write-to-an-I2C-EEPROM-Using-the-Aardvark-adapter-and-Control-Center 

  • Hi Raymond-san,

     

    Thank you for your response.

    I’m looking forward to hearing from you.

     

    And, I have one more question about 0x4 of Output DATA.

    It appears to be "“04 00 00 00 00”.

    Does this 04 mean "Lock" or "unlock"?

     

    <TPS25750 Host Interface Technical Reference Manual>

     

    Regards,

    Hide

  • Hi Hide,

    I believe that means the Rx buffer is locked.

    Regards,

    Raymond Lin

  • Hi Raymond-san,

    Thank you for your response.

    And, we look forward to hearing from you about Aardvark.

    Regards,

    Hide

  • Hi Hide,

    To read and write using the Aardvark, you'll need to first configure the Aardvark adapter to be an I2C master using the Aardvark I2C/SPI Control Panel. Once you finished following the steps here , you can proceed to read and write following the syntax below:

    More information can be found on https://www.totalphase.com/blog/2020/04/how-do-i-write-and-read-from-different-registers-of-an-i2c-device/ 

    Best Regards,

    Raymond Lin

  • Hi Raymond-san,

    Thank you for always kind support and detail information.

    I will report this information to them.

    By the way, I guees taht I2C pass-through mode is general and TPS25750s pass-through mode is same as this.

    So, even if other master MCU, they should be able to use pass-through mode.

    Is my understanding correct?

    Regards,

    Hide

  • Hi Hide,

    yes that is correct, any other Master MCU should be able to use pass-through mode.

    Best Regards,

    Raymond Lin

  • Hi Raymond-san,

    Thank you for your prompt reply.

    Regards,

    Hide

  • Hi Hide,

    No problem.

  • Hi Raymond-san,

     

    I have one more question.

     

    [Q6]

    They are evaluating pass-through mode on USB-PD-CHG-EVM-01.

    Then, the following behavior has been confirmed.

     

    - If only Battery is connected, TPS25750's I2Cm_SCL(17pin) is High because this pin is pulled up to LDO_3V3.

    And if they sent command by Aardvark, outputs normally(they can confirm clock output).

     

    -If Battery and USB PD(VBUS) is connected, TPS25750's I2Cm_SCL(17pin) sticks to LOW so outputs abnormally.

     We guess that if USB PD(VBUS) is connected, I2Cm_SCL(17pin) will be fixed to LOW by TPS25750.                                                                                                                

     

    Is this the correct behavior of TPS25750?

    If yes, if USB PD(VBUS) is connected, can’t they use pass-through mode(I2C)?

     

    Regards,

    Hide

  • Hi Hide,

    Is the EVM sinking from both battery and VBUS or is it some other orientation?

    Regards,

    Raymond Lin

  • Hi Raymond-san,

     

    I got new information.

     

    -Vbus is sinking (Supplying power from VBUS to EVM)

    -Battery is charging (Supplying power from EVM to Battery)

    -SYS pin is open(No load)

     

    Regards,

    Hide

  • Hi Hide,

    Let me ask the expert on our team and I'll get back to you tomorrow. 

    Regards,

    Raymond Lin

  • Hide, 

    It is not correct behavior for the I2C SCL pin to be stuck low. That can happen for number of reasons and it is hard to say which device may be pulling clock low. There could be clock stretching from slave device.

  • Hi Ghouse-san,

     

    They are evaluating pass-through mode.

    So, I understand that slave device are TPS25750 and BQ25792.

    Do TPS25750 and BQ25792 have clock stretching?

     

    And, behavior changes depending on the VBUS state.

    Is there a relationship between clock stretching and VBUS?

     

    Regards,

    Hide

  • Hi Hide,

    On the EVM the TPS25750 is the master and the BQ25792 is the slave device. I'll need to ask internally if the BQ25792 is able to do clock stretching.

    Regards,

    Raymond Lin

  • Hi Raymond-san,

    Thank you for the information.

    I’m looking forward to hearing from you.

    >I'll need to ask internally if the BQ25792 is able to do clock stretching.

    Regards,

    Hide

  • Hi Raymond-san,

     

    They verified " TPS25750's I2Cm_SCL(17pin) sticks to LOW ".

    It seems that this phenomenon is occurred by accessing a register that is not in the resister map of BQ25792 datasheet.

    Could you please let us know this cause?

     

    [Measurement environment]

     

    [Result]

     

    Regards,

    Hide

  • Hi Hide-san,

    The BQ can do clock stretching as refer below:

    Do you know which BQ register the customer is trying to access?

    Regards,

    Raymond Lin

  • Hi Raymond-san,

     

    If Type-C adapter is connected, automatically(unintentionally) access 4B and B8 of BQ25792.

    (Please refer to second & third waveform of [result].)

     

    I have some question.

     

    -------

    [Q6]

    I can’t find 4B and B8 resister in the BQ25792 datasheet.

    Is this a register that exists?

    -------

     

    [Q7]

    Can you reproduce this phenomenon at your measurement environment?

    -------

     

    [Q8]

    I2Cm_SCL(17pin) sticks to LOW even if they send the command again.

    So, they can't improve.

     

    You mention "clock stretching of BQ25792", is this expected behavior?

    If yes, could you please let us know the workaround?

    -------

     

    Regards,

    Hide

  • Hi Hide-san,

    Q6: I will ask the BQ team regarding those registers. 

    Q7: I can try to recreate your setup, do you have a binary or project file I can use?

    Q8: Can you observe through the I2C lines if the BQ registers reset correctly if power is not provided?

    I will update you on my findings as soon as possible.

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond-san,

     

    Q7: Their GUI settings are [GUI screenshot].

        (Sorry for the screenshot.)

     

    Q8: REG_RST seems to be running.

        They confirmed the following.

        If there is any missing information, please let me know the specific evaluation content.

        1.REG12 FFh write

        2.REG_RST(REG09 04h Write)

        3.REG12 Read. At the result, 80h (bit7 is not reset by REG_RST but other bits is initialized.)

     

    [GUI screenshot]

    Regards,

    Hide

  • Hi Hide-san,

    Let me rebuild your configuration from end and I'll update you on my findings.

    Still waiting on the BQ team to confirm about the register question.

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond-san,

    Thank you for your response.

    I’m looking forward to hearing from you.

    Regards,

    Hide

  • Hi Hide-san,

    Regarding the BQ registers, the highest register is 0x48. Usually the BQ25792 does not usually exhibit clock stretching except the condition specified in section 9.3.14.3 Byte Format of the BQ25792 Datasheet (page 49, linked below). Did the customer bricked the EEPROM? 

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond-san,

    [Q1]

    I understand that EEPROM is Flash IC on EVM.

    Does " bricked " mean "Disable of Flash IC"?

    (For example, Disconnect “LDO3_3 or I2C line(SCL & SDA) of CAT24C256WI-G”.)

      

    [Q2]

    I2C line(SCL & SDA) of CAT24C256WI-G are connected to TPS25750 and BQ25792 on USB-PD-CHG-EVM-01.

    So, is it difficult to evaluate pass-through mode using USB-PD-CHG-EVM-01?

    Could you please let us know the workaround if you have any idea?

     

    Regards,

    Hide

  • Hi Hide-san,

    Q1: Did the customer forced flash the EVM?

    Q2: I'll need some time to look into this, I will get back to you on this.

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond-san,

     

    Checking pass-through mode after connecting the battery.

    (We understand that writing from Flash to TPS25750 and BQ25792 are completed at this time.)

     

    They do not intentionally control Flash IC at any other time

    (Not forcibly controlling Flash IC and didn't change the EVM circuit either.)

     

    I hope this answers your question.

    If different, please let me know what information you need.

     

    Regard,

    Hide

  • Hi Hide-san,

    Thank you for the clarification! 

    Still looking into your case, currently running into some software issues with the Aardvark program. 

    I will try to get an update to you by the end of this week.

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond-san,

    Thank you for your response.

    I’d greatly appreciate your verification.

    Regards,

    Hide

  • Hi Hide-san,

    Regarding your GUI configuration, was there any additional setting changes made to the Advanced Configuration (i.e. Source and Sink PDOs)? 

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond-san,

    No setting changes.

    Regards,

    Hide

  • Hi Hide-san,

    Thank you for the confirmation!

    Regards,

    Raymond Lin

  • Hi Raymond-san,

    I’d greatly appreciate your verification.

    Regards,

    Hide

  • Hi Hide-san, 

    Would you also happen to have a binary file for your project?

    Thanks and Regards,

    Raymond Lin

  • Hi Raymond-san,

    I would like to post “.bin file” but I can’t attached .bin file.

    Therefore, I sent Zip file and friendship request.

    If you can't confirm .bin file, could you please let us know your mail address?

    I’d greatly appreciate your verification.

    And, can you reproduce this phenomenon?

    Would you tell me about the progress on this matter?

    220802.zip

    Regards,

    Hide

  • Hi Hide-san,

    I received the binary file, thank you for sending it. 

    From my end I can see a similar results to what you have before it seems like the PD is attempting to write to a invalid register (4B and B8). 

    I'll work on producing a successful I2C transaction and generate a binary file once I do. 

    Thanks and Regards,

    Raymond Lin