I am investigating the relevant standards in USB that allows a USB 2.0 device to obtain increased current from computers.

So far, my understanding is that, when the USB port is not suspended, the original USB 2.0 protocol allows a device to draw 100 mA during device enumeration. After enumeration is completed, the device can either be a low-power device and pull 100 mA (1 unit), or be a high-power device and draw 500 mA (5 units) from the host. Soon it followed that manufacturers started exploiting USB as a charging port, and the USB battery charging specification (USB BC) is established to accommodate this requirement.

More recently, the USB power delivery protocol is specified and it's possible to use it with USB 2.0, in principle, but it's only a new development and not widely supported.

USB BC standardized three types of ports on a USB host or hub.

  1. Standard downstream port (SDP) - This class is basically same USB 2.0 port as originally specified.

  2. Dedicated charging port (DCP) - This class is identified by a short between D+ and D-. Upon detection, a device can pull up to 1.5 A from this port. It's mainly designed for use by chargers, and can be implemented without any digital electronics. It's still commonly supported by a generic USB charger.

  3. Charging downstream port (CDP) - This class is an extension to the standard USB 2.0 port, allowing a device to obtain up to 1.5 A of current. Upon attachment, a CDP is detected by performing a hardware handshake on D+ and D- lines: If a voltage between 0.4 V and 0.8 V is sensed on D+ of a host or hub device, then D- should respond with 0.5 V to 0.7 V. The device enumeration and digital communication follow after the handshake.

In my experience, every computer's USB 2.0 port is a SDP and power shortage is still a problem today. Charging is extremely slow, optical drives and hard drives drop out all the time. Sometimes, it's possible to obtain higher current, but it's only because the device is cheating by declaring itself as self-powered hub, or because the computer's USB power is not too restrictive and allows more current to be pulled, in this case, it's operating out-of-spec and successful operation is a matter of luck.

The charging downstream port is certainly an interesting port specified by the USB BC standard, and it was supposed to solve the power shortage problem on computer USB ports. But I have never ever seen a USB BC CDP on a computer - it's not useful for USB peripherals if it's not supported by computers.

This is the question: Did the USB 2.0 BC "charging downstream port" never catch on? Has a major computer manufacturer ever implemented it? If yes, which one? If no, are there applications that ever implemented a CDP? For what?

  • \$\begingroup\$ With USB 3+, this doesn't seem to be an issue. Many of the more recent computers I've bought contain specific firmware for charging devices (for my MSI board, this is called "Super Charger"). USB-C allows devices to draw a lot more power than the old boards by providing programmable voltages/currents. \$\endgroup\$ – Ron Beyer Mar 17 at 17:15
  • \$\begingroup\$ @RonBeyer Yes, but it's only a recent development and the situation is still somehow a headache for USB 2.0-only embedded boards - which is what I'm working on. First let's say USB-C, although it includes a special mode for USB 3.0 device that expands power from 5 V/0.9 A to 5 V / 3 A, but for USB 2.0 it's still 5 V / 0.5 A, and I fail to find anything extra. And yes, Power Delivery is a separate protocol and it's compatible with all USB devices, including USB 2.0 that massively increases the power, but the situation is not good either - many computers have USB-C but I don't think all have PD \$\endgroup\$ – 比尔盖子 Mar 17 at 17:24
  • \$\begingroup\$ The spec is 5V/0.5A, but most ports on devices nowdays provide much more than that. Many of the devices I've had over the years provide 1A or more. The spec is the minimum requirement, there is no reason you can't provide more. \$\endgroup\$ – Ron Beyer Mar 17 at 17:25
  • \$\begingroup\$ @RonBeyer So in practice, the way to get more power is plugging a plain old USB 2.0 device to a USB 3.0 or a USB-C port and wish it is "stronger"? To be honest, it's what I'm doing personally, but back to the background, I'm working on a project that needs to design a power-hungry (~1 A) USB 2.0 board, and it must be compatible with all USB 2.0-only hosts. It's the best if I can power it from a single port by any means necessary before falling back to an external power supply (or an extra USB), it's my motivation to investigate USB BC CDP and see whether anyone has implemented it. \$\endgroup\$ – 比尔盖子 Mar 17 at 17:35
  • \$\begingroup\$ If you are working off the USB-2.0 spec, then you need to keep yourself in those limits (2.5 watts max) if that is all you can guarantee on the supply end. This would mean requiring an external supply and using a PPTC to limit your draw. If you know you will almost always exceed that, then require an external supply (this can be a USB-style port like the Raspberry Pi uses). If you know that the device you are plugging into is CDP compliant, then design it like that, otherwise you must pick the lowest common denominator. \$\endgroup\$ – Ron Beyer Mar 17 at 17:44

Texas instruments makes a chip BQ24392 that can detect if the host is a CDP, SDP, or DCP.

I think the way to answer you question is to get the BQ24392EVM (or similar) and plug it into a bunch of computers and see how many of them support CDP (you will know if the indicator light comes on).


I have personally plugged that eval board into a various computers in my house. I found that older computers tended to have less support than the newer ones.

On my Toshiba Qosmio X70 laptop one or two of the ports support CDP and the others don't. I also have an Acer laptop and it has support, again on only some ports.

Usually I have found support to be limited to the blue USB 3.x ports.

If you design a product that relies on the ammount of current provided by the CDP spec then you need to have a contingency plan because your user has a very good chance of plugging into a port that doesn't support CDP.

In my case I used the BQ24392 to inform my device of the host capabilities and limit my power useage acordingly. But if you really need the higher current, you could also use that knowledge to indicate to the user that they need to find a better port.

| improve this answer | |
  • \$\begingroup\$ Good idea. BTW, many "USB Power Meter" gadgets can enumerate all the charging standards supported by the hot, so that power users (pun not intended) can learn what fast-charging standards are supported by their ports, but these things are general leaned towards much newer standards such as Qualcomm Quick Charge and USB-PD, not sure if they can detect CDP as well. Need to check their manuals. If not, I'll get a BQ24392. \$\endgroup\$ – 比尔盖子 Mar 18 at 4:12

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.