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.

[参考译文] TLV320AIC3100:听到一些类型的噪声(如火花噪声)

Guru**** 2445120 points
Other Parts Discussed in Thread: TLV320AIC3100

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/716123/tlv320aic3100-hear-some-type-of-noise-like-spark-noise

器件型号:TLV320AIC3100

尊敬的 TI 团队:

我不熟悉如何使用音频器件(TLV320AIC3100)。 因此、我对寄存器、时钟频率、PLL 等有一点了解、因为我阅读了 TLV320AIC3100数据表。 但是、我不知道如何配置参数(寄存器、时钟频率、PLL 等)。

TLV320AIC3100编解码器与 imx6s 嵌入式电路板集成。 在这一个问题中、播放音频时、在完成音频后听到扬声器发出的一些噪音(如火花噪音)、即使扬声器音量设置为0%、也能听到扬声器发出的相同噪音。

此问题来自客户端、我以前从未使用过音频设备。 请帮帮我。

请查找以下详细信息:

1) 1) MCLK 频率为44.1KHz。

2) 2)在.dts 文件中声明的声音和编解码器相关信息

听起来{
兼容="FSL、IMX-AUDIBLE-tlv320aic31xx";
模型="IMX-maxt-TLV320AIC3100";
SSI-controller =<&SSI1>;
audio-codec =<编解码器>;
音频路由=
"MIC1LP"、"MICBIAS"、
"MIC1LM"、"MICBIAS"、
"MIC1RP"、"MICBIAS"、
"扬声器"、"SPK";
MUX-INT-PORT =<1>;
多路复用器-外部端口=<4>;
};


编解码器:TLV320AIC3100@18{
兼容="ti,TLV320AIC3100";
reg =<0x18>;
GPIO-RESET =<&GPIO2 31 GPIO_ACTIVE_HIGH_>;
ai31xx 微偏置 vg =<1>;
时钟=<&CLKS 200>;
};

3) 3)根据第0页和第1页寄存器的配置:

对于第0页:

0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
00:00 00 01 66 00 91 04 00 00 00 81 00 80 80。。。
10:08 00 81 80 04 00 00 01 0c 00 81 00????? ...??...
20:00 00 00 80 10 00 00 00 00 00 00 00 00 00 00 00 00 00……?………………………………
30:00 00 00 02 32 12 03 02 02 11 00 01 04 00 14……?2???????? ???
40:0C 06 00 6F 38 00 00 00 00 00 10 D8 7e e3?????o8…… ???~?
50:00 00 00 04 00 00 00 00 7f 00 00 00 00 00 00 00 00 00 00 00 00...?...?
60:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
70:00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00… 一
80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E0:00 00 00 00 00 00 00 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

第1页

0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
00:01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00..........
10:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 04 ?
20:86 3E 00 40 7f 7f 94 7f 02 15 00 20 86 00 CB@。 。 ???
30:44 10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 D?..........
40:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
50:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
60:00 00 00 00 00 00 00 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
80:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
90:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
A0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
B0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
C0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
D0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
E0:00 00 00 00 00 00 00 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

根据我的知识、我分享了一些与音频配置相关的详细信息。
如果这里缺少一些信息、请告诉我。

谢谢、

Pratik

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Pratik、
    您能否共享播放音频的顺序? 我猜输出块在不使用时会掉电、序列也不是很正确。

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

    Steve、

    感谢您的快速响应。

    我使用 Linux 内核驱动程序 TLV320AIC3100在内核级别初始化音频编解码器、并使用 QT 库在应用级别播放音频。 很抱歉、我无法理解哪个顺序不正确。 您能详细解释一下吗?

    谢谢、
    Pratik

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

    因此、驱动程序正在抽象化 TLV320AIC3100的硬件配置、以便您无需了解该器件如何工作的详细细节即可播放音频文件、对吧?

    我猜是驱动器未进行优化。 基本上、当处理器想要将音频数据发送到要播放的 TLV320AIC3100时、编解码器可能处于某种待机状态、其中输出块断电以节省功耗。 因此、编解码器需要打开 DAC、打开输出块、取消 DAC 的静音、撤消输出块的静音等。

    文件播放完毕后,驱动程序可能会再次自动关闭这些块。 但是、如果顺序不正确、可能会有伪影无意中引入到音频中。 我不知道驱动程序启用/禁用的顺序、因此我无法评论编解码器导致音频文件末尾出现咔嗒/爆裂声的原因。 您能查看一下驱动程序吗? 播放音频将有某种功能。 如果我能看到该函数能为您提供哪些帮助、

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

    Steve、

    是的,我同意您的观点,即驱动程序与硬件(TLV320AIC3100)通信,以配置参数和交换数据。 根据您的建议、我已经查看了驱动程序源代码、但我没有在驱动程序源代码中找到播放音频 API。 我仍然感到困惑的是、无论是应用级还是驱动级、从音频播放序列的哪个位置受到控制(例如 DAC 加电、DAC 取消静音等)。

    在应用程序级别、为 ALSA 提供了用户空间库、其中包含播放和录制 API、例如用于播放音频的 snd_PCM_writei API 和用于录制音频的 snd_PCM_READI API。 另一个问题是 ALSA、如何从内核级别提取声卡。 但是、在阅读 embedded_linux_audio.pdf (bootlin.com/.../embedded_linux_audio.pdf)后、我仍然对 Linux ALSA 音频结构感到困惑。

    谢谢、

    Pratik