/* ****************************************************************************** * * @file Charger_module.h * @brief charger module * @ic sy8835 * * @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" extern bit Charger_Done; #ifdef NTC_ENABLE extern bit NTC_Pro_Flag; #endif // 充电状态定义 typedef enum { CHG_NONE = 0x00, CHG_PROTECT, CHG_STA_ING, // 充电中 CHG_STA_COMPLETED, // 充电完成 CHG_STA_PULLOUT, // 充电器拔出 } TE_CHG_STA; typedef enum { DISCHG_ON = 0, CHG_ON, }g_chg_type; extern idata TE_CHG_STA ChgStatus; // 系统状态定义 #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 CHG_PrechgTmr_EN_Pos (3U) #define CHG_PrechgTmr_EN_Pos_Msk (0x1UL << CHG_PrechgTmr_EN_Pos) #define CHG_PrechgTmr_EN CHG_PrechgTmr_EN_Pos_Msk #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 ) #define CHG_CONSTANT_CUR_TIM 1 #define DIE_OT_RECOVER_TIM 25 //NTC保护后,恢复正常后等待250ms重新开启充电 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