LINUX.ORG.RU

Расчет таймингов для DSI дисплея

 , ,


0

1

Здравствуйте. Имеется следующая проблема. Использую STM32MP157c микроконтроллер. К нему подключен бридж Toshiba tc358768 LTDC to MIPI DSI, с кварцем 24МГц. К Toshiba подключен дисплей BZ101IICD1S 800x1280. Установил тайминги от похожего дисплея 720x1280. Вроде все хорошо, но по краям немного мерцает изображение (полоска в несколько пикселей). Но все изображение немного сдвинуто направо (левая обрезанная часть идет справа) и низ изображения находится на самом верху. Сказали что тайминги нужны другие. Есть даташит на этот экран с графиками таймингов (наверное), но к сожалению я вообще ничего из них не понял. Как правильно по графикам рассчитать эти тайминги? Или может дело в чем-то другом.

PS Нашел еще сайт по расчету таймингов. Вбил туда свои параметры. Выбрал CVT (были еще CVT-RB и CVT-RB2), но изображение никуда не переместилось, но начало мерцать и через modetest частота была рассчитана как 39.

static const struct drm_display_mode default_mode_osd101t2587 = {
	.clock = 54000,
	.hdisplay = 800,
	.hsync_start = 800 + 16,
	.hsync_end = 800 + 16 + 11,
	.htotal = 800 + 16 + 11 + 5,
	.vdisplay = 1280,
	.vsync_start = 1280 + 16,
	.vsync_end = 1280 + 16 + 11,
	.vtotal = 1280 + 16 + 11 + 5,
	.flags = DRM_MODE_FLAG_NHSYNC | DRM_MODE_FLAG_NVSYNC,
};

static int osd101t2587_panel_get_modes(struct drm_panel *panel,
				       struct drm_connector *connector)
{
	struct osd101t2587_panel *osd101t2587 = ti_osd_panel(panel);
	struct drm_display_mode *mode;

	printk( "%s 1\n", __func__ );
	mode = drm_mode_duplicate(connector->dev, osd101t2587->default_mode);
	if (!mode) {
		dev_err(panel->dev, "failed to add mode %ux%ux@%u\n",
			osd101t2587->default_mode->hdisplay,
			osd101t2587->default_mode->vdisplay,
			drm_mode_vrefresh(osd101t2587->default_mode));
		return -ENOMEM;
	}

	printk( "%s 2\n", __func__ );
	drm_mode_set_name(mode);

	drm_mode_probed_add(connector, mode);

	connector->display_info.width_mm = 142;
	connector->display_info.height_mm = 229;

	return 1;
}
kiruseni
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.