/* ****************************************************************************** * * @file charger_module.h * @brief charger module * @ic sy8837/8 * * @version 1.0 * @date 2024/11/01 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 2024/11/01 Alex build this file ****************************************************************************** */ #ifndef __CHARGER_MODULE_H__ #define __CHARGER_MODULE_H__ #include "define.h" typedef enum { DISCHG_ON = 0, CHG_ON, }g_chg_type; #if CHARGER_ENABLE /* Charger Current Setting */ typedef struct { uint8_t nTrickle_Cur; //Set Trickle Current Trickle charge 电流配置,step 10mA; uint8_t nConstant_Cur; //Set Constant Current 恒流 cc 电流配置,step 25mA: uint8_t nIterm_Cur; //Set Iterm Current iterm charge 电流配置(范围:5mA ~ 50mA ,step 5mA) uint8_t nVFloat; } s_gCharger_Cfg; /* CHG Control Register-CHG_CTL */ #define CHG_END_Sel_Pos (7U) #define CHG_END_Sel_Pos_Msk (0x1UL << CHG_END_Sel_Pos) #define CHG_END_Sel CHG_END_Sel_Pos_Msk #define CHG_SafyTmr_EN_Pos (4U) #define CHG_SafyTmr_EN_Pos_Msk (0x1UL << CHG_SafyTmr_EN_Pos) #define CHG_SafyTmr_EN CHG_SafyTmr_EN_Pos_Msk #define PRECHG_TMR_EN_Pos (3U) #define PRECHG_TMR_EN_Pos_Msk (0x1UL << PRECHG_TMR_EN_Pos) #define PRECHG_TMR_EN_2H PRECHG_TMR_EN_Pos_Msk #define PRECHG_TMR_EN_1H 0x00 #define FASTCHG_TMR_SET_3H 0x00 #define FASTCHG_TMR_SET_5H 0x01 #define FASTCHG_TMR_SET_8H 0x02 #define FASTCHG_TMR_SET_13H 0x03 #define CHG_EN_Pos (0U) #define CHG_EN_Pos_Msk (0x1UL << CHG_EN_Pos) #define CHG_EN CHG_EN_Pos_Msk /* Charger Parements Config. */ /* 1、V Float Setting */ #define CHG_VFLOAT_4_000V 0x00 #define CHG_VFLOAT_4_200V 0x01 #define CHG_VFLOAT_4_325V 0x02 #define CHG_VFLOAT_4_350V 0x03 #define CHG_VFLOAT_4_375V 0x04 #define CHG_VFLOAT_4_400V 0x05 #define CHG_VFLOAT_4_450V 0x06 #define CHG_VFLOAT_4_500V 0x07 /*2、Constant Current ICC Setting.[bit3:0]*/ #define CHG_ICC_5_0MA 0x00 #define CHG_ICC_1_00MA 0x01 #define CHG_ICC_1_50MA 0x02 #define CHG_ICC_2_00MA 0x03 #define CHG_ICC_2_50MA 0x04 #define CHG_ICC_3_00MA 0x05 #define CHG_ICC_3_25MA 0x06 #define CHG_ICC_3_50MA 0x07 #define CHG_ICC_3_75MA 0x08 #define CHG_ICC_4_00MA 0x09 #define CHG_ICC_4_25MA 0x0A #define CHG_ICC_4_50MA 0x0B #define CHG_ICC_4_75MA 0x0C #define CHG_ICC_5_00MA 0x0D /*3、电池涓流充电电流设置,*/ #define CHG_ITC_Pos (6U) #define CHG_ITC_20MA_Msk 0x00 #define CHG_ITC_30MA_Msk 0x01 #define CHG_ITC_40MA_Msk 0x02 #define CHG_ITC_50MA_Msk 0x03 #define CHG_ITC_20MA ( CHG_ITC_20MA_Msk << CHG_ITC_Pos ) #define CHG_ITC_30MA ( CHG_ITC_30MA_Msk << CHG_ITC_Pos ) #define CHG_ITC_40MA ( CHG_ITC_40MA_Msk << CHG_ITC_Pos ) #define CHG_ITC_50MA ( CHG_ITC_50MA_Msk << CHG_ITC_Pos ) /*4、电池充电截止电流设置,*/ #define CHG_ITERM_Pos (4U) #define CHG_ITERM_20MA_Msk 0x00 #define CHG_ITERM_30MA_Msk 0x01 #define CHG_ITERM_40MA_Msk 0x02 #define CHG_ITERM_50MA_Msk 0x03 #define CHG_ITERM_20MA ( CHG_ITERM_20MA_Msk << CHG_ITERM_Pos ) #define CHG_ITERM_30MA ( CHG_ITERM_30MA_Msk << CHG_ITERM_Pos ) #define CHG_ITERM_40MA ( CHG_ITERM_40MA_Msk << CHG_ITERM_Pos ) #define CHG_ITERM_50MA ( CHG_ITERM_50MA_Msk << CHG_ITERM_Pos ) /*5、CHG 配置寄存器 - REG_CHG0 */ #define DPM_Sel_Pos (6U) #define DPM_Sel_Pos_Msk (0x1UL << DPM_Sel_Pos) #define DPM_Sel DPM_Sel_Pos_Msk #define R_Set1_Pos (4U) #define R_Set1_Pos_Msk (0x1UL << R_Set1_Pos) #define R_Set1 R_Set1_Pos_Msk #define R_Set0_Pos (3U) #define R_Set0_Pos_Msk (0x1UL << R_Set0_Pos) #define R_Set0 R_Set0_Pos_Msk #define CHG_VDPM_En_Pos (2U) #define CHG_VDPM_En_Pos_Msk (0x1UL << CHG_VDPM_En_Pos) #define CHG_VDPM_En CHG_VDPM_En_Pos_Msk #define CHG_TEMP_En_Pos (1U) #define CHG_TEMP_En_Pos_Msk (0x1UL << CHG_TEMP_En_Pos) #define CHG_TEMP_En CHG_TEMP_En_Pos_Msk #define CHG_CV_En_Pos (0U) #define CHG_CV_En_Pos_Msk (0x1UL << CHG_CV_En_Pos) #define CHG_CV_En CHG_CV_En_Pos_Msk /* Charger 状态寄存器 - CHIP_STA4 */ #define VIN_PG_Pos (7U) #define VIN_PG_Pos_Msk (0x1UL << VIN_PG_Pos) #define VIN_PG VIN_PG_Pos_Msk #define STATE_VDPM_Pos (6U) #define STATE_VDPM_Pos_Msk (0x1UL << STATE_VDPM_Pos) #define STATE_VDPM STATE_VDPM_Pos_Msk #define STATE_TPL_Pos (5U) #define STATE_TPL_Pos_Msk (0x1UL << STATE_TPL_Pos) #define STATE_TPL STATE_TPL_Pos_Msk #define STATE_BATOV_Pos (4U) #define STATE_BATOV_Pos_Msk (0x1UL << STATE_BATOV_Pos) #define STATE_BATOV STATE_BATOV_Pos_Msk #define CHG_END_Pos (3U) #define CHG_END_Pos_Msk (0x1UL << CHG_END_Pos) #define CHG_END CHG_END_Pos_Msk #define STATE_CV_Pos (2U) #define STATE_CV_Pos_Msk (0x1UL << STATE_CV_Pos) #define STATE_CV STATE_CV_Pos_Msk #define STATE_CC_Pos (1U) #define STATE_CC_Pos_Msk (0x1UL << STATE_CC_Pos) #define STATE_CC STATE_CC_Pos_Msk #define STATE_TC_Pos (0U) #define STATE_TC_Pos_Msk (0x1UL << STATE_TC_Pos) #define STATE_TC STATE_TC_Pos_Msk extern void Charger_Init(void); extern void Charger_Handler(void); #ifdef NTC_ENABLE extern uint8_t PMU_NTC_Handle(uint8_t Charge_sta); #endif #endif #endif