# Identifying a USB charging port without enumeration

Is there a low cost and reliable way to identify a USB charging port?

I plan to charge a device via the USB port. The USB Battery Charging Specification 1.1 allows 1.5A current draw when connected to a Dedicated Charging Port (DCP) and 500mA when connected to a Charging Downstream Port (CDP). A DCP is typically a wall wart and a CDP is typically a computer. As far as I understand, a DCP is identified by shorted D+ and D-lines, a CDP id identified by D+ and D- being pulled to ground through 15k resistors.

It seems like identifying these ports takes quite a bit of extra hardware. I could probably bias the D+ line and connect D- to an ADC input to look for a DCP. And some similar arrangement to check for a CDP. I assume I would also need to disconnect the bias and ADC when done to not interfere with USB communication. The USB pads on my mcu are not 5V tolerant and are dedicated USB pads (I'm using an LPC1343).

Identifying the non-standard Apple and Sony chargers would be an added bonus, but not critical.

Does anyone see a simpler or better way to do this?

From this datasheet

• "USB Battery Charging Specification 1.1 allows 1.5A current draw when connected to a Dedicated Charging Port (DCP)" I don't think that's correct, though the spec is very hard to read. From what I understand, you draw increasing amounts of current until the voltage starts to collapse, and then you can't draw more than that. Different DCPs can supply different amounts of current, in other words. Jun 8, 2016 at 17:22

Although I don't have direct experience with this, from what I've read, IC's that perform this function usually sample the D+/D- lines on application of power with some sink on the D+/D- to detect the charger type, and disconnect their detection logic once a determination has been made of the connected source, AC adapter or USB port. More information is available from a TI app note here.

I sure from my previous part searches that some battery charger IC's have built in charger type detection, but I couldn't find an example part when searching just now.

There's the MAX14578 which also does the job, but it may not fit your criteria of low cost.

• Thanks. Using a dedicated detector chip may be the best approach all things considered. The Maxim chip has some ESD protection so I can save some cost there. Feb 20, 2012 at 9:11
• or you can use my answer which lists two of these chips. Jan 9, 2017 at 14:09
• Also the Texas Instruments BQ24392 chip will detect a DCP, CDP, or SDP and tell you which type of port is detected. Feb 26, 2018 at 18:30
• The BQ24392, FSA832, and MAX1463x are clones or near-clones. Mar 18, 2021 at 21:47

You can use one of the ICs created for this purpose, for example:

For example:

TPS2511 USB Dedicated Charging Port Controller and Current Limiting Power Switch features:

* Supports a USB DCP Shorting D+ Line to D– Line
* Supports a USB DCP Applying 2 V on D+ Line and 2.7 V on D– Line (or a USB DCP Applying 2.7 V on D+ Line and 2 V on D– Line)
* Supports a USB DCP Applying 1.2 V on D+ and D– Lines


Where USB DCP is the standard for USB Dedicated Charging Port controllers and power switching, unfortunately each mobile phone company has its own way to implement this "standard". This is the reason why these ICs exist, to make USB charging ports comply with the various "standards".