view src/cs/drivers/drv_app/pwr/pwr_cust.h @ 652:41c03ea90403
R2D: Luna LCD driver enabled
author |
Mychaela Falconia <falcon@freecalypso.org> |
date |
Thu, 07 May 2020 08:06:31 +0000 (2020-05-07) |
parents |
c93a236e0d50 |
children |
|
line source
/*******************************************************************************
*
* 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__ */