Hacker News new | past | comments | ask | show | jobs | submit login

I used to test devices for USB compliance a long time ago. One of the things I often saw problems with was the inrush current test. Basically too much bypass caps on the 5v. I didn't see it mentioned in the article. It's really easy to get focused on the high speed digital design but for compliance it's sometimes the less sexy stuff that gets you. No idea how this stuff works with newer versions of the standard but it seems like there still is a test. Nice article though.

https://compliance.usb.org/index.asp?UpdateFile=Electrical#:....




What devices do people use to limit inrush current? You can make a current limiter with a few transistors, but I'm guessing there must be better integrated solutions (e.g. with temperature protection, etc.)


I only saw this topic recently. Sorry for replying 2 days after everyone else has left...

------------

I like the pMOS constant-slew rate trick myself.

A number of voltage-regulators have soft-start ramp-up already built in. But if your project doesn't have one, you can build it out of pMOS pretty easily. With just a resistor + capacitor on the pMOS (serving as negative feedback, to slow down the start), you can arbitrarily slow-down inrush current to whatever values you wish.

https://www.ti.com/lit/an/slva156/slva156.pdf?ts=17176224951...

Constant-slew rate voltage control vs a capacitive load effectively creates current-controlled startup functionality. So its "good enough" for most people's purposes (assuming capacitive loads are what's causing you to be worried).

So its a bit of an A-problem vs B-problem here. I'm giving you a slew-rate controlled soft start circuit when you asked for current control. But... its probably what you want?

> but I'm guessing there must be better integrated solutions (e.g. with temperature protection, etc.)

I believe the "proper" solutions are called a "load switch", of which there are a huge variety of integrated chips and MOSFETs with load-switch (constant slew rate + temperature control) solutions available.

EDIT: Something like this: https://www.nxp.com/products/power-management/smart-switches...

Things get rather complicated as you edge into "proper" solutions. I'm just a hobbyist though, so I don't have much experience with these "proper" designs.

EDIT2: Maybe that NXP Load switch is a bit "too full featured" for most projects. This TI one I found seems to be more mainstream and simple. TPS22950CQDDCRQ1 (https://www.ti.com/product/TPS22950-Q1)


You can use inductors. Some USB cables have a choke on them. But basically the problem is when a large amount of circuitry all powers up at one when you plug in. So everything connected directly to USB 5v with a lot of large capacitors to filter the power. If you really need that then you can self power and avoid the problem.


If the answer to excessive in-rush current (due to capacitance) is to add series inductance, then: Isn't the more-efficient answer simply less capacitance?


I think the correct answer really depends upon what you are trying to do. Sometimes where board space and cost are not an issue people use a combination of larger and smaller bypass caps to reduce switching noise. I don't think there is a one size fits all solution because people power many different types of things from USB. It's more just a caution about USB power in general. Most people know the 500mA current limit, but in-rush compliance is something you don't really see in functional testing because typically you can get away with a violation and the board will still work.


I'm looking more for a solution that acts as a constant current source, but where the voltage never exceeds the input voltage.


AMC7135 might work: it's a linear LDO fixed current regulator designed for driving LEDs, which internally is basically an N-channel MOSFET which holds it's gate voltage in the linear region and actively adjusts it to provide constant current.


Thank you for the suggestion, but it seems that the device has no over-temperature protection.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: