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.

[参考译文] TLV320DAC3120:如何使用给定的设置/时钟对 TI 进行编程、以输出到扬声器

Guru**** 2482225 points
Other Parts Discussed in Thread: TLV320DAC3120

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/865497/tlv320dac3120-how-to-program-the-ti-with-given-settings-clocks-to-output-to-speaker

器件型号:TLV320DAC3120

你好

我使用的是 TI TLV320DAC3120和 XMOS XVF3100。 i2c 通信可以正常工作、但我不会从 ti 中获取任何东西到扬声器、例如开发板 TI ACEV-1B。 我想我必须设置时钟... WCLK 为15.6kHz、BCLK 为1MHz、MCLK 为24MHz。 我必须设置什么以及如何计算正确的值?

Xmos 的输出通过 I2S,我是否必须在 ti 中设置任何内容?

提前感谢

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

    您好、Thorben、

    这应该与寄存器配置相关、并且还可能涉及器件电路。 您能否共享寄存器设置和 TLV320DAC3120原理图部分? 这将使我们能够更好地处理这个问题。

    谢谢你。

    此致、
    Luis Fernando Rodríguez S.

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

    也感谢您的回答:)。

    到目前为止、我没有特定的设置。 只需在扬声器上使用 I2S 输入和输出即可。 蜂鸣声正常工作。 原理图随附。 为了获得输出、我必须设置哪些寄存器?

    此致 twittickh

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

    嗨、Twittech、

    只需确认一下、MCLK 是否已连接到电路? 如果是、您可以使用下面的寄存器脚本:

    e2e.ti.com/.../DAC3120_5F00_Init_5F00_File_5F00_II.txt

    这是一个将 I2S 配置为扬声器的示例。 我根据您提供的时钟值修改了时钟值。

    希望这对您有所帮助。 如果您对此有其他问题或意见、请告诉我。

    此致、
    Luis Fernando Rodríguez S.

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

    嗨、Twittech、

    另一个注释是、寄存器设置的格式为 w 30 xx yy。

    W (I2C 写入命令) 30 (十六进制格式的 I2C 地址) xx (十六进制格式的寄存器地址) yy (十六进制格式的寄存器数据)。

    此致、
    Luis Fernando Rodríguez S.

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

    早上好、

    非常感谢。 我将对其进行测试、并告诉您它是否起作用。 是的、MCLK 已连接、i2c 通信(写入和回读)已在工作。

    此致 twittickh

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

    我已使用这些设置对其进行了配置、但扬声器没有输出、甚至没有发出声响/嗡嗡声。 使用蜂鸣音脚本(蜂鸣音工作正常)时、当我在窗口中更改音量时、蜂鸣音量发生变化。

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/6/DAC3120_5F00_Master_5F00_Mode_5F00_Beep_5F00_Generator.txt

    现在没有信号、也可以使用振荡器进行检查。

    只是确认一下,如果命令中有更多数据,那么寄存器会照常递增计数,对吧?

    W 30 04 03 91 06 26 A0

    等于

    REGWRITE (0x04、0x03);
    REGWRITE (0x05、0x91);
    REGWRITE (0x06、0x06);
    REGWRITE (0x07、0x26);
    REGWRITE (0x08,0xa0);

    MCLK 为24MHz、但在注释中为12MHz、注释是否不正确或只是不变?  在复位后以及 PLL 配置之后、我必须在哪里插入延迟?

    感谢你的帮助。

    此致

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

    嗨、Twittech、

    关于您对 I2C 命令的评论、您是对的。 当写入多个数据时、寄存器地址会按照您正确提到的那样递增计数。

    我在 PLL 配置上犯了一个错误、我不知道为什么我将 MCLK 设置为12MHz。 请找到所附的针对24MHz 的正确寄存器配置。 (BCLK 和 WCLK 值是否正确?)。 我还在代码的正确位置包含了延迟值。

    e2e.ti.com/.../DAC3120_5F00_Init_5F00_File_5F00_III.txt

    请告诉我您是否有任何观察结果(如果您可以获得任何输出、如果有 D 类活动等)。

    谢谢你。

    此致、
    Luis Fernando Rodríguez S.

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

    大家好、非常感谢。 只需更改 p 值;-)。

    但仍然保持沉默。 我必须再次查看蜂鸣音示例、必须有部分正确的设置、以便蜂鸣音响起。

    -->我是否需要注意 I2S 源的任何内容?

    如何计算、如果我仔细查看时钟分配树、我会得到这些值的奇怪值。

    MCLK 被定义为 PLL_CLKIN,这意味着 PLL_CLK 是(MCLK *(R * J.D)/P)

    24000000 *(1 * 6.9888)/ 2.

    = CODE_CLKIN = PLL_CLK

    (24000000 *(1 * 6.9888)/ 2)/ 3

    = DAC_CLK

    ((24000000 *(1 * 6.9888)/ 2)/3)/14

    = DAC_MOD_CLK

    (((24000000 *(1 * 6.9888)/ 2)/3)/14)/128

    = DAC_FS 这是时钟字、对吧?   我发现了一个计算错误、因此我编辑了这个...

    -->是否必须设置位时钟?

    bdiv_CLKIN = DAC_clk、这是通过27955200以上的计算得出的

    并将 n val 设置为27以获得接近1MHz ....

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

    嗨、Twittech、

    您的计算正确、采样率由 WCLK 定义、这就是我将 PLL 值调整为达到15.6KHz 的原因。

    无需在寄存器中配置有关 BLCK 的任何内容、除非您想从 TLV320DAC3120生成 BLCK。 您只需要确保 BCLK =(数据长度) x (通道数) x WCLK。 至少、BCLK 应该为 BCLK =(16) x (2) x (15.6KHz)≈0.5MHz。 因此、1MHz 也能正常工作。

    关于输出、D 类放大器是否有任何活动? D 类输出是否同相? 如果是、我认为 I2S 数据应该有问题。 您能否验证数据是否正确发送?

    谢谢你。

    此致、

    Luis Fernando Rodríguez S.

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

    你好

    我再次进行了所有测量、并且值不正确。

    如果我检查每个单独的、则 LRCLK = 48kHz、BCLK = 3MHz、MCLK = 24MHz

    因此、我将以下寄存器值更改为:

    P=2、R=1、J=7、D=6800、NDAC=3、 MDAC=5

    我是否必须更改其他任何内容?

    写入这些寄存器(PAGE 0 reg 18和19)是否正确,因为在数据表中写入它们是保留的,不是写入?

    黄色:DIN、粉色:MCLK、深蓝色:WCLK、浅蓝色:BCLK

    如果确保 SPK+上的音量始终相同、或者音乐正在播放或未播放:

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

    嗨、Twittech、

    感谢您在图片中提供详细信息。

    PLL 配置适用于您所使用的时钟。 关于 DIN 中的数据,您似乎是通过正确的通道发送数据(有关详细信息,请参阅 I2C 配置 :http://www.ti.com/lit/ds/symlink/tlv320dac3120.pdf#page=51 )。

    我建议将数据更改为左通道、或修改页0 /寄存器63 (0x3F)以从右通道接收数据:

    http://www.ti.com/lit/ds/symlink/tlv320dac3120.pdf#page=67

    请告诉我这是否可行、如果您有其他观察结果。

    此致、
    Luis Fernando Rodríguez S.

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

    非常感谢。 我不得不更换漏斗。 :-)