sean at mcneil.com
Thu Jul 10 02:36:17 CEST 2008
Thanks for all the detail. Very interesting. Question:
Werner Almesberger wrote:
> Sean McNeil wrote:
>> How are things with the battery draining issue and phone lockup? This
>> causes a bad state where the user cannot charge the battery because they
>> cannot start the phone, right?
> There are two causes:
> 1) u-boot exceeds the 100mA current budget and thus can cause the
> system to die if the battery is too weak. This can be fixed in
> software. I have a proof of concept hack for this, but it still
> needs to be turned into something one can actually use.
Can u-boot be modified to bring up the system differently so that it
doesn't exceed the power budget?
> 2) The inrush current on our power rails, and in particular IO_3V3
> can be too large for the bypass capacitor on VB_SYS, thus causing
> the power supply to collapse and the PMU to cycle, unless a
> battery is present. (*)
> Details are here:
> Some boards have capacitors that may just be sufficent. I'm now
> making some measurements to determine how much exactly we need,
> and also what impact this has on the inrush current we inflict
> on the USB host.
> (*) A battery that's discharged deeply enough can go into cut-off
> mode, causing it to become completely unresponsive until
> recharged for a bit. "A bit" depends on the battery type: the
> GTA01 battery leaves cut-off pretty much upon seeing the first
> electron, while the GTA02 battery wants to have a few millijoule
> in its belly before it's willing to talk to the world again.
> There's also the issue of VB_SYS breaking down when enabling the
> charger while there is no battery. We haven't analyzed that one
> completely yet, but it seems to be caused by inrush current as well.
> Making sure the VB_SYS bypass capacitor is large enough solves this
> as well.
This sounds like it can't be worked around in software. Correct? Can the
demand on the power rails be mitigated by turning things on over a
longer period of time?
> - Werner
More information about the openmoko-kernel