1.简介
Mbhc是codec的一部分,用于检测耳机插入、移除到3.5mm的音频插孔中,以及检测耳机按钮的按下和释放,主要功能:
拔插检测
拔插类型检测:headset、headphone
按钮按下、释放检测
美标国标耳机检测
阻抗检测
2.拔插类型
美标耳机(US/CTIA headset 4线类型):MIC GND R L
欧/国标耳机(Euro/OMTP 4线类型):GND MIC R L
Headphone(3线类型): GND R L
如何区分国标(欧标)、美标耳机?
国标、或者欧标耳机:1 L、2 R、3 MIC、4 GND 美标:1 L 、2 R 、3 GND、4 MIC
其实就是如何区分GND在3、4中哪个位置
国标:GND在4位置,万用表量1、2到4位置间电阻值24-35欧姆左右,就是国标(一般为黑色圆圈)
美标:GND在3位置,万用表量1、2到3位置间电阻值24-35欧姆左右,就是美标(一般为白色圆圈)
3.插孔类型
NO (normally open)
NC (normally closed)
4.mbhc 中断与插入类型检测
耳机插孔开关中断(WCD934X_IRQ_MBHC_SW_DET)对应物理上插入和移除检测,每当状态变化时,就会触发该中断。No/Nc插孔类型与硬件通信,确保该线路上是否由信号插入与移除。
插入插头时,会触发mbhc-sw-intr中断。检测到插入后,需要通过调用对应函数,来确定插入的插头类型。如果使用当前源方法,将根据DCE测量值确定插头类型。如果使用麦克风偏置方法,将根据DCE测量值确定插头类型。返回的插头类型基于瞬时DCE读取,不知道插头类型是完全插入还是部分插入,调用定时函数,在运行4秒的循环中每100毫秒检测,最后使用report_plug()函数将插件类型报告给用户空间。
如果所有DCE测量值一致且值位于耳机的范围内,则报告耳机。然而,MBHC驱动程序仍继续进行额外的四组测量,每个测量有四个DCE读数,以确保确实插入了耳机。如果插入了耳机,此过程将持续5秒。有时,一个部分插入的耳机首先报告为耳机,然后在完全插入时报告为耳机。如果在5秒轮询过程中,完全插入插头后检测到耳机,则轮询停止,并报告耳机。
如果所有DCE测量值一致,且MIC2_INP处的电压处于高HPH范围内,则继续轮询5秒,以获取更多几组DCE测量值(每组包括四个DCE测量值)。如果仍然检测到高HPH,则会启用麦克风偏置,并进行一组DCE测量,以检查在MIC2_INP处测量的电压是否在耳机的范围内。有些耳机的话筒需要2.7 V的话筒偏置才能启用。因此,在启用电流源的情况下,此类耳机被检测为高HPH。当麦克风偏置启用且在MIC2_INP处进行DCE电压测量时,该值可能位于耳机的范围内,并报告耳机,并在5秒内停止进一步轮询。如果MIC2_INP处的电压处于高HPH范围内,则无论电流源或mic偏置启用的检测插头类型的方法如何,都会报告高HPH。
如果所有DCE测量值一致且值位于无效耳机的范围内,则继续轮询以测量MIC2_INP电压5秒。如果在5秒内确定了有效的插头类型,则会将插入的插头类型报告给用户空间。如果插头类型在5秒结束时仍然无效,则报告无效的插头类型。
如果任何DCE测量值不一致,则继续轮询MIC2_INP 5秒。如果在5秒内检测到有效的插头类型,则会将其报告给用户空间。
5.国标、美标兼容电路
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_57123509/article/details/121808126