summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDominik Wenger <domonoky@googlemail.com>2008-12-13 15:57:41 +0000
committerDominik Wenger <domonoky@googlemail.com>2008-12-13 15:57:41 +0000
commita654946622ef18b9263d11ad7b751fbf584700f6 (patch)
treec61f7af2adc7b2162e5f7830b802dac6a1ee08b8
parent2b7fa8736c537e1aa16103b81b09a9e61b1ebf22 (diff)
downloadrockbox-a654946622ef18b9263d11ad7b751fbf584700f6.tar.gz
rockbox-a654946622ef18b9263d11ad7b751fbf584700f6.zip
correct battery readout for m200v4. Percentage is still uncalibrated.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@19420 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/SOURCES2
-rw-r--r--firmware/target/arm/as3525/sansa-m200v4/powermgmt-m200v4.c59
2 files changed, 60 insertions, 1 deletions
diff --git a/firmware/SOURCES b/firmware/SOURCES
index 1fce6cfdb5..80fe3385ee 100644
--- a/firmware/SOURCES
+++ b/firmware/SOURCES
@@ -1095,7 +1095,7 @@ target/arm/as3525/powermgmt-as3525.c
1095target/arm/lcd-ssd1815.c 1095target/arm/lcd-ssd1815.c
1096target/arm/as3525/sansa-m200v4/button-m200v4.c 1096target/arm/as3525/sansa-m200v4/button-m200v4.c
1097#ifndef BOOTLOADER 1097#ifndef BOOTLOADER
1098target/arm/as3525/powermgmt-as3525.c 1098target/arm/as3525/sansa-m200v4/powermgmt-m200v4.c
1099drivers/generic_i2c.c 1099drivers/generic_i2c.c
1100target/arm/as3525/fmradio-i2c-as3525.c 1100target/arm/as3525/fmradio-i2c-as3525.c
1101#endif /* !BOOTLOADER */ 1101#endif /* !BOOTLOADER */
diff --git a/firmware/target/arm/as3525/sansa-m200v4/powermgmt-m200v4.c b/firmware/target/arm/as3525/sansa-m200v4/powermgmt-m200v4.c
new file mode 100644
index 0000000000..cbd2c4bf27
--- /dev/null
+++ b/firmware/target/arm/as3525/sansa-m200v4/powermgmt-m200v4.c
@@ -0,0 +1,59 @@
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright © 2008 Rafaël Carré
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21
22#include "config.h"
23#include "adc.h"
24#include "adc-target.h"
25#include "powermgmt.h"
26
27/* TODO
28 early uncalibrated values. But read-out value should be correct
29 */
30
31const unsigned short battery_level_dangerous[BATTERY_TYPES_COUNT] =
32{
33 /* TODO: this is just an initial guess */
34 900
35};
36
37const unsigned short battery_level_shutoff[BATTERY_TYPES_COUNT] =
38{
39 /* TODO: this is just an initial guess */
40 1000
41};
42
43/* voltages (millivolt) of 0%, 10%, ... 100% when charging disabled */
44const unsigned short percent_to_volt_discharge[BATTERY_TYPES_COUNT][11] =
45{
46 /* TODO: simple uncalibrated curve, linear except for first 10% */
47 { 1000, 1050, 1100, 1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500 }
48};
49
50/* ADC should read 0x3ff=5.12V */
51#define BATTERY_SCALE_FACTOR 2562
52/* full-scale ADC readout (2^10) in millivolt */
53
54/* Returns battery voltage from ADC [millivolts] */
55unsigned int battery_adc_voltage(void)
56{
57 return (adc_read(ADC_VBAT) * BATTERY_SCALE_FACTOR) >> 10;
58}
59