SY8835_For_Demo_Ourself/UsrInc/inc/config.h

392 lines
13 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 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% * IvolIVOL≥这个值则降压。
#define IVOR_Threshold_Neg(Ivor) ( Ivor / 5 ) << 2 //VOR 调压下限阈值电流80% * IvorIVOR≥这个值则降压。
#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_PREPWM计数器时钟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