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.

TPS25751: Request for Guidance on Suitable PD Controller for Simultaneous Charging and Data Transfer via HOST ( USB Type-C Upstream port of USB HUB )

Part Number: TPS25751
Other Parts Discussed in Thread: TUSB320LAI, , TPS25810, TPS25740B, TPS25740, , MSPM0C1104, TPS26750

Tool/software:

Dear Texas Instruments Support,

I am currently working on a project that involves configuring the TUSB320LAI (USB Type-C Configuration Channel Logic and Port Control) using a PIC16F1508 microcontroller over the I²C protocol.

In our hardware design, the TUSB320LAI is configured in DRP mode, where:

  • J7 (USB Type-C connector) functions as the host port.
  • J6 and J8 (USB Type-C connectors) function as downstream device ports.

Core Project Requirements:

  • To enable simultaneous charging and data transfer through the same USB Type-C port (host side).
  • When a Laptop/PC is connected as the host via J7, our board should allow only data transfer, without providing charging to the host.
  • When an iPad or Any mobile device is connected as the host via J7, our board should support both data transfer and charging to the host device.

About four months ago, a member of our hardware team contacted TI Support regarding the selection and configuration of the TUSB320LAI. [Refer to link: https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1475854/tusb321-validating-concept-of-host-charging-using-configuration-channel-logic-and-port-control-with-vcon]
According to Vishesh Sir's response at the time, the TUSB320LAI was expected to support charging and data transfer simultaneously without the need for a PD controller.

 

However, based on recent discussions with Ryan Sir from TI Support and our experimental results, it appears that the TUSB320LAI does not manage USB data transfer functionality but instead primarily handles CC line role detection and current advertisement. [Refer to link: https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1532631/tusb320lai-tusb320lai-csr-register-configuration-by-i2c-protocol]

 

Additionally, after further discussion with Barin Zhou, it was confirmed that a PD controller is required for our application. [Refer to link: https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1538000/tusb320lai-simultaneous-charging-and-data-transfer-issue/5923142]

 

Next Steps:

We have shortlisted the following TI PD controllers as potential replacements for the TUSB320LAI:

  • TPS25751
  • TPS25810
  • TPS25740B

We kindly request your expert recommendation on which of these PD controllers is best suited for our application. If neither is ideal, please suggest an alternative low-cost PD controller that meets our requirements.


As we are preparing to submit the prototype to our customer, we would greatly appreciate your urgent guidance and support in finalizing the appropriate solution.

For your reference, please find our schematic attached.
/cfs-file/__key/communityserver-discussions-components-files/196/Schimatic.zip

Thank you for your continued support.

Best regards,
Mayank Mirajkar


  • Hi Mayank,

    Please understand that this is a public forum and anyone with a TI account can view this thread.

    I primarily support the USB-C PD controllers so may not be able to provide too much guidance regarding the MCU or USB hub.

    We have shortlisted the following TI PD controllers as potential replacements for the TUSB320LAI:

    • TPS25751
    • TPS25810
    • TPS25740B

    The TPS25751 could potentially be used here.

    The TPS25810 is not a PD controller.

    The TPS25740 is NRND and should not be used.

    From briefly looking over some of the other threads, it sounds like the requirements for the port are:

    • USB-PD
    • Ability to source 5-V
    • USB2 Data
    • Data role swaps
    • Power role swaps
    To enable simultaneous charging and data transfer through the same USB Type-C port (host side).

    This is fine. The TPS25751 can support configuring the port in both power and data roles, and all combinations of the two.

    When a Laptop/PC is connected as the host via J7, our board should allow only data transfer, without providing charging to the host.

    A power role is always required, whether the port is source or sink. We could attempt to be sink, or attempt to be source at a very low power.

    When an iPad or Any mobile device is connected as the host via J7, our board should support both data transfer and charging to the host device.

    The TPS25751 can configure the port to be source(charging the attached device) and UFP Data(if the far end is source)

    However, based on recent discussions with Ryan Sir from TI Support and our experimental results, it appears that the TUSB320LAI does not manage USB data transfer functionality but instead primarily handles CC line role detection and current advertisement.

    I'm not entirely sure what you mean here, but the TI PD controllers have similar behavior. They handle CC line role detection and power levels, in addition to communicating USB-PD messages to negotiate PD contracts and determine data and power roles.

    Does this summarize your requirements?

    If so, the TPS25751 may be good to use in this application.

    Thanks and Regards,

    Chris

  • Dear Texas Instruments Support Team,

    Thank you for your valuable and prompt response!

    Based on your suggestions, we have created a block diagram for our application, which is included below for your reference. Kindly note that the red lines in the diagram indicate components or features planned for future addition. 

    To help us move forward with our project, we have a few important questions and would greatly appreciate your guidance:

     

    1. Block Diagram Validation
    • Could you please confirm whether the attached block diagram is suitable for our application?
    • We plan to share the detailed schematic soon for further verification.

     

    1. TPS25751 Programming over I²C
    • Could you guide us on how to configure the TPS25751 via I²C?
    • As mentioned in the datasheet, a web-based GUI tool is available for configuration. Kindly advise:
       • What hardware cable or converter is required for this setup?
       • If available, please share any documentation or reference material that could assist us in programming the device effectively.

     

    1. TPS25751 Compatibility with iPads
    • Does the TPS25751 PD controller support charging of both USB Type-C iPads and older iPads with Lightning connectors (via a USB-C to Lightning cable)?
    • Any compatibility notes regarding this use case would be helpful.

     

    1. Use of Apple Converter
    • Currently, we are using an Apple adapter between our device and the iPad to enable simultaneous data transfer (host port) and charging (device port). (Photo attached for reference.)
    •       
    • After integrating the TPS25751 PD controller, will this Apple converter still be necessary?
    • Or can we achieve both charging and data transfer over a single USB Type-C to Type-C cable, without relying on additional Apple accessories?

     

    1. MFI Certification Consideration
    • As per our understanding, Apple uses MFI (Made for iPhone/iPad) certified ICs and connectors, especially for older devices.
    • To support simultaneous charging and data transfer when an iPad is connected as a host, is it necessary for our product to incorporate MFI-certified components?

     

    Your insights on these points are critical for our design decisions. We sincerely appreciate your continued support and look forward to your expert recommendations.

    Thank you once again for your time and assistance.

    Best regards,
    Mayank Mirajkar

  • Hi Mayank,

    1. Block Diagram Validation
    • Could you please confirm whether the attached block diagram is suitable for our application?
    • We plan to share the detailed schematic soon for further verification.

    The TPS25751 cannot control the USB543 over I2C. The I2Cc port are only used for specific ICs, primarily an I2C EEPROM for loading a fw image to the PD controller and specific TI Battery Charger devices.

    You would need to either keep the MCU in the system to control both the USB and PD devices, or potentially see if you can use GPIO control and see if the GPIO events listed in the TRM support the required GPIO behaviors.

    1. TPS25751 Programming over I²C
    • Could you guide us on how to configure the TPS25751 via I²C?
    • As mentioned in the datasheet, a web-based GUI tool is available for configuration. Kindly advise:
       • What hardware cable or converter is required for this setup?
       • If available, please share any documentation or reference material that could assist us in programming the device effectively.

    On power up, the TPS25751 needs a "patch bundle" image loaded from external memory. The patch bundle is generated from the GUI and is mandatory.

    There are two ways to load the patch bundle.

    1. Flash the full flash patch bundle to an I2C EEPROM that is connected to the I2Cc pins of the TPS25751. On boot up, the TPS25751 will automatically load the image during power up.
    2. Have an MCU load the image over I2C. Section 5.2 in the TRM and this app note go into depth on this process.

    If you go down the EEPROM route, you need to find a way to program the EERPOM yourself, whether it is with a 3rd party tool used to program EEPROMs or having the board manufacturers flash it. The binary image to load to the EEPROM is generated from the web based GUI.

    If using option 2, follow the recommended app note. The image is generated with the GUI.

    1. TPS25751 Compatibility with iPads
    • Does the TPS25751 PD controller support charging of both USB Type-C iPads and older iPads with Lightning connectors (via a USB-C to Lightning cable)?
    • Any compatibility notes regarding this use case would be helpful.

    Assuming the Type-C portion of the USB-C to Lightning cables are USB compliant, then yes, the TPS25751 PD controller should support charging of both.

    A better way to look at it is that the TPS25751 is compliant to the USB-IFs PD spec. So if the peripheral you want to use is compliant to the same spec, then the devices should be interoperable.

    1. Use of Apple Converter
    • Currently, we are using an Apple adapter between our device and the iPad to enable simultaneous data transfer (host port) and charging (device port). (Photo attached for reference.)
    •       
    • After integrating the TPS25751 PD controller, will this Apple converter still be necessary?
    • Or can we achieve both charging and data transfer over a single USB Type-C to Type-C cable, without relying on additional Apple accessories?

    You would still need a lightning adapter. If it is type-c to type-c, you should be fine.

    1. MFI Certification Consideration
    • As per our understanding, Apple uses MFI (Made for iPhone/iPad) certified ICs and connectors, especially for older devices.
    • To support simultaneous charging and data transfer when an iPad is connected as a host, is it necessary for our product to incorporate MFI-certified components?

    I'm not sure on the specifics here. For basic USB-C you may be fine, but I'm not sure if there are other features that require MFI.

    Thanks and Regards,

    Chris

  • Dear Christopher Lim1,

    Thank you for your valuable and prompt response.

    We would like to reiterate our core requirement:
    To enable simultaneous charging and data transfer through the same USB Type-C port, which serves as the host-side (upstream port) of a USB hub in our application.


    We have reviewed the following TI resource: https://www.ti.com/video/6258839979001#transcript-tab
    Based on the USB Battery Charging Specification USB BC 1.2 (CDP mode), the VBUS, DP, DM, and GND lines are involved in device charging. However, since the DP and DM lines also carry data, we are seeking further clarification on how both charging and data transfer can reliably occur simultaneously over the same Type-C port.

    We would appreciate your detailed guidance on the following points:

    1. Role of BMC (Bi-Phase Mark Coding): What is the role of BMC in enabling simultaneous charging and data transfer, specifically on the host side (upstream port of a USB hub)?
    1. USB Type-C Pin Functionality: Could you please clarify the expected state and role of each pin (VBUS, DP, DM, CC, GND, etc.) on the USB Type-C connector during simultaneous charging and data transfer from the host side?
    1. TPS25751 Functionality: How does the TPS25751 PD controller support or enable this simultaneous functionality in a USB hub-based application?

     

    We have attached our current schematic for your review. Kindly evaluate and share any feedback regarding signal routing or connection optimizations—especially in the context of enabling the desired dual-function capability.
    /cfs-file/__key/communityserver-discussions-components-files/196/TPS25751_5F00_Daughter_5F00_Board.pdf

    Additionally, we would like your confirmation on the correct connection of the DRAIN pin for the TPS25751 in our schematic, as we want to ensure compliance with best design practices.

    Your expert insights are crucial to the success of our system design, and we sincerely appreciate your continued support and guidance.

    Thank you once again for your assistance.

    Best regards,
    Mayank Mirajkar

  • Hi Mayank,  

    Chris is currently out of office. Please allow some delay in responses. 

    Best Regards, 

    Aya Khedr

  • Hi Mayank,

    To enable simultaneous charging and data transfer through the same USB Type-C port, which serves as the host-side (upstream port) of a USB hub in our application.

    Yes, the TPS25751 can support this. If you only need 5-V sourcing and highvoltage sinking, you can use the TPS25751 by itself. If you need higher voltage sourcing from the port, we typically require you pair the PD controller with a TI BQ device listed in the DS.

    Based on the USB Battery Charging Specification USB BC 1.2 (CDP mode), the VBUS, DP, DM, and GND lines are involved in device charging. However, since the DP and DM lines also carry data, we are seeking further clarification on how both charging and data transfer can reliably occur simultaneously over the same Type-C port.

    Correct, BC1.2 is not USB PD and occurs on the DP/DM lines. It was intended for Type-A Cables.

    Role of BMC (Bi-Phase Mark Coding): What is the role of BMC in enabling simultaneous charging and data transfer, specifically on the host side (upstream port of a USB hub)?

    BMC is a communication scheme. In regards to Type-C PD, PD messaging is sent on the CC lines using BMC. PD messaging handles power advertisement and contract negotiation. In addition, the CC line messaging supports power and data role swaps, determining port power and data roles.

    USB Type-C Pin Functionality: Could you please clarify the expected state and role of each pin (VBUS, DP, DM, CC, GND, etc.) on the USB Type-C connector during simultaneous charging and data transfer from the host side?

    VBUS and GND are power. DP/DM are USB2 data and sometimes BC1.2. BC1.2 would only happen initially after the connection and should not interfere with USB data. CC lines are used for PD communication and Type-C cable power.

    TPS25751 Functionality: How does the TPS25751 PD controller support or enable this simultaneous functionality in a USB hub-based application?

    It is a PD controller that also has BC1.2 support. It can be configured to negotiate a PD contract and initiate data role swaps to preferred data roles. The same can be done for power roles.

    Additionally, we would like your confirmation on the correct connection of the DRAIN pin for the TPS25751 in our schematic, as we want to ensure compliance with best design practices.

    The drain pins should be connected to one another, and the drain pad should be connected to a copper pour for thermal relief. This is the drain of the internal power path and is exposed mainly for thermals. It is not connected to anything else. See the TPS25751EVM for reference.

    • VBUS_IN should not be connected to PPHV. There is an internal power path that connects the pins. VBUS_IN should only be connected to VBUS and to the Type-C connectors VBUS pins.
    • For 5-V source only, you only need to provide 5-V to PP5V. If using the device as a sink, PPHV can be connected to an internal rail that you want to sink power to, otherwise you can just connect it to a small amount of bulk cap.

    Thanks and Regards,

    Chris

  • Dear Christopher Lim1,

    Thank you for your valuable and prompt response.

    The drain pins should be connected to one another, and the drain pad should be connected to a copper pour for thermal relief. This is the drain of the internal power path and is exposed mainly for thermals. It is not connected to anything else. See the TPS25751EVM for reference.

    • VBUS_IN should not be connected to PPHV. There is an internal power path that connects the pins. VBUS_IN should only be connected to VBUS and to the Type-C connectors VBUS pins.
    • For 5-V source only, you only need to provide 5-V to PP5V. If using the device as a sink, PPHV can be connected to an internal rail that you want to sink power to, otherwise you can just connect it to a small amount of bulk cap.

    We will proceed with your recommendations regarding the PPHV connection and have initiated the design of a daughter board incorporating the TPS25751 IC for prototype testing.

    We would appreciate your detailed guidance on the following points:

    • Do any Apple devices (e.g., MacBook, iPad) support BMC (Bi-Phase Mark Coding)?

    • Based on the TPS25751 application notes and technical documentation, we are using the “patch bundle” generated from the TI Web GUI along with a PIC16LF1508 MCU to load the image over I²C. We have developed the corresponding .c and .h files for the TPS25751D IC. Please find the code attached for your review and kindly provide any suggestions or corrections.
      Attached code link: /cfs-file/__key/communityserver-discussions-components-files/196/TPS25751_5F00_code.zip

    • Is it possible to charge a MacBook or other laptops using the TPS25751 IC? If yes, could you please explain the process in detail, preferably with an example of how this can be achieved?

    Thank you once again for your continued support and guidance.

    Best regards,
    Mayank Mirajkar

  • Hello,

    Do any Apple devices (e.g., MacBook, iPad) support BMC (Bi-Phase Mark Coding)?

    USBC-PD is supported by newer Apple devices.  Part of this is because of the EU mandate (see Common Charger Directive).

    Based on the TPS25751 application notes and technical documentation, we are using the “patch bundle” generated from the TI Web GUI along with a PIC16LF1508 MCU to load the image over I²C. We have developed the corresponding .c and .h files for the TPS25751D IC. Please find the code attached for your review and kindly provide any suggestions or corrections.

    This looks inline with what is found in the documentation.  For the SMBUS, you do not use the repeated start.  I have not tried sending a stop and then start.  Please let me know if you encounter any issues.

    Is it possible to charge a MacBook or other laptops using the TPS25751 IC? If yes, could you please explain the process in detail, preferably with an example of how this can be achieved?

    This will have some dependency upon the device, but typically yes.  Firstly, the USBC will determine the initial roles.  This relates to the presentation of Rp and Rd on the CC pin.  The strength of the Rp resistor will communicate the current capabilities of the source device.  After the roles are established the BMC will occur on the CC line.  If one or both devices do not support USBC-PD then the process stops and the 'implicit' 5V contract is established with the current capability defined by the Rp/Rd resistor divider.  If USBC-PD is supported by both then the communication begins with an attempt to establish an 'explcit' contract.  The source will provide capabilities, then the sink will request one of the capabilities, and then the source will accept the request.  The TPS25751 does not support alternate messages so there will be no responses related to displayPort etc.  This would be a good resource: https://www.ti.com/lit/wp/slyy109b/slyy109b.pdf

    Regards,

    Chris 

  • Dear Texas Instruments Support Team, 

    Thank you for your valuable and prompt response! 

    We would appreciate your detailed guidance on the following points: 

    • What is the size of the internal flash memory of the TPS25751D IC, and is it classified as volatile or non-volatile? 
    • If the MCU loads the patch bundle image over I2C into the TPS25751D IC, what is the minimum flash memory requirement for the MCU? 
    • Once the MCU has loaded the patch bundle image over I2C into the TPS25751D IC, is it necessary to reload the patch bundle image into the TPS25751D IC after each power cycle? 

    Thank you once again for your time and assistance. 

    Best regards, 
    Mayank Mirajkar 

  • Hi, 

    Chris is currently out of office today. Please allow some delay in responses. 

    Best Regards, 

    Aya Khedr

  • Hello,

    What is the size of the internal flash memory of the TPS25751D IC, and is it classified as volatile or non-volatile?

    The memory size is not disclosed.  The TPS25751D has both ROM (non-volatile) and RAM (volatile).  It is the RAM portion which is loaded either from and EEPROM (non-volatile) or from an embedded controller (MCU).

    If the MCU loads the patch bundle image over I2C into the TPS25751D IC, what is the minimum flash memory requirement for the MCU?

    I used CCS and the LP_MSPM0C1104 for the application note example.  

    This MCU has 16K of memory.  

    The low region binary was a 11.125K.

    Once the MCU has loaded the patch bundle image over I2C into the TPS25751D IC, is it necessary to reload the patch bundle image into the TPS25751D IC after each power cycle? 

    Yes.  The patch bundle is loaded into the device RAM (volatile) and will be lost after a power cycle.

    Regards,

    Chris

  • Dear Texas Instruments Support Team, 

    Thank you for your valuable and prompt response.

    We would appreciate your detailed guidance on the following points:

    • Test setup: We are utilizing the PIC16LF1508 MCU (Flash: 4096 Bytes, SRAM: 256 Bytes) for loading the patch bundle image to the TPS25751D IC. We downloaded the ".c" file using the USB-C PD Application Customization Tool (GUI). We are employing the "tps25750x_lowRegion_i2c_array" from this ".c" file in our "TPS25751_code.c" file, which has been loaded into the PIC16LF1508 MCU. We have already shared our code; however, we are currently encountering the following issue.

    • Code Size Limitation: The size of the "tps25750x_lowRegion_i2c_array" is approximately 11KB, which exceeds the capacity of the PIC16LF1508 MCU.

    • Request for Guidance: Please provide us with recommendations on how to resolve this issue.

    • Design Considerations: If we intend to proceed with the PIC16LF1508 MCU, what modifications should we consider?

    • Register State Post-Power Cycle: What is the default state of all TPS25751D registers following each power cycle?

    • Configuration Requirements: Given our requirements, we need to configure only a select few registers of the TPS25751D IC. Is it feasible to configure only those registers after each power cycle without loading the patch bundle image?

    • Direct Configuration via GUI: Is it feasible to configure the TPS25751D IC directly using the USB-C PD Application Customization Tool (GUI)?

    Thank you once again for your continued support and guidance.

    Best regards,
    Mayank Mirajkar

  • Hello,

    Test setup: We are utilizing the PIC16LF1508 MCU (Flash: 4096 Bytes, SRAM: 256 Bytes) for loading the patch bundle image to the TPS25751D IC. We downloaded the ".c" file using the USB-C PD Application Customization Tool (GUI). We are employing the "tps25750x_lowRegion_i2c_array" from this ".c" file in our "TPS25751_code.c" file, which has been loaded into the PIC16LF1508 MCU. We have already shared our code; however, we are currently encountering the following issue.

    Not sure how you are even able to compile as the .c file is larger than the 4KB size of the MCU flash space.

    Code Size Limitation: The size of the "tps25750x_lowRegion_i2c_array" is approximately 11KB, which exceeds the capacity of the PIC16LF1508 MCU.

    Yes.  You should appropriately size the MCU for the application.

    Request for Guidance: Please provide us with recommendations on how to resolve this issue.

    You either need to switch to a higher flash MCU or an EEPROM.  Another alternative would be to attempt to use the PD controller in the NegotiateHighVoltage mode - i only suggest this as an option of last resort because it will require additional thought on how the system will respond to potentially 20V input as the PD will operate automatically.  Also you would not be able to charge any devices with this mode.

    Design Considerations: If we intend to proceed with the PIC16LF1508 MCU, what modifications should we consider?

    You would need to add external memory to store the PD image.

    Register State Post-Power Cycle: What is the default state of all TPS25751D registers following each power cycle?

    The default state is found in the TRM.  See the value marked "Reset".

    Configuration Requirements: Given our requirements, we need to configure only a select few registers of the TPS25751D IC. Is it feasible to configure only those registers after each power cycle without loading the patch bundle image?

    No.  The mechanism is tightly controlled and requires both the device configuration and the firmware patch (fixes to the ROM based image).  This bundle is required by the ROM boot code to successfully transition from the PTCH to APP modes.

    Direct Configuration via GUI: Is it feasible to configure the TPS25751D IC directly using the USB-C PD Application Customization Tool (GUI)?

    No.  The GUI tool is designed to work with the Host on the EVM to program the EEPROM (also on the EVM).  The GUI also can generate the Full-flash binary which can be programmed to the EEPROM with a tool like the Ardvark.  The GUI can also generate the low region binary for loading directly using the Patch burst mode and an MCU.

    Regards,

    Chris

  • Dear Texas Instruments Support Team, 

    Thank you for your valuable and prompt response.

    We would appreciate your detailed guidance on the following points:

    • According to the TI document titled "Application Note for TPS25751 and TPS26750 EEPROM Update Over I2C," please confirm the following connection required for updating the EEPROM patch bundle image via the host MCU.
      • EEPROM with I2C Controller of TPS25751 IC
      • Host MCU with I2C Target of TPS25751 IC

    • Can you confirm if the Host MCU is responsible for updating the EEPROM patch bundle image through the TPS25751 IC? Is this the sole method for updating the EEPROM patch bundle image?

    • Is it feasible for the Host MCU to directly update the EEPROM patch bundle image with the EEPROM connected to the TPS25751 IC? If so, please provide a detailed explanation of the process, including example code.

    • What is the minimum EEPROM size required for the patch bundle image?

     

    Thank you once again for your continued support and guidance.

    Best regards,
    Mayank Mirajkar

  • Hi Mayank, 

    Could you post a new E2E thread in regards to EEPROM Update for better trackability? Thanks in advance!

    Best Regards, 

    Aya Khedr