/* ****************************************************************************** * * @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