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.

[参考译文] TLV320DAC3100:如何配置为在不使用 MCLK 的情况下使用并将输出到扬声器?

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1198671/tlv320dac3100-how-to-configure-for-use-without-mclk-and-output-to-speaker

器件型号:TLV320DAC3100

你(们)好。

我们已选择 TLV320DAC3100作为我们之前选择的 I2S 放大器之一的成功之选、因为其功能非常广泛。 一些背景信息;我们使用 nRF52840作为 I2S 主器件、它只能提供 BCLK、WCLK 和 DIN 信号。 这是通过 此处列出的 Zephyr 驱动程序进行配置的。 我不需要有关如何使用 API 的帮助、因为这不在您的范围之内、但我希望在配置用于以下情形的芯片时提供帮助。

  1. 我想在不使用 MCLK 的情况下播放32kHz 单声道16位音频源。 我需要如何配置 PLL_CLK、CODEC _CLK、MDAC、NDAC、OSR 和 MOD_CLK? 我花了几到几个小时的时间去看它,我不能不想到,但感到沮丧,因为我没有想到这一点。
  2. 我也不知道如何将音频路由到耳机和扬声器。 这需要通过混合放大器吗?

我只能通过耳机而不是扬声器(结果是问题1)获得失真的音频(结果是问题2)。

我们非常感谢您的任何帮助。

此致、

约赫姆

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

    您好、Jochem、

    根据您的描述、我假设以下几点、您能否确认正确?:

    • WCLK = 32kHz
    • BCLK = 32k * 16位* 2通道= 1.024MHz

    尽管您提到了单声道、但由于这是 I2S 数据、我仍然希望通过音频串行接口发送2个通道、因此您只能使用左声道数据作为 DAC 的输入。
    如果上述内容正确、您可以使用以下时钟设置:

    • PLL_P = 1
    • PLL_R = 2
    • PLL_J = 40
    • PLL_D = 0
    • NDAC = 4
    • MDAC = 5
    • DOSR = 128
    • 确保寄存器0x04 = 0x07以选择 BCLK 作为 PLL 的输入、而 PLL 输出作为 CODE_CLKIN 的输入
    • 请注意、如果您在时钟初始化后的任何时刻暂停时钟、则可能需要重新初始化、因为器件可能会检测到缺少的时钟为错误。

    关于 DAC 信号路由、您应该执行以下操作:

    • 第1页寄存器0x23 = 0x40、这样 DAC_L 被路由至左通道混频器放大器。
    • 第1页寄存器0x24、0x25和0x26 = 0x80、以便启用 MSB、将模拟 PGA 路由到每个输出驱动器。 请注意、右侧 DAC 通道仅提供右 HP、而左侧 DAC 通道同时提供左侧 HP 和 D 类驱动器。

    希望这有助于您的项目持续发展、如果有任何疑问、请告知我们。

    此致、
    -Ivan Salazar
    应用工程师