Charging Neo Freerunner via USB port
michael at openmoko.org
Fri Apr 18 21:24:05 CEST 2008
Andy Powell wrote:
> On Friday 18 April 2008 18:34, Michael Shiloh wrote:
>> Hi everyone,
>> With input from the experts who designed the system, I've tried to
>> document precisely how charging works on the Neo Freerunner.
>> I welcome your feedback:
I'm being honest. I really do appreciate feedback.
>> The Neo Freerunner charges the battery when 5VDC is provided at the USB
>> port, whether from a computer USB port or from a dedicated USB charger.
>> The Neo Freerunner can charge most rapidly when it can pull 1 Amp from
>> the power supply connected to the USB socket. However, not all chargers
>> or computers can provide this much current.
> It might seem like a dumb question, the the charger provided can source 1Amp,
> right? :)
Not a dumb question at all. I do say this further down, but perhaps
should elevate it.
>> When the Neo Freerunner detects that power has been provided at the USB
>> port, it will attempt to draw only 100mA. This minimum is mandated by
>> the USB standard. This amount of current is insufficient to both power
>> the Neo Freerunner (or even just its backlight) and to charge the
>> battery, and therefore the battery will not be charged. (The battery
>> discharge rate, however, will be slightly lower, as the supplied 100mA
>> will be used to augment the battery.)
>> (When a charger is connected to the USB port, the Neo Freerunner
>> automatically powers up. Thus, if charging at 100mA is desired, the Neo
>> Freerunner must be shut down after the startup process has completed.)
> On the GTA01 you can press AUX as you power up to get the boot menu. On mine I
> have added an option to start fast (500ma) charging and power off the
> backlight. This means I don't need to have enough power to do a full boot to
> get the device charging. Perhaps an option for slow (100ma) charging that
> turns the backlight off would be useful - although it would probably need to
> have a few tests run to see if it was actually helping any.
Sounds like a good plan.
>> After detecting USB power, The Neo Freerunner will attempt to negotiate,
>> via the USB protocol, a higher charge rate of 500mA. If the device
>> powering the Neo is capable of doing so, the Neo Freerunner will charge
>> at 500mA.
>> USB chargers do not implement the USB protocol, and thus can not respond
>> to requests for higher charge rates. Some manufacturers have worked
>> around this issue by installing resistors of different values between
>> different pairs of pins in in order to "identify" their own chargers of
>> known capacity. This is not part of the USB standard and is completely
>> up to each manufacturer.
> I presume that if I accidentally plug in <insert device that charges via usb
> here> it would simply charge at 100ma?
Exactly, but only if you shutdown after plugging in.
>> The USB charger provided with the Neo Freerunner can source up to 1A. In
>> order to identify this special charger, there is a 47K ohm resistor
>> between the ID pin and ground. If the Neo Freerunner detects this
>> resistor, then the Neo Freerunner will charge at 1A.
>> In summary, the Neo can charge at 3 different rates: 100mA, 500mA, and 1A.
> Do you have any information on how long each takes to fully charge the battery
> (excepting of course the 100ma option unless the stuff I mentioned above
None yet, I'm afraid. Once I catch up I was hoping to do some measuring
of charge and discharge rates.
>> 1. USB negotiation and resistor detection is performed in software, and
>> is thus under developer control. A developer might write an application
>> to indicate that 500mA or 1 Amp are available, bypassing the USB
>> negotiation and the 47K ohm resistor detection.
> I assume OM don't want to go anywhere near the software that overrides this
> for legal reasons and that it'll always be something a user has to
> deliberately add themselves?
I expect you are right (but I'm not a lawyer...)
>> There is nothing preventing the software from charging at a higher rate
>> than then power provider can supply, although there is danger in doing so.
>> The danger in drawing more current than a charger or computer USB port
>> can provide is that components overheat and may become permanently
>> damaged, or even catch fire, although most USB host devices implement
>> current limits that will depower the port on overcurrent.
>> 2. The Neo Freerunner charger is a single assembly which includes
>> the USB cable. The cable is NOT a separate item and can not be removed
>> from the charger (without cutting).
>> 3. Any third-party charger that does not contain the 47K resistor will
>> cause the software to assume it can draw only 100mA, regardless of how
>> much current the charger really can source.
>> 4. In its hard-coded configuration, the PMU doesn't charge the battery
>> at all. The hard-coded configuration is used when power is applied to
>> the PMU after a period of complete absence of power, including the
>> backup battery.
> How long is this period are we talking weeks,months or years?
I'll let Werner respond here (or someone else who knows), but I suspect
this is about the same amount of time required to leave a GTA01 sitting
unpowered before charging a dead battery. I seem to recall that
overnight is sufficient.
>> When the system comes up, it reconfigures the PMU to enable charging.
>> Most of the configurable items are also preserved by the PMU if it
>> powers the system down, but the PMU itself still has power - either from
>> USB, main battery, or the backup battery. (This is the PMU's STANDBY mode.)
>> 5. All of this discussion is for setting the maximum current that the
>> Neo Freerunner can safely draw from the USB socket. The battery charging
>> current may actually be lower, if the charging logic determines that a
>> lower charge rate is appropriate.
> Can the Freerunner operate at all without a battery - ie solely from a usb (pc
> or plug in the wall) charger?
Yes! This was a design goal and I myself have observed it.
More information about the community