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:将耳机插头插入插孔会使输出静音

Guru**** 2633105 points

Other Parts Discussed in Thread: TAD5112

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1588000/tad5112-inserting-headphone-plug-into-jack-causes-outputs-to-be-muted

器件型号: TAD5112

您好、

使用 TAD5112 开发硬件以驱动耳机。  我的 h/w 工作正常、正在将音频发送到 3.5mm 插孔。  有时、当我插入耳机插头时、音频会静音并保持静音状态、直到我“重新启动“TAD5112。

是否有可以禁用此“自动静音“的寄存器设置?

谢谢

以下是我的代码当前配置代码:

class TAD5112_DAC(object):

    def configure(self):
        self.tad5112_write(TAD5112_REG.PAGE_CFG, 0x00)  # select page 0
        self.tad5112_write(TAD5112_REG.SW_RESET, 0x01)  # s/w reset
        time.sleep(0.01) #10ms
        self.tad5112_write(TAD5112_REG.DEV_MISC_CFG, 0x09)  # exit sleep mode
        time.sleep(0.01) # 10ms - allow device to wake up
        self.tad5112_write(TAD5112_REG.PASI_CFG0, 0b00110100)  # TDM, 32bits, BCLK inverted=AKM, Cirrus

        # 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.

        self.output_gain_db = -20  # default output gain in dB
        self.tad5112_write(TAD5112_REG.DAC_CH1A_CFG0, 201+self.output_gain_db*2)  # Out1 gain in 0.5dB increments)
        self.tad5112_write(TAD5112_REG.DAC_CH2A_CFG0, 201+self.output_gain_db*2)  # Out2 gain in 0.5dB increments)

        # default to TDM slots 0 and 1 for left and right
        self.tad5112_write(TAD5112_REG.PASI_RX_CH1_CFG, 0x20) # TDM slot 0 -> left
        self.tad5112_write(TAD5112_REG.PASI_RX_CH2_CFG, 0x21) # TDM slot 1 -> right

        self.tad5112_write(TAD5112_REG.CH_EN, 0b00001100)  # Enable Ch1, 2
        self.tad5112_write(TAD5112_REG.PWR_CFG, 0b01000000)  # power DAC up
        return 0 # no error
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Stephen:

    我将在此处查看这些行:

            self.output_gain_db = -20  # default output gain in dB
            self.tad5112_write(TAD5112_REG.DAC_CH1A_CFG0, 201+self.output_gain_db*2)  # Out1 gain in 0.5dB increments)
            self.tad5112_write(TAD5112_REG.DAC_CH2A_CFG0, 201+self.output_gain_db*2)  # Out2 gain in 0.5dB increments)

    我觉得您在这里将数字音量控制设置为–40dB。 这是你要做的吗? 这可能会导致输出听起来静音、而重新启动芯片会将其复位为默认值 0dB。 如果删除这一行、是否仍存在此问题?

    此致、

    Garret

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

    尊敬的 Garret:

    由于增益寄存器的增量为 0.5dB、然后在编程时–20*2 再次变为–20dB。  –20dB 的声音非常大、甚至 40dB 的声音也能听到

    我正在尝试将输出配置为伪差分输出:

            # 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.
    

    在如何针对该配置对 OUT1x 和 OUT2x_CFG 寄存器进行编程方面存在一些困惑:

    因为数据表指出不要对 OUT2x_CFG[2:0]使用 B101。  那么、OUT2x_CFG[2:0]应编程为什么?

    谢谢

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

    尊敬的 Stephen:

    操作过程中的耳机插入可能会触发中断。 发生此静音后、您能否读取第 1 页寄存器 0x3a、告诉我结果?

    您是否启用了耳机检测功能? 您可以通过以下应用手册了解更多相关信息: https://www.ti.com/lit/an/slaaeg7/slaaeg7.pdf

    OUT2x_CFG[2:0] 可编程为 B100、就像用于伪差分的设置一样、负极输出均连接到耳机接地。 确保此连接未连接到系统接地、因为此配置将在这些引脚上生成不应短接至地的 VCOM 电压。

    此致、

    Garret

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

    尊敬的 Garret:

    下面的代码似乎已经解决了我的问题。  感谢您的帮助!

            # autorecovery on DAC fault i.e temp short when headphone plug is inserted
            self.tad5112_write(TAD5112_REG.DAC_FLT_CFG0, 0b01000100)