主题中讨论的其他器件: TLV320AIC3111
您好!
为了调试在使用 TLV320AIC3111编解码器并运行 Android 的定制目标板上恢复耳机麦克风信号的问题、我购买了 TLV320AIC3111EVM-K 开发套件。 目标板处理器是 iMX8MP SoC。 TLV320AIC3111编解码器用于音频输出、扬声器和耳机以及耳机麦克风输入。 SoC 上的 WM8904编解码器用于支持内置数字 PDM 麦克风。 将带有集成麦克风的耳机插入目标板上的耳机插孔时、TLV320AIC3111和驱动器会正确检测到耳机。 我面临的问题是编解码器的配置、以便从它恢复音频信号。
我已附上目标板原理图的相关表格供您参考(target_schematic_p20.pdf)。
音频接口配置为在 I2S 模式下运行、12.3MHz 由处理器作为编解码器的信号源。 编解码器被配置为分别以3.07MHz 和48KHz 的频率驱动 BCLK 和 WCLK 时序信号。
Android 系统软件使用 tlv320aic31xx.c Linux 内核驱动程序来管理目标板上的 TLV320AIC3111编解码器器件。 我为此应用修改了该驱动程序、以添加对耳机插孔和耳机检测的支持、添加了对捕获模式下外部耳机麦克风的支持以及一些其他功能。 我还添加了调试功能、其中包括设置和读取单个编解码器寄存器以及转储整个寄存器集的功能。
附加的文件 reg_recording.txt 是将耳机插入耳机插孔并且启动音频录制应用程序之后、目标系统上编解码器寄存器的寄存器转储。
附加的文件 Android_boot.txt 和 Android_headset_detect.txt 是脚本文件、我使用逻辑分析仪组装这些文件、以捕获 Android 系统在启动(探测和配置编解码器)期间以及在耳机插入和启动音频录制应用期间发出的编解码器 I2C 流量。 这些脚本文件中命令的顺序和内容被创建来复制 Android 系统管理编解码器的方式。
我在首先运行 Android_boot.txt 脚本、然后将耳机插入 EVM 板耳机插孔、再运行 Android_headset_detect.txt 脚本之后、比较了寄存器检查器工具中的寄存器内容。 除了少数例外、寄存器的内容是相同的。
我遇到的一个问题是、运行脚本后、EVM 板上的 BCLK 和 WCLK 信号似乎存在争用。 当 Android_headset_detect.txt 脚本中第74和76行的命令在 EVM 上执行时、会发生争用。
我在示波器上捕获了这种争用;请参阅下面的波形。
下面的波形(scope_305.bmp)显示了在执行 Android_boot.txt 脚本后出现的 BCLK 信号。
下面的波形(scope_306.bmp)显示了在第一个脚本之后执行 Android_headset_detect.txt 脚本后的情况。
当 Android_boot.txt 脚本运行时、也会立即发生类似的争用。 请参见下面的波形(scope_307.bmp)。
我猜、EVM 上的一个或多个跳线和开关配置错误会导致此问题。
跳线和开关在 EVM 板上按如下方式进行配置:
主板:
SW1-1—打开
SW1-2 --打开
JMP1 --分流器已安装
JMP6 --分流器安装到 REG (使用外部9V 电源作为 EVM 电源)
SW3-3.3 V;所有其它开关均设置为关闭
JMP5 --分流器安装在 FSX 上
J6 -- SDA 或 SCL 上没有分流器
JMP3 -- SDA 上无分流器
JMP4 -- SCL 上无分流器
JMP7 -从2分流到3 (也尝试1到2,但没有区别)
SW2-A1 --开
SW2-EXT MCK --开
SW2、所有其他开关关闭
子板:
W3 ----无分流器
W2 ----无分流器
scope_307.bmp W21 --分流器已安装
W22 ----分流器已安装
W4 ----无分流器
W5 ----分流器已安装
W6 ----无分流器
W1 --引脚2和3之间分流
W7 --引脚1和2之间分流
W8 --引脚1和2之间分流
W9 --引脚2和3之间分流
W16 ----无分流器
W17 ----无分流器
W18 ----无分流器
w19 ----无分流器
W20 -分流器已安装
如上所述配置跳线和开关后、EVM 电路的配置似乎与目标板上的电路基本相同、但以下情况除外:
(1) 耳机麦克风音频输入位于目标板上的 MIC1RP;它位于 EVM 上的 MICLP。 我认为这没有关系、只是对配置脚本进行了调整以更改配置。
(2) 我注意到、在耳机输出信号上存在由组件 R19和 C23以及组件 R20和 C24组成的附加网络、这些信号位于 EVM 板上、但不在我们的目标板上。 我不确定这些功能的用途是什么;TLV320AIC3111数据表中的基准电路中没有显示它们。 请告知。
此时、由于上述 BCLK 和 WCLK 信号存在争用问题、我被阻断。 解决该问题后、我可以尝试查看 EVM 是否可以接收来自耳机麦克风的音频信号。
BTW、如果有任何与耳机电路相关的其他应用手册或其他文档、请附上。
此外、如果您需要我提供任何其他信息来澄清我遇到的问题、请告诉我。
谢谢。
-肯
e2e.ti.com/.../regs_5F00_recording.txte2e.ti.com/.../Android_5F00_boot.txte2e.ti.com/.../Android_5F00_headset_5F00_detect.txt