主题中讨论的其他器件:SN65DSI83
您好!
我们目前正在致力于将我们的系统与连接到 IMX8MM 芯片的 TI SN65DSI83 LVDS 芯片和 Orient Display LVDS 屏幕进行集成。 我们之所以能够保持警惕、是因为我们面临许多不稳定问题、导致屏幕上出现图形干扰。
我的系统的图形链可总结如下:
IMX8MM (mipi-DSI)<-->(mipi-DSI) TI-SN65DSI83 (LVDS)<-->(LVDS)东方显示 AFY1280800A1
在软件方面、我们使用自定义 Yocto 发行版、它使用 Linux 内核版本5.10.35和主线 SN65DSI83 Linux 驱动程序、我们在第一个初始提交发行版中从5.15内核向后移植。 我们还使用了 Orient Display 提供的面板定时:

主要问题是、当我们使用典型的面板计时值测试系统时、屏幕异常并发出很多干扰。 毛刺脉冲出现在由 Linux 生成的图像中、并随机出现在 LVDS 测试图案上:
目前、我们有一种权变措施、即使用定制面板时序值(典型值和最大值的组合)来提供稳定的屏幕、而根本没有干扰。 这些值是:
时钟频率= 78MHz
HSYNC 脉冲= 40
后沿= 48
前沿= 102
vsync-len = 20
垂直后沿= 3
垂直前沿= 10
但是、如前所述、这是一种权变措施、我们想使用 Orient Display 中的典型面板时序值。
以下是到目前为止我们所做的全部调查:
在 IMX8MM 上:
已检查 MIPI-DSI 信号
-->信号正常;频率正常,与 SN65DSI83寄存器配置的相同。
在 Linux 上:
已检查 DTS
-->反编译 DTB 表明我们正在使用我们在 DTSI 中设置的面板计时值,这些值是正确的值。
-->驱动程序未报告错误,但显示以下警告:
"不支持的 LVDS 总线格式0x100a、请检查输出桥接驱动器。 回到 SPWG24。"
无论我们处于工作状态还是不稳定状态、都会始终打印此警告。
递增的驱动程序版本
-->在最新版本上进行测试,在典型值下不影响稳定性
在 Orient Display (东方显示)屏幕上:
已测试其他硬件上的面板时序
--> Orient Display 已在测试台上对面板计时进行了重新测试,未出现任何问题。
在 SN65DSI83上:
已检查初始化序列
-->通过示波器,我们已确认 SN65DSI83驱动程序符合数据表中描述的初始化序列。
已检查 IRQ 寄存器
-->错误寄存器中没有报告错误(0xE5)
将 I2C 寄存器配置与使用 DSI-TOOLS 软件生成的寄存器配置进行了比较
--> I2C 寄存器按预期配置。
最后、LVDS 面板和 SN65DSI83在我们的 DTS 中定义如下:
panel{
status = "okay";
compatible = "panel-lvds";
width-mm = <217>;
height-mm = <136>;
data-mapping = "vesa-24";
panel-timing {
clock-frequency = <72400000>;
hactive = <1280>;
vactive = <800>;
hsync-len = <40>;
hback-porch = <48>;
hfront-porch = <72>;
vsync-len = <20>;
vback-porch = <3>;
vfront-porch = <15>;
};
port {
panel_in: endpoint {
remote-endpoint = <&sn65dsi83_out>;
};
};
};
pinctrl_lvds: lvdsgrp {
fsl,pins = <
MX8MM_IOMUXC_SAI2_MCLK_GPIO4_IO26 0x15
>;
};
&i2c3 {
status = "okay";
mipi_bridge: bridge@2c {
compatible = "ti,sn65dsi83";
reg = <0x2c>;
status = "okay";
enable-gpios = <&gpio4 26 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_lvds>;
ti,dsi-lanes = <4>;
ti,lvds-format = <2>;
ti,lvds-bpp = <24>;
ti,width-mm = <217>;
ti,height-mm = <136>;
ports {
port@0 {
reg = <0>;
sn65dsi83_in: endpoint {
remote-endpoint = <&mipi_dsi_out>;
data-lanes = <1 2 3 4>;
};
};
port@2 {
reg = <2>;
sn65dsi83_out: endpoint {
remote-endpoint = <&panel_in>;
};
};
};
};
};我们乐于接受任何解决我们问题的建议。 我们的目标是使用典型的面板时序值而不会造成不稳定。
提前感谢您的回答。
祝您
P·L·G·德克尔尼松