Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru
Партнеры:
otladka.com.ua - г.Киев

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

User Info


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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Вспомогательные средства
uDisp, настройка режима работы
Artemius
Добавлено 19.10.2010 00:37 Редактировалось 19.10.2010 00:41 Сообщение: 11
Artemius
0

Пункты: 3655
Регистрация: 02.12.2009
Цитата
нужно разробраться, как коректно иницилизировать контроллер дисплея в режим RGB8 и проверить что пины сконфигурированы верно.

Пины настраивал так (в stmp378x_devb.c):
Код
{
{ PINID_LCD_D00, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_D01, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_D02, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_D03, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_D04, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_D05, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_D06, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_D07, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_RESET, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_VSYNC, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_HSYNC, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_ENABLE, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
{ PINID_LCD_DOTCK, PIN_FUN1, PIN_8MA, PIN_3_3V, 0 },
};


Для восьмиразрядного режима менял в макросе setup_dotclk_panel:
Код
stmp3xxx_setl(BF(1, LCDIF_CTRL_WORD_LENGTH) | /* 8 bit */
BM_LCDIF_CTRL_DATA_SELECT | /* data mode */
BF(0, LCDIF_CTRL_INPUT_DATA_SWIZZLE) | /* no swap */
BF(1, LCDIF_CTRL_LCD_DATABUS_WIDTH), /* 8 bit */
REGS_LCDIF_BASE + HW_LCDIF_CTRL);

DOTCLK_H_ACTIVE для RGB565 увеличивал в два раза, для 18-бит надо в три.

Кстати, может оказаться, что этот контроллер в RGB режиме нужно обязательно через SPI настраивать. Мой PH320240T без этого обходился.
Спуститься к концу Подняться к началу
Персональная информация
ivan1180
Добавлено 19.10.2010 01:26 Сообщение: 12
ivan1180
0

Пункты: 451
Регистрация: 15.10.2010
[quote]

Для восьмиразрядного режима менял в макросе setup_dotclk_panel:
Код
stmp3xxx_setl(BF(1, LCDIF_CTRL_WORD_LENGTH) | /* 8 bit */
BM_LCDIF_CTRL_DATA_SELECT | /* data mode */
BF(0, LCDIF_CTRL_INPUT_DATA_SWIZZLE) | /* no swap */
BF(1, LCDIF_CTRL_LCD_DATABUS_WIDTH), /* 8 bit */
REGS_LCDIF_BASE + HW_LCDIF_CTRL);

DOTCLK_H_ACTIVE для RGB565 увеличивал в два раза, для 18-бит надо в три.

Кстати, может оказаться, что этот контроллер в RGB режиме нужно обязательно через SPI настраивать. Мой PH320240T без этого обходился.[/quote]

Спасибо.

Цитата

Для восьмиразрядного режима менял в макросе setup_dotclk_panel:

В файле 'lcd_hx8238a.c' ?
Спуститься к концу Подняться к началу
Персональная информация
ivan1180
Добавлено 20.10.2010 13:31 Редактировалось 20.10.2010 13:33 Сообщение: 13
ivan1180
0

Пункты: 451
Регистрация: 15.10.2010
Для подключения uDisp в режиме dot panel tft требует инициализации по SPI интерфейсу; попробовал существующий драйвер, на дисплей пошли данные он даже не взмаргивал.

Сейчас я изменил существующий драйвер, добавил туда инициализацию дисплея; пока оставил режим 24bpp с упаковкой в 8:8:8, соответственно получил неверную картинку по цветам, но пингвина уже видно.

Для меня осталось разобраться, как настроить драйвер в режим 5:6:5 16bpp. Из документации на процессор это не очевидно, а fb драйвер "размазан" по 5 файлам.

Пока подтверждается что :
1. Маркировка на обратной стороне uDisp выполнена неверно, биты указы "зеркально"
2. Документация на дисплей не соответствует документации на контроллер дисплея и тоже неверна, нужно руководствоваться именно документацией на контроллер.
Спуститься к концу Подняться к началу
Персональная информация
Artemius
Добавлено 20.10.2010 23:14 Сообщение: 14
Artemius
0

Пункты: 3655
Регистрация: 02.12.2009
Цитата
пока оставил режим 24bpp с упаковкой в 8:8:8, соответственно получил неверную картинку по цветам, но пингвина уже видно

Если брать старшие 6 бит, то вроде все должно нормально работать.
Можно бит DOTCLK_POL в регистре HW_LCDIF_VDCTRL0 покрутить. Если картинка хорошая, но цвета перепутаны (типа пингвин с синими лапами), то с помощью CSC_DATA_SWIZZLE в HW_LCDIF_CTRL можно байты в DWORD'е в нужном порядке перетасовать.

Цитата
Для меня осталось разобраться, как настроить драйвер в режим 5:6:5 16bpp.

У контроллера экрана такой режим вроде не предусмотрен. Либо два раза по 9 бит, либо три по 6.
Но если надо, я менял в setup_dotclk_panel
Код
stmp3xxx_setl(BF(7, LCDIF_CTRL1_BYTE_PACKING_FORMAT) |
BM_LCDIF_CTRL1_RECOVER_ON_UNDERFLOW,
REGS_LCDIF_BASE + HW_LCDIF_CTRL1);

на
Код
stmp3xxx_setl(BF(0xF, LCDIF_CTRL1_BYTE_PACKING_FORMAT) | // for 8-bit!
BM_LCDIF_CTRL1_RECOVER_ON_UNDERFLOW,
REGS_LCDIF_BASE + HW_LCDIF_CTRL1);

и в структуре stmp3xxx_platform_fb_entry для своего контроллера указал
Код
.bpp = 16,
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.10.2010 23:32 Сообщение: 15
sasamy
4.70

Пункты: 77331
Регистрация: 14.08.2009
Цитата
Недавно сделал себе преобразовтель на ПЛИСке для подобного режима - два поледовательных байта в RGB565, похожий на режим 9-bit generic у обсуждаемого контроллера. Думал это мое хитрое изобретение, а оказывается стандартная, хоть и не очень распространенная, вещь.


Опять не в тему - оказывается их немало таких продается :) Например на контроллерах NT39016D и HX8238-D есть 8 bit serial rgb интерфейс, например TFT MI0350CT-3 - 3,5 дюйма с тачпанелью, стоит около 1 тыр в розницу.
Спуститься к концу Подняться к началу
Персональная информация
ivan1180
Добавлено 21.10.2010 22:24 Сообщение: 16
ivan1180
0

Пункты: 451
Регистрация: 15.10.2010
Всем спасибо, почти заработало.

В общем :

1. Появился пингвин.
1.1 Синелапый на глаз - неправильная упаковка RGB. Буду править настройкой инициализации дисплея;
1.2 Cправа сверху, зеркальный - начало координат, правится настройкой дисплея;
1.3 Не появилось приглашение консоли = не очень и хотелось, можно поправить в rootfs

cat /bin/busybox >> /dev/fb0 - на дисплее мусор, что хорошо, был бы файл в формате упаковки дисплея, получил бы картинку. Вообще на LPC2478 много развлекался с упаковкой, после этого понял, что нужно пользовать стандартные библиотеки.

Вообще контроллер в imx поражает количеством возможных настроек, ему в принципе на формат упаковки "все равно" можно байт отрезать, сдвинуть, перетасовать, добавить лишнее, вывести в 8 или 16. В общем в этом и была основная проблема. Если разобрать пример с сырцов с платы, то там 8 бит шины, 8 бит word lenght, упаковка 0x0F, но при этом в настройке консоли x=278 y=420 bpp=24. При том, что форматы посылки учитываются как при записи команд, так и при записи байтов. Вывод : можно подключить все, что может выводить, практически не важно какой дисплей.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Вспомогательные средства