Other Parts Discussed in Thread: AM62P
部件号: AM62P
摘要
我们将基于 Variscite VAR-VAR-AM62P 构建 VR 耳机产品 SOM。 我们需要驱动 三个独立显示器 同时:
- DSS1→DSI :一个 568×1232 GUI 触摸屏(RM69A10 面板)— 正常工作
- DSS0→OLDI TX0 :一个 720×720 JDI MIPI 面板通过龙腾 LT9211. LVDS 至 MIPI 桥接器— 正常工作
- DSS0→OLDI TX1 :一个 720×720 JDI MIPI 面板通过龙腾 LT9211. LVDS 至 MIPI 桥接器— 不工作
必须显示两个 VR 面板 独立 图像(左眼图/右眼图)、每个 720 @ 720×60Hz。
克隆模式工作正常 :我们首先使用 OLDI 克隆模式 (ti,oldi-mode = <3>) 验证整个硬件链、该模式成功驱动具有相同 720×720 映像的两个面板。 这证实了 LT9211 桥接器、MIPI 链路和两个 JDI 面板均可完全正常工作。 这个问题特定于双链路模式、在该模式下、我们需要在每个面板上提供独立内容。
DSS1 已用于 DSI 面板、因此两个 OLDI 输出都必须来自 DSS0。 我们一直在尝试使用 双链路 OLDI 模式 在软件中具有 1440×720 帧缓冲区和偶数/奇数像素列交错 (LVGL)。
硬件设置
AM62Px DSS0 VP1 (1440×720 @ 79.272 MHz)
+-- OLDI TX0 (lanes A0-A3 + CLK0) → LT9211 #1 (I2C bus 0) → MIPI → JDI Left panel
+-- OLDI TX1 (lanes A4-A7 + CLK1) → LT9211 #2 (I2C bus 1) → MIPI → JDI Right panel
每个 LT9211 桥接器在其端口 A 上接收单链路 LVDS 输入并将其转换为 MIPI DSI 输出以驱动 JDI 面板。 LT9211 未设置为双链路模式 LVDS 接收器—它需要一个具有嵌入式 HSYNC、VSYNC 和 DE 的标准单链路 LVDS 信号。
当前 OLDI 配置
我们使用标准tidss_oldi桥接驱动器(未修改)、具有以下 DTS:
&oldi0_dss0 {
status = "okay";
};
&oldi1_dss0 {
status = "okay";
};
panel-lvdsdual-lvds-even-pixelsdual-lvds-odd-pixels根据 TI 参考重叠 (k3-am62p5-sk-microtips-mf101hie-panel.dtso)、一个节点在两个 OLDI 输出端口上声明 1440×720 时序和/。
驱动程序正确写入 OLDI_CFG = 0x198B (ENABLE | JEIDA_24 | BIT (3)| DEPOL | MSB | DUALMODESYNC | SOFTRST)、通过确认devmem2 0x3020a160。
工作原理
- 左侧面板 (OLDI TX0) :正确显示。 LT9211 检测到有效计时:
sync=0x00 h: 120/20/40/720/900 v: 8/2/4/720/734—Perfect 720×720 @ 60Hz。 - OLDI_CFG 是否正确设置为双链路模式 (0x198B)。
- 两个 LT9211 芯片通过 Y 型电缆从 CLK0 接收相同的 LVDS 像素时钟 (~39.6MHz )(参见下面的时钟问题)。
- 两个 LT9211 芯片都将其 RX PLL 锁定在 LVDS 时钟上。
- 右侧 LT9211 可正确检测
hact = 720(水平有效像素)。
哪些不起作用
。 右侧面板 (OLDI TX1) 保持黑色。 右侧的 LT9211 在通道 A4-A7 上接收像素数据、但是 无法检测有效的 HSYNC、VSYNC 或 DE 信号 。 视频时序检测始终报告:
sync=0x0A h: 3376/0/4095/720/65535 v: 1/0/255/0/0
水平活动计数 (720) 正确、但所有垂直时序值都是随机/无效的。 无论以下情况如何、都会发生这种情况:
- 硬件复位时序(我们使用双通 INIT 尝试了专用复位 GPIO)
- 仅取消同步模式(寄存器
RGD_HV_SYNC_SEL0xD81F 中的位) - SYNC 极性配置
- LVDS RX 逻辑复位
我们的结论 :在双链路 OLDI 模式下、TX1 通道 (A4-A7) 携带偶数像素数据、但确实如此 不会 传输标准单链路 LVDS 接收器可以解码的有效嵌入式 HSYNC/VSYNC/DE。 LT9211 专为标准单链路 LVDS 输入而设计、无法从双链路辅助通道重建时序。
向 TI 提问
1.双链路模式下 TX1 上的 SYNC 信号
在双链路 OLDI 模式下 (OLDI_CFG = 0x198B、设置 DUALMODESYNC)、 在 TX0 和 TX1 输出上是否都复制了 HSYNC、VSYNC 和 DE? 还是仅存在于 TX0 上?
LT9211 桥接芯片只能解码标准的单链路 LVDS 信号。 如果没有在 TX1 上复制 SYNC 信号、则会说明我们的右桥接器无法同步的原因。
是否有一个无文档记载的寄存器或配置位在双链路模式下强制在两个 OLDI 输出上进行同步信号复制?
2.双单链路独立模式
AM62Px 文档提到了对的支持 “与 2× OLDI 单链路无关“ 配置。 我们希望使用此模式驱动 DSS0 完全独立的两台 720×720 显示器。
然而,自 DSS1 已用于 DSI 面板 我们需要两个 OLDI 输出都来自 DSS0。 当前的tidss_oldi驱动程序似乎仅支持:
- 单链路(一个 OLDI TX)
- 克隆(两者上具有相同的映像)
- 双链路(像素交错,用于一个宽面板)
是否可以将 DSS0 配置为在 TX0 和 TX1 上同时输出两个独立的单链路 OLDI 流? 如果是、如何实现? 这是否需要 DSS0 中的两个单独的视频流水线 (VP1 和 VP2)、或者单个 VP 是否可以驱动两个具有不同内容的 OLDI TX?
3.双链路模式下的 CLK1 输出
在双链路模式下、我们观察到了这一点 CLK1 不可用 —与 CLK0 相比、它看起来已取消相位/无效。 我们目前使用 CLK0 的 Y 型电缆为两个 LT9211 桥供电。
CLK1 是否应该在双链路模式下承载有效的像素时钟? 如果是、是否有启用它的寄存器配置? Y 型电缆权变措施可以正常工作、但不适用于生产设计。
4、替代方法建议
鉴于我们的约束条件(3 个显示器、即用于 DSI 的 DSS1、需要在两个 OLDI 输出端实现独立的图像)、我们是否可能错过了一种推荐的方法? 我们可以:
- Tidss 驱动程序公开内容之外的寄存器级配置
- 不同的 OLDI 模式
- AM62Px DSS0 的任何硬件功能可能有所帮助
存在许多风险
- 配置 : AM62P5 (Variscite VAR- SOM - AM62P)
- 内核 : 6.12.17 (TI/Variscite SDK)
- OLDI 桥接驱动器 :
tidss_oldi.c(上游,未修改) - LVDS 至 MIPI 桥接器 : Lontium LT9211(两个芯片,每个面板一个)
- 控制面板 :JDI 720×720 MIPI DSI(2 个数据通道+ 1 个时钟通道)、60 Hz
- GUI 面板 :RM69A10 568×1232 DSS1 上的 MIPI DSI
感谢您对这些问题的指导。