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.

[参考译文] TLV320ADC5140:PurePath:菊花链2个 TLV320ADC5140混淆

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

https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1465324/tlv320adc5140-purepath-daisy-chaining-2x-tlv320adc5140-confusion

器件型号:TLV320ADC5140

工具与软件:

我正在尝试了解如何使用 SBAA383C 中的以下配置以菊花链方式连接两个 TLV320ADC5140器件

在上图中、SDOUT 映射到 GPIO1、其文档说明:

通过设置 ASI_CFG2寄存器的 ASI_DAISY 位字段、可以将器件配置为菊花链配置

但是、如果我 在 PurePath 中应用以下配置、则第二个器件的 ASI 时隙不会正确映射:

器件1:
通道1:单端+启用
通道2:单端+启用
通道3:单端+启用
通道4:单端+启用
音频配置:TDM 格式、32位、 输出通道1 +通道2 +通道3 +通道4启用
ASI 格式配置:始终启用总线保持器、未使用周期的数据为高阻态、启用菊花链器件
ASI 输出配置:ch1->Slot0、Ch2->Slot1、Ch3->Slot2、Ch4->Slot3
GPIO 功能:菊花链(SDIN)的 ASI 输入、低电平有效和高阻态


器件2:
通道1:单端+启用
通道2:单端+启用
音频配置:TDM 格式、32位、输出 Ch1+Ch2启用
ASI 形成配置:始终禁用总线保持器、未使用周期的数据为高阻态、启用菊花链器件
ASI 输出配置:ch1->Slot4、ch2->Slot5

如果我查看上述配置的 ASI 时隙映射、可能是因为第二个器件的同一个通道会被映射到时隙4两次?

请问我哪里出了问题?

最新动态:  似乎软件确实出现故障或在更改配置时无法正确更新。 我禁用了菊花链、然后回顾 ASI 时隙映射、并正确映射了所有6个输出时隙。 然后、我切换到 GPIO/中断选项卡、未进行任何更改、切换回音频串行总线选项卡、并查看 ASI 映射、而且已经完全更改为这样的选项:

更新2:  此后、我重新启用了菊花链、但 在发布第一次更新之前无法返回配置-除了关闭软件并再次开始。

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

    尊敬的 Kevin:

    请在本主题中查看我对菊花链的响应、如果您有任何问题、请告诉我:  

    https://e2e.ti.com/support/audio-group/audio/f/audio-forum/1420279/tlv320adc6140-daisy-chaining-i2s-sdout-sdin-into-gpi-gpo

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

    您好 Daveon:

    感谢您的答复。

    我们有一个定制电路板、板上有2个 TLV320ADC5140器件、其中一个器件上连接4个单端模拟麦克风、另一个器件上连接2个单端模拟麦克风。 从上面的屏幕截图中可以看出、我已经尝试按照相关应用手册配置软件、但是软件似乎未反映配置的预期

    我已经完成了你的答复中的链接,我确实有几个问题:

    1. 与菊花链相比、共享 TDM 输出是首选的选项? 为什么会这样? 在我的应用中、模拟通道大概会在通过 ASI 总线发送之前进行数字化。 我已为菊花链设置了硬件连接、这是否意味着我的应用无法实现正确的菊花链机制?
    2. 根据我对应用手册的理解、我只需要设置 ASI_CFG 寄存器中的菊花链位(看起来 Linux 驱动程序目前不支持)、然后启用第二个 ADC 上 GPIO 引脚的 ASI 输入。 请您确认这是正确的吗?

    我已经将两个 TLV320ADC5140连接到 Raspberry Pi CM5、到目前为止、我可以接收两个音频通道(主要是因为菊花链尚未启用或运行)、大概是第二个 ADC 上的2个模拟通道。

    这对我来说都是全新的、非常感谢您的帮助。

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

    尊敬的 Kevin:

    无论是共享 TDM 还是菊花链、密钥是对齐输出通道时隙、使它们不会相互冲突。 您能否提供发送到器件的脚本?

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

    您好、Daveon:

    我同意-这是我试图在我的原始文章的屏幕截图中做的,然而,来自 PurePath 软件的最终结果是令人困惑和意外的,我仍然想知道我是否做了任何错误的配置。 尤其是遵循有关菊花链器件的 TI 应用手册、但结果(上面的屏幕截图)与应用手册大不相同。

    以下是用于两个 ADC 的 PurePath 的两个输出:

    器件#1

    #校验和0
    #由 ADCx140EVM-SW v3.0.5生成
    # TLV320ADC5140器件配置
    #------------------
    #重置
    #------------------
    #选择第0页
    W 9a 00 00
    #重置设备
    W 9a 01 01
    延迟为# 1ms
    #------------------
    #开始设备内存
    #------------------
    #第0页(0x00)转储
    #选择第0页
    W 9a 00 00
    #唤醒并启用 AREG
    W9a 02 81.
    # ASI 配置
    西9a 07 31.
    W 9a 08 20
    西9a 09 80
    #时钟错误禁用/启用
    W9a 04 40.
    # GPIO 配置
    W 9a 21 B2
    #通道1配置
    w 9a 3c 20.
    #通道2配置
    W 9a 41 20
    #通道3配置
    西9a 46 20.
    #通道4配置
    W 9a 4b 20.
    #通道输入/输出配置
    W 9a 74 f0
    我的心82.
    # M 分频器已启用、具有分频器值
    w 9a 1f c0

    器件#2

    #校验和0
    #由 ADCx140EVM-SW v3.0.5生成
    # TLV320ADC5140器件配置
    #------------------
    #重置
    #------------------
    #选择第0页
    W 98 00 00
    #重置设备
    W 9801 01.
    延迟为# 1ms
    #------------------
    #开始设备内存
    #------------------
    #第0页(0x00)转储
    #选择第0页
    W 98 00 00
    #唤醒并启用 AREG
    W 98 02 81.
    # ASI 配置
    西98 07 31.
    西98 09 80
    #时钟错误禁用/启用
    W 98 04 40.
    #通道1配置
    w 98 3c 20.
    #通道2配置
    W 98 41 20
    #通道3配置
    西9846 20.
    #通道4配置
    W 98 4b 20.
    #通道输入/输出配置
    W 98 73 c0
    W 98 74 c0
    我的心82.
    # M 分频器已启用、具有分频器值
    w 98 1f c0

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

    尊敬的 Kevin:

    在第一个脚本中、您没有写入寄存器0x73和0x75以启用 ADC 通道。 此外、请写入寄存器0x0B:0x0E 以配置每个器件的输出数据时隙位置。 为设备1配置的插槽位置不应与设备2的插槽位置相冲突。

    要排除故障、请分别验证每个设备的音频录制。 通过探测 SDOUT 引脚并注意 FSYNC 脉冲后数据所在的位置、可以在不使用数字音频分析仪的情况下大致看到时隙位置。 然后、对于连接在一起的所有通道、在硬件中将 TDM 总线连接在一起。

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

    您好、Daveon:

    脚本是根据屏幕截图中显示的配置生成的-您同意哪个是正确的? 鉴于屏幕截图显示的是适当的配置、为什么生成的 I2C 配置显示不匹配、即通道未启用和插槽未正确配置?

    我同意故障排除技术、但我不理解的是为什么软件一开始无法生成正确的配置?

    e2e.ti.com/.../untitled2.mp4

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

    生成的配置脚本是正确的、但缺少几个可能保留为默认值的寄存器

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

    我将绕回这一步、因为即使在缺少寄存器的情况下、仍然无法使其正常工作。

    我现在尝试只从一个 ADC 获取4个通道(菊花链未启用)、但这似乎只产生与之前相同的2个通道。



    上面的屏幕截图显示、左通道中只有一个时隙、右通道中只有一个时隙、但寄存器已正确配置:

    我现在唯一的想法是、I2S 外设的 Linux 驱动程序未配置为在 I2S 模式下支持每个通道多个时隙

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

    尊敬的 Kevin:

    提供了哪些时钟频率? 我怀疑这个比率可能仅支持传统的2通道 I2S、但有助于确认。

    此外、通过写入"ff"来启用寄存器0x74中的所有8个通道。 这会有什么变化吗?

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

    经过进一步挖掘后、问题在于主器件(Raspberry Pi CM5)仅支持2通道 I2S、WS 信号的占空比为50:50。

    返回到绘图板。

    感谢您的帮助。