FreeCalypso > hg > fc-selenite
diff src/cs/drivers/drv_app/pwr/pwr_cust.h @ 0:b6a5e36de839
src/cs: initial import from Magnetite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 15 Jul 2018 04:39:26 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/pwr/pwr_cust.h Sun Jul 15 04:39:26 2018 +0000 @@ -0,0 +1,100 @@ +/******************************************************************************* + * + * pwr_cust.h + * + * Purpose: This file contains definitions for battery management. + * These definitions can be modified by the customer. + * + * Author Candice Bazanegue (c-brille@ti.com) + * + * + * (C) Texas Instruments 2001 + * + ******************************************************************************/ + +#ifndef __PWR_CUST_H__ +#define __PWR_CUST_H__ + +#include "pwr/pwr_api.h" + + +/* Constants relative to the battery type */ + +#define BAT_TYPE_LI_ION_MIN 0x400 +#define BAT_TYPE_LI_ION_MAX 0x450 + + +/* Constants relative to the charging process */ + +#define CONSTANT_VOLTAGE_VALUE 4200 // (mV) /* for CV charge */ +#define CONSTANT_CURRENT_VALUE 500 // (mA) /* for CI charge */ +#define END_OF_CHARGE_I 150 // (mA) /* for CV charge */ +#define END_OF_CHARGE_V 4200 // (mV) /* for CI charge */ + +#define CHARGE_START_AGAIN_CAPACITY 75 /* capacity threshold under which */ + /* the charge is started again if */ + /* the charger has been left plugged. */ + /* the chosen value must be part of the */ + /* a_pwr_thresholds array. */ + + +/* Constants relative to the battery temperature */ + +#define BAT_TEMPERATURE_MAX_LI_ION (50) /* Celsius degrees */ +#define BAT_TEMPERATURE_MIN_LI_ION (0) /* Celsius degrees */ + +#define BAT_TEMPERATURE_MAX BAT_TEMPERATURE_MAX_LI_ION +#define BAT_TEMPERATURE_MIN BAT_TEMPERATURE_MIN_LI_ION + + +#define THEN_10uA 0x0041 /* THSENS0 , THSENS1, THSENS2 = 0, 0, 0 MESBAT = 1 */ +#define THEN_30uA 0x0051 /* THSENS0 , THSENS1, THSENS2 = 0, 1, 0 MESBAT = 1 */ +#define THEN_50uA 0x0061 /* THSENS0 , THSENS1, THSENS2 = 0, 0, 1 MESBAT = 1 */ +#define THEN_80uA 0x0079 /* THSENS0 , THSENS1, THSENS2 = 1, 1, 1 MESBAT = 1 */ +#define MESBAT 0x0001 /* Resistive divider connected to main battery */ + + +/* Constants relative to the timers duration */ +#define PWR_BAT_TEST_TIME_1 (10) /* 10 ms */ +#define PWR_BAT_TEST_TIME_2 (5000) /* 5s */ +#define PWR_CALIBRATION_TIME_1 (10) /* 10 ms */ +#define PWR_CALIBRATION_TIME_2 (5000) /* 5s */ +#define PWR_CI_CHECKING_TIME (4000) /* 4s */ +#define PWR_CV_CHECKING_TIME (4000) /* 4s */ +#define PWR_DISCHARGE_CHECKING_TIME_1 (60000) /* 1 minute */ +#define PWR_DISCHARGE_CHECKING_TIME_2 (10000) /* 10s */ + + +typedef struct { + UINT16 bat_voltage; + T_PWR_PERCENT remain_capa; +}T_PWR_THRESHOLDS; + + +typedef enum { + LI_ION, + UNKNOWN +} T_PWR_BATTERY_TYPE; + + +#define NB_THRESHOLDS (6) /* number of elements in the a_pwr_thresholds array */ +extern const T_PWR_THRESHOLDS a_pwr_thresholds[NB_THRESHOLDS]; + + + + + +/* Prototypes */ + +UINT16 pwr_adc_to_mvolt(UINT16 bat_voltage_madc); +UINT16 pwr_adc_to_mA(UINT16 current_madc); +UINT8 pwr_bat_temp_within_limits(INT16 battery_temperature); +UINT8 pwr_madc_to_Celsius_conv(UINT8 bias_current, UINT16 madc_temp, INT16 *celsius_temp); +void pwr_get_battery_type(void); +void pwr_get_battery_temperature(void); +T_PWR_PERCENT pwr_get_capacity_vs_voltage(UINT16 bat_voltage); +void pwr_bat_50uA_temp_test_timer_process(void); +void pwr_bat_10uA_temp_test_timer_process(void); +void pwr_type_test_timer_process(void); + +#endif /* __PWR_CUST_H__ */