- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
怎样解决插入耳机后等待2s时间才显示图标或者检测到耳机MIC类型
录入:edatop.com 点击:
[DESCRIPTION]
经常有客户遇到插入耳机后差不多等待了2s时间才显示图标或者检测到耳机MIC类型
[SOLUTION]
出现这样的问题是由于定义了宏ACCDET_PIN_RECOGNIZATION
定义该宏后由于该宏设计的原因,会在文件
alps\kernel-3.10\drivers\misc\mediatek\accdet\mt6752\accdet.c
函数static inline void accdet_init(void)里面会调整耳机类型检测accdet中断
debounce time为2s。
// init the debounce time
#ifdef ACCDET_PIN_RECOGNIZATION
PMIC_pwrap_write(ACCDET_DEBOUNCE0, cust_heADSet_settings->debounce0);
pmic_pwrap_write(ACCDET_DEBOUNCE1, 0xFFFF);
//该数值单位为1/32K ,这样0xffff*(1/32K)就是2s了。
pmic_pwrap_write(ACCDET_DEBOUNCE3, cust_headset_settings->debounce3);
pmic_pwrap_write(ACCDET_DEBOUNCE4, ACCDET_DE4);
#else
开启ACCDET_PIN_RECOGNIZATION后,需要2s时间的原理如下:
当按插柱分段逐步插入不匹配耳机后,AB的值很容易先进到01,而按照设计,如果进到01处理中,则不能进行i不匹配耳机的判断,
因此需要将AB=01的情况避开,方法是将AB=01的debounce1=0xFFFF约为2s,这样用户在逐节插入耳机时,如果进到AB=01的情况,
由于debounce1=2s,这样逐节插入绝大多数的情况应该都可以跳过AB=01,
但如果用户逐节插入确实超过2s才完全插入耳机,就会先进到AB=01的处理,而后变为AB=0,产生press key的行为,这样就认不到不匹配耳机了。
PIN recognition limitation
1、在press up key插入兼容的耳机后,大于1s release key,这时弹出不兼容耳机的提示框,或插入兼容耳机马上press up key(1s内),小概率性会弹出不兼容耳机的提示框。
2、将不兼容耳机按插柱分节逐步插入插座,在插柱的第三节到第四节的过渡停留超过大约2s,之后完全推入耳机, 不兼容耳机会认不到,不能弹出不兼容耳机的提示框
3、插入耳机后,识别到耳机插入的时间要比pin recognition长,用户体验上来说,audio切到耳机的时间要比没有pin recognition长(大约长1-2s)
4、android Toast
因为show message采用的是android Toast方案,因此会有Toast行为本身的局限性,比如锁屏时,不能show message,插着不兼容耳机开机,开机后不能show message所以如果定义了宏ACCDET_PIN_RECOGNIZATION 就有这样的限制,是没有办法优化的,如果无法接受limitation,就关闭该宏,
经常有客户遇到插入耳机后差不多等待了2s时间才显示图标或者检测到耳机MIC类型
[SOLUTION]
出现这样的问题是由于定义了宏ACCDET_PIN_RECOGNIZATION
定义该宏后由于该宏设计的原因,会在文件
alps\kernel-3.10\drivers\misc\mediatek\accdet\mt6752\accdet.c
函数static inline void accdet_init(void)里面会调整耳机类型检测accdet中断
debounce time为2s。
// init the debounce time
#ifdef ACCDET_PIN_RECOGNIZATION
PMIC_pwrap_write(ACCDET_DEBOUNCE0, cust_heADSet_settings->debounce0);
pmic_pwrap_write(ACCDET_DEBOUNCE1, 0xFFFF);
//该数值单位为1/32K ,这样0xffff*(1/32K)就是2s了。
pmic_pwrap_write(ACCDET_DEBOUNCE3, cust_headset_settings->debounce3);
pmic_pwrap_write(ACCDET_DEBOUNCE4, ACCDET_DE4);
#else
开启ACCDET_PIN_RECOGNIZATION后,需要2s时间的原理如下:
当按插柱分段逐步插入不匹配耳机后,AB的值很容易先进到01,而按照设计,如果进到01处理中,则不能进行i不匹配耳机的判断,
因此需要将AB=01的情况避开,方法是将AB=01的debounce1=0xFFFF约为2s,这样用户在逐节插入耳机时,如果进到AB=01的情况,
由于debounce1=2s,这样逐节插入绝大多数的情况应该都可以跳过AB=01,
但如果用户逐节插入确实超过2s才完全插入耳机,就会先进到AB=01的处理,而后变为AB=0,产生press key的行为,这样就认不到不匹配耳机了。
PIN recognition limitation
1、在press up key插入兼容的耳机后,大于1s release key,这时弹出不兼容耳机的提示框,或插入兼容耳机马上press up key(1s内),小概率性会弹出不兼容耳机的提示框。
2、将不兼容耳机按插柱分节逐步插入插座,在插柱的第三节到第四节的过渡停留超过大约2s,之后完全推入耳机, 不兼容耳机会认不到,不能弹出不兼容耳机的提示框
3、插入耳机后,识别到耳机插入的时间要比pin recognition长,用户体验上来说,audio切到耳机的时间要比没有pin recognition长(大约长1-2s)
4、android Toast
因为show message采用的是android Toast方案,因此会有Toast行为本身的局限性,比如锁屏时,不能show message,插着不兼容耳机开机,开机后不能show message所以如果定义了宏ACCDET_PIN_RECOGNIZATION 就有这样的限制,是没有办法优化的,如果无法接受limitation,就关闭该宏,
申明:网友回复良莠不齐,仅供参考。如需专业帮助,请学习易迪拓培训专家讲授的ADS视频培训课程。
上一篇:ADS仿真mixer出现奇怪现象help
下一篇:各位 有没有使用过systemvue和ads的co-simulation?
ADS培训课程推荐详情>>
国内最全面、最专业的Agilent ADS培训课程,可以帮助您从零开始,全面系统学习ADS设计应用【More..】
- Agilent ADS教学培训课程套装
- 两周学会ADS2011、ADS2013视频教程
- ADS2012、ADS2013射频电路设计详解
- ADS高低阻抗线微带滤波器设计培训教程
- ADS混频器仿真分析实例视频培训课程
- ADS Momentum电磁仿真设计视频课程
- ADS射频电路与通信系统设计高级培训
- ADS Layout和电磁仿真设计培训视频
- ADS Workspace and Simulators Training Course
- ADS Circuit Simulation Training Course
- ADS Layout and EM Simulation Training Course
- Agilent ADS 内部原版培训教材合集