Ник:
Пароль:

Контакты

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

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

Ник:
Пароль:

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

ОбновитьПодробнееВсегоВсего:6
Форум » starterkit.ru » Отладочные платы » SK-iMX233
Расширитель шины LCD интерфейса iMX233
702
Добавлено 30.10.2011 10:16
0
Сообщение: 1
702
0

Пункты: 289
Регистрация: 27.10.2011
У процессора iMX233 в корпусе QFP "штатная" ширина шины
LCD интерфейса всего 8 бит - выводов маловато.
Это вынуждает использовать панели с интерфейсами i80/6800 через System Interface или с serial RGB (к примеру, с контроллером HX8257-A).

Можно расширить шину LCD за счет GPMI. Это нерационально при и так недостаточном количестве портов ввода-вывода. У SK-IMX233 GPMI, кстати, занят NAND Flash.

Вместе с тем имеется много недорогих панелей с параллельным RGB интерфейсом 16-24 бит(DotClk Interface).

16-разрядную шину можно сэмулировать при помощи схемы на рисунке, внеся соотественные изменения в драйвера.

Файл //arch/arm/mach-mx23/include/mach/lcdif.h (ядро 2.6.35):

в функции setup_dotclk_panel
...
__raw_writel(BF_LCDIF_CTRL1_BYTE_PACKING_FORMAT(15) |
BM_LCDIF_CTRL1_RECOVER_ON_UNDERFLOW,
REGS_LCDIF_BASE + HW_LCDIF_CTRL1_SET);
...
и
...
__raw_writel(BF_LCDIF_CTRL_WORD_LENGTH(1) |/* 8 bit */
BM_LCDIF_CTRL_DATA_SELECT |/* data mode */
BF_LCDIF_CTRL_INPUT_DATA_SWIZZLE(3) |/* swap 0-1, 2-3 */
BF_LCDIF_CTRL_LCD_DATABUS_WIDTH(1),/* 8 bit */
REGS_LCDIF_BASE + HW_LCDIF_CTRL_SET);
...

DATA_SWIZZLE(3) нужно из-за того, что на шине четный байт,
защелкиваясь в регистр, становится старшим.

В драйвере LCD панели нужно указать удвоенное количество тактов LCD_CLK на строку растра, т.к. 16-разрядное слово передается за 2 такта.

Кроме этого до вызова setup_dotclk_panel нужно
сбросить триггер сигналом LCD_RESET, выполнив
следующий код:

...
lcd_reset(0);
lcd_reset(1);
...

static void lcd_reset(int state)
{
u32 val= __raw_readl(REGS_LCDIF_BASE + HW_LCDIF_VDCTRL1) & ~1;
if (state)
val |= 1;
__raw_writel(val, REGS_LCDIF_BASE + HW_LCDIF_VDCTRL1);
}

Я подключал с данной схемой панели OSD057VA01CW (640x480) и MTF-T070ACSLN (800x480) в режиме 16 бит RGB565 . Сигналы, соотвествующие неиспользуемым младшим разрядам цветовых компонент у панелей подсоединил к "земле". Результат вполне
удовлетворительный.
Ограничением схемы является необходимость применения именно этого режима.

Для панели 800x480 быстродействие микросхем логики
серии HC при напряжении питания +3.3 В является близким к предельному. Чтобы обеспечить запас, нужно видимо, применять серию LV.
Спуститься к концу Подняться к началу
Персональная информация
702
Добавлено 30.10.2011 10:21 Сообщение: 2
702
0

Пункты: 289
Регистрация: 27.10.2011
Вроде загрузил картинку со схемой, а в сообщении ее не видно
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 30.10.2011 11:40 Сообщение: 3
sasamy
4.70

Пункты: 77333
Регистрация: 14.08.2009
Глючный форум - лучше куда нибуть закачайте и выложите линк.
Спуститься к концу Подняться к началу
Персональная информация
702
Добавлено 30.10.2011 12:40 Сообщение: 4
702
0

Пункты: 289
Регистрация: 27.10.2011
Ссылка на схему

http://savepic.su/566344.png
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Отладочные платы » SK-iMX233