This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] Linux/TLV320AIC3104:任何时间捕获都会开始切换缓冲区

Guru**** 2348570 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/591924/linux-tlv320aic3104-any-time-capture-begins-it-switch-the-buffer

部件号:TLV320AIC3104

工具/软件:Linux

尊敬的专家

我正在连接左侧模拟输入LINE1LP和LINE1LM (差分模式)中的音频源,左侧右侧通道已断开连接。 每当我运行arecord命令(如"arecord -fcd --vumeter=Stereo >/dev/null" (/dev/null以便丢弃样本)时,音频都以随机方式存储在左声道或右声道中。 我找不到任何模式。  

请参阅以下示例:

root@wispeak://# arecord -Fcd --vumeter=Stereo >/dev/null
声波'tdin':已签名的16位小Endian,速率4.41万 Hz,立体声

############### 47 % | 00 % +
############### 47 % | 00 % +
############### 47 % | 00 % +
############### 47 % | 00 % +^信号中断中止...
############### 47 % | 00 % +[1]+已终止  

此时,将在左侧通道中捕获记录运行的数据

root@wispeak://# arecord -Fcd --vumeter=Stereo >/dev/null
声波'tdin':已签名的16位小Endian,速率4.41万 Hz,立体声

+Internet 00 % | 47 % ################ +
+Internet 00 % | 47 % ################ +
+Internet 00 % | 47 % ################ +
+Internet 00 % | 47 % ################ +^信号中止
中断...
+Internet 00 % | 47 % ################ +

此处的音频将在右侧通道中捕获,直至记录运行

我使用立体声,4.41万Hz,16位,I2S模式。 这是两个示例的编解码器配置(事实上,我在 启动时初始化编解码器)

root@wispeak:/# i2cdump -y 0 0x18
未指定大小(使用字节数据访问)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00:00 00 00 10 04 00 00 8a 00 00 00 00 81 00 00 00 00 00 00 ...?...?
10:00 ff 84 78 78 78 78 80 06 00 Fe 00 Fe 00 ...?xxxx?...?...?
20:00 00 00 00 c 0 00 00 00 00 00 00 00 00 00 20 00 00 00 00 ...? ...
30:00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 ...? ?
40:00 04 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00… ?
50:00 00 80 00 00 00 00 0b 00 80 00 00 0b D8 00 ...?...?...???
60:00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 ?........
70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
80:00 00 00 10 04 00 00 8a 00 00 00 01 00 00 00 00 00 ...?...?
90:00 ff 84 78 78 78 78 80 06 00 Fe 00 Fe 00 ...?xxxx?...?...?
A0:00 00 00 00 00 c0 c0 00 00 00 00 00 00 20 00 00 00 ...? ...
B0:00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 ...? ?
C0:00 04 00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00… ?
D0:00 00 80 00 00 00 0 b 00 80 00 00 0 b D8 00 ...?...?...???
E0:00 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 00 ?........
F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

请您帮助我进一步调试这种情况吗?

此致,

塞尔吉奥

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Sergio,

    根据您共享的寄存器配置,禁用正确的ADC。 因此,您不应该在正确的渠道获得任何信息。 但是,我建议尝试将第0页/将24注册为0x78。 此寄存器将差分输入路由到正确的通道。 在这种情况下,没有必要这样做。

    您可以试试吗? 如果您获得不同的结果,请告诉我。

    此致,
    Luis Fernando Rodríguez ñ o S.
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    谢谢你Luis

    结果相同。 有时左输入通道中的音频显示在左缓冲区中,但有时(比如50 %)显示在右通道中。

    我检查过I2S信号,并且始终显示相同的模式:当WCLK=1 =>右侧通道时,I2S数据上无信号,即使音频最终出现在右侧通道上。  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    你好,Sergio,

    音频编解码器似乎工作正常。 WCLK =1表示右通道数据。 如果没有I2S信号,则编解码器按预期工作。

    您能否验证音频接收器是否配置正确? 它是否使用与音频编解码器相同的I2S级别? 相同的采样率等? 即使是标志寄存器也表示未使用正确的通道。

    此致,
    Luis Fernando Rodríguez ñ o S.