SY8837_Demo_For_OurSelf/UsrInc/charger/charger_module.h

219 lines
6.4 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
* @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"
#ifdef NTC_ENABLE
extern bit CHG_NTC_Pro_Flag;
#endif
// 充电状态定义
typedef enum
{
CHG_NONE = 0x00,
CHG_PROTECT,
CHG_STA_ING, // 充电中
CHG_STA_COMPLETED, // 充电完成
} 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 PRECHG_TMR_EN_Pos (3U)
#define PRECHG_TMR_EN_Pos_Msk (0x1UL << PRECHG_TMR_EN_Pos)
#define PRECHG_TMR_EN PRECHG_TMR_EN_Pos_Msk
#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 <B2h> */
#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.<B1h>[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、电池涓流充电电流设置,<B1h><bit7:6>*/
#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、电池充电截止电流设置,<B1h><bit5: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
#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