Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:6
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:10
Форум » starterkit.ru » Embedded Linux
Помогите настроить два экрана lvds 1366x768 imx6dl
bl
Добавлено 18.06.2019 06:30 Редактировалось 18.06.2019 08:17
0
Сообщение: 1
bl
5

Пункты: 1286
Регистрация: 27.03.2019
Здравствуйте.

В общем мои попытки настроить два экрана не увенчались успехом.

Сначала я просто выставил разрешение и тайминги в dtsi. Оба экрана были разделены горизонтальной полосой и, как я понял сверху показывался один фреймбуфер, снизу другой.

Видимо это было следствие split-mode. Поставил dual-mode, и теперь на обоих матрицах одна и таже картинка с fb0, а fb1 ничего не отображает. Помимо этого на изображении наблюдается какая-то рябь. Цветопередача на глаз вроде в норме. Но местами присутствует рябь, сверху матрицы больше, а снизу меньше. Чуть меньше половины изображения. И рябь на матрицах отличается, на одной сильнее чем на другой. Причем в split-mode рябь тоже есть, но ее глазом почти не видно и присутствует только на одной матрице.

Я насколько понимаю это две разные проблемы. 1 Сделать вывод на две матрицы независимо. 2. Сделать изображение четким, избавится от ряби.

Подскажите пожалуйста направление куда копать, или какой мануал курить.

Цитата

BR2_PACKAGE_FB0_LBD_LDB_XGA=y
BR2_PACKAGE_FB1_LBD_LDB_XGA=y


# fbset -fb /dev/fb0
Цитата


mode "1360x768-60"
# D: 78.003 MHz, H: 48.752 kHz, V: 60.337 Hz
geometry 1360 768 1360 768 16
timings 12820 100 100 15 15 40 10
rgba 5/11,6/5,5/0,0/0
endmode





# fbset -fb /dev/fb1
Цитата


mode "240x320-60"
# D: 78.003 MHz, H: 48.752 kHz, V: 60.337 Hz
geometry 240 320 240 960 16
timings 12820 1220 100 15 463 40 10
rgba 5/11,6/5,5/0,0/0
endmode




DTSI "imx6qdl-lvds-1024x768-1024x768.dtsi" в этот файл внес правки
Цитата

&ldb {
status = "okay";
dual-mode;

lvds-channel@0 {
fsl,data-mapping = "spwg";
fsl,data-width = <24>;
primary;
status = "okay";

display-timings {
native-mode = <&timing0>;
timing0: hsd100pxn1 {
clock-frequency = <78000000>;
hactive = <1360>;
vactive = <768>;
hback-porch = <100>;
hfront-porch = <100>;
vback-porch = <15>;
vfront-porch = <15>;
hsync-len = <40>;
vsync-len = <10>;
};
};
};

lvds-channel@1 {
fsl,data-mapping = "spwg";
fsl,data-width = <24>;
status = "okay";

display-timings {
native-mode = <&timing1>;
timing1: hsd100pxn1 {
clock-frequency = <78000000>;
hactive = <1360>;
vactive = <768>;
hback-porch = <100>;
hfront-porch = <100>;
vback-porch = <15>;
vfront-porch = <15>;
hsync-len = <40>;
vsync-len = <10>;
};
};
};
};
Спуститься к концу Подняться к началу
Персональная информация
bl
Добавлено 18.06.2019 09:09 Редактировалось 18.06.2019 09:11 Сообщение: 2
bl
5

Пункты: 1286
Регистрация: 27.03.2019
выключаем dual-mode, выключаем split-mode
и все работает только /dev/fb2 вместо /dev/fb1
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 18.06.2019 09:28 Сообщение: 3
sasamy
4.71

Пункты: 83540
Регистрация: 14.08.2009
Цитата
выключаем dual-mode, выключаем split-mode
и все работает


по умолчанию separate mode - для каждого экрана свой fb

https://blog.emtrion.de/en/details/lvds-on-i-mx6.html

Цитата


Single Mode: only one LVDS channel is used (LVDS0 or LVDS1)
Dual Mode: one image stream is duplicated to both channels (LVDS0 = LVDS1)
Separate Mode: LVDS0 and LVDS1 are used to output different image streams. That’s the default setting to support multiple displays with different contents.
Split Mode: one image stream is split to both LVDS channels to get a high bandwidth for high resolution displays.


Цитата

только /dev/fb2 вместо /dev/fb1


все верно, fb1 это оверлей для fb0. Второй экран по умолчнию отключен, чтобы включить

echo "0" > /sys/class/graphics/fb2/blank

Цитата

2. Сделать изображение четким, избавится от ряби.


попробуйте добавить в dtsi

&clks {
assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
<&clks IMX6QDL_CLK_LDB_DI1_SEL>;
assigned-clock-parents = <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
<&clks IMX6QDL_CLK_PLL2_PFD0_352M>;
};
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux