Both_Way_Comm_SY8833/TP3310_Demo.si4project/Backup/charger_module(4483).h

137 lines
4.2 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
******************************************************************************
*
* @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、定时4s3、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