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.

[参考译文] TLV320AIC3109-Q1:音频串行接口配置

Guru**** 2470720 points
Other Parts Discussed in Thread: TLV320AIC3109-Q1

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/795320/tlv320aic3109-q1-audio-serial-interface-configuration

器件型号:TLV320AIC3109-Q1

你好

我已经配置 了 TLV320AIC3109-Q1编解码器、以便将 LINE1P 作为单端输入连接到 ADC PGA、并且 ADC 路径上电。 采样频率设置为48kHz、源自 MCLK 输入(256 x 48kHz)和编解码器的 PLL。 编解码器的 ASI 配置为从器件、所有必要的时钟(WCK、BCK、MCK)都由主机处理器提供。 ASI 还设置了所有其他配置:协议、字长等  

我的问题是:编解码器的 ASI 是否需要任何特殊的上电或类似的东西来输出 ADC 数据? 当我的 ADC 路径被设置和加电并且为编解码器提供了时钟时、我应该开始在 DOUT 线路上看到输出数据吗?  

谢谢

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

    是的。 如果您的 ADC 已通电、AGC 未静音、您的时钟已配置且您正在提供适当的时钟、则您应该在 DOUT 上具有数据。

    如果您遇到问题、请提供您的器件配置、我将尽力提供帮助。

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

    感谢你的答复



    我尝试使用48kHz 的采样率。 我的 MCU 提供给编解码器的时钟如下:

    BCK = 2 * 16 * 48kHz = 1.536MHz;
    WCK = 48kHz;
    MCK = 256 * 48kHz = 12.288MHz;

    编解码器将使用 MCK 作为 PLL 的时钟基准。

    按照 FS (ref)=(PLLCLK_IN×K×R)/(2048×P)的公式、我尝试设置 K = 4 (J.D = 4.0000)、R = 2、P = 1。  

    我按以下顺序执行以下寄存器写入:

    0x80到寄存器0x01 -用于软件复位

    0x40至寄存器0x19 -将麦克风偏置电压设置为2V。 我有一个分压器、用于设置 输入信号的~1.65V 直流失调电压

    0x81到寄存器0x03 -启用 PLL 并将 PLL P 设置为1。

    0x10到寄存器0x04 -将 PLL J 设置为4。

    0x02到寄存器0x0B -将 PLL R 设置为2。

    0xC0到寄存器0x09 -设置数据传输的左对齐模式。 它将字长保留为16位

    0x04至寄存器0x13 -将 LINE1P (我的输入信号)连接到 ADC PGA、输入电平控制增益= 0dB、为 ADC 加电

    0x0C 至寄存器0x0F -撤消 ADC PGA 的设置、将增益设置为6dB。

    其余寄存器为默认值。 我已通过读回验证寄存器是否包含写入的值。 此外、我读取 ADC 状态寄存器0x24、该值为0x40。 这意味着 ADC 电源状态正常、但 ADC PGA 施加的增益和编程的增益不同。 问题可能出在哪里? 我测试的另一件事是将 ADC PGA 路由到 LEFT_LOP。 使用默认增益设置和取消静音、我可以在通过编解码器播放时听到来自输出的声音。 但当我读取 ADC 状态寄存器时、值为0x62、这意味着位0已置位。 根据数据表、它是一个值为0的只读 reserverd 位。

    如果您需要任何其他信息、请咨询。

    感谢你的帮助

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Karl、
    您的配置对我来说似乎很好。 通常、您应该在启用 PLL 之前设置 PLL 系数、但我不会导致您的问题。
    您是否使用示波器监视 DOUT 并将示波器设置为单次触发器、以便确保从未启用 DOUT?

    您是否有可以分享的原理图?

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

    您好!

    我在这里插入了 CircuitMaker 原理图的图像。 第一个是 MCU 工作表、第二个是电源、第三个是编解码器。 您可能会注意到、原理图中缺少了 I2C 线路的上拉电阻器。 他们最初被遗忘、但后来被黑客入侵电路板。

    是的、我在单个触发器设置中使用示波器监控了 DOUT 线路。 没有结果。  

    另一个问题:线路输入是否默认连接到 PGA AUX? PGA AUX 是否需要任何特殊上电? 我在寄存器中没有看到任何这样的选项。 我想尝试通过 PGA AUX 将 LINE1P 连接到 LEFT_LOP。

    感谢你的帮助

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

    PGA_AUX 增益由寄存器16控制。 然后、到 LEFT_LOP/M 输出的 PGA_AUX 路由是寄存器84。 在寄存器86中启用 LEFT_LOP/M 输出。

    我应该提到的一点是、LEFT_LOP/M 输出实际上并不是用作 SE 输出。 我建议使用 HPOUT。
    使用 HPOUT 的好处有两个方面、因为它旨在用作单端输出、因此性能不会降低。 第二个优势是 HPOUT 具有杂音抑制功能、而 LOP/M 输出则没有这种功能。

    -Steve Wilson