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.

[参考译文] TAD5112:使 TAD5112 进入耳机模式的示例编程步骤

Guru**** 2633105 points

Other Parts Discussed in Thread: TAD5112

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1583304/tad5112-example-programming-steps-to-get-tad5112-going-in-headphone-mode

器件型号: TAD5112

您好、

我们使用 TAD5112 作为立体声 DAC 驱动耳机。 音频作为 I2S 通过串行接口传入。

您是否有示例编程“代码“或使器件启动并运行的步骤?。

谢谢

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

    您好、

    建议您使用 PPC3 工具 (https://www.ti.com/tool/PUREPATHCONSOLE) 来启动并运行器件、GUI 右上角有一个“Load Preset“按钮。 它使用的默认 HP DAC 回放 I2C 脚本如下:

    w a0 01 01 
    w a0 02 09 
    w a0 11 80 
    w a0 19 00 
    w a0 1a 30 
    w a0 26 01 
    w a0 28 20 
    w a0 29 21 
    w a0 2a 22 
    w a0 2b 23 
    w a0 64 24 
    w a0 65 60 
    w a0 66 60 
    w a0 6b 24 
    w a0 6c 60 
    w a0 6d 60 
    w a0 76 0f 
    w a0 78 40 
    r a0 7c 04

    您还可以在数据表中找到示例行输出脚本:  

    要将其转换到 HP 驱动程序脚本中、您可以将寄存器 0x65 和 0x66、然后将 0x6c 和 0x6d 位 6-7 更改为耳机驱动程序模式。 要更改为 I2S 模式而不是 TDM、您可以更改寄存器 0x1a。

    如果您需要更多帮助、请告诉我。

    此致、
    Mir

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

    谢谢 Mir、

    >>您还可以在数据表中找到一个示例行输出脚本:  

    是否有网站上未提供的新版本数据表、或者您所指的是 TAD5112 以外的其他器件数据表?  2025 年 3 月 TAD5112 数据表没有第 8.2.5 节?

    谢谢

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

    您好、  

    您可以在此处找到该部分、第 214 页:

    https://www.ti.com/lit/ds/symlink/tad5112.pdf

    -米尔

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

    我的坏!  谢谢

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

    为一对工作室级耳机供电的最佳/推荐方式是什么?   

    • 每个通道上都有单端单声道(耳机模式下的输出)?
    • 每个通道上的伪差分输出(耳机模式下的输出)?

    谢谢

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

    尊敬的 Stephen:

    两者都可能起作用。 伪差分通常用于避免输出端出现交流耦合电容器、或者以接地基准的噪声大于 VREF 内部生成的基准电压。 您可以在此处阅读有关此器件输出模式的更多信息: https://www.ti.com/lit/an/slaaee0a/slaaee0a.pdf 

    单端与伪差分模式相比的一个优势是、该器件可以具有 4 个单端输出、而伪差分只能具有 2 个(立体声)。 您可以一次驱动两组单端耳机、或者在一对立体声耳机上安装耳机、并在另一对立体声耳机上线路输出。  

    请告诉我您还需要什么帮助!

    此致、
    Mir

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

    尊敬的 Mir:

    如果使用 Psuedo-diff、数据表显示:

    带外部共模检测的伪差分输出连接 (OUT1x_CFG[2:0]= 3'b101)

    OUT2x_CFG0 呢?  0b101 (5d) 标记为“不使用“。  因此使用 0b100 (4D)?



            # OUT1 - DAC is source, Pseudo differential with OUT1M as VCOM and OUT2M for external sensing
            self.tad5112_write(TAD5112_REG.OUT1X_CFG0, 0b001_101_00)  
            self.tad5112_write(TAD5112_REG.OUT1X_CFG1, 0b01_100_000) # OUT1P Headphone drive, 0dB gain.
            self.tad5112_write(TAD5112_REG.OUT1X_CFG2, 0b01_100_000) # OUT1M Headphone drive.
            # OUT2 - DAC is source, Pseudo differential with OUT2M as VCOM
            self.tad5112_write(TAD5112_REG.OUT2X_CFG0, 0b001_100_00) 
            self.tad5112_write(TAD5112_REG.OUT2X_CFG1, 0b01_100_000) # OUT2P Headphone drive, 0dB gain.
            self.tad5112_write(TAD5112_REG.OUT2X_CFG2, 0b01_100_000) # OUT2M Headphone drive.

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

    尊敬的 Stephen:

    我认为最好的选择是将 OUT2x_CFG 设置为 4D、因为需要将 OUT2P 设置为输出。 我不确定器件内部使用共模检测的位置、无法找到更多参考资料。 我将要求系统团队验证 使用共模检测的位置。 但是、我建议的设置仍适用于伪差分情况、如果 OUT1M 和 OUT2M 都作为 VCOM 连接、则仍然只有 1 个参考、因此耳机应按预期工作。

    此致、
    Mir

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

    好的、谢谢 Will(将 OUT2x_CFG 设置为 4D)  

    最后一个问题。  如何将 DAC 向左/向右编程以使用我的 8 时隙/通道 TDM (I8S) 流的前两个时隙?  第二个插槽?

    谢谢

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

    您好、

    我认为、默认情况下应使用前 2 个时隙。 时隙由寄存器 PASI_TX_CHx_CFG 指定、其中 CHx 为 CH1、CH2 等 这从第 0 页的寄存器 0x1E 开始。

    此致、
    Mir

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

    我使用 TAD5112。  这是我当前使用 python 的代码对于任何可能会发现它有用的人。

    TAD5112_REG 类:
      PAGE_CFG   = 0x00
      SW_RESET    = 0x01
      DEV_MISC_CFG  = 0x02
      PASI_CFG0   = 0x1A
      PASI_RX_CH1_CFG = 0x28
      PASI_RX_CH2_CFG = 0x29
      OUT1X_CFG0  = 0x64
      OUT1X_CFG1  = 0x65
      OUT1X_CFG2  = 0x66
      DAC_CH1A_CFG0 = 0x67
      DAC_CH2A_CFG0 = 0x6E
      OUT2X_CFG0  = 0x6B
      OUT2X_CFG1  = 0x6C
      OUT2X_CFG2  = 0x6D
      CH_EN      = 0x76
      PWR_CFG    = 0x78



    TAD5112_DAC 类(对象):

      def __init__(self、i2c_bus、i2c_addr):
        self.bus = i2c_bus
        self.addr = i2c_addr
        self.get_reg_msgs = i2c_bus.alloc_msg (b'\x00'、is_read=False、i2c_addr=i2c_addr)、i2c_bus.alloc_msg (1、i2c_addr=i2c_addr)
        self.set_reg_msg = i2c_bus.alloc_msg (b'\x00\x00'、is_read=False、i2c_addr=i2c_addr)

      DEF 配置 (self):
        Self.tad5112_write (TAD5112_REG.PAGE_CFG、0x00) #选择页 0
        Self.tad5112_write (TAD5112_REG.SW_RESET、0x01) s/w 复位
        time.sleep (0.01)#10ms
        Self.tad5112_write (TAD5112_REG.DEV_MISC_CFG、0x09) #退出睡眠模式
        time.sleep (0.01)#10ms — 允许器件唤醒
        Self.tad5112_write (TAD5112_REG.PASI_CFG0、0b00110100) # TDM、32 位、BCLK 反转=AKM、卷云

        # OUT1 - DAC 是源端、伪差分端、OUT1M 用作 VCOM、OUT2M 用于外部检测
        Self.tad5112_write (TAD5112_REG.OUT1X_CFG0、0b001_101_00)  
        Self.tad5112_write (TAD5112_REG.OUT1X_CFG1、0b01_100_000)# OUT1P 耳机驱动、0dB 增益。
        Self.tad5112_write (TAD5112_REG.OUT1X_CFG2、0b01_100_000)# OUT1M 耳机驱动器。
        # OUT2 - DAC 是源端、伪差分信号、OUT2M 作为 VCOM
        Self.tad5112_write (TAD5112_REG.OUT2X_CFG0、0b001_100_00)
        Self.tad5112_write (TAD5112_REG.OUT2X_CFG1、0b01_100_000)# OUT2P 耳机驱动、0dB 增益。
        Self.tad5112_write (TAD5112_REG.OUT2X_CFG2、0b01_100_000)# OUT2M 耳机驱动。

        self.output_gain_db =–20 #默认输出增益(以 dB 为单位)
        self.tad5112_write (TAD5112_REG.DAC_CH1A_CFG0201+self.output_gain_db*2) # Out1 增益(以 0.5dB 为增量)
        self.tad5112_write (TAD5112_REG.DAC_CH2A_CFG0201+self.output_gain_db*2) # Out2 增益(以 0.5dB 为增量)

        #默认为左和右 TDM 时隙 0 和 1
        Self.tad5112_write (TAD5112_REG.PASI_RX_CH1_CFG、0x20)# TDM 时隙 0 ->左
        Self.tad5112_write (TAD5112_REG.PASI_RX_CH2_CFG、0x21)# TDM 时隙 1 ->右

        Self.tad5112_write (TAD5112_REG.CH_EN、0b00001100) #启用通道 1、2.
        Self.tad5112_write (TAD5112_REG.PWR_CFG、0b0100000) #为 DAC 上电
        返回 0#无错误