线程中讨论的其他部件:TLV320AIC33, TLV320AIC3101, 测试,
您好,
我在 TLC320AIC3111平台上遇到耳机检测问题。 我没有使用 EVM;该器件集成在运行 Linux 的自定义主板上,使用 tlv320aic31xx 驱动程序。
耳机接口按照设备数据表(图5-1)中的建议进行交流耦合,并在下面的定制主板示意图中显示。
测试时,我使用的是带麦克风和开关的标准立体声耳机;这是苹果公司几年前发布的用于具有3.5毫米音频插孔的手机的耳机。
我所遇到的问题的简短摘要如下:
(1) 如果耳机在播放声音输出之前已插入插孔,则会将耳机检测为耳机。
(2) 如果耳机在声音输出播放时插入插孔,则会将耳机检测为耳机(而不是耳机)。
我尝试了许多设置,但到目前为止,当耳机在播放声音时插入电源时,设备无法将耳机检测为头戴式耳机类型。 这似乎与去抖设置有关,但我认为我已经尝试了所有的组合。
驱动程序配置为使用 INT1进行耳机检测。 INT1中断在耳机插头事件中持续激活。 我在中断中尝试了多种配置,以检查寄存器0:44和0:46中的耳机插入/删除标记的状态,以及寄存器0:67中的耳机类型。 我还尝试了一些 MICBIAS 设置(可能不是详尽的)。
我还尝试禁用中断操作,认为寄存器0:44中粘滞标志的读数会干扰去抖滤波。 我运行了以下两项测试:
(1) 耳机已插入插孔,无音频输出,我手动读取寄存器0:67。 第5位和第6位均为零。 然后,我开始了音频输出,并再次手动读取寄存器。 这两个位现在都设置为“1”,表示已连接带麦克风的耳机。
(2) 耳机从插孔中取出后,我手动读取寄存器0:67,并看到第5位和第6位均为零。 然后我开始音频输出并再次读取寄存器。 两个位均为零。 然后,我插入了耳机,然后手动读取寄存器。 我发现第5位设置为“1”,第6位设置为“0”,表示耳机没有麦克风。
在搜索此论坛时,我发现了以下文档:SLAA454–2010年6月“TLV320AIC33和 TLV320AIC3101/4/5/6系列的耳机检测”;该文档似乎不直接应用(寄存器引用与我的设备不匹配),但它似乎有一些有用的信息,可能部分应用(?)。
请告知我如何解决此问题。
谢谢你。
——肯