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.

[参考译文] PCM5122:在受控模式下获得标准 I2S 输出的最小 I2C 序列

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1181984/pcm5122-minimum-i2c-sequence-to-get-standard-i2s-output-in-slave-mode

器件型号:PCM5122
主题中讨论的其他器件: TLV320ADC5140PCM5102PCM5102A

我们的 I2S 主器件是 TLV320ADC5140。  以下是该示例的 TLV 启动序列、96kHz。  我们可以成功采集音频、但是当尝试通过同一 PCB 上的 PCM5122进行回放时、OUTL 或 OUTR 上没有音频输出。  

我们的 I2S 线路如下所示:BCK 24.576mhz、SCK (来自 XO):24.576mhz、LRCK/FSYNC:96kHz。  PCM5122上的 DIN 显示回放信号。 同样、在下面的 i2c 序列中没有模拟音频输出。

ADR1为 HI、ADR2为 LO、为我们提供0x4D 的 i2c 基址。  我们似乎可以在同一 I2C 总线上成功地与 TLV320ADC5xxx (I2C 0x4C)和 PCM5122 (0x4D)进行通信。

这是我们尝试的最后一个 I2C 序列(正在*在*之后*启动 TLV ADC I2S 主器件)。  我们正在尝试最简单的方法;只是使 DAC 正常工作的最低要求。

w 77 reg 0x2 val 0x10 b10000
w 77 reg 0x1 val 0x11 b10001
w 77 reg 0x2 val 0x0 b0
w 77 reg 0xd val 0x0 b0
w 77 reg 0xe val 0x0 b0
w 77 reg 0xe val 0x2 b10
w 77 reg 0x25 val 0x7d b1111101
w 77 reg 0x28 val 0x3 b11
w 77 reg 0x3d val 0x30 b110000
w 77 reg 0x3e val 0x30 b110000
w 77 reg 0x41 val 0x0 b0
w 77 reg 0x2 val 0x0 b0

我们缺少什么吗?  作为参考、下面是 ADC 的 I2C 启动序列:

w 76 reg 0x2 val 0x91 b10010001
w 76 reg 0x13 val 0x87 b10000111
w 76 reg 0x14 val 0x58 b1011000
w 76 reg 0x21 val 0xa0 b10100000
w 76 reg 0x7 val 0x87 b10000111
w 76 reg 0xb val 0x20 b100000
w 76 reg 0xc val 0x20 b100000
w 76 reg 0xd val 0x0 b0
w 76 reg 0xe val 0x0 b0
w 76 reg 0x3d val 0x0 b0
w 76 reg 0x42 val 0x0 b0
w 76 reg 0x47 val 0x0 b0
w 76 reg 0x4c val 0x0 b0
w 76 reg 0x6b val 0x4 b100
w 76 reg 0x3c val 0xb8 b10111000
w 76 reg 0x41 val 0xb8 b10111000
w 76 reg 0x46 val 0xb8 b10111000
w 76 reg 0x4b val 0xb8 b10111000
w 76 reg 0x76 val 0xf0 b11110000
w 76 reg 0x73 val 0xf0 b11110000
w 76 reg 0x74 val 0xf0 b11110000
w 76 reg 0x75 val 0x60 b1100000

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

    DAC 似乎需要在 I2S 线路上看到标准比率、但我们仍然有一个主要问题、即我们无法捕捉 DAC 何时具有可接受的比率。  作为 I2S 主器件的 ADC 创建的 bck 为24.576、而不是我们预期的96k * 32 * 2 (6.144mhz)、这似乎很奇怪。  当我们将 TLV320的寄存器0x14 FS_BCLK_Ratio 设置为64时、它会生成适当的(正常?) PCM5122理解的 I2S BCK;可完美播放录制的96k PCM 文件。  但是、我们无法从 ADC 进行捕获。  I2S 线路上的插槽数量似乎比2 (左右)多、这几乎是个问题?  当我们在 ADC 上记录寄存器0x14的 FS_BCLK_Ratio 为4D (64)时、我们得到的所有结果在左通道上都是静态的。  我们需要将 FS_BCLK_Ratio 切换为256 (96k 时)、以便在立体声模式下进行录制。

    这是使用4:2模式的结果吗? 我不记得这是 AKM ADC 芯片4:2模式的问题。  是否需要 TLV320ADC 的 CLK_SRC 寄存器?

    TI 团队的任何帮助都将不胜感激。

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

    您好、Aaron、

    因此、如果我理解正确、您有两种情况:

    1. 使用某些 ADC5140配置、您可以录制音频(在某些主机控制器中)、但无法通过 PCM5122播放相同的数据
    2. 使用其他 ADC5140配置、您可以通过 PCM5122回放、但无法录制音频(在某些主机控制器中)

    是这样吗?

    您能否确认如何为每种情况配置 ADC5140的 Tx 数据?
    请注意、至少在 PCM5122的附加配置上是如此。 格式设置为 I2S、因此 DAC 期望 L 数据位于帧的开头、然后 R 数据位于整个字的一半之后、即32位(64位)和128位(256位)。 而 TDM/DSP 格式预计 L 和 R 数据是连续的、忽略64位集前后的其余位、具体取决于偏移位配置。

    从系统角度来看、您是否只需要两个通道? 还是需要8个通道才能实现256的位比?
    如果只需要立体声、我认为只需确保 ADC5140和正在记录数据的主机控制器具有相同的配置即可。 在这种情况下、PCM5122似乎已经正常工作。

    此致、
    -Ivan Salazar
    应用工程师

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

    您好、Ivan、

    谢谢你。  目标只是立体声 I2S。  唯一的独特之处在于、我们不确定如何处理 ADC 输入上的4:2。

    目前、在 ASI_OUT_CH_EN 上、我们使用的是11110000。  然后、使用我们的24.576mhz 时钟时、寄存器0x14上的比率为64、这有点令人困惑:

    (至 ADC5140):

    W 76 reg 0x13 val 0x87 b10000111
    w 76 reg 0x14 val 0x54 b1010100
    w 76 reg 0x21 val 0xa0 b10100000

    这样、I2S bck 的预期值为6.144mhz (96000 * 32 * 2)。  现在、录制的工作频率为96k、并且该同一个文件可以在 PCM5122上回放、而不会出现任何问题。  我认为我们的4:2实施在 ADC5140上是否正确仍然不确定。

    以下是 ADC 原理图供参考:

    最后、即使没有接收到数据、PCM5122模拟输出上似乎也存在一些微弱的问题。  我们不记得在 PCM5102中听到过这种情况、并想知道我们是否需要在 DAC 的寄存器中解决一些模拟增益问题。  它非常微弱;但即使没有 XSMT、PCM5102A 也无提示死区。

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

    您好、Aaron、

    我不太清楚 ADC 的4:2输入。 您是否具有从同一源到 IN1和 IN2的连接、以及与 IN3和 IN4的连接类似?
    然后您确认立体声 I2S 是目标、那么为什么所有4个通道都具有模拟输入、并且还在寄存器0x74上启用4个 ASI 通道? 对于立体声、您只需要2。
    此外、通道输出配置似乎不正确:

    • 寄存器0x0B 和0x0c 设置为0x20意味着输出数据将使用相同的时隙
    • 寄存器0x0d 和0x0E 设置为0x00也意味着输出数据将使用相同的时隙
    • 寄存器0x07设置为0x87
      • 位7-6设置的"10"均值格式为 LJF、请确认这是正确的
      • 位5-4将"00"设置为16位的平均插槽长度、根据比率= 64 = 4 * 16、这是合理的、立体声可能需要32位、而不是保持相同的比率

    因此、基于所有这些、我建议仅为寄存器0x74和0x73中的两个通道配置器件、然后为每个寄存器0x0B 和0x0c 选择不同的时隙、并在寄存器0x07中选择适当的时隙长度和格式。

    此致、
    -Ivan Salazar
    应用工程师

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

    您好、Ivan、

    回复:I2S vs LJ 请参阅此处的3.2: https://www.ti.com/lit/an/sbaa382/sbaa382.pdf

    您是否知道 TI 的任何人可能知道四核2技术在 I2C/CONFIG 方面应该如何工作? 数据表指出:

    "111dB、DRE 禁用、2通道相加"

    我只是不知道除了模拟方面、应该如何准确地配置它。

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

    您好!

    我们的 TI 专家今天在美国休假、因此请耐心等待、因为可能会延迟回复。

    感谢您的耐心等待。

    此致、

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

    您好、Aaron、

    D/S 第8.3.6.6节 :https://www.ti.com/lit/ds/symlink/tlv320adc5140.pdf#page=35中详细介绍了求和配置
    您可能 正在特别查找模式"01":

    但是、您的原理图显示 IN1和 IN2具有相同的输入信号、IN3和 IN4也是如此。 那么、我的问题是、您是否会对两个实际上是相同的信号求和?

    此致、
    -Ivan Salazar
    应用工程师

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

    我们仅在 https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1161079/tlv320adc5140-line-level-input-buffer-to-maximize-performance-summing-and-channel-separation/4369525#4369525上遵循 TI 工程师明确(并确认)的建议

    请提供建议。

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

    您好、Aaron、  

    感谢您提供更多信息。 因此、原因是在求和功能中使用3dB SNR 升压、现在已经很清楚了。

    如有任何疑问、请告知我们。

    此致、
    -Ivan Salazar
    应用工程师