реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> TFT+LPC2478
Microsha_59
сообщение Jul 7 2008, 10:26
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 7-06-08
Пользователь №: 38 113



Попытался подключить TFT(5:6:5; 320x240) модель MTF-TQ57SN721-AV к LPC2478. В итоге дисплей запустился, но корректно заработала только часть экрана начиная с 127 по 240 строку, а до 127 строки выводит не то, что надо.
Кто-нибудь знает из-за чего это может быть.

Вот текст инициализации дисплея:

#define BUFFER_ADDR 0xA0000000
unsigned short * Ptr;

void InitPanel(void)
{
DWORD i;

PCONP |= 1<<20;
PINSEL11 = ( (5<<1) | 1);

PINSEL4 &= ~(3<<4);
PINSEL4 &= ~(3<<6);
PINSEL4 &= ~(3<<8);
PINSEL4 &= ~(3<<10);
PINSEL4 |= ((3<<4) | (3<<6) | (3<<8) | (3<<10));

PINSEL3 &= ~(3<<8);
PINSEL3 &= ~(3<<10);
PINSEL3 &= ~(3<<12);
PINSEL3 &= ~(3<<14);
PINSEL3 &= ~(3<<16);
PINSEL3 &= ~(3<<18);
PINSEL3 &= ~(3<<20);
PINSEL3 &= ~(3<<22);
PINSEL3 &= ~(3<<24);
PINSEL3 &= ~(3<<26);
PINSEL3 |= ( (1<<8) | (1<<10) | (1<<12) | (1<<14) | (1<<16) | (1<<18) | (1<<20) | (1<<22) | (1<<24) | (1<<26) );

PINSEL4 &= ~(3<<12);
PINSEL4 &= ~(3<<14);
PINSEL4 &= ~(3<<16);
PINSEL4 &= ~(3<<18);
PINSEL4 &= ~(3<<24);
PINSEL4 &= ~(3<<26);
PINSEL4 |= ((3<<12) | (3<<14) | (3<<16) | (3<<18) | (1<<24) | (1<<26));

LCD_CFG_REG = 2;
LCD_TIMH_REG = ( (0<<24) | (0<<16) | (50<<8) | (((320/16)-1)<<2));
LCD_TIMV_REG = ( (0<<24) | (0<<16) | (1<<10) | (240-1) );
LCD_POL_REG = ( (1<<26) | (((320/1)-1)<<16) | (1<<12) | (0<<5));

LCD_CTRL_REG = ((1<<5) | (6<<1));
LCD_CTRL_REG |= (1<<8);

LCD_UPBASE_REG = BUFFER_ADDR;
LCD_LPBASE_REG = BUFFER_ADDR;
for(i=0;i<50000;i++);

LCD_CTRL_REG |= 1;
for(i=0;i<50000;i++);
LCD_CTRL_REG |= 1<<11;
}
Go to the top of the page
 
+Quote Post
Desenix
сообщение Jul 7 2008, 10:45
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 111
Регистрация: 23-06-04
Пользователь №: 141



если хоть что то выводит, значит с большой вероятностью контроллер правильно настроил, а если не то что надо, значит неверно указал адрес FrameBuffer или он не верно заполнен информацией.
PS: с этим контроллером не работал.
Go to the top of the page
 
+Quote Post
Microsha_59
сообщение Jul 8 2008, 03:04
Сообщение #3





Группа: Участник
Сообщений: 9
Регистрация: 7-06-08
Пользователь №: 38 113



Цитата(Desenix @ Jul 7 2008, 16:45) *
если хоть что то выводит, значит с большой вероятностью контроллер правильно настроил, а если не то что надо, значит неверно указал адрес FrameBuffer или он не верно заполнен информацией.
PS: с этим контроллером не работал.


Проверил память, которую выделяю под буфер, проблем нет (читает, пишет и сохраняет значения).
В контроллере начальный адрес буфера задается с помощью регистров LCD_UPBASE, LCD_LPBASE, что я и сделал:

LCD_UPBASE_REG = BUFFER_ADDR;
LCD_LPBASE_REG = BUFFER_ADDR;

Может быть есть ещё какие-нибудь настройки, которые я не заметил?
Go to the top of the page
 
+Quote Post
Microsha_59
сообщение Jul 8 2008, 06:09
Сообщение #4





Группа: Участник
Сообщений: 9
Регистрация: 7-06-08
Пользователь №: 38 113



Ура, всё заработало!!!

Все дело в битах VBP регистра LCD_TIMV.

Всем спасибо.
Go to the top of the page
 
+Quote Post
Michal755
сообщение Jul 9 2008, 09:24
Сообщение #5





Группа: Новичок
Сообщений: 7
Регистрация: 5-06-08
Пользователь №: 38 077



I have little big different probleme. We are sure, that data is right write to VRAM (SRAM) area, but DMA LCD Controller does not read correct and finally pixels picture erroneously. Do you know, what can be wrong, if DMA does not correct read data from SRAM to show on display ? Thank you
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 14:31
Рейтинг@Mail.ru


Страница сгенерированна за 0.01365 секунд с 7
ELECTRONIX ©2004-2016