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.

[参考译文] TLV320ADC3101:没有 MCLK 的语音质量比使用 MCLK 的语音质量差

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/999698/tlv320adc3101-voice-quality-without-mclk-is-worse-than-the-one-using-mclk

器件型号:TLV320ADC3101

您好!


我们有使用多个 TLV320ADC3101编解码器作为语音阵列的项目。 由于硬件设计、 它不使用 MCLK、而是使用 BCLK。

使用 MLCK (硬件返工)时、语音质量相当好;但如果不使用 BCLK、语音质量明显变差。

我的问题是、如果我们仅使用 BCLK (不使用 MLCK)、我们能否实现与 MCLK 相同的质量、以及如何实现?

谢谢

6月

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="486322" URL"~/support/audio-group/audio/f/audio-forum/999698/tlv320adc3101-voice-quality-without-mclk-is-worse-than-the-one-using-mclk "]使用 MLCK (硬件返工)时,语音质量相当好;但如果不使用 BCLK,语音质量明显变差。

    应该是:
    使用 MCLK (硬件返工)时、语音质量相当好;但如果不使用 MCLK、语音质量明显变差。

    抱歉、出现拼写错误。

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

    您好、蔡军

    如何使用 BCLK 录制? 音质是否失真? 您是否能够共享两个案例的记录以便我们进行比较?

    MCLK 和 BCLK 的值是多少? 它们是否具有相同的频率? 我认为、如果您可以共享原理图和完整的 I2C 寄存器转储、以便我可以看到器件是如何配置的、那将会非常有帮助。 如果可能、请在使用 MCLK 时提供一个 I2C 转储、在使用 BCLK 时提供一个 I2C 转储。  


    此致、

    Aaron Estrada

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

    你好,Aaron Estrada

    感谢您的回复。

    MCLK 为24.576MHz、而 BCLK 为1.536MHz

    我已通过以下命令附加原理图、通过 MCLK 或 BCLK 捕获的波形文件

    arecord -D HW:0、0 -f S16_LE -r 48000 -c 2 -twav /tmp/a.wav

    此外、i2c 寄存器转储值附加在 zip 文件中。

    e2e.ti.com/.../debug_5F00_using_5F00_MCLK_5F00_or_5F00_BCLK.zip

    谢谢、

    6月

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

    您好、蔡军

    我查看了两个寄存器转储、我有点困惑。 当使用 MCLK 时、我看到 PLL 被配置并被选为时钟输入。 但是、PLL 被禁用。 您知道原因吗? 为什么即使您正在配置 PLL、PLL 也会被禁用?

    BCLK I2C 寄存器转储的情况类似。 我看到 PLL 系数已配置、但 PLL 已禁用。 在 BCLK 情况下、我还看到在第0页、寄存器4中、PLL 时钟未被选为 CLK_IN 源。 此外、对于 BCLK 寄存器转储、AOSR 设置为1、可能会导致计时出现一些问题。 对寄存器转储看起来不完整的原因进行更多的澄清将会有所帮助。  

    此致、

    Aaron Estrada

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

    Aaron Estrada、您好!

    对于 MCLK 情况、寄存器4:时钟发生复用的寄存器值为0x3、这意味着 CODEC _CLKIN = PLL_CLK 且 PLL_CLKIN = MCLK、它运行良好(BCLK 为1.536MHz)。  “PLL 已配置但 PLL 已禁用”--我认为原因是我重复使用了中的源

    https://git.ti.com/cgit/ti-analogue-linux-kernel/dmurphy-analogue/tree/sound/soc/codecs/tlv320adc310x.c?h=tlv320adc310x_318&id=9ade84cc7e746abbf6bd9c12051eba3b80f056a9 、但保留了一些默认配置不变。 如果我们不使用 PLL、我认为 PLL 的设置可能不会生效、对吧?


    对于 BCLK 情况、上述寄存器的寄存器值为0x1、这意味着 CODE_CLKIN = BCLK。

    当我们使用1.536MHz 的 BCLK 时、我记得我发现一个有趣的事情是、将 CLKOUT 的源配置为 BCLK 并将 CLKOUT M_VAL 设置为1、然后在 PIN3 (DOUT)上测量的值为48kHz。 而测量的 PIN1 (BCLK)值为1.536MHz。 这意味着内部 BCLK 与外部 BCLK 不同。 一定会有问题、但我不明白原因。 但是、要使48kHz 的频率工作、需要将 NADC、mAdc、AOSR 全部设置为1。 这可能是噪声来自的原因。 请就此提出一些建议。

    谢谢。

    6月

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

    您好、Jun、

     当 NADC、mAdc 和 AOSR 不等于1时、时钟设置是什么? 如果使用48kHz FS、则应使用 PLL。 您能否使用以下 PLL 设置尝试将 BCLK 用作输入:

    P = 1

    R = 2

    J = 32

    AOSR = 128

    mAdc = NADC = 4

    此致、

    Aaron Estrada

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

    Aaron Estrada、您好!

    感谢您的回复。 我尝试使用您的设置、但录制的声音有很多噪音。

    输出不应与预期的48kHz 相同。  这是我感到困惑的地方(请参阅我在上一个答复中的最后一句)。  是否有进一步的线索?

    BTW、"如果使用48kHz FS、则应使用 PLL。" 是强制性要求吗?
    如果48kHz 不使用 PLL、结果如何?

    此致、

    6月

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

    您好、Jun、

    48kHz FS 不需要 PLL。 在本例中、这是由于 PLL_CLKIN 值为1.536Mhz。 很抱歉造成混淆。  

    我将尝试在 EVM 上使用 BCLK、以查看是否遇到任何问题。 同时、我很好奇 是否存在任何与软件相关的问题。 在您之前提供的寄存器转储中、该 寄存器转储是在运行 arecord 命令之前、之后还是在运行期间进行的?

    此致、

    Aaron Estrada

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

    Aaron Estrada、您好!

    感谢您的跟进。 寄存器转储在运行 arecord 命令期间生成。

    此致、

    6月

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

    您好、Jun、

    正如 Aaron 在当前脚本中提到的那样、PLL 未启用、这是使用所需的 BCLK 所必需的。 这是因为您使用的 PRB_R1块使用的指令计数(IADC)为188、内部主时钟需要至少为 IADC*FS、对于48kHz 采样率为9.024MHz。 MCLK 配置没有问题、因为您提供的 MCLK 足够快、只需使用分频器即可驱动您正在使用的处理块并实现所需的 BCLK 速率。 但是、要成功使用1.536MHz BCLK、您绝对需要使用 PLL。

    请尝试 Aaron 提供的设置、但确保 PLL 已打开:

    P = 1

    R = 2

    J = 32

    AOSR = 128

    mAdc = NADC = 4

    您还需要更改时钟生成复用、以便 PLL_CLKIN 为 BCLK、CODEC CLKIN 为 PLL_CLK。 这将通过将0x07写入寄存器4来完成。

    当您为 PLL 值设置寄存器5时、请确保 MSB 设置为高电平、以便为 PLL 上电。 因此寄存器5应为0x92。

    我相信这将解决您看到的噪音问题!

    最棒的

    Zak