219 lines
6.4 KiB
C
219 lines
6.4 KiB
C
/*
|
||
******************************************************************************
|
||
*
|
||
* @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
|
||
|