[Gta04-owner] Sporadic USB charging issue identified

Dr. H. Nikolaus Schaller hns at goldelico.com
Sun Feb 17 20:44:14 CET 2013

I have found a sporadic charging issue on at least one GTA04 which may be
kernel/driver/PMU-initialisazion related.

The symptom is that the device starts to charge, suddenly stops and does
not continue to charge - although still connected to USB and VBUS being 5V.

After a while the battery is getting empty, although the device is still connected
to USB and switches off. The battery is even deeply discharged to 2.6V (because
VBUS is available and apparently overrides power off at 3.2V).

From my tests it appears that the USB charger driver monitors VBUS and
resigns to charge if VBUS drops below ca. 4.3V - even for a short moment.

It only restarts if you plug off the USB cable, i.e. lowering VBUS to 0V and
rising it again.

Momentary VUSB variations may happen mechanically by a loose or weak
contact of the USB plug or cable. Or if the GTA04 suddenly draws a little more
current (e.g. switching on backlight and WLAN) leading to a small voltage drop.

If this drop is relevant may depend on component variations, and even the
length of the USB cable. So it is only recognized on some GTA04 units.

I think there is no simple threshold like "charge if VBUS > 4.2V",
but a hysteresis: stop charging for VBUS < 4.2V and start charging
of VBUS rises from below 1V to >1V or similar.

In other words: VBUS must be interrupted for at least 0.5 seconds or so.
Shorter interruptions can disturb the charger function.

That the charger is resigning to charge if VBUS is not above some minimum
is basically ok. But that it never restarts charging is not robust enough.

I think (but I have not tested completely) that this effect occurs on all
kernels we have (2.6.32 and all 3.x).

Part of the symptom is that the BTEMP ADC of the twl4030 hardware
monitor reports bad values (somehow proportional to the VUSB instead
of being constant) while reading VBUS, the battery voltage or current is ok.

But this might be simply a side-effect of a disabled charger.

My question now:

does anyone know how and where this hysteresis is implemented?
is it in the TPS hardware?
or programmable through registers?
or is it part of the twl4030 USB charger driver?


PS: after preparing (but not yet sending) this mail I was able to reproduce
the effect on a "sane" GTA04: just unplug the USB connector very shortly
(<0.5 seconds), i.e. pull it almost out but not completely and replug immediately.
Then check for VBUS, VBAT and charger status etc.

More information about the Gta04-owner mailing list