137 lines
4.2 KiB
C
137 lines
4.2 KiB
C
/*
|
||
******************************************************************************
|
||
*
|
||
* @file Charger_module.h
|
||
* @brief charger module
|
||
*
|
||
*
|
||
* @version 1.0
|
||
* @date 2023/05/12 09:59:40
|
||
* @author Alex Xu
|
||
*
|
||
* Copyright (c) 2013-2099,Tkplusemi Technology Co.,Ltd.
|
||
* All Rights Reserved
|
||
*
|
||
* History:
|
||
* Revision Date Author Desc
|
||
* 1.0.0 2023/07/12 Alex build this file
|
||
******************************************************************************
|
||
*/
|
||
|
||
#ifndef __CHARGER_MODULE_H__
|
||
#define __CHARGER_MODULE_H__
|
||
|
||
#include "define.h"
|
||
|
||
#define VBUS_PLGOUT_FLG 1
|
||
#define VBUS_PLGIN_FLG 2
|
||
extern bit Charger_Done;
|
||
|
||
#if CHARGER_ENABLE
|
||
|
||
|
||
#if 0
|
||
/*Charger NTC Type Select*/
|
||
#define NTC_JEITA 1
|
||
#define NTC_IEC 0
|
||
|
||
#define CHARGER_CV_SET 0x08 //恒压CV电压4.2V配置,通过设置REG_CHG2寄存器,其它值自行设置。
|
||
|
||
|
||
#define BAT_CV 4200 //4.20V
|
||
#define BAT_PRE 3000 //3.0v
|
||
#define BAT_RECHARG 4075 //4200mv - 135mv = 4075mv
|
||
|
||
#define BAT_RECHARG_OFFSET 150 //150mv
|
||
|
||
#define VBUS_PLGOUT_FLG 1
|
||
#define VBUS_PLGIN_FLG 2
|
||
|
||
/*充电电流参数设置*/
|
||
#define TRICKLE_CUR_MIN 0 //涓流充电最小值为10mA
|
||
#define TRICKLE_CUR_DEFAULT 0x40 //Tickle charge 默认值电流(20mA)配置,通过寄存器REG_CHG1(BIT[7:5])配置。
|
||
#define TRICKLE_CUR_MAX 0xE0 //涓流充电最小值为80mA
|
||
|
||
#define ITERM_CUR_MIN 0 //充电截止电流最小值5mA
|
||
#define ITERM_CUR_DEFAULT 1 //Iterm charge 默认值电流(10mA)配置,通过寄存器REG_CHG4(BIT[3:0])配置。
|
||
#define ITERM_CUR_MAX 9 //充电截止电流最大值50mA
|
||
|
||
#define CONSTANT_CUR_MIN 0 //充电恒流电流最小值25mA
|
||
#define CONSTANT_CUR_DEFAULT 0x03 //恒流充电默认值电流(100mA)配置,通过寄存器REG_CHG1(BIT[4:0])配置。
|
||
#define CONSTANT_CUR_250MA 0x08 //充电恒流电流250mA
|
||
#define CONSTANT_CUR_500MA 0x12 //充电恒流电流500mA
|
||
#define CONSTANT_CUR_MAX 0x17 //充电恒流电流最大值600mA ,配置0x17 - 0x1F均为600mA。
|
||
/*充电时间参数设置*/
|
||
#define PRECHG_TIME_1HOUR 0 //Safety timer set during prechg. Default 1 hour reg:CHG_CTL[BIT3]
|
||
#define PRECHG_TIME_2HOUR 1 //Safety timer set during prechg. 2 hour
|
||
|
||
#define FASTCHG_TIME_3HOUR 0 //Safety timer set during fastchg. 3 hour reg:CHG_CTL[BIT2:1]
|
||
#define FASTCHG_TIME_5HOUR 1 //Safety timer set during fastchg. 5 hour reg:CHG_CTL[BIT2:1]
|
||
#define FASTCHG_TIME_8HOUR 2 //Safety timer set during fastchg. 8 hour reg:CHG_CTL[BIT2:1]
|
||
#define FASTCHG_TIME_13HOUR 3 //Safety timer set during fastchg. 13 hour reg:CHG_CTL[BIT2:1]
|
||
|
||
#define CHG_CONSTANT_CUR_TIM 1
|
||
|
||
|
||
/*20uA 电流源下接 104K NTC 电阻并联一个82K电阻后得到的电压值*/
|
||
#define T_N20C 1530 //-20℃(76.5KΩ * 20uA) NTC:1151K
|
||
|
||
#define T_N15C 1495
|
||
|
||
#define T_N10C 1440 //-10℃(72KΩ * 20uA) NTC:629K
|
||
|
||
#define T_0C 1334 //-0℃(66.7KΩ * 20uA) NTC:357K
|
||
|
||
#define T_3C 1300
|
||
|
||
#define T_8C 1200
|
||
|
||
#define T_10C 1178 //10℃(58.9KΩ * 20uA) NTC:209.7K
|
||
|
||
#define T_12C 1100
|
||
|
||
#define T_42C 580
|
||
|
||
#define T_45C 546 //45℃(27.3KΩ * 20uA) NTC:40.9K
|
||
|
||
#define T_47C 500
|
||
|
||
#define T_57C 370
|
||
|
||
#define T_60C 350 //60℃(17.5KΩ * 20uA) NTC:22.2K
|
||
|
||
#define T_75C 250
|
||
|
||
#define T_80C 188 //80℃(9.4KΩ * 20uA) NTC:10.6K
|
||
|
||
#endif
|
||
|
||
|
||
#define CHG_CONSTANT_CUR_TIM 1
|
||
|
||
#define DIE_OT_RECOVER_TIM 25 //NTC保护后,恢复正常后等待250ms重新开启充电
|
||
|
||
/* Getting Charger Status */
|
||
typedef enum {
|
||
nPower_Good = 0x00, //VBUS power good status, set when VBUS plugin and VBUS>BAT+0.15V.
|
||
nCharger_DPM, //Charger vin DPM status.
|
||
nCharger_CV, //Charger in CV mode.
|
||
nCharger_CC, //Charger CC status
|
||
nCharger_Tricl, //Tricle charge status
|
||
nCharger_Complete, //Charge end status, set when in CV and charger current less than iterm
|
||
} e_gCharger_Status;
|
||
|
||
//extern uint8_t g_Plug_Irq_Flg; //1:Plugout; 2:Plugin
|
||
//extern bit g_Bat_Det_Flag; //电池检测开始标志位,触发条件:1、VIN插入;2、定时4s;3、Chg Done检测一次,Chg Done后不再每4s检测一次。
|
||
|
||
|
||
//extern void Charger_Init(void);
|
||
extern void Set_Charger_Time( void );
|
||
extern uint8_t PMU_NTC_Control(void);
|
||
extern uint8_t Charger_Protect_Handle(void);
|
||
//extern uint8_t VIN_Detect_Handle(void);
|
||
extern void Charger_Handler(void);
|
||
|
||
#endif
|
||
#endif
|