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.

[参考译文] 6k以上的频谱缺失。

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/609171/the-frequency-spectrum-above-6k-is-missing

主题中讨论的其他部件:TLV320DAC3203

我在44.1k 16位和立体声上通过aplay播放了一个wav文件。 文件的扫描频率为1到20k。

但是,tlv3203的输出频率仅低于6k。

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

    欢迎来到E2E,感谢您对我们产品的关注。
    您能否向我们提供设备的完整名称?

    此致
    Jos é Luis Figueroa
    音频应用工程师
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好,我们使用的是tlv320DAC3203。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们使用Mediateck芯片mt8516。 I2S同时连接到tas320和tlv320。 tas320输出正常。
    我们认为,可能是由tlv320DAC3203中的某些过滤器引起的问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    如何配置TLV320DAC3203?
    频率响应至少对于音频频频谱应该是平的。 此设备中有一些可配置的筛选器,可能它们被设置为低通筛选器。

    此致,
    Ivan Salazar
    音频应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好,我们只设置这些注册表,其他注册表是重置默认值。 我们没有找到任何筛选器。 请您帮忙检查一下吗?
    Snd_SOC_WRITE (编解码器,AIC32X4_RESET,0x01);
    Snd_SOC_WRITE (编解码器,AIC32X4_NDAC,0x81);
    Snd_SOC_WRITE (编解码器,AIC32X4_MDAC,0x82);
    Snd_SOC_WRITE (编解码器,AIC32X4_DOSRMSB,0x0);
    Snd_SOC_WRITE (编解码器,AIC32X4_DOSRLSB,0x80);
    Snd_SOC_WRITE (编解码器,AIC32X4_IFACE1,0x0);
    Snd_SOC_WRITE (编解码器,AIC32X4_DACSPB,0x8);
    Snd_SOC_WRITE (编解码器,AIC32X4_CLKMUX,0x5);
    Snd_SOC_WRITE (CODEC,AIC32X4_PWRCFG,0x8);
    Snd_SOC_WRITE (编解码器,AIC32X4_LDOCTL,0x0);
    Snd_SOC_WRITE (编解码器,(AIC32X4_Page1 + 0x7B),0x1);
    Snd_SOC_WRITE (编解码器,AIC32X4_CMMODE,0x63);
    Snd_SOC_WRITE (编解码器,AIC32X4_HPROUTE,0x8);
    Snd_SOC_WRITE (编解码器,AIC32X4_HPRROUTE,0x8);
    Snd_SOC_WRITE (编解码器,(AIC32X4_Page1 + 0x3),0x0);
    Snd_SOC_WRITE (编解码器,(AIC32X4_Page1 + 0x4),0x0);
    Snd_SOC_WRITE (编解码器,AIC32X4_HPLGAIN,0x0);
    Snd_SOC_WRITE (编解码器,AIC32X4_HPRGAIN,0x0);
    Snd_SOC_WRITE (编解码器,AIC32X4_headstart,0x29);
    Snd_SOC_WRITE (编解码器,AIC32X4_OUTPWRCTL,0x30);
    Snd_SOC_WRITE (编解码器,AIC32X4_DACSETUP,0xEA);
    Snd_SOC_WRITE (编解码器,AIC32X4_DACMUTE,0);
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    这是输出频谱。 输入为1-20K。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    通过此命令:snd_soc_write(codec, AIC32X4_CLKMUX, 0x5);您将BCLK设置为PLL和CODCOD_CLKIN的输入。
    从NDAC,MDAC和DOSR设置判断,我认为您应该将MCLK设置为CODCOD_CLKIN的输入,以获得正确的采样频率,因此命令应该如下所示:
    Snd_SOC_WRITE (编解码器,AIC32X4_CLKMUX,0x00);
    请您尝试一下,看看是否更好?

    此致,
    Ivan Salazar
    音频应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,我们没有连接MCLK输入。 我们使用BCLK作为系统时钟输入。 那么如何配置呢?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请您确认您的BCLK频率吗?
    如果使用的是2.8224 MHz,则可以将NDAC =1,MDAC =1,DOSR =64设置为

    此致,
    Ivan Salazar
    音频应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,我们的BCLK是3.072M,是48K*16*2
    如何配置寄存器? 我尝试了NDAC = 1,MDAC = 1,DOSR = 64,但未解决问题。
    谢谢。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您需要使用PLL。 您可以使用以下值:
    PLL_R = 4
    PLL_J = 7
    PLL_D = 0
    PLL_P = 0
    NDAC = 7
    MDAC =2.
    DOSR = 128
    此外,您还必须选择BCLK作为PLL的输入(这已根据您的设置完成),并选择PLL时钟输出作为第0页寄存器0x04上CODROD_CLKIN的输入。

    此致,
    Ivan Salazar
    音频应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我尝试了配置。 高于2kHz的频谱全部被切断。
    我认为有些登记册肯定是错误的。 请帮助您重新检查。 非常感谢。

    我上次回复中有一个错误,我们的BCLK是3.072M, I2S是48K,32位,立体声。不是16位。

    我的寄存器设置如下。

    Snd_SOC_WRITE (编解码器,AIC32X4_RESET,0x01);
    Snd_SOC_WRITE (编解码器,AIC32X4_PLLPR,0x84);
    Snd_SOC_WRITE (编解码器,AIC32X4_PLLJ,0x07);
    Snd_SOC_WRITE (编解码器,AIC32X4_PLLDMSB,0x00);
    Snd_SOC_WRITE (编解码器,AIC32X4_NDAC,0x87);
    Snd_SOC_WRITE (编解码器,AIC32X4_MDAC,0x82);
    Snd_SOC_WRITE (编解码器,AIC32X4_DOSRMSB,0x0);
    Snd_SOC_WRITE (编解码器,AIC32X4_DOSRLSB,0x80);
    Snd_SOC_WRITE (编解码器,AIC32X4_IFACE1,0x0);
    Snd_SOC_WRITE (编解码器,AIC32X4_DACSPB,0x8);
    Snd_SOC_WRITE (编解码器,AIC32X4_CLKMUX,  0x7);
    Snd_SOC_WRITE (CODEC,AIC32X4_PWRCFG,0x8);
    Snd_SOC_WRITE (编解码器,AIC32X4_LDOCTL,0x0);
    Snd_SOC_WRITE (编解码器,(AIC32X4_Page1 + 0x7B),0x1);
    Snd_SOC_WRITE (编解码器,AIC32X4_CMMODE,0x63);
    Snd_SOC_WRITE (编解码器,AIC32X4_HPROUTE,0x8);
    Snd_SOC_WRITE (编解码器,AIC32X4_HPRROUTE,0x8);
    Snd_SOC_WRITE (编解码器,(AIC32X4_Page1 + 0x3),0x0);
    Snd_SOC_WRITE (编解码器,(AIC32X4_Page1 + 0x4),0x0);
    Snd_SOC_WRITE (编解码器,AIC32X4_HPLGAIN,0x0);
    Snd_SOC_WRITE (编解码器,AIC32X4_HPRGAIN,0x0);
    Snd_SOC_WRITE (编解码器,AIC32X4_headstart,0x29);
    Snd_SOC_WRITE (编解码器,AIC32X4_OUTPWRCTL,0x30);
    mdelay(3000);
    Snd_SOC_WRITE (编解码器,AIC32X4_DACSETUP,0xEA);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想我在上一封邮件中为PLL_P写下了错误的值。 此值不能为0,因为该值是除法的。 PLL_P必须为1。
    请您尝试一下,并告诉我问题是否已解决?

    此致,
    Ivan Salazar
    音频应用工程师-低功率音频和执行器
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢。 问题消失了。