工具/软件:
大家好。
我们遇到了 LCD 同步问题、该问题会导致 LVDS LCD 屏幕上出现 LCD 闪烁或无视频、具体取决于显示时序配置。
此应用将 MIPI-DSI 信号从 i.MX 8M Mini 处理器转换为 VAR-LVDS-MX8M-mini SOM SOM 上的 SN65DSI84 LVDS 桥接器。 它支持某些 LCD 显示屏、但我们无法以与设备树精确匹配的方式配置接口。
I2C 寄存器均根据给定的器件树面板部分进行验证。 测试图形仅通过设置 CHA_TEST_PATTERN (任何其他寄存器在驱动探针阶段配置)即可正常运行、而不会出现任何问题。
该应用使用单个 DSI 通道、4个通道和单个 LVDS 输出 RGB888。
我们已经在 SOC 制造商论坛上寻求有关 MIPI-DSI 端配置的帮助。 但在这里,我们希望得到一些关于什么可能导致问题的桥梁方面的建议。
LCD 是一款1280x800px、在72.4MHz 设置了像素时钟。
寄存器设置
- ACTIVE_LINE_LENGTH:1280/0x500
- 垂直显示尺寸:800/0x320
- SYNC_DELAY:33 / 0x21
- HSYNC_PULSE_WIDTH:40 / 0x28
- VSYNC_PULSE_WIDTH:15/0x0F
- Horizontal_back_genc沿:40/0x28
- vertical_back_genc沿:14 / 0x0E
- Horizont_front_encrypt:80/0x50
- vertical_front_encrypt:9/0x09
这是 I2C 转储:
~#i2cdump -y -f 0 0x2c No size specified (using byte-data access) 0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef 00: 35 38 49 53 44 20 20 20 01 00 85 10 00 01 00 00 58ISD ?.??.?.. 10: 26 00 2c 00 00 00 00 00 18 05 03 00 00 00 00 00 &.,.....???..... 20: 00 05 00 00 20 03 00 00 21 00 00 00 28 00 00 00 .?.. ?..!...(... 30: 0f 00 00 00 28 00 0e 00 50 00 09 00 00 00 00 00 ?...(.?.P.?.....
DSI 调谐器与器件树中的配置相匹配、但我们要尝试找到有关驱动器自动生成但时钟树中不会报告的 MIPI-DSI 时钟的信息。
我们对 LVDS 信号进行解串、并发现:
- LVDS 时钟与像素时钟频率完全匹配
- 水平和垂直脉冲宽度与 DT 中的配置相同
- 水平和垂直后沿时序与垂直前沿一起按照配置进行配置
- 即使某些配置正常工作、水平前沿时序也不会被考虑在内、这是因为输出在 LCD 容差范围内。
- 通过略微更改配置(基本上是 LCD 时钟或其他一些时序、但仍在 LCD 容差范围内)、我们会遇到不可预测的 LCD 信号变化、直到 VSYNC 脉冲完全消失。
例如、在下图中、蓝线(C2)是 DE 信号、而红色(C3)是 HSYNC。
HFP 已编程为48、HBP 编程为80。 HBP 得到尊重、而我们测量 HFP 是大约135个像素时钟而不是48个像素时钟。
由于 Linux 驱动程序负责配置 LVDS 和 MIPI-DSI 时序、我们恳请您询问是否有人遇到过相同的问题、或者您是否有关于导致问题的提示或我们应该调查的地方。