View source for Neo 1973 Battery Charging Logic

From Openmoko

Jump to: navigation, search

You do not have permission to edit this page, for the following reasons:

  • The action you have requested is limited to users in the group: Administrators.
  • You must confirm your email address before editing pages. Please set and validate your email address through your user preferences.

You can view and copy the source of this page:

Templates used on this page:

Return to Neo 1973 Battery Charging Logic.

Personal tools

The Neo1973 Battery charging logic is embedded into our PCF50606 Power Management Unit (PMU).

The PCF50606 supports a variety of Neo1973 Battery charging modes, based around the hardware limitations of USB.

Some USB hubs only provide up to 100mA per device. If more than the available current is drawn from them, they may be reset, or power off. This resets all devices connected to the USB bus, possibly causing data loss. So, fast charge mode is only enabled after the Neo is told that it is safe to charge at this current.

WARNING: While we have spent a significant amount on various safe-guards such as battery-internal overcurrent/overvoltage protection, manual twisting with low-level charger control aspects is not recommended. It might damage either the battery or charging circuit.

WARNING: Because the Neo1973 is overly conservative with drawing power from USB, it will often NOT charge with the full 500mA. Also, it is currently unclear how "off" a powered down Neo really is. So to prevent that you have to go through the emergency charging procedure outlined below (which will keep you from using your Neo for hours) make sure that you pull the battery from the device when you are not using it. This issue must be fixed in GTA02 as the current behavior is not end user compatible.

Charging Modes

Pre Charge

The default mode is what the PMU calls 'Pre Charge', in which it draws 100mA charging current from the USB socket. This mode is safe to use on any USB socket, since the USB specification mandates that 100mA is always available.

However, 100mA charging a 1200mAh Neo1973 Battery means around 12hrs charging time, which is not very practical at all.

In this mode, /sys/devices/platform/s3c2410-i2c/i2c-addapter/i2c-0/0-0008/chgmode reports 'pre'

Fast Charge

Fast Charge is what the PMU calls the charging mode in which we draw up to 500mA charging current from the USB socket. This mode can only be used if the USB stack on the host controller has selected a USB Configuration for the Neo which allows it to draw 500mA.

By default, if you apply +5V to the USB device socket, we draw only 100mA.

In this mode, /sys/devices/platform/s3c2410-i2c/i2c-0/0-0008/chgmode reports 'fast_cccv'

Fast Charge (CCCV)

Fast charging, using first constant current, later constant voltage. This is what we use for our Li-Ion Neo1973 Battery

Fast Charge (CVCC)

Neo1973 emergency charging

from deep discharged battery

A deep discharged battery is one where the terminal voltage is below the minimal voltage threshold. The Neo1973 (specifically: The PCF50606 PMU) will not power-on the device. see also Neo1973 GTA01 Power Management

If you make sure to remove the USB cable and put a deep discharged battery into the Neo1973, the battery can still be charged. All you need to do is to provide 5V to the USB socket, by either connecting the Neo1973 to some USB port or a dumb USB charger.

The battery will charge only with 100mA, and it will take a couple of hours until the battery is again charged to a level where it can power the phone.

NOTE: Please do not press the power button before you have waited for something like four hours. If you do so, the phone might [partially] power up, and draw more power than the 100mA supplied by the charger/USB, and so begin discharging itself again.

If you did press the power button,

  1. remove the battery,
  2. wait a moment,
  3. insert the battery
  4. connect the charger or USB.

The procedure to follow is:

  1. Open Case.
  2. Remove Battery.
  3. Wait 20s. This resets the hardware, and makes sure nothing is drawing current during the next stage.
  4. Insert the Battery.
  5. Plug into a USB host, or USB charger. At this time, the battery will be charging at a low rate.
  6. Wait 1 hour. At this time, the battery will be approximately 5% charged, which should run the Neo for several minutes. This time needs to be resolved: it is not quite clear how long to charge a deeply discharged battery before the device is able to request a 500 mA fast charge current.
  7. If you have a USB host, plug it into a port capable of sourcing 500mA and load the appropriate drivers, so the neo can negotiate to draw 500mA.
  • If you have a dumb charger, see the Bootloader page for how to add a u-boot menu entry to turn on fast-charging.

Proposals for alternative charging schemes

An alternate method - for example sensing if there is no USB communication from the host for 30 seconds - as may be the case with dumb 'USB chargers' - would need to be used to be compatible with the vast majority of already existing hardware. This has a small risk of causing buses it is connected to in suspend mode, when they are not active, to crash, and is not compliant with the specification.

The USB spec requires the host to reply in a much shorter time than 30 seconds. Waiting that long is overkill and would be very annoying if you were trying to charge with something like a crank charger.

Another option would be to detect a short between D+ and D-, according to the recent USB Battery Charging Specification; see bug 685.