* removed some more unused stuff in the simulator makefile
[kugel-rb.git] / docs / CHARGING_ALGORITHM
blob81c4fc3b5cfd54732072e5df87f5d368339907a3
1 CHARGING ALGORITHM
3 This doc and a part of the charger implementation (especially voltage courves, 
4 remaining time estimation, trickle charge) is written by Uwe Freese. If you miss 
5 some information here, write to mail@uwe-freese.de.
9 [INTRODUCTION]
11 This doc describes how the charging works for the recorder. The algorithm can be 
12 found in firmware/powermgmt.[c|h]. Debug output is done in apps/debug_menu.c. 
13 Charging for the player and the FM recorder is done by the hardware and 
14 therefore isn't implemented in rockbox. Only the functions that calculate the 
15 battery level are also used for these models.
17 All following information is related to the recorder.
20 [TECHNICAL POSSIBILITIES AJB]
22 - The AJB can read the voltage of the battery (all four cells in series,
23   resulting in about 5V).
24 - We can switch the charging current (about 350mA, constant) on and off.
27 [VOLTAGE COURVES]
29 See http://www.uwe-freese.de/rockbox for some voltage courves taken while
30 charging and decharging an AJB.
32 These voltage courves are implemented as arrays in rockbox. We can then 
33 calculate how full the batteries are (in percent) after taking the actual 
34 voltage. Both voltage courves (charging and decharging) are used here.
37 [CHARGE OVERVIEW]
39 - If voltage drops under a certain value (with "deep discharge" option on the 
40   value is lower), charging is started.
41 - If end of charge is detected, go to top off charge.
42 - Make the batteries completely full. 90 minutes of top off charge (voltage
43   regulation at a high value).
44 - After that, do trickle charge (max. 12 hours with voltage regulation at a 
45   lower value).
46 - When trickle charge is done and you did not disconnect or shut off your AJB by 
47   now, the AJB decharges normally since it reaches a low voltage and everything 
48   starts from the beginning.
51 [NORMAL CHARGE]
53 When charging is started, the charger is turned on. The batteries are charged
54 with a constant current of about 350mA. The charging is stopped for three reasons:
56 - the voltage goes down in a 5 min interval (delta peak, see below)
57 - the voltage goes up only a little bit in an 30 min interval (is mainly constant)
58 - the charging duration exceeds a maximum duration
61 [DYNAMIC MAX DURATION CALCULATION]
63 The max duration is calculated dynamically. The time depends on how full the
64 battery is when charging is started. For a nearly full battery, the max duration
65 is low, for an empty one, it is a high value. The exact formula can be found in
66 the source code. The battery capacity is also considered here.
69 [LIION BATTERY IN FM RECORDER]
71 (todo)
72 http://www.seattlerobotics.org/encoder/200210/LiIon2.pdf
75 [DELTA PEAK - WHY DOES IT WORK?]
77 Delta peak means to detect that the battery voltage goes down when the
78 batteries are full.
80 Two facts on batteries are the reason why this works:
82 - If the batteries are full, the charging current cannot charge the battery anymore.
83   So the energy is absorbed by heating up the battery.
84 - Each battery has a negative temperature coefficient, that means the voltage goes
85   down when the temperature goes up.
87 NiMH batteries have a smaller delta peak than NiCd, but is is enough for Rockbox
88 to detect that the batteries are full.
90 Related documents on the web:
92   http://www.nimhbattery.com/nimhbattery-faq.htm questions 3 & 4
93   http://www.powerpacks-uk.com/Charging%20NiMh%20Batteries.htm
94   http://www.angelfire.com/electronic/hayles/charge1.html (soft start idea)
95   http://www.powerstream.com/NiMH.htm (discouraging)
96   http://www.panasonic.com/industrial/battery/oem/images/pdf/nimhchar.pdf
97   http://www.duracell.com/oem/Pdf/others/nimh_5.pdf (discharging)
98   http://www.duracell.com/oem/Pdf/others/nimh_6.pdf (charging)
99   Philips TEA1102/1103/1104 PDFs available at www.philips.com.
102 [TOP OFF CHARGE AND TRICKLE CHARGE]
104 After a normal charge is completed, trickle charging is started. That means 
105 charging to keep the batteries full. While trickle charge in other (stand alone) 
106 chargers means charging the amount that the battery loses because of self 
107 decharging, here it's charging the amount the AJB consumes when it's on. That's 
108 because it is not possible to switch off the AJB when charging is done. It goes 
109 on again and then the archos firmware charger code would charge again. So we 
110 have trickle charge in rockbox.
112 In simple words, rockbox charges about 15 seconds per minute in trickle mode. An 
113 AJB consumes 100 mA when it's on and the charging current is about 300mA. So 
114 charging 15 s and decharge 45 s will keep the batteries full.
116 But the number of seconds the charger is on in trickle charge mode is also 
117 adjusted dynamically (between 1 and 24 sec). Rockbox tries to hold the battery 
118 level at 5,65 V (top off charge, that means "make the batteries completely 
119 full") for 90 minutes, then a level of 5,45 V. If the voltage drops below the 
120 wanted value, rockbox will charge one second more the next minute. If is is 
121 greater than this value, is will charge one second less.
123 Trickle charging runs 12 hours after finishing the normal charging. That should 
124 be enough for charging the AJB over night and then unplug the charger sometime 
125 in this 12 hour trickle charge time. It is not recommended to trickle charge 
126 over days, that's because it is stopped after 12 hours.
128 Many chargers do top off and trickle charge by feeding a constant (low) current 
129 to the batteries. Rockbox, as described, makes a voltage regulation. That's 
130 because the power consumption of the AJB changes when backlight is on/disk is 
131 spinning etc. and doing a voltage regulation is the simplest way to charge 
132 exactly the needed amount.
134 There are two charge ICs I want to mention here: The Philips TEA1102 and TEA1103 
135 do voltage regulation for NiCd and NiMH at 1,325 V per cell. That would be 5,3 V 
136 for four cells, but I think 5,45 V is best for Rockbox with the maximum time of 
137 12 hours. Note that the voltage values are taken in the part of a minute where 
138 the charger is off, so the values are a little bit smaller than the actual 
139 average of the whole 60 seconds.
140 The Philips TEA1102 top-off charge time (with 0,15 C) is one hour.
142 My test results with trickle charge (battery capacities measured with an 
143 external charger):
145 - after normal charge and top off time: 1798, 1834, 1819, 1815 mAh
146 - after normal + top off + trickle charge (12h): 1784, 1748, 1738, 1752 mAh
147 - charged with external charger: 1786, 1819, 1802, 1802 mAh
149 Result: Trickle charge works. :)
152 [REMAINING TIME ESTIMATION]
154 In simple words, it is
156 remaining time = remaining battery energy / power consumption of AJB
158 With using the battery courves described above and the battery capacity you 
159 selected in the settings menu, the remaining capacity is calculated. For the 
160 power consumption, a usual constant value is used. If the LED backlight is set 
161 to always on, it is also considered. Having a modified Jukebox with 8 MB of RAM 
162 leads to about 22 percent longer estimated running time.
165 [BATTERY DISPLAY HOW THE USER EXPECTS IT]
167 To not confuse the user with the shown battery level, some tricks are used in 
168 the battery level calculation (this does not affect the charging algorithm, 
169 because it uses the raw voltages):
171 - if charging is completed, top-off charge or trickle charge is running, always 
172   set the battery level to 100%
173 - the battery level is only allowed to change 1% per minute (exception: when usb 
174   is connected, is is allowed to go 3% down/min)
175 - if charging just started (or stopped), ignore the battery voltage for the 
176   first 25 minutes
177 - after turning on the device, add another 5% to the battery level, because the 
178   drive is used heavily when booting and the voltage usually gets a little higher 
179   after that
182 [WHICH CHARGING MODE TO USE]
184 If you use your AJB connected to the power supply the whole time, select "deep 
185 discharge on" and "trickle charge off".
187 If you want to charge your AJB over night and take it with you the next day, 
188 select "deep discharge off" (that it starts charging immediately) and "trickle 
189 charge on" (that the batteries remain full).
191 A special case: If you fill up the batteries that are still nearly full every 
192 night, it is recommended that you make a complete charge cycle from time to 
193 time. Select "deep discharge on" and "trickle charge on" and wait till the whole 
194 cycle is over (you can speed up the discharging a little bit by turning on the 
195 LED backlight). Even if the battery sellers say NiMH cells don't show a memory 
196 effect, I recommend making this procedure from time to time (every 10th charging 
197 cycle). BUT: Don't recharge the batteries completely every time if you don't 
198 have to.