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.

[参考译文] TLV320AIC34:无法将声音从 DAC 输出到 HPLCOM 和 HPLOUT

Guru**** 2492385 points
Other Parts Discussed in Thread: TLV320AIC34

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/896364/tlv320aic34-unable-to-output-sound-from-dac-to-hplcom-and-hplout

器件型号:TLV320AIC34

您好、TI 论坛、

我目前正在自定义电路板上集成 tlv320aic34、并尝试使用 aplay 和 speaker-test 通过 DAC 输出声音。我已经验证了 tlv 芯片中是否存在串行数据。 我在回放声音时未成功、但我能够直接通过设备。 我正在使用 amixer/alsamixer 巧妙地配置音频编解码器、并已验证所有相关的音量是否已取消静音。 我正在尝试实现 DAC_L2路径以驱动到 HPLCOM 和 HPLOUT 输出端口。 以下是启动 aplay 时的寄存器写入(在音频编解码器驱动程序中设置 PCM 硬件参数):

TLV reg:9=48 (32位数据字)
tlv reg:3=32
tlv reg:101=1
tlv reg:7=10 (左 DAC 数据路径播放左通道输入数据,右 DAC 数据路径播放右通道输入数据)
tlv reg: 37=192 (左/右 DAC 加电,HPLOT/HPCOM 差动)
tlv reg:43=0 (左 DAC 未静音)
tlv reg:44=0 (右 DAC 未静音)
tlv reg:51=9 (HPLOUT 未静音)
tlv reg:58=9 (HPCOM 未静音)
tlv reg: 2 = 170
tlv reg:10 = 0

我只驱动 DAC_L2/R2路径,数据表第39页:“只有当 DAC 输出不同时路由到多个输出驱动器时才能使用”,如何验证?  我注意到寄存器94、L/R DAC 未指示完全加电。 什么决定了 DAC 完全受电? 如果您有任何关于通过 DAC 路径成功回退市场的建议、我们将不胜感激!

非常感谢大家的参与

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

    您好!

    很遗憾听到您遇到问题。 您似乎没有对选择输出开关的寄存器41进行编程。 在此寄存器中、您可以通过写入0xC0来选择 LDAC 以使用 DAC_L2路径。 请告诉我这是否有帮助。  

    可以通过确保 DAC 不会路由到 HPRCOM、LEFT_LOP/M 等来验证数据表第39页中的注释 这在寄存器45-93中完成。 至于 DAC 未完全通电、在我看来、您正在寄存器37中为它们加电。 这是奇数。 请告诉我是否将0xC0写入寄存器。 41帮助。  

    此致、

    Aaron

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

    Aaron、您好!

    "至于 DAC 未完全通电、我认为您正在寄存器37中为其通电。 这是奇数"

    每次执行 aplay 时手动为 DAC 加电是否奇怪? 还是奇数、当我写入加电寄存器时、完全加电状态寄存器指示为低电平? 是否建议仅在初始配置(探测驱动器)时为 DAC 上电?

    我忘记了说、我正在执行以下 amixer 命令:

    $
    
    
    
    
    
    ##PCM/线路回放音量$# amixer cset numid=14 127 numid=14,iface=Mixer,name='PCM 回放音量';type=integer,access=rw--r-,values=2,min=0,max=127,step=0:values=127 | dbscale-min=-63.db,number=2
    
    ,number=2,ines=128,dac,numer=0
    ,numer=0=0,numere=0,r= 1,number=0,r= 1,number=0,r= 1,ines=0,r= 1,ines=0,r= 1,ines=0,r- mues=0,ines=0,r= 1,ines=120 值=118,118
    | dBscale-min=-59.00dB,step=0.50dB,mut=1
    $#
    #DAC 回放音量
    $# amixer cset numid=30 118
    numid=30,iface=mixer,name='HP DAC 回放音量'
    ;type=MUTE,access=-r--dbs=2,number=32
    
    ,number=1,r=1,rw
    
    
    = 1,最大值=18,1db;
    值=118,118
    | dBscale-min=-59.00dB、step=0.50dB、mut=1
    $#
    #DAC L2/R2路径
    $# amixer cset numid=51 2
    numid=51、iface=mixer、name='Right DAC Mux'
    ;type=枚 举、access=rw--- ,values=1,items=3
    ;item #0 'DAC_R1'
    ;item #1 'DAC_R3'
    ;item #2 'DAC_R2'
    :values=2
    $ amixer cset numid=49 2
    numid=49,iface=mixer,name='left DAC Mux'
    ;type=枚 举,access=rw--> ,values=1,items=3
    ;条目#0 'DAC_L1'
    ;条目#1 'DAC_L3'
    ;条目#2 'DAC_L2'
    :values=2. 

    对于最后一个 amxier 命令、寄存器41的值为0xA0。 我认为0xC0会写入保留值吗? 数据表中看到的。 但除此之外、我的扬声器仍然听不到任何声音。 非常感谢您提出的任何其他建议!  

    此致。

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

    您好!

    是的、令人困惑的是、您看到 L/RDAC 在通电后未完全通电。 至于写入0xC0、这是一个拼写错误。 0xA0正确。 作为完整性检查、您发送的寄存器配置在编程后是否已读? 也许、在写入器件后显示寄存器内容的完整寄存器转储会有所帮助。  

    AIC34还具有两个内部块。 请确保将正确的 CLK 信号等应用于写入引脚。 您是否也可以发送原理图的图片? 正在使用什么块? CLK 频率是多少?

    此致、

    Aaron

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

    Aaron、您好!

    遗憾的是、我无法发送原理图图片、但是、我认为我的目标是正确的内部块、我已经仔细检查了音频串行数据总线的引脚排列。 提供给 MCLK 的时钟是一个自由运行的24.5MHz 时钟、并且被路由至主控制器和编解码器、所以它们是同步的并且应该一直接收一个时钟信号。 我连接了两个差分输出端口(HPLOUT、HPLCOM 和 MONO_LOP_A、MONO_LOM_A)。

    该寄存器转储位于所有寄存器写入配置之后:

    i2cdump:警告! 该程序可能会使您的 I2C 总线
    继续? [Y/N] y
    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
    00:00 aa 20 04 00 0A 00 30 00 01 00 00 00 20 .. ???????????
    10:20 ff 00 78 00 78 78 00 78 06 00 Fe 00 00 Fe 00 ...xx.xx?..
    20:00 00 00 20 c0 00 40 a0 00 00 2f 2f 00 .... @…………………………
    30:00 00 00 0b 2f 2f 00 00 00 00 0b 00 00 00 00 2f 2f……?//………// 40
    :00 03 00 00 00 00 2f 00 02 2f f af 2f af 2f af 0b…………//?//?//??
    50:2f 2f 00 00 00 0b 00 00 2f 2f 00 0b fe 0c //……………?????
    60:00 02 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00 00…………………………………………………
    70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    80:00 aa 20 04 00 0A 00 30 00 01 00 00 00 20 ..? ???????????
    90:20 ff 00 78 00 78 78 00 78 06 00 fe 00 00 fe 00 ...xx.xx?..
    A0:00 00 00 20 c0 00 40 a0 00 00 2f 2f 00 .... @…………………………
    b0:00 00 00 0b 2f 2f 00 00 00 00 0b 00 00 00 00 2f 2f……?//………//
    c0:00 03 00 00 00 2f 2f 00 02 2f f af 2f af 2f af 0b…………//?//?//???
    d0:2f 2f 00 00 00 0b 00 00 2f 2f 00 0b fe 0c //……………?????
    E0:00 02 00 00 01 02 00 00 00 00 00 00 00 00 00 00 00 00…………………………………………………
    F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

    此致。

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

    Aaron、您好!

    现在、似乎 DAC 已完全通电、这很好。 HPLOUT 也已通电。 我是否需要指定我驱动单端信号? 如果我要将 DAC_R2驱动至 HPLCOM、我需要将信号通过混频器正确吗?

    此致。

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

    您好!

    不用担心! 您始终可以私下发送原理图。 如果您希望这样做、请允许我向我发送朋友请求、您可以通过直接消息发送原理图。 如果不是,不用担心。  

    让我介绍一下配置设置、我还将在 EVM 上运行设置、看看是否存在任何问题。 我很快会回来。  

    此致、

    Aaron

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

    Aaron、您好!

    是的、由于公司政策的原因、我仍然无法使用、但我愿意在认为必要时帮助描述更多的硬件。 期待您的调查和回应!

    谢谢你。

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

    您好!

    您只需要指定如何配置 HPLCOM/HPRCOM。 这在寄存器37/38中完成。 您也可以共享 BCLK 和 WCLK 频率吗? 您似乎正在尝试实现16kHz 的 FS。 是这样吗? 如果您的 MCLK 为24.5MHz、您将除以一半以得到一个12.250MHz 的 CODEC _CLK。 对于 AIC310x 系列编解码器,FS 必须等于256*Fsref。 如果 Fsref 为48kHz、CODEC _CLK 应为12.288MHz。 WCLK 也应为16kHz。  

    我建议启用 PLL 并使用以下值进行设置:

    P = 2

    R = 3

    J = 2

    D = 6749

    尽管可以优化 FS 生成、但我仍然希望看到输出端出现垃圾、而不是什么。 您能否探测 HPLOO/COM 并查看是否存在直流偏置? 当驱动器打开时、存在直流偏置、您已将其编程为1.5V。  

    此致、

    Aaron  

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

    Aaron、您好!

    我实现了您的 PLL 配置、我测量了 HPLOUT 上的直流偏置。 大约~10-20mV 时、它几乎可以忽略不计。 我注意到直流偏置几乎不存在、即使 DAC 断电、因此似乎存在抑制它的因素。 我仍在测量 wclock 和 bclock、很快就会进行更新。

    以下是最新的寄存器转储:  

    设置 PLL 后:
    0 1 2 3 4 5 6 7 8 9 A b c d e f 0123456789abcdef
    00:00 00 aa 82 08 1a 5c 0A 00 30 00 01 00 00 20 ..???\?.0..
    10:20 ff 00 78 00 78 78 00 78 06 00 Fe 00 00 Fe 00 ...xx.xx?..
    20:00 00 00 20 c0 00 40 a0 00 00 2f 2f 00 .... @…………………………
    30:00 00 00 0b 2f 2f 00 00 00 00 0b 00 00 00 00 2f 2f……?//………// 40
    :00 03 00 00 00 00 2f 00 02 2f f af 2f af 2f af 0b…………//?//?//??
    50:2f 2f 00 00 00 0b 00 00 2f 2f 00 0b fe 0c //……………?????
    60:00 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00……………………………………………
    70:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    80:00 00 aa 82 08 1a 5c 0A 00 30 00 01 00 00 20 ..???????????????0?...
    90:20 ff 00 78 00 78 78 00 78 06 00 fe 00 00 fe 00 ...xx.xx?..
    A0:00 00 00 20 c0 00 40 a0 00 00 2f 2f 00 .... @…………………………
    b0:00 00 00 0b 2f 2f 00 00 00 00 0b 00 00 00 00 2f 2f……?//………//
    c0:00 03 00 00 00 2f 2f 00 02 2f f af 2f af 2f af 0b…………//?//?//???
    d0:2f 2f 00 00 00 0b 00 00 2f 2f 00 0b fe 0c //……………?????
    E0:00 02 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00……………………………………………
    F0:00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 

    此致。

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

    Aaron、

    这是 BCLK 和 wclk 的逻辑分析仪波形捕获。 实际上、我不太确定 BCLK 和 Wclk 的频率、明天我必须再回来。 我知道在启动 aplay 等时 I2S IP 内核正在配置  

    此致。

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

    您好!

    对于测量 HPLOO/COM 上的直流偏置、请确保直接在引脚上测量直流偏置、而不是在交流耦合电容之后测量。  

    我在 EVM 上使用了相同的布线路径、并验证其是否正常工作。 我确实注意到、有很多写入不必要的寄存器的操作。 例如。 0x2F 正在写入大量未使用的路由寄存器。 如果未使用寄存器、请将其保持在默认配置。  

    查看显示 CLK 的图片、可以看到 LRCLK 不是50%占空比。  您可以确认这一点吗? 如果使用 I2S、则 LRCLK 应为50%占空比。  

    此致、

    Aaron