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.

[参考译文] TAC5212:单端模式下的音频输出问题

Guru**** 2988540 points

Other Parts Discussed in Thread: TAC5212

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1665539/tac5212-audio-output-problem-in-single-ended-mode

主题中讨论的其他器件: TAC5212

e2e.ti.com/.../line_2D00_out_2D00_differential.log


e2e.ti.com/.../headphone_5F00_single_2D00_ended.log

根据规格、图 7-24 当 HP 和线路输出均采用单端配置时、两者在 P 和 M 引脚上传输相同的立体声信号。

使用 TAC5212 驱动器分支 5.15、HP P+M 和 LO P+M 上的差分输出均正确。 两个输出都显示差分信号(P/M 电平反相)。 但是、当更改为单端(无论是 HP、Line 还是 4 欧姆)时、只有 HP 左声道 (P) 有音频。 Line Out M&P 和 HP Right (M) 不输出任何 信号。 直接在 TRS 输出和 DAC 输出上测量。

amixer -c 0 cset iface=MIXER,name='ASI_RX_CH1_EN Switch' on
amixer -c 0 cset iface=MIXER,name='OUT1x Config' 'Stereo Single-ended'
amixer -c 0 cset iface=MIXER,name='OUT1x Driver' 'Headphone'
amixer -c 0 cset iface=MIXER,name='OUT1x Source' 'DAC Input'
#amixer -c 0 cset iface=MIXER,name='ASI_TX_CH1_EN Switch' on
#amixer -c 0 cset iface=MIXER,name='ASI_RX_CH2 Slot' Slot16 

amixer -c 0 cset iface=MIXER,name='ASI_RX_CH2_EN Switch' on
amixer -c 0 cset iface=MIXER,name='OUT2x Config' 'Stereo Single-ended'
amixer -c 0 cset iface=MIXER,name='OUT2x Driver' 'Headphone'
amixer -c 0 cset iface=MIXER,name='OUT2x Source' 'DAC Input'

AI 认为在 TAC5212 中有一个缺陷:-) 希望不要。

AI Analsysis.pdf 

 

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

     De Bug Hi, 我们能得到 regdump 和原理图如何使用它.  我将在内部进行检查、然后返回。 谢谢  

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

    寄存器设置在上面的 ALSA amixer 转储中。 驱动程序使用 I2C 地址、因此 i2c 转储是强制转储。 原理图如下所示。

    所有串联 IN 和输出均为 1uF。  C218 和 C219 也为 1uF。  C222 从 0r 连接到 GND。 其他电容器和电阻器尚未组装(尚未组装)  

    TAC5212 处于从模式(因为  TAC5x1x 分支 5.15 驱动器仅支持该模式)、因此不使用 MCLK 和 GPO1。

    e2e.ti.com/.../i2cdump_5F00_regs_5F00_hp_5F00_single_2D00_ended.loge2e.ti.com/.../i2cdump_5F00_regs_5F00_line_5F00_differential.log

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

    在 regdump 和 Mixer dump 中、器件似乎都已断电。 我们能否在设备开机并运行时获得数据?  

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

    这篇文章更新了几次。 这是最后 一个。 (很抱歉,这里很晚,犯了几个错误)

    这里是运行时的转储文件、如下所示。 运行时 VREF 的电压约为 2.4V、并在停止播放后几秒内恢复为 0。 我看了驱动程序、似乎忽略了从内核调用到驱动程序的“standby“命令。  (就像前一篇文章一样,有一个 switch 语句、对于“standby“、它只是显示“break;“_不确定它是如何进入待机状态的。 可能是默认值本身 (?)

    P.S 还请注意、从耳机单端切换回线路输出差分时、不再有输出。  需要重新启动电路板以恢复模拟输出。 (假定这涉及到执行此操作的编解码器的软剩余部分)。 相比之下,在设置耳机差分或线路输出立体声单端后,切换回线路输出 — 差分似乎可以正常工作。

    抱歉,这个论坛是如此令人难以置信的婴儿车和缓慢到达, 特别是当美国似乎开始工作。  代码似乎已删除。  我想再添加一次

    e2e.ti.com/.../during_5F00_play.log

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

    感谢你的评分  我们在这里寻找的最终要求是什么? 您是否在寻找 4 个单独的单端输出、或需要与 OUT2P 和 OUT2M 中 OUT1P 和 OUT1M 相同的输出?

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

    这是在 I2S 模式下连接到和 DAI/I2S MPU

    AFAIK. 4 单端独立输出信号只能在 PDM 模式下使用?

    要求用户可以在之间进行选择

    1. OUT1 为左、OUT2 为右差分线路输出电平

    2. OUT1 为左、 OUT2 为右、显示为单端 (OUTP 或 OUTM) 线路电平

    3. OUT1 和 OUT2 单端立体声线路输出线路电平 (据我所知, OUT1 和 2 将承载音频)

    4. OUT1 和 OUT2 立体声单端耳机输出 (据我所知, OUT1 和 2 将携带相同的音频)【本主题】

    5. OUT2 作为线路输出立体声和 OUT1 耳机立体声(如我所理解的 OUT1 和 2 将携带相同的音频)

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

    # sh cfg_headphone_stereo_single-ended.sh
    numid=57,iface=MIXER,name='ASI_RX_CH1_EN Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=55,iface=MIXER,name='OUT1x Config'
      ; type=ENUMERATED,access=rw------,values=1,items=7
      ; Item #0 'Differential'
      ; Item #1 'Stereo Single-ended'
      ; Item #2 'Mono Single-ended at OUTxP only'
      ; Item #3 'Mono Single-ended at OUTxM only'
      ; Item #4 'Pseudo differential with OUTxM as VCOM'
      ; Item #5 'Pseudo differential with OUTxM as external sensing'
      ; Item #6 'Pseudo differential with OUTxP as VCOM'
      : values=1
    numid=56,iface=MIXER,name='OUT1x Driver'
      ; type=ENUMERATED,access=rw------,values=1,items=4
      ; Item #0 'Line-out'
      ; Item #1 'Headphone'
      ; Item #2 '4 ohm'
      ; Item #3 'FD Receiver/Debug'
      : values=1
    numid=54,iface=MIXER,name='OUT1x Source'
      ; type=ENUMERATED,access=rw------,values=1,items=6
      ; Item #0 'Disabled'
      ; Item #1 'DAC Input'
      ; Item #2 'Analog Bypass'
      ; Item #3 'DAC + Analog Bypass Mix'
      ; Item #4 'DAC -> OUTxP, INxP -> OUTxM'
      ; Item #5 'INxM -> OUTxP, DAC -> OUTxM'
      : values=1
    numid=61,iface=MIXER,name='ASI_RX_CH2_EN Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=59,iface=MIXER,name='OUT2x Config'
      ; type=ENUMERATED,access=rw------,values=1,items=6
      ; Item #0 'Differential'
      ; Item #1 'Stereo Single-ended'
      ; Item #2 'Mono Single-ended at OUTxP only'
      ; Item #3 'Mono Single-ended at OUTxM only'
      ; Item #4 'Pseudo differential with OUTxM as VCOM'
      ; Item #5 'Pseudo differential with OUTxP as VCOM'
      : values=1
    numid=60,iface=MIXER,name='OUT2x Driver'
      ; type=ENUMERATED,access=rw------,values=1,items=4
      ; Item #0 'Line-out'
      ; Item #1 'Headphone'
      ; Item #2 '4 ohm'
      ; Item #3 'FD Receiver/Debug'
      : values=1
    numid=58,iface=MIXER,name='OUT2x Source'
      ; type=ENUMERATED,access=rw------,values=1,items=6
      ; Item #0 'Disabled'
      ; Item #1 'DAC Input'
      ; Item #2 'Analog Bypass'
      ; Item #3 'DAC + Analog Bypass Mix'
      ; Item #4 'DAC -> OUTxP, INxP -> OUTxM'
      ; Item #5 'INxM -> OUTxP, DAC -> OUTxM'
      : values=1
    numid=7,iface=MIXER,name='DAC1 CHA Digital Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=255,step=0
      : values=100
      | dBscale-min=-100.00dB,step=0.50dB,mute=0
    numid=8,iface=MIXER,name='DAC1 CHB Digital Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=255,step=0
      : values=100
      | dBscale-min=-100.00dB,step=0.50dB,mute=0
    

    这是代码,这有什么不正确的吗? 如果没有连接实际耳机、输出是否会被阻塞?

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

    # sh cfg_headphone_stereo_single-ended.sh
    numid=57,iface=MIXER,name='ASI_RX_CH1_EN Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=55,iface=MIXER,name='OUT1x Config'
      ; type=ENUMERATED,access=rw------,values=1,items=7
      ; Item #0 'Differential'
      ; Item #1 'Stereo Single-ended'
      ; Item #2 'Mono Single-ended at OUTxP only'
      ; Item #3 'Mono Single-ended at OUTxM only'
      ; Item #4 'Pseudo differential with OUTxM as VCOM'
      ; Item #5 'Pseudo differential with OUTxM as external sensing'
      ; Item #6 'Pseudo differential with OUTxP as VCOM'
      : values=1
    numid=56,iface=MIXER,name='OUT1x Driver'
      ; type=ENUMERATED,access=rw------,values=1,items=4
      ; Item #0 'Line-out'
      ; Item #1 'Headphone'
      ; Item #2 '4 ohm'
      ; Item #3 'FD Receiver/Debug'
      : values=1
    numid=54,iface=MIXER,name='OUT1x Source'
      ; type=ENUMERATED,access=rw------,values=1,items=6
      ; Item #0 'Disabled'
      ; Item #1 'DAC Input'
      ; Item #2 'Analog Bypass'
      ; Item #3 'DAC + Analog Bypass Mix'
      ; Item #4 'DAC -> OUTxP, INxP -> OUTxM'
      ; Item #5 'INxM -> OUTxP, DAC -> OUTxM'
      : values=1
    numid=61,iface=MIXER,name='ASI_RX_CH2_EN Switch'
      ; type=BOOLEAN,access=rw------,values=1
      : values=on
    numid=59,iface=MIXER,name='OUT2x Config'
      ; type=ENUMERATED,access=rw------,values=1,items=6
      ; Item #0 'Differential'
      ; Item #1 'Stereo Single-ended'
      ; Item #2 'Mono Single-ended at OUTxP only'
      ; Item #3 'Mono Single-ended at OUTxM only'
      ; Item #4 'Pseudo differential with OUTxM as VCOM'
      ; Item #5 'Pseudo differential with OUTxP as VCOM'
      : values=1
    numid=60,iface=MIXER,name='OUT2x Driver'
      ; type=ENUMERATED,access=rw------,values=1,items=4
      ; Item #0 'Line-out'
      ; Item #1 'Headphone'
      ; Item #2 '4 ohm'
      ; Item #3 'FD Receiver/Debug'
      : values=1
    numid=58,iface=MIXER,name='OUT2x Source'
      ; type=ENUMERATED,access=rw------,values=1,items=6
      ; Item #0 'Disabled'
      ; Item #1 'DAC Input'
      ; Item #2 'Analog Bypass'
      ; Item #3 'DAC + Analog Bypass Mix'
      ; Item #4 'DAC -> OUTxP, INxP -> OUTxM'
      ; Item #5 'INxM -> OUTxP, DAC -> OUTxM'
      : values=1
    numid=7,iface=MIXER,name='DAC1 CHA Digital Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=255,step=0
      : values=100
      | dBscale-min=-100.00dB,step=0.50dB,mute=0
    numid=8,iface=MIXER,name='DAC1 CHB Digital Playback Volume'
      ; type=INTEGER,access=rw---R--,values=1,min=0,max=255,step=0
      : values=100
      | dBscale-min=-100.00dB,step=0.50dB,mute=0
    

    我发现原因,扬声器脚本将音量设置为 100,然后噪声约为 140mVp-p 所以切换回线路输出、仍然没有信号、因为脚本没有设置音量。  

    对于耳机、在 200 时、具有 1.8Vp-p 的清晰模拟正弦波输出。在 255 时 、正弦波播放在 1.72Vp-p 时变为方波

    是这样吗? 输出只有一个串联电容器。 没有电阻器或其他任何东西。

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

    我在内部讨论过、我们不确定您对 3 和 4 的期望是什么。 对于您的 case、我们是否期望 OUT1P、OUT1M 和 OUT2P OUT2M 具有相同的副本?  

    请尝试下面的修补程序、看看是否满足了您的要求?

     0001-Add-mixer-controls-for-DAC-channel-3-and-4.patch 0002-main-asi-mixer-ch3-ch4-ch4-from-ch1-ch2.patch 

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

    I2S 模式只传输两个音频流(如果我不是错的。) 、因此 OUT1P 和 OUT2P (左音频)与 OUT1M 和 OUT2M(右声道音频)相同。 该假设是否不正确? 。  P.S:我现在无法测试这一点,因为该板已被发送到平台提供商今天,因为 TAC5212 干扰故障分析问题(在另一个线程)。 我会在电路板返回后进行测试。

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

    目前、OUT2P/M 的功能似乎通过回放混频器进行控制。 有关更多信息、请参阅 https://www.ti.com/lit/an/slaaer9/slaaer9.pdf - “3.1 主 ASI 混频器“一节。  第二个补丁基于相同的基础。 请尝试并告知我们。