1
\$\begingroup\$

Background

Texas Instruments' reference design PMP41013 exhibits bidirectional power transmission (DRP) via USB-C USB PD.

This is principally accomplished through an IC:

  • TPS25750 — USB Type-C® and USB PD controller

Potential USB-C connection cases include:

  • Device receives power (Power: UFP)
  • Device provides power (Power: DFP) (USB OTG)

Data Transmission

Data transmission is not referenced in the reference design.

The USB-C data lines:

  • SSTX±, SSRX± (USB3) are left floating.
  • D± (USB2) are renamed USB_P, USB_N and passed to TPS25750.
    • This is for BC1.2 functionality.

Figures:

  • PMP41013 : Schematic : USB-C Connector

PMP41013 : Schematic : USB-C Connector

  • PMP41013 : Schematic : TPS25750

PMP41013 : Schematic : TPS25750

  • TPS25750 : Datasheet : USB_P, USB_N

TPS25750 : Datasheet : USB_P, USB_N

Issue

I would additionally like to perform USB2.0 data transmission.

Question

How can I supplement this design to add optional data transmission to these ports, such that:

  • Device receives data (ideally with power) for USB MCU bootloading
    • Ex: TI MSP430F5
  • Device receives data (ideally with power) for USB external storage read/write
    • Ex: Flash drive

I am seeking something like a reference design portraying the types of additional USB circuitry needed for such an augment.

  • Is it as simple as placing a USB2.0 PHY layer on the D± lines?
    • Do I need to cut the BC 1.2 lines to do so?
    • Can I have USB2.0 data AND BC 1.2?

Note

This was asked here; the respondent stated that the how needed to be asked in a separate question.

I have also asked on the TI forums, in case anything crops up there.

\$\endgroup\$
11
  • 1
    \$\begingroup\$ the Dp/Dn pins are the "normal" communication pins (USB2.0). In general, the power and data topologies are two separate thing. The device can source or sink power (power domain) and be either a host or a device (data topology). Can you explain what your device is supposed to do or what your usecase is? \$\endgroup\$
    – Sim Son
    Commented Nov 2, 2023 at 15:25
  • 1
    \$\begingroup\$ @SimSon but Dp/Dn go to the charge controller IC. \$\endgroup\$ Commented Nov 2, 2023 at 15:27
  • \$\begingroup\$ @user253751 : Exactly — that's where I get hung up. I'm using an MCU430, so USB2.0 should be more than fine, but those D± seem tied up for power and thus not available for data. The USB PD controller datasheet and firmware GUI guide make no mention of layout for data lines. \$\endgroup\$
    – kando
    Commented Nov 2, 2023 at 15:30
  • 1
    \$\begingroup\$ @kando USB is so powerful and has so many options that in my opinion you need to describe your device as good as possible to get a good answer. As I undestand it, you need bi-directional power delivery and an ordinary USB2.0 data connection. In that case, the whole charge controller part that confuses you is irrelevant in my opinion... \$\endgroup\$
    – Sim Son
    Commented Nov 2, 2023 at 15:52
  • 1
    \$\begingroup\$ You should clearify the topology you are looking for. What role does your device play in the power domain (sink versus source) and in the data domain (host versus device). Currently, it is unclear to me what the "use cases" are: "Device receives data [...] for USB MCU bootloading [and] for USB external storage read/write" sounds like it's a USB host in both cases or am I wrong? \$\endgroup\$
    – Sim Son
    Commented Nov 2, 2023 at 21:22

1 Answer 1

1
\$\begingroup\$

As it stands, you can either permanently put your MCU's data lines onto the USB-C connector (which will allow programming but disallow BC charging), or combine them in some way. This depends on whether you want BC support - TPS25750 supports both charging from BC and charging BC-supporting devices. If you do want BC support, I am guessing that you might be able to actually parallel the BC lines with USB 2.0 lines - the TPS25750 datasheet figure 9-23 shows that its BC detection hardware is flexible enough, so it only depends on how much software control you have over enabling and disabling that BC hardware.

A different, surefire option I see is to use a USB 2.0 2:1 mux that's BC-compatible, and have your MCU expose its programming interface on its own whenever it can detect a data-capable device. The mux's control pin could also be overridden by the powerbank button or a different onboard switch in case the user bricks the powerbank during firmware update. That could be the option you go for in one of the test revisions, so that you can still try combining BC with USB by jumpering both pins of the mux together, bypassing the mux - again, that's assuming that you are looking for BC support. And, of course, there's nothing wrong with a good old pair of 0R in your favourite footprint.

As far as I can see, this mechanism would be quite independent from the USB-C port, save for the fact your downstream device will still need to present CC pulldowns if it wants to take advantage of BC, rendering BC support somewhat moot. Only a few devices require BC support to fully charge from a USB-C PD-compliant connection - sadly, the PS5 controller is one of them, but there's not a lot otherwise.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.