ACCDET
1. 耳机种类
耳机种类分大概分为三段(TRS)和四段(TRRS:OMTP、CTIA/AHJ)两种(具体的还有直径和长度之分,这里不再详述),具体规格如图:
带三个按键和MIC的标准耳机电路:
2. MTK平台耳机检测种类
1.
ACCDET
这种方式只使用ACCDET检测HP_MIC上的电压,检测时会出现更多的错误或者错误的按键状态。
缺点:
插拔时由于耳机MIC上的电压导致电路噪声比较大。
插拔错误检测率比ACCDET+EINT方式的低,会出现更多的错误检测;按键错误检测率也比后者的低。 电路设计:
2.
ACCDET+EINT
这种方式HP_MIC作为检测中断源的同时使用ACCDET来检测HP_MIC上的电压。对于电路噪声改善比较大。 电路设计:
3.
ACCDET+EINT(multi-key) 设计要求:
需要在L_switch引脚添加470K上拉电阻 HPL和HPR输出引脚需要添加470ohm下拉 使用1K电阻将ACCDET和HP_MIC连接起来 耳机检测:
Plug in:HP_EINT触发中断->插入检测->ACCDET检测耳机类型 Plug out:HP_EINT触发中断->拔出检测 (HP_EINT:插入拔出检测 ACCDET:检测耳机类型和按键 UP:0.09 4. ACCDET+EINT(multi-key+Pin recognition) 对于TRRS耳机的两种标准,MTK提供了这个方案来解决耳机检测的兼容问题。 检测流程如第3点(ACCDET+EINT(multi-key)),稍微不同的是在检测时软件处理上多了1s的防抖延时。 此方案限制: 仅支持默认的耳机接口(default open audio jack) 对于使用外置功放的方案,因为使用外放播音乐时插入耳机会导致检测时效,所以不支持Pin recognition检测方案。 对于CTIA(L/R/G/M)类型的耳机:如果非默认类型的耳机插入,插入时间需要少于2s,否则会出现不能识别这种耳机的情况。 对于OMTP(L/R/M/G)类型的耳机,无论使用默认的还是其他耳机插入,插入时间都必须小于1s,否则会出现检测不当的情况。 3. MIC种类(ACC/DCC和BIAS见附录概述) MIC根据功放电路可以分为AC couple和DC couple: ACC模式:这时在L/R引脚和MT6328电路间有两个隔直电容 图:ACC模式 DCC模式:L/R引脚和MT6328电路间没有隔直电容: 图:DCC模式 4. 驱动配置 MT6737宏配置,平台支持的ACCDET检测功能如下,没有CONFIG开头的为其他旧平台的宏配置: CONFIG_ACCDET_EINT(ACCDET+EINT、ACCDET+EINT multi-key) #CONFIG_ACCDET_PIN_RECOGNIZATION(ACCDET+EINT multi-key+Pin recognition) #CONFIG_ACCDET_EINT_IRQ(ACCDET only) #CONFIG_ACCDET_PIN_SWAP 1: ACCDET_EINT 是否启用了外部中断来侦测是否有耳机插入和拔出 2: ACCDET_MULTI_KEY_FEATURE 是否支持使用A/D来侦测key,这里要注意的是即使耳机只有一个key若是在89的平台