Modetest LCD 输出在新 LCD 实现上并不相同

Modetest LCD 输出在新 LCD 实现上并不相同

我一直在为我的 Acqua “System On Module” 实现一个定制的 10.1 英寸 LCD 屏幕(运行SAMA5D36不幸的是,我使用 Microchip MPU 进行实验,但没有得到任何好的结果。

我面临的问题是,我的 Modetest 输出没有给出预期的输出。我期望的输出如下:

预期输出模式测试

但我得到的却是:

接收输出模式测试

与电路板配套提供的 LCD 屏幕是 5 英寸 LCD 屏幕,当我连接此 LCD 屏幕时,一切似乎都运行良好,模式测试看起来符合预期。但当我连接具有不同分辨率的 10.1 英寸 LCD 屏幕时,它不再工作。

我已做出改变以从 5 英寸过渡到 10.1 英寸 LCD(不同分辨率)

  • 检查连接是否兼容
  • 更改设备树中的时钟频率和显示时间以匹配新的显示。

我们通过构建适合 5 英寸显示屏的内核,然后编辑所有时序参数以适合 10.1 英寸显示屏,从而更改了频率和显示时序。我们编辑这些参数的部分如下:

panel-simple.c
static const struct drm_display_mode acme_50inch_mode = {
    .clock = 33300,
    .hdisplay = 800,
    .hsync_start = 800 + 1,
    .hsync_end = 800 + 1 + 64,
    .htotal = 800 + 1 + 64 + 64,
    .vdisplay = 480,
    .vsync_start = 480 + 1,
    .vsync_end = 480 + 1 + 23,
    .vtotal = 480 + 1 + 23 + 22,
    .vrefresh = 60,
    .flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
};

我感觉我的内核缺少了一些东西,或者我忽略了某个仍需要更改的参数。

有谁知道我缺少什么信息来驱动定制 LCD?

答案1

您的显示管道正在根据您在面板驱动程序中配置的高度宽度、左右和上/下边距生成数据。如果这些参数中的任何一个有误,您将永远无法在显示屏上获得正确的输出。您应该参考 10.1 英寸面板数据表并更新这些变量,即使有时您也需要调整这些变量以适应屏幕图像。

相关内容