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.

[参考译文] DS90UB948-Q1:通过 UB947将 I2S 从 Raspberry PI 发送到 UB948时出现问题

Guru**** 2487425 points
Other Parts Discussed in Thread: TLV320DAC3100

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/1416408/ds90ub948-q1-problems-sending-i2s-from-rasperry-pi-to-ub948-via-ub947

器件型号:DS90UB948-Q1
主题中讨论的其他器件:TLV320DAC3100

工具与软件:

大家好!

发送由 Raspberry Pi 创建的从 DS90UB947到 DS90UB948的 I2S 数据时遇到问题。 最终、数据将从 UB948发送到 TLV320DAC3100、但目前我只在 UB948的引脚处进行测量。 有关各种连接、请参阅下面的。

我目前的问题是、只有 I2S_CLK 到达 UB948、I2S_WC 和 I2S_DA、在向 UB947 (CLK 1.5 MHz)施加44.1kHz、16位立体声信号时、始终保持不变。

我的设置有几种说明:

UB948和 TLV320DAC3100位于客户硬件内部、而硬件是我最终需要测试的器件(UUT)。

该测试台配备了 Göpel VideoDragon GCAR9222 (www.goepel.com/.../lvds) 、用作 HIL 测试仪。 我已经可以在 UUT 上显示图像、并通过 I2C 与 UB948和连接的设备进行通信。

由于 VideoDragon 无法生成 I2S 信号、因此决定使用 Raspberry Pi 创建这些信号。 它的 I2S 引脚连接至 VideoDragon 的外部接口、从此处(据说)将它们路由到 UB947、后者(据说)会将它们发送到 UB948。 由于无法找到 UB947的针脚、因此我需要依赖 VideoDragon 的 DE 固件。 但是、我已经通过从 Raspberry 创建静态信号并将 UB947引脚配置为 GPIO 输入来验证路由。 测试、一切看起来都正常。

我的连接如下:

RPI 引脚12 (bck)-> VideoDragon -> UB947引脚35 (I2S_CLK)-> UB948引脚13 (I2S_CLK)
RPI 引脚35 (LRCK)-> VideoDragon -> UB947引脚34 (I2S_WC)-> UB948引脚14 (I2S_WC)
RPI 引脚40 (DOUT)-> VideoDragon -> UB947引脚36 (I2S_DA)-> UB948引脚12 (I2S_DA)

来自 Raspberry 的信号:

我尝试了44.1kHz 和48kHz、16位 PCM。 我目前还没有设法输出任何其他频率-需要首先进行调查。 但根据 UB947数据表、应该允许这样做吗?
我知道树莓不能产生精确的频率,这可能是一个问题吗?


我还没有在 UB947或 UB948中设置任何 I2S 专用寄存器:根据我的理解、默认值应该直接将 I2S 转发到解串器?
从原理图中可以看到、UB948设置为 MODE_SEL0=2、MODE_SEL1=0。 我无法访问 VideoDragon 上的动画、因此我无法告诉 UB947。
UB947被设置为单 OLDI (请参阅下面的寄存器)。


这是我 Göpel 设置的寄存器值(我得到了 μ S 的一些帮助、因此我不确定是否理解这里的每项设置):

UB947:
0x03 0xDA
0x07 0x0C
0x08 0x00
0x17 0xDA
0x18 0x19
0x19 0x2F
0x4F 0x40
0x0D 0x23
0x0E 0x03
0x0F 0x03


UB948:
0x02 0xF0
0x07 0x34
0x1D 0x15
0x1E 0x35
0x1F 0x05
0x22 0x00
0x3B 0x1F
0x43 0x06
0x49 0x62
0x59 0x3F
0xA2 0x7D


我想说的是,我实际上是一个测试系统的开发人员,没有太多的经验 I2S (或 LVDS 在这件事),我只是被雇用来集成测试系统的 VideoDRAGON ,所以我很抱歉,如果任何关键的信息在这里丢失了。

提前感谢您
Oliver Nittka

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

    尊敬的 Oliver:

    我将开始为您研究这一问题、感谢您迄今为止提供的所有这些信息。  

    [报价 userid="624031" url="~/support/interface-group/interface/f/interface-forum/1416408/ds90ub948-q1-problems-sending-i2s-from-rasperry-pi-to-ub948-via-ub947 ]]我尝试了44.1kHz 和48kHz、16位 PCM[/QUOT]

    相关的 I2S CLK 频率分别为1.411 MHz 和1.536 MHz。 您是否知道 在选择44.1kHz 和48kHz 采样率时、Raspberry Pi 的频率与这些值有多接近?

    [报价 userid="624031" url="~/support/interface-group/interface/f/interface-forum/1416408/ds90ub948-q1-problems-sending-i2s-from-rasperry-pi-to-ub948-via-ub947 "]这些是我正在设置的寄存器值(我从 Göpel 获得了一些帮助、因此不确定我是否理解这里的每一项设置):[/QUOT]

    我将检查您当前的配置、以查看它们是否与 I2S 设置的功能匹配。

    如果您发现任何有关调查的更多信息、请随时根据需要更新此主题。

    谢谢!

    Miguel

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

    尊敬的 Oliver:

    在检查寄存器配置后、我在947中找到以下说明:

    \\=/==\\=/=\\=/=\\=/=\\=/=\\=/=\\=/=\\=/=\\=/=\\=/=\\\=/=\\\=/=\\\

    0x03 = 0xDA -> 1101 1010

    • 启用 CRC
    • 保留
    • 禁用 I2C 远程写入
    • 为 HS 与 DE 启用滤波
    • I2C 直通模式
    • 保留
    • 在没有 PCLK 的情况下、为内部振荡器启用自动切换
    • 保留

    0x07 = 0x0C -> 0000 1100
    目标器件的7位地址设置为0x0C

    • 是否设置 DES ID? 这将是寄存器 0x06 = 0x58

    0x08 = 0x00 -> 0000 0000

    • 未为目标设备设置别名

    0x17 = 0xDA -> 1101 1010

    • I2C 全通已启用、串行器目标 ID 无关紧要
    • SDA 保持时间101 = 5 * 40 = 200ns
    • I2C 干扰滤波器1010 = 10 * 5 = 50ns

    0x18 = 0x19 -> 0001 1001

    • SCL 高电平时间=(25 + 5)* 40ns = 1200ns (1.2us)

    0x19 = 0x2F -> 0010 1111

    • SCL 低电平时间=(47 + 5)* 40ns = 2080 ns (2.08us)

    0x4F = 0x40 -> 0100 0000

    • SPWG 映射
    • 单像素接收器模式
    • OLDI 端口是默认端口
    • 保留
    • 默认

    0x0D = 0x23 -> 0010 0011 (GPIO 配置)

    • 生产器件
    • 输出低电平(默认)
    • GPIO mode = 011 = GPIO 模式输入

    0x0E = 0x03 -> 0000 0011

    • 输出低电平(默认)
    • GPIO 2 MODE = 000 =功能输入模式
    • GPIO 1 MODE = 011 = GPIO 模式输入

    0x0F = 0x03 -> 0000 0011

    • 保留
    • GPIO 3 MODE = 011 GPIO 模式输入

    \\=/==\\=/=\\=/=\\=/=\\=/=\\=/=\\=/=\\=/=\\=/=\\=/=\\\=/=\\\=/=\\\

    有些寄存器可能尚未在 SER 端进行配置:

    对于数据岛音频:

    • 0x04
    • 0x12
    • 0x1A
    • 0x54

    对于 FC GPIO 音频:

    • 0x12
    • 0x1A
    • 0x54

    请参阅以下线程以了解更多上下文:

    (11)[常见问题解答] DS90UH941AS-Q1:如何配置 FPD-Link III 94x 音频-接口论坛-接口- TI E2E 支持论坛

    在该主题中、"配置串行器后、连接的解串器不需要关于音频的任何额外设置。"

    这样、可对照建议的 I2S 设置对 GPIO 进行仔细检查。 我看到 GPIO 0-3已编程、但 I2S 配置的长度范围是 GPIO 2-7 (不包括4个)。

    请告诉我您对此有何想法!

    此致!

    Miguel