# USB Type C Legacy Port Current Draw

I have done a good amount of research, but cannot come to a conclusion. I am designing a circuit which involves a battery powered device and a USB connection to charge it. The circuit has several current paths.

In order to remain compliant to the USB 2.0 spec, I can only draw 100mA from the host when I am not enumerated, but once I am enumerated, I can draw 500mA. This actually presents a fairly large issue for the design, because 100mA means I have to put in way more effort into current limiting when not enumerated. Space is a massive issue and eliminating as many tiny chips as I can vastly reduces the complexity. We are talking a 1.5 sq inch board here or less.

I do not have plans to use a USB 2.0 connector, but want to go with a type C connector, because type C is very... cool because of its extra pins and reversible nature. However, I plan to use USB 2.0 high speed data and not 3.0+ speeds.

With this in mind, the type C connector has the CC pins. Now if I want to connect to a type A host (legacy host port), I need an adapter which will internally pull up the CC pins with a 56k pull up.

Here is my understanding of the resistor values on the CC pin. There are 3 pull up resistor values that advertise Default USB power (56k), 1.5A current, and 3.0A current. With regards to the 1.5A or 3.0A current advertisements, it is my understanding that I can just start drawing that much power right out of the gate without any enumeration. Is that assumption correct?

Default USB power for a type C connector is very fuzzy. All of the documents I read say 500mA for USB 2.0 or 900mA for USB 3.0. Is this "out of the gate", meaning I can draw that current without enumeration, or is this 'after' enumeration? If this is 'after' enumeration, it means I am back to square one in that I can only draw 100mA before enumeration and 500mA after enumeration. My hesitant guess is that this is 'after' enumeration, because as far as the legacy host port is concerned, it has no knowledge of the type C connector and is still connected to 4 pins on the cable on one end. However, you do have the converse that the type C spec and documents state that the port must allow up to 500mA of current.

• Is your device a USB device? Jan 24, 2017 at 4:03
• @AliChen: The question says "I plan to use USB 2.0 high speed data" Jan 24, 2017 at 4:42
• Is it really so hard to reduce current until enumeration? Normally these situations are a pain because you don't want to have to fit a micro running a USB stack, but you're doing that anyway. Can you not just put a small FET to disable the rest of your circuit until the device has enumerated?
– Jon
Jan 24, 2017 at 9:25
• It actually is difficult to reduce the current, and it involves more than just putting a FET in to disable part of the circuit. There are 2 devices on board, both with firmware that can be updated and one of them is the 'port / power manager. This device needs to work under all circumstances, even from a dead battery. We need to also be able to communicate over USB but not power the system from USB, essentially USB connected for data but not power. In this case, we would send a command down from the PC to switch the power from USB to battery Jan 24, 2017 at 13:49

Unfortunately, yes, if the USB 2.0 device seeks the USB-IF certification, it must obey the sequence 100mA -> USB_connect -> enumerated/configured -> full draw of port current. The "full draw" however should be determined by sensing the value of pull-up on attached CC pin.

If the attached cable is a "legacy cable" compliant to Type-C specifications, it should have 56k built-in pullup (you generally don't need any adapter, the cable has the pull-up).

If the attached cable is the "Type-C Standard Cable" connected to another Type-C port, the CC pull-up will be defined by the sourcing port, whichever it is capable of, 1.5 or 3A.

If you want your device to be practically charged, and charged faster, it is advisable to implement a battery-charging detector IC, at least to determine if the port supports Chinese-style charger signature, D+ connected to D-.

To really comply with USB-IF test specifications when using Type-C connector, you need to consult very carefully with this document, Type_C_Functional_Test_Specifications. This is an evolving area, so check for updates.

But if you don't bother with exhaustive USB-IF certification (as most manufacturers do), just take 500mA if it is enough for you, since every reputable host USB port must unconditionally support 500mA of sourcing (except nearly non-existing subset of low-powered portable gadgets running form tiny batteries).

• Humbug, OK, I had a feeling this was the case. I would like to be USB compliant, so I can only draw 100mA when not enumerated from a legacy port. This makes the design somewhat more complicated, but you have answered my question. Jan 24, 2017 at 14:00
• @Ale..chenski Sorry to gravedig, but this is very relevant for me. I fully understand what you mean, only draw 100mA at the start. But, since we are dealing with type-c, is there ever a case that we would not be able to draw at least 500mA? I am using a type-c just for power, nothing else. I am sampling the CC pins to see if I can draw 500mA, 1.5A, or 3A. There isn't a scenario that I would not be able to draw at least 500mA. And since I'm not actually enumerating and just using power, what is the best course of action? Apr 24, 2020 at 11:58
• But the spec says you can create a "USB Type-C Power Sinking Device (PSD)" which "may draw up to 500 mA" without any enumeration at all Oct 27, 2020 at 22:26
• full draw of port current. The "full draw" however should be determined by sensing the value of pull-up on attached CC pin. That doesn't seem right. If you're connected to a 1.5 A or 3.0 A Type-C port you can just start drawing it immediately, no? Oct 27, 2020 at 22:31
• Chinese-style charger signature, D+ connected to D-. This is BC1.2 spec, which is included in the Type-C spec Oct 27, 2020 at 22:32