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.

[参考译文] Linux/TLV320AIC32X4SW-Linux:TLV320AIC3204

Guru**** 2393725 points


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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/666043/linux-tlv320aic32x4sw-linux-tlv320aic3204

部件号:TLV320AIC32X4SW-Linux

工具/软件:Linux

您好,

我有两个问题:

1)我是否可以同时使用相同的I2S进行输入和输出,或者我是否应该使用不同的端口?

2)在哪里可以获得为ALSA框架设置路由所需的配置?

此致,

伊加尔

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

    您好,Igal,

    欢迎来到E2E,感谢您对我们的产品感兴趣!

    是的,n ü I²S总线由字时钟,位时钟,数字输入和数字输出组成,因此同一端口可以同时接收和发送数字数据。

    遗憾的是,我们不积极支持这些设备的Linux集成,我们提供 了一 篇常见问题文章,您可以在其中找到我们拥有的信息。

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

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

    您好,

    我想将tlv320aic32x4配置为作为播放从属设备(DAC)运行:

    MCLK = 12MHz

    WCLK = 4.41万[Hz]

    BCLK = 1.4112 [MHz]

    所有时钟都在编解码器外部的什么位置。应如何配置?

    此致。

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

    您好,Igal,

    这是设备在从属模式下配置的常见应用,但是,由于12MHz不是通用音频MCLK,因此应考虑MCLK。 您能否确认MCLK频率和此时钟的来源? 请查看此应用程序注释 ,其中包含有关带编解码器的音频应用程序的建议时钟结构的更多信息。

    我建议您参考一下AIC3204的应用程序参考指南,在该指南中,您可以找到可用作参考的数个DAC配置脚本。

    从时钟设置中,请考虑音频接口的数据字长度应设置为16位,时钟分隔器设置应调整为12MHz。 我可以帮助您设置时钟,但首先我想知道之前提到的MCLK的详细信息。

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Diego,您好,
    我的主机是一台Jetson TX2,它与Linux操作系统一起运行。 为Linux编写的嵌入式驱动程序将MCLK限制为12[MHz],24[MHz]或25[MHz],因此我不得不使用此时钟(我真的不知道为什么选择这些非标准MCLK时钟)。 其它时钟也由Jetson驱动至tlv320aic32x4。 我可能最终会将MCLK更换为更方便的时钟,但这需要修改驱动程序。

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

    Diego,您好,

    请提供上述情况的脚本吗?

    此致,

    伊加尔

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

    您好,Igal,

    对于之前提供的时钟描述,我建议使用位时钟作为设备上内部时钟的来源。 请参阅以下配置代码,了解根据提供的时钟设置的设备时钟。

    ######################################
    #时钟设置
    #------------------
    编解码器接收的#:MCLK = 12 MHz,
    # BLCK = 1.4112 MHz,WCLK = 44.1 kHz
    ######################################
    #
    #选择第0页
    W 30 00 00 00
    #
    # PLL_CLKIN = BCLK,CODEC _CLKIN = PLL_CLK,
    # PLL打开,P=1,R=2,J=32,D=0000
    W 30 04 07 92 20 00 00
    #
    # NADC = 4,mAdc = 4,分禾器已通电
    W 30 12 84 84
    #
    # AOSR = 128
    W 30 14 80
    #
    # NDAC = 4,MDAC = 4,分禾器已通电
    W 30 0b 84 84
    #
    # DOSR = 128
    W 30 0d 00 80
    #
    ######################################

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

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

    Diego,您好,

    感谢脚本我已根据脚本配置了编解码器,尽管我听不到连接到线路输出的扬声器发出的任何声音。 我可以看到DIN,WCLK,BCLK中的信号。

    我还附上了我的设置图片。

    请提供建议。

    此致,伊加尔

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

    我必须激活LOL和Lor,但听不到回放,但噪音很大。 请告诉我如何解决?

    此致,伊加尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Diego,您好,
    我不得不关闭Mal和MAR,以减少大部分噪音,尽管声音不清晰且有点吵。
    有什么建议?

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

    Dieg,您好,

    最终,我通过降低寄存器 左/右DAC通道数字音量控制寄存器(寄存器65和66)中的放大率来实现这一功能。 现在播放的是完美的声音。

    虽然此设置中存在问题:I2S通道具有数据输入线路数据输出线路,它们共享相同的位时钟帧时钟。 未使用主时钟。 这意味着,如果同一I2S接口上的编解码器需要D2A和D2D,则除非使用主时钟,否则仅在应用D2A时才起作用。 对吗?

    此致,伊加尔。

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

    我使用与昨天相同的配置重新运行系统,噪音再次出现。 您能否帮助确定噪音来源?

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

    您好,Igal,

    感谢您的反馈。 我现在不在办公室,但会仔细查看您的意见,并在接下来的几天内回复您。   

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

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

    Diego,您好,

    您能帮我解决噪音和编码问题吗?

    此致,伊加尔

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

    您好,Igal,

    很抱歉回复延迟,我最近一直很忙。 我正在查看您的设置并有一些意见。

    为什么使用与USB-MODEVM断开的编解码器? 如果您将AIC3204编解码器用作主编解码器,并希望与扩展系统连接,则可以使用主板的接头J14来连接外部I²S Ω 信号, 您只需更改SW2的设置,即可将USB MCLK和USB I2S位设置为关闭。

    线路输出上的噪音可能与所使用的寄存器设置有关,您能否共享所使用的设置? 如果降低增益有助于解决噪音问题,则I²S Ω 信号可能已饱和。 您是否尝试过我之前建议的应用程序参考指南中的回放脚本?

    DIN和DOUT是相同的I²S Ω 总线的一部分,其中位时钟和字时钟是共享的。 内部时钟是从此应用程序中的位时钟生成的,因此应始终提供。 我不认为您的应用程序会有问题,除非您有不同的A2D和D2A I²S接口,这在一般应用程序中是不常见的。

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

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

    Diego,您好,感谢您的回复。

    1. 我以这种方式连接主板,以提供外部I2C控制。 是否有方法在两个板都连接时提供I2C控制?
    2. 登记册详述于下文。
    3. 是的,我是先试过的,我说过,它起了作用,但第二天它没有。
    4. 同步编码解码-谢谢。
    00:00
    01:00
    02:60
    03:00
    04:07
    05:92
    06:20
    07:00
    08:00
    09:00
    0A:00
    0b:84
    0c:84
    0d:00
    0e:80
    0f:02
    10:00
    11:08
    12:84
    13:84
    14:80
    15:01
    16:00
    17:04
    18: 00
    19:00
    1a:01
    1b:00
    1c:00
    1d:00
    1e:01
    1f:00
    20:00
    21:00
    22:00
    23:00
    24:00
    25:CC
    26:11
    27:00
    28:00
    29:00
    2a:E0
    2b:00
    2c:00
    2d:00
    2e:00
    2f:00
    30:00
    31: 00
    32:00
    33:00
    34:00
    35:12
    36:02
    37:02
    38:02
    39:00
    3a:00
    3b:00
    3c:01
    3e
    :00
    3f:D4
    40:00
    41:00
    42:00
    43:00
    44:6F
    45:38
    46:00
    47:00
    48:00
    49:00
    4a: 00
    4b:EE
    4c:10
    4D:D8
    4e:7E
    4F:E3
    50:00
    51:00
    52:88
    53:00
    54:00
    55:00
    56:00
    57:00
    58:7F
    59:00
    5a:00
    5b:00
    5c:00
    5d:00
    5e:00
    5F:00
    60:7F
    61:00
    62:00
    63: 00
    64:00
    65:00
    66:00
    67:00
    68:00
    69:00
    6a:00
    6B:00
    6c:00
    6d:00
    6e:00
    6F:00
    70:00
    71:00
    72:00
    73:00
    74:00
    75:00
    76:00
    77:00
    78:00
    79:00
    7a:00
    7b:00
    7c:00 00
    7d:00
    7e:00
    7f:00
    80:00
    81:00
    82:60
    83:00
    84:04
    85:00
    86:00
    87:00
    88:00
    89:0C
    8a:00
    8b:10
    8c:00
    8d:00
    8e:08
    8f:08
    90:7A
    91:7A
    92:3A
    93:3A
    94:00
    95: 00
    96:00
    97:00
    98:00
    99:00
    9a:00
    9b:00
    9c:00
    9d:00
    9e:00
    9f:00
    a0:00
    a1:00
    a2:00
    a3:00
    a4:00
    a5:00
    a6:00
    a7:00
    a8:00
    a9:00
    a9:00 aA:
    00 aA
    :00 aA:00 aA:00 aA:00:00 aC:00 aA:00:
    
    00
    af:00
    b0:00
    b1:00
    b2:00
    b3:00
    b4:40
    b5:00
    b6:00
    b7:40
    b8:00
    b9:00
    ba:00
    bb:8A
    bc:8A 

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

    您好,Igal,

    感谢您的反馈。 当EVM连接时,您可以在主板的接头J6上连接来自控制器的I²C Ω 信号。 我正在查看提供的寄存器,但我担心缺少寄存器,编解码器寄存器映射由不同的页面组成,每个页面上包含256个寄存器,您共享的寄存器似乎仅用于第0页。 您是否可以只共享正在写入设备的寄存器,而不是完整的转储?

    奇怪的是,编解码器以前工作良好,现在却不工作,这让我认为可能发生时钟错误。 能否验证从系统连接的信号?  

    此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Diego,您好,
    头文件中的Linux驱动程序详细信息寄存器0-100,然后要访问第1页上的寄存器,它会添加128。在驱动程序中,没有对寄存器0的访问权限,而寄存器0是更改页面的门。 是否知道这一个原因?
    伊加尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Diego,您好,
    我在尝试从设备获取寄存器时注意到的另一件事。 我设置第0页,然后读取128个寄存器并打印它们,然后设置第1页(写入'1'以寄存'0')并读取128个寄存器,两个集的值相同。 是否有其他选择页面的方式?
    此致,伊加尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Diego,您好,

    我已经弄清楚了寄存器的问题,它们正由内核通过regmap机制来处理。

    下面是映射到reg的寄存器列表(可以提取更多寄存器,但现在它提供了从第0页到第1页上的寄存器188的打印所有寄存器,如果您需要更多寄存器,请告诉我)。 我仍然在音频输出上遇到噪音问题:

    00:01
    01:00
    02:60
    03:00
    04:07
    05:92
    06:20
    07:00
    08:00
    09:00
    0A:00
    0B:84
    0C:84
    0D:00
    0E:80
    0f:02
    10:00
    11:08
    12:84
    13:84
    14:80
    15:01
    16:00
    17:04
    18:00
    19:00
    1A:01
    1B:00
    1C:00
    一维:01
    1E:04
    1F:00
    20:00
    21:00
    22:00
    23:00
    24:88
    25:抄送
    26:11.
    27:00
    28:00
    29:00
    2A:E0
    2B:00
    2C:00
    2D:00
    2E:00
    2F:00
    30:00
    31:00
    32:00
    33:00
    34:00
    35:12
    36:03
    37:02
    38:02
    39:00
    3A:00
    3B:00
    3c:01
    3D:01
    3e:00
    3F:D4.
    40:10
    41:00
    42:00
    43:00
    44:6F
    45:38
    46:00
    47:00
    48:00
    49:00
    4A:00
    4B:Ee.
    4C:10.
    4D:D8.
    4E:7E
    4F:E3
    50:00
    51:00
    52:88
    53:00
    54:00
    55:00
    56:00
    57:00
    58:7F
    59:00
    5A:00
    5b:00
    5C:00
    5D:00
    5e:00
    5F:00
    60:7F
    61:00
    62:00
    63:00
    64:00
    65:00
    66:00
    67:00
    68:00
    69:00
    6a:00
    6b:00
    6c:00
    6D:00
    6e:00
    6F:00
    70:00
    71:00
    72:00
    73:00
    74:00
    75:00
    76:00
    77:00
    78:00
    79:00
    7A:00
    7b:00
    7C:00
    7D:00
    7E:00
    7F:00
    80:00
    81:00
    82:00
    83:00
    84:00
    85:00
    86:00
    87:00
    88:00
    89:0C
    8A:00
    8B:10.
    8C:00
    8D: 00
    8e:08
    8F:08
    90:7A
    91:7A
    92:3A
    93:3A
    94:00
    95:00
    96:00
    97:00
    98:00
    99:00
    9A:00
    9B:00
    9C:00
    9D:00
    9E:00
    9F:00
    A0:00
    A1:00
    A2:00
    A3:00
    A4:00
    A5:00
    A6:00
    A7:00
    A8:00
    A9:00
    AA:00
    阿瑟:00
    AC:00
    广告:00
    AE:00
    AF:00
    B0:00
    B1:00
    B2:00
    B3:00
    B4:00
    B5:00
    B6:40
    B7:00
    B8:00
    B9:40
    BA:00
    BB:80
    BC:80

    此致,伊加尔。

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

    我认为问题是在建议的抽样方案中没有使用的渗透性MCLK,BCLK是PLL的来源。 是否有办法筛选出MCLK?

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

    您好,Igal,

    很抱歉耽误了我假期的最后几天。

    只要MCLK与PLL断开连接,就不应影响内部时钟方案,对于您的配置,只要BCLK有效并配置为PLL的源,就可以从设备上删除主时钟而不会出现问题 (从寄存器设置中可以看到什么是正确的)。

     此致,

     -Diego Mel é ndez López ñ a
      音频应用工程师