Расширитель шины LCD интерфейса iMX233
702 |
|
|
|
|
|
|
|
Пункты: 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 |
|
|
|
|
|
|
|
Пункты: 289 |
Регистрация: 27.10.2011 |
|
|
|
Вроде загрузил картинку со схемой, а в сообщении ее не видно |
|
|
|
|
|
sasamy |
|
|
|
|
|
|
|
Пункты: 83558 |
Регистрация: 14.08.2009 |
|
|
|
Глючный форум - лучше куда нибуть закачайте и выложите линк. |
|
|
|
|
|
702 |
|
|
|
|
|
|
|
Пункты: 289 |
Регистрация: 27.10.2011 |
|
|
|
|
|
|
|
|