/* ****************************************************************************** * * @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