392 lines
13 KiB
C
392 lines
13 KiB
C
/*
|
||
******************************************************************************
|
||
*
|
||
* @file Config.h
|
||
* @brief Config 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 __CONFIG_H__
|
||
#define __CONFIG_H__
|
||
|
||
#include "define.h"
|
||
|
||
/******************************************************************************\
|
||
Macro definitions
|
||
\******************************************************************************/
|
||
/*程序版本,第一个数代表在硬件存在改动不能兼容之前版本时加1,
|
||
第二个数在功能存在改动时加1,第三个数在软件调试出现不同的
|
||
测试版本时改动;高位数字变动时,低位数字清零。*/
|
||
|
||
#define FW_VER0 0x01 //程序版本0:代表在硬件存在改动不能兼容之前版本时加1
|
||
#define FW_VER1 0x01 //程序版本1:代表在功能存在改动时加1
|
||
#define FW_VER2 0x02 //程序版本2:代表在软件调试出现不同的测试版本时改动时加1
|
||
|
||
#if 0
|
||
#if 0
|
||
/*20uA 电流源下接 104K NTC(4250K) 电阻并联一个82K电阻后得到的电压值*/
|
||
#define T_N20C 1530 //-20℃(76.5KΩ * 20uA) NTC:1151K
|
||
|
||
#define T_N15C 1495 //-15℃ 迟滞温度
|
||
|
||
#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_5C 1260
|
||
|
||
#define T_8C 1200
|
||
|
||
#define T_10C 1178 //10℃(58.9KΩ * 20uA) NTC:209.7K
|
||
|
||
#define T_12C 1100
|
||
|
||
#define T_15C 1050
|
||
|
||
#define T_18C 996
|
||
|
||
#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
|
||
#else
|
||
/*20uA 电流源下接 104K NTC(4250K) 电阻并联一个100K电阻后得到的电压值*/
|
||
#define T_N20C 1840 //-20℃(92KΩ * 20uA) NTC:1151K
|
||
|
||
#define T_N15C 1788 //-15℃(89.4KΩ * 20uA) NTC:846K
|
||
|
||
#define T_N10C 1724 //-10℃(86.2KΩ * 20uA) NTC:629K
|
||
|
||
#define T_0C 1562 //-0℃(78.1KΩ * 20uA) NTC:357K
|
||
|
||
#define T_3C 1502 //3℃(75.1KΩ * 20uA) NTC:303K
|
||
|
||
#define T_5C 1462 //5℃(73.1KΩ * 20uA) NTC:272K
|
||
|
||
#define T_8C 1396 //8℃(69.8KΩ * 20uA) NTC:232K
|
||
|
||
#define T_10C 1354 //10℃(67.7KΩ * 20uA) NTC:209.7K
|
||
|
||
#define T_12C 1308 //12℃(65.4KΩ * 20uA) NTC:189K
|
||
|
||
#define T_15C 1236 //15℃(61.8KΩ * 20uA) NTC:162K
|
||
|
||
#define T_18C 1166 //15℃(58.3KΩ * 20uA) NTC:140K
|
||
|
||
#define T_42C 634 //42℃(31.7KΩ * 20uA) NTC:46.5K
|
||
|
||
#define T_45C 580 //45℃(29 KΩ * 20uA) NTC:40.9K
|
||
|
||
#define T_47C 546 //47℃(27.3KΩ * 20uA) NTC:37.6K
|
||
|
||
#define T_48C 530
|
||
|
||
#define T_57C 400 //57℃(20 KΩ * 20uA) NTC:25K
|
||
|
||
#define T_60C 362 //60℃(18.1KΩ * 20uA) NTC:22.2K
|
||
|
||
#define T_75C 222 //75℃(11.1KΩ * 20uA) NTC:12.6K
|
||
|
||
#define T_80C 192 //80℃(9.6KΩ * 20uA) NTC:10.6K
|
||
|
||
#endif
|
||
|
||
#else
|
||
|
||
/*2.5V上拉LDO下接 104K NTC(3950K) 电阻串联一个100K电阻后得到的电压值,Value=1024 * Rntc/(Rntc + 100k) */
|
||
/* 具体公式:( LSB = 2500/1024 )
|
||
NTC Pin实际电压:Vntc = Rntc/R总 * 2500;
|
||
码值:NTC = Vntc / LSB = (Rntc / R总 * 2500) / (2500 / 1024)
|
||
= Rntc / R总 * 1024
|
||
使用码值的原因:2.5V的上拉LDO有温漂误差,使用码值可以规避。
|
||
|
||
*/
|
||
#define NONE_NTC 1000 //NTC引脚悬空码值
|
||
|
||
#define T_N20C 927 //-20℃ NTC:953K
|
||
|
||
#define T_N17C 911 //-17℃ NTC:804K
|
||
|
||
#define T_N15C 900 //-15℃ NTC:719K
|
||
|
||
#define T_N13C 887 //-13℃ NTC:644K
|
||
|
||
#define T_N10C 866 //-10℃ NTC:547K
|
||
|
||
#define T_0C 783 //-0℃ NTC:325K
|
||
|
||
#define T_3C 755 //3℃ NTC:293K
|
||
|
||
#define T_5C 734 //5℃ NTC:253K
|
||
|
||
#define T_8C 703 //8℃ NTC:218K
|
||
|
||
#define T_10C 682 //10℃ NTC:198K
|
||
|
||
#define T_12C 659 //12℃ NTC:180K
|
||
|
||
#define T_15C 626 //15℃ NTC:157K
|
||
|
||
#define T_18C 592 //18℃ NTC:137K
|
||
|
||
#define T_42C 337 //42℃ NTC:49K
|
||
|
||
#define T_45C 311 //45℃ NTC:43.6K
|
||
|
||
#define T_47C 294 //47℃ NTC:40K
|
||
|
||
#define T_57C 221 //57℃ NTC:27.6K
|
||
|
||
#define T_60C 203 //60℃ NTC:24.7K
|
||
|
||
#define T_75C 130 //75℃ NTC:14.6K
|
||
|
||
#define T_80C 113 //80℃ NTC:12.4K
|
||
|
||
#endif
|
||
/* 功能选择和配置。 */
|
||
|
||
/* NTC保护标准选择,JEITA or IEC.*/
|
||
#define NTC_JEITA 1
|
||
|
||
#define NTC_IEC 0
|
||
|
||
/* NTC充电温度范围。 */
|
||
#if NTC_IEC
|
||
|
||
#define IEC_NTC_CHG_PRO_LOW_TMP T_0C //配置充电NTC保护温度下限值。
|
||
|
||
#define IEC_NTC_CHG_HYST_LOW_TMP T_3C //配置充电NTC保护恢复温度下限迟滞值。
|
||
|
||
#define IEC_NTC_CHG_PRO_HIGH_TMP T_45C //配置充电NTC保护温度上限值。
|
||
|
||
#define IEC_NTC_CHG_HYST_HIGH_TMP T_42C //配置充电NTC保护恢复温度上限迟滞值。
|
||
|
||
#elif NTC_JEITA
|
||
|
||
/* JEITA模式,NTC温度保护上下限阈值和迟滞温度。 */
|
||
#define JEITA_NTC_CHG_PRO_LOW_TMP T_0C //配置充电NTC保护温度下限值。
|
||
|
||
#define JEITA_NTC_CHG_PRO_HYST_LOW_TMP T_3C //配置充电NTC保护恢复温度下限迟滞值。
|
||
|
||
#define JEITA_NTC_CHG_PRO_HIGH_TMP T_60C //配置充电NTC保护温度上限值。
|
||
|
||
#define JEITA_NTC_CHG_PRO_HYST_HIGH_TMP T_57C //配置充电NTC保护恢复温度上限迟滞值。
|
||
|
||
/* JEITA模式,NTC温度冷状态,上下限阈值和迟滞温度。 */
|
||
#define JEITA_NTC_CHG_COLD_HIGH_TMP T_10C //配置充电NT C冷状态温度上限值。
|
||
|
||
#define JEITA_NTC_CHG_COLD_HYST_HIGH_TMP T_8C //配置充电NTC冷状态恢复温度上限迟滞值。
|
||
|
||
/* JEITA模式,NTC温度暖状态,上下限阈值和迟滞温度。 */
|
||
#define JEITA_NTC_CHG_WARM_LOW_TMP T_10C //配置充电NTC暖状态温度下限值。
|
||
|
||
#define JEITA_NTC_CHG_WARM_HYST_LOW_TMP T_12C //配置充电NTC暖状态恢复温度下限迟滞值。
|
||
|
||
#define JEITA_NTC_CHG_WARM_HIGH_TMP T_45C //配置充电NT C暖状态温度上限值。
|
||
|
||
#define JEITA_NTC_CHG_WARM_HYST_HIGH_TMP T_42C //配置充电NTC暖状态恢复温度上限迟滞值。
|
||
|
||
/* JEITA模式,NTC温度热状态,上下限阈值和迟滞温度。 */
|
||
#define JEITA_NTC_CHG_HOT_LOW_TMP T_45C //配置充电NTC热状态温度下限值。
|
||
|
||
#define JEITA_NTC_CHG_HOT_HYST_LOW_TMP T_47C //配置充电NTC热状态恢复温度下限迟滞值。
|
||
|
||
#endif
|
||
|
||
/* NTC放电温度范围。 */
|
||
#define NTC_DISCHG_PRO_LOW_TMP T_N20C //配置放电NTC保护温度下限值。
|
||
|
||
#define NTC_DISCHG_HYST_LOW_TMP T_N15C //配置放电NTC保护恢复温度下限迟滞值。
|
||
|
||
#define NTC_DISCHG_PRO_HIGH_TMP T_80C //配置放电NTC保护温度上限值。
|
||
|
||
#define NTC_DISCHG_HYST_HIGH_TMP T_75C //配置放电NTC保护恢复温度上限迟滞值。
|
||
|
||
/* Bat Level Set. 5% Each Gear */
|
||
|
||
#define C_batLevel_SetMax 21 //电量计档位数设置
|
||
|
||
#define Bat_Lev_0 3000 //0%
|
||
#define Bat_Lev_5 3050 //5%
|
||
#define Bat_Lev_10 3100 //10%
|
||
#define Bat_Lev_15 3200 //15%
|
||
#define Bat_Lev_20 3250 //20%
|
||
#define Bat_Lev_25 3300 //25%
|
||
#define Bat_Lev_30 3350 //30%
|
||
#define Bat_Lev_35 3400 //35%
|
||
#define Bat_Lev_40 3450 //40%
|
||
#define Bat_Lev_45 3500 //45%
|
||
#define Bat_Lev_50 3600 //50%
|
||
#define Bat_Lev_55 3650 //55%
|
||
#define Bat_Lev_60 3700 //60%
|
||
#define Bat_Lev_65 3750 //65%
|
||
#define Bat_Lev_70 3800 //70%
|
||
#define Bat_Lev_75 3850 //75%
|
||
#define Bat_Lev_80 3900 //80%
|
||
#define Bat_Lev_85 3975 //85%
|
||
#define Bat_Lev_90 4050 //90%
|
||
#define Bat_Lev_95 4125 //95%
|
||
#define Bat_Lev_100 4200 //100%
|
||
|
||
/* Boost Module Config Para Setting. */
|
||
|
||
#define OPEN_BOOST_VIN 3600 //Boost 发生uvlo保护后,在有VIN条件下,Boost再次恢复开启的电压(3.6V)。
|
||
|
||
#define OPEN_BOOST_NOVIN 3300 //Boost 发生uvlo保护后,在无VIN条件下,Boost再次恢复开启的电压(3.3V)。
|
||
|
||
#define BOOST_VOUT_MAX BOOST_VPMID_5_2V //Boost 输出最高电压阈值。
|
||
|
||
/* LED 驱动输出限流配置。 */
|
||
|
||
#define LED_DRV_LIMIT_SET P1_DRV_400 //配置P10-P13限流输出,2个档位:限流电阻配置:P1_DRV_400:400Ω、P1_DRV_800:800Ω。
|
||
|
||
/* KEY And Hall Module Setting. */
|
||
|
||
#define HALL_OPEN_LEV_SET 1 //配置是高电平为开盖还是低电平为开盖。1:高电平为开盖;0:低电平为开盖。
|
||
|
||
/* Charger Config Setting. */
|
||
|
||
#define TRICKLE_CUR_SET CHG_ITC_20MA //配置涓流充电流。
|
||
|
||
#define ITERM_CUR_SET CHG_ITERM_20MA //配置截止充电流。
|
||
|
||
#define CONSTANT_CUR_SET CHG_ICC_2_00MA //配置恒流充电流。
|
||
|
||
#define VFLOAT_SET CHG_VFLOAT_4_200V //配置浮充电压。
|
||
|
||
#define VFLOAT_JEITA_HOT CHG_VFLOAT_4_050V //配置JEITA标准中NTC过热充电浮充电压。
|
||
|
||
/* Vox Config Setting. */
|
||
|
||
#define VOX_PULL_UP_VOLTAGE_SET VOX_CFG_Vox_Rup_2K //配置VOX 上拉电阻。
|
||
|
||
#define VOX_COM_VOLTAGE_SET VOX_CFG_Vox_Vup_VOXS //配置VOX 通讯电平(1.8v/2.5V/3.0V/5.0)。
|
||
|
||
#define VOX_COM_PULL_UP_SET VOX_CFG_Comx_Rup_2K //配置VOX 通讯上拉电阻。
|
||
|
||
#define VOX_CHG_FULL_5V_LEAST_CNT 40 //配置关盖条件下,VOX 耳机充满后,VOX输出5V持续时间(100ms * 40)
|
||
|
||
#define HALL_OPEN_VOX_5V_DEBOUNCE 5 //配置开盖动作后,VOX 输出5V持续时间(100ms * 5),单位:ms。
|
||
|
||
#define HALL_OPEN_VOX_0V_DEBOUNCE 5 //配置开盖动作后,VOX 输出0V持续时间(100ms * 5),单位:ms。
|
||
|
||
#define HALL_CLOSE_VOX_5V_HOLD_CNT 3 //配置关盖动作后,VOX 输出5V持续时间(100ms * 3),单位:ms。
|
||
|
||
/* 双向通讯协议选择 */
|
||
|
||
#define JIELI 0 //杰理耳机芯片
|
||
|
||
#define ZHONGKE 1 //中科蓝讯耳机芯片
|
||
|
||
#define XUANHENG 0 //玄恒耳机芯片
|
||
|
||
/* Vox跟随充参数设置。(100ms调用周期) */
|
||
|
||
#define FOLLOW_CHG_EFFICIENCY //配置跟随充类型:0、效率优先;1、速度优先。
|
||
|
||
#define VOX_CV_TC_CURRENT 20 //耳机充电处于CV/TC阶段的电流值,单位mA。
|
||
|
||
#define VOX_FOLLOW_CHG_INIT_CNT 10 //启动跟随充VOX VOUT输出最高电压持续时间,1s,单位:ms。。
|
||
|
||
#define VOX_FOLLOW_CHG_PMID_UP_STEPS 2 //VOX VOUT上升调节档位数。
|
||
|
||
#define VOX_FOLLOW_CHG_PMID_DOWN_STEPS 2 //VOX VOUT下降调节档位数。
|
||
|
||
#define VOX_FOLLOW_CHG_PMID_UP_CNT 20 //VOX VOUT上升调节周期(2s),单位:ms。。
|
||
|
||
#define VOUT_MAX_THD BOOST_VPMID_5_2V //VOX VOUT输出最大阈值。
|
||
|
||
#define VOUT_MIN_THD BOOST_VPMID_3_7V //VOX VOUT输出最小阈值。
|
||
|
||
#define IVOL_Threshold_Neg(Ivol) ( Ivol / 5 ) << 2 //VOL 调压下限阈值电流,80% * Ivol,IVOL≥这个值,则降压。
|
||
|
||
#define IVOR_Threshold_Neg(Ivor) ( Ivor / 5 ) << 2 //VOR 调压下限阈值电流,80% * Ivor,IVOR≥这个值,则降压。
|
||
|
||
#define IVOL_Threshold_Pos(Ivol) ( Ivol ) << 1 //VOL 调压上限阈值电流,2倍 * Ivol,当Ivol大于THP阈值电流,则说明耳机状态发生改变(TC跳转到CC或Recharge复充),需要重启跟随充。
|
||
|
||
#define IVOR_Threshold_Pos(Ivor) ( Ivor ) << 1 //VOR 调压上限阈值电流,2倍 * Ivor,当Ivor大于THP阈值电流,则说明耳机状态发生改变(TC跳转到CC或Recharge复充),需要重启跟随充。
|
||
|
||
/* PWM Module Setting */
|
||
/*PWM计数器时钟Fre(pwm) = Fre(sys)/PWM_PRE = 11.0592M / n^PWM_PRE = 11.0592M / 8 = 1.38MHz,
|
||
PWM_REL = 255 - 1.38M / 10K = 255-138 = 117,
|
||
nPWM_CMP = 117 + 150 * (1-50%) = 192。
|
||
*/
|
||
#define PWM_CLKFRE_SET 3 //配置PWM计数时钟频率,对应寄存器PWM_PRE;PWM计数器时钟Fre(pwm) = Fre(sys)/PWM_PRE = 12M / n^PWM_PRE = 12M / 8 = 1.5MHz,
|
||
|
||
#define PWM_RELOAD_SET PWM_REL_VALUE //配置PWM输出占空比,对应寄存器PWM_REL;需和PWM_CMP配合使用。
|
||
|
||
/*Sleep Module Setting*/
|
||
|
||
/*Enter Sleep Time Debounce*/
|
||
#define ENTER_STANDBYMODE_CNT 15 //进入Standby Mode 延迟时间,单位:秒
|
||
|
||
#define ENTER_SHIPMODE_CNT 5 //进入ShipMode 延迟时间,单位:秒
|
||
|
||
/******************************************************************************\
|
||
Variables definitions
|
||
\******************************************************************************/
|
||
|
||
/* 标志位和状态位。 */
|
||
/* NTC充放电保护标志位 */
|
||
extern bit CHG_NTC_Pro_Flag; //充电NTC保护标志位;TRUE:有NTC保护:FAULSE:无NTC保护
|
||
|
||
extern bit Boost_NTC_Pro_Flag; //放电电NTC保护标志位;TRUE:有NTC保护:FAULSE:无NTC保护
|
||
|
||
/* Charger状态定义 */
|
||
// 充电状态定义
|
||
typedef enum
|
||
{
|
||
CHG_NONE = 0x00,
|
||
|
||
CHG_PROTECT,
|
||
|
||
CHG_STA_ING, // 充电中
|
||
|
||
CHG_STA_COMPLETED, // 充电完成
|
||
|
||
} TE_CHG_STA;
|
||
|
||
extern TE_CHG_STA ChgStatus; // Charger状态定义
|
||
|
||
/* Boost相关标志位 */
|
||
extern bit gBoost_Prepared_Flag; //Boost满足开启条件,TRUE:Boost无保护,可以开启;FAULSE:Boost有保护,无法正常开启。
|
||
|
||
/* LED UI显示相关标志位 */
|
||
extern bit CoverEvent_Flg_led; //Hall开关盖动作标志位,用于LED UI显示,TRUE:有开关盖动作。
|
||
|
||
extern bit Earphone_Chg_Flag_led; //耳机出入盒标志位,用于LED UI显示,TRUE:有耳机入盒动作。
|
||
|
||
extern bit Key_Press_short_irq_led; //按键短按动作标志位,用于LED UI显示,TRUE:有按键短按动作。
|
||
|
||
extern bit LED_On_Flag; //led显示复位标志位,TRUE:灯效复位。
|
||
|
||
/******************************************************************************\
|
||
UserCfg.Functions definitions
|
||
\******************************************************************************/
|
||
|
||
#endif
|
||
|