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.


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

  • \$\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 at 14:52

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)


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.

  • \$\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 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 at 2:21
  • \$\begingroup\$ See my update re USB host mode. \$\endgroup\$
    – Codo
    Sep 26 at 8:33

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.

  • \$\begingroup\$ Thanks, im sorry i cant mark your answer , since codo answered first. \$\endgroup\$
    – Jake quin
    Sep 26 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 at 8:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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