3
\$\begingroup\$

I have a PCB that currently features a Micro-USB used only for data transfer, and a separate 5V power supply input jack for powering up the device. The device's maximum drawn current is 600mA. To remove the need for the input jack and to use only one cable, I would like to follow the steps featured in this post in order to have my USB 2.0 device handle both data transfer and power (5V, 600mA) using a USB-C receptacle.

From what I understand, the steps include soldering the two data pins from the Micro-USB to the receptacle pins, soldering the 5.1k pull down resistors on the CC pins, and soldering the 5V/GND pins from the input jack to the VBUS/GND pins of the receptacle to power up my device. For now I do not care if the modification is bulky, I only care on safety.

I then want to hook up my newly modified device to a laptop. My questions are:

If I hook it up to a USB-C port, will the power negotiation work as expected? I understand that USB 2.0 hosts limit negotiation to 500mA, thus I want to know if negotiation will work as the host can handle more (900mA) but my device runs USB 2.0 only?

Now say I use a commercially available USB-C to USB-A adaptor to connect my modified device to a classical USB-A port on my laptop. I expect that the answer does not change if the port runs on USB 3.0? And if the port only features USB 2.0, will my device basically not turn on, as negotiation will stop at 500mA?

I am new to negotiation, any help is very appreciated!

\$\endgroup\$

2 Answers 2

2
\$\begingroup\$

When you plug in your device the pull up resistor Rp on the host side and pull down resistor Rd on the device side form a resistor divider.

page 9 in AN5225

The Rd resistor is 5.1K as you mentioned, but the Rp will vary based on the power capabilities of the host. You can monitor the voltage at the cc pins, and after making sure the host is capable of providing enough power, enable the power demanding circuitry.

AN5225 by ST talks more about the issue.

enter image description here

\$\endgroup\$
1
  • \$\begingroup\$ Thank you for your response. My question is more related to the power negotiation rather than verifying that the host can handle the power requirements. I am not sure that I understand at what level this power negotiation happens and how it works. I am searching for resources online to better understand this but I cannot find them. Basically my device has drivers implemented using the libusb library, and I would like to make sure that negotiation will be safe when connecting the modified device to USB 2.0 or 3.0. \$\endgroup\$
    – probably45
    Jul 30, 2020 at 15:11
1
\$\begingroup\$

If you need only 5V 600 mA and USB2.0 data rates, you can go with a straightforward schematic, e.g.:

enter image description here

5.1k pull-down resistors allow your device to draw up to 3 A from the host, if the host is capable.

Regarding your need for over 500 mA - it's a good idea to measure USB_CCx lines with your MCU's ADC to know your host capabilities for sure. To understand which voltage you want to read from the pins, you can refer to the ST's app note mentioned in the previous answer.

If your MCU can't handle this part of the job, look at CC configuration ICs (leaving Injoinic IP2721 just as a reference, not sure it controls the current capability of the host).

\$\endgroup\$

Your Answer

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

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