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:将输入I2S数据获取到D类放大器输出的最小设置

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/637197/tlv320dac3120-minimum-settings-to-get-input-i2s-data-to-class-d-amp-out

部件号:TLV320DAC3120

您好,

我们正在尝试正确设置此芯片,以便与我们的FPGA进行通信。 我们在FPGA和TLV320DAC3120之间实现了I2C通信。 我们还可以在示波器上看到我们的I2S输出信号是正确的。 我们希望 将TLV320DAC3120配置为从属设备,以便BCLK和WCLK成为输入。 MCLK未连接到任何设备。  

I2S BCLK - 1.4112 MHz

 WCLK - 44.1 kHz

下面列出了我们写入的寄存器及其值。

PX_RX =页码X,后跟注册号X

P0_R0 =0 (默认为第0页,但如果 TLV320DAC3120未关机,请转至第0页)

P0_R1 =1 (软件重置)

延迟至少1毫秒  

P0_R4 = 0x07 (PLL_CLKIN为BCLK,CODEC为PLL_CLKIN为PLL_CLK

P0_R5 = 0x96 (PLL已通电,P = 1,R-VAL = 6)

延迟至少10毫秒

P0_R6 = 0x0A (J-VAL = 10)

P0_R7 = 0x00 (D-VAL MSB =0)

P0_R8 = 0x00 (D-VAL LSB =0)

P0_R11 = 0x85 (NDAC_VAL = 5且NDAC分压器通电)

P0_R12 = 0x83 (MDAC_VAL =3且MDAC分配器已通电)

P0_R13 = 0x00 (DOSR MSB =0)

P0_R14 = 0x80 (DOSR LSB = 128)

P0_R25 = 0x03 (CDIV_CLKIN = PLL_CLK)  

P0_R26 = 0x81 (CLKOUT除法器M =1)

P0_R27 = 0x00 (I2S,16位字长,BCLK为输入,WCLK为输入)

P0_R51 = 0x10 (GPIO1输出= CLKOUT输出)

P0_R63 = 0x94 (DAC通电,DAC数据路径=左数据,保留位,DAC通道音量控制软步进在每个采样周期中启用一步)

P0_R64 = 0x04 (DAC未静音)

P0_R65 = 0x00 (DAC数字增益= 0 dB)

P0_R0 = 0x01 (切换到第1页)

P1_R32 = 0x86 (D类输出驱动程序已通电,保留位)

P1_R35 = 0x40 (DAC被路由至混合放大器)

P1_R38 = 0x80 (模拟音量控制输出路由到D类输出驱动器,音量= 0 dB)

P1_R42 = 0x04 (增益=6 dB,D类驱动器未静音)

P3_R16 = 0x08 (使用内部示波器,除以8表示~1 MHz延迟计时器)

通过这些设置,我们应该可以看到GPIO1上的PLL_CLK,我只能看到输出保持高电压。 如果我将BCLK路由到GPIO1且M = 1,则我会看到时钟输出与BCLK输入时钟完全相同,这很好。 但由于某种原因,PLL块似乎未通电。 即使在P0_R5位D7 =1中也是如此。

为了进一步测试这一理论,我们将BCLK连接到CODEC_CLKIN,而不是PLL_CLK,以查看我们是否可以使用NDAC生成DAC_CLK,并使用MDAC生成DAC_MOD_CLK。 因此,将DAC_CLK连接到GPIO1时,我们确实看到BCLK / NDAC作为输出,因此我们知道NDAC已通电。 然后,我们将DAC_MOD_CLK连接到GPIO1以测试MDAC是否通电,我们发现输出时钟等于BCLK/( NDAC * MDAC ),这是正确的。

使用BCLK仍然是codec_CLK的来源,我们尝试发送一些数据,只是为了看看我们是否可以在输出上产生垃圾,但我们没有。  

我可能只是缺少了一些设置或某些内容。 有人知道缺件是什么吗?

编辑:对于有类似问题的任何人,请确保您有HPVDD和HPVSS,即使您没有使用耳机输出。 这就是我们无法让PLL正常工作的原因。  

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

    转到第1页时,您是否将0x01写入寄存器0x00? 我看不到此命令行,但这可能是隐含的,只需问...
    您是否在D类输出中获得音频? 音频是否正常?

    此致,
    Ivan Salazar
    应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,我在写原始帖子时错过了这条线。 我看不到D类的输出 我还在第0页寄存器60添加了写入0x04的值,以使用块PRB_P4。 但这仍然不允许我看到任何输出。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这很奇怪,您设置的寄存器值应该工作正常。
    您是否有办法读回寄存器? 只是为了验证设备中的值是否正确。

    此致,
    Ivan Salazar
    应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的,为了确保每个寄存器都有正确的值,我将读取该值以查看它是什么。 然后写回寄存器并读回以确保其保持不动。 最令人困惑的是PLL块似乎未正确通电。 当我更改值,以便在示波器上的GPIO1上输出PLL时,我只能看到保持高电位的线。 有人在这里发布了一篇文章,他也遇到了一个非常相似的情况。
    e2e.ti.com/.../54.0452万

    从主通道,我通过I2S将其值从0发送到0xFFFF,以便左右通道尝试产生锯齿波。 我在输出中看到的只是一条0伏的扁平线。

    我可以向您发送我们的示意图吗? 也许您会发现我们的连接方式有问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    亚当

    您可以通过一封邮件给我发送示意图,也可以发送电子邮件给我:ivan.salazar@ti.com

    此致,
    Ivan Salazar
    应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    只是想添加一条评论。 是否可以在写入所有PLL值后尝试移动以下命令?:
    P0_R5 = 0x96 (PLL已通电,P = 1,R-VAL = 6)
    延迟至少10毫秒

    这不应影响PLL初始化,而只是想看看这是否可以解决问题。

    此致,
    Ivan Salazar
    应用工程师-低功率音频和执行器