主题中讨论的其他器件: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