Slaying the Ben (+V33SD inrush current)

Werner Almesberger werner at openmoko.org
Tue Sep 7 10:20:14 EDT 2010


During the last few days, I've been struggling to get my latest IEEE
802.15.4 board to work, which connects to the uSD slot. I ran into all
sorts of problems, including the Ben freezing completely when I powered
up the board.

This got me thinking about the power supply situation. My board has a
negligible DC current when not "on the air", but it adds a capacitive
load of 2 uF to VDD, and for power-on reset, it needs VDD to raise
cleanly from zero. Could this be enough to cause trouble ?

My experiments were done with the bare main PCB, powered from USB,
without the LCD connected. As it turns out, the uSD power supply on the
Ben is designed with an extremely tight margin and it doesn't take much
to topple the precarious balance.

For my experiment, I wrote a script that drives all uSD lines low for a
moment to discharge the capacitors C45 and C46. Then I switch on uSD
power. There is no uSD card inserted. The script is here:

http://www.almesberger.net/misc/ben/inrush/setup.sh

This picture shows what happens:

http://www.almesberger.net/misc/ben/inrush/discharged.png

Trigger is at the time when Q4 is switched on (not shown). The yellow
curve is the uSD voltage, the blue curve is +V3.3. The Ben no longer
responds after this and needs to be power-cycled.

I used a special low-noise probe on +V3.3, which causes some inaccuracy
in the voltage measured. My voltmeter says +V3.3 was really 3.373 V, so
the voltage at the bottom of the drop would be 2.39 V and the drop
would be 0.99 V.

There are a number of components involved: on the side of the +V3.3
regulator, we have the following capacitors:

 10 uF	C2, C28, C37, C50
  1 uF	C49
100 nF	C3, C29, C30, C31, C32, C34, C38, C39, C40, C41, C42, C43, C44, C47,
	C48, C55

That's about 42.6 uF. At a distance, there are also

 10 uF	C17 (separated by bead)
100 nF	C15, C18 (separated by bead)

The LCD board adds a lot of capacitors to the equation. The LCD module
alone is connected to a total of 53.9 uF, and there are another 22.1 uF
behind BD2. The LCD board was not connected in my experiments, so I
don't know how these capacitors affect the situation.

At the opposite side of Q4, we have:

 10 uF	C45
100 nF	C46

What happens when Q4 is switched on is that the charge in the capacitors
on +V3.3 gets shared with the capacitors on the uSD side. Here is a
simulation of the scenario:

http://www.almesberger.net/misc/ben/inrush/sim-unlimited.ps

R1 is the "on" resistance of Q4. The simulation gives a more optimistic
result than what was observed. This is to be expected, since all these
capacitors are buffering other fluctuations, so we can't expect them
all to be fully charged all the time.

The inrush current problem can be prevented by precharging the uSD
capacitors. When I do this (instead of discharging them), nothing
remarkable happens:

http://www.almesberger.net/misc/ben/inrush/charged.png

This is also why the inrush current normally doesn't cause problems:
the uSD signals are configured as inputs. This way, there is a small
leakage current that will eventually precharge the capacitors to a
safe level.

For use with a breakout board and perhaps also for SDIO, precharging
has a number of issues:

- if the device has a low-resistance path from VDD to GND, it will
  happily defeat any precharging. (I tested this with a board that
  simply put 100 Ohm between VDD and GND.)

- devices that expect a clean rise of VDD from zero for reset
  purposes may get confused.

Without precharging, any capacitance added by the board/card will
make things worse.

A brute-force solution would be to increase the capacitance on
+V3.3 until it dawrfs anything that could appear on the uSD side.

A proper solution for the inrush current problem would be the
insertion of an inductor in the path from +V3.3 to +V33SD, which
would limit the inrush current and give the voltage regulator U2 time
to respond. Here's a simulation that illustrates the effect:

http://www.almesberger.net/misc/ben/inrush/sim-limited.ps

- Werner




More information about the discussion mailing list


interactive