7
\$\begingroup\$

hello im trying to make a usb receptacle for my microcontroller, im planning to use USB Type C, Although i only need USB 2.0 functionality i might as well design it to specification so that the mCu will work on any computer and any* possible cable configurations most importantly USB C - USB C and USB A-USB C.

https://www.allaboutcircuits.com/uploads/articles/Fig1m11292018.png

The receptacle i have is a 16pin(12 legs) one, I have shorted the redundant pins such as GND, VBUS, D- and D+. But i dont know what to do with SBU1, SBU2, CC1, and CCC2. What should i do to those pins? I would also want that the board will work with USBC PD power supplies. The board only needs the standard 5v 1A (500mA is fine).

I have read that CC needs a pull resistors but i do not know the exact value, or is it best just to leave it floating? Does the USB specification what to do on devices only needing USB2.0 functionality but is using a USB C receptacle?

enter image description here

\$\endgroup\$
1
  • \$\begingroup\$ For USB data communication, a pull-up resistor on D+ is needed. However, many microcontroller have it built-in. So this question must be answered in a greater context. Please specify the microcontroller or whatever chip will be connected to D+/D-. \$\endgroup\$
    – Codo
    Sep 25, 2021 at 14:52

2 Answers 2

12
\$\begingroup\$

I'm assuming that your board with a microcontroller will take on the role of a USB 2.0 device (as opposed to a host). If so, it needs to wired up like so:

  • Connect all GND contacts with each other
  • Connect all VBUS contacts with each other
  • Connect the D+ and D- pairs with each other (A6 to B6, and A7 to B7)
  • Leave SBU1 and SBU2 unconnected
  • Pull CC1 and CC2 down to ground with a 5.1kΩ resistor (separate resistor for each)
  • Pull D+ up to 3.3V with a 1.5kΩ resistor (unless your microcontroller already does so)

Update

The RP2040 microcontroller (and the Raspberry Pi Pico) can act both as a USB device and a USB host.

A host requires a 15kΩ pull-down resistor on both D+ and D- (instead of the pull-up resistor on D+). To achieve its flexibility, the RP2040 provides the pull-up and pull-down resistors for D+ and D- internally. They are activated depending on the USB role.

For the USB-C connector, additionally changes are needed for the host role. CC1 and CC2 should have a pull-up resistor of 36kΩ to 3.3V (or 56kΩ to 5V) instead of the pull-down resistors.

As a host, the Raspberry Pico can no longer draw power from the USB bus. Instead, it must have an independent power supply and provide power to the USB bus.

\$\endgroup\$
5
  • \$\begingroup\$ The microcontroller is the RP2040 from raspberry pi, I have their [schematics] on their commercial board(datasheets.raspberrypi.org/pico/pico-datasheet.pdf) there seems to be no pull up resistors on the datalines just a series resistor on D+ and D-. Thank you for the complete checklist :) \$\endgroup\$
    – Jake quin
    Sep 26, 2021 at 1:16
  • \$\begingroup\$ I am curious though if my mCU board does act as a host what is needed to be done? \$\endgroup\$
    – Jake quin
    Sep 26, 2021 at 2:21
  • \$\begingroup\$ See my update re USB host mode. \$\endgroup\$
    – Codo
    Sep 26, 2021 at 8:33
  • \$\begingroup\$ Could you explain why CC1 and CC2 need a pulldown and why SBU pins can left unconnected? Why 5.1kOhm pull down resistor not e.g. 10kOhm? \$\endgroup\$
    – puncher
    Feb 6 at 16:37
  • \$\begingroup\$ Pull down resistors on CC1 and CC2 are needed to indicate that the device wants power from a power source. With the resistors, the power source cannot determine that the device is indeed a power sink. This is the simple approach unless the device has a USB PD controller. SBU is only needed for advanced use cases and requires communication over CC1 or CC2. In the simple setup with pull down resistors, it can be left unconnected. USB A to USB C cable contain the correct resistors to indicate which side is power source and sink. \$\endgroup\$
    – Codo
    Feb 6 at 18:58
7
\$\begingroup\$

Take a look at USB Type-C specification. What you are trying to do is a Sink-only UFP, without PD. Look at Table 3-5 and Figure 4-5. In short:

  • Pull down each CCx pin to ground through a distinct 5.1 kΩ resistor,
  • Leave SBUx unconnected,
  • Short DPs, DMs, VBUS and GND pins by group.

Do what is specified by the MCU manufacturer for external pullup/downs on DP and DM, if any.

\$\endgroup\$
2
  • \$\begingroup\$ Thanks, im sorry i cant mark your answer , since codo answered first. \$\endgroup\$
    – Jake quin
    Sep 26, 2021 at 1:34
  • \$\begingroup\$ Sure. No problem. I started to answer before his was posted, finished after. His answer is perfectly correct to me. Nothing to say :) \$\endgroup\$
    – Nipo
    Sep 26, 2021 at 8:51

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.