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

 
 
> LPC2478 + TFT 320x240 совсем рябит (, вместе с курсором..
overloaded
сообщение Apr 5 2010, 03:29
Сообщение #1


Участник
*

Группа: Свой
Сообщений: 73
Регистрация: 17-10-07
Из: Киев
Пользователь №: 31 422



Частота клока 6,5 МГц (По ДШ рекоммендуют 6,75). С чем может быть связано рябение (я так понимаю постоянно прорисовываются то четные- то нечетные строки)?.
Рябит вместе с курсором. Картинка изначально была сдвинута влево вверх, чтоб стала посредине, значительно увеличил Vertical front porch и horizontal front porch(от значений, рекоммендуемых ДШ на ТФТ).

При некоторых стечениях обстоятельств)) (положение курсора, данные тестовой картинки) ТФТ вообще отказывается что-либо показывать... (Белый фон, как до инициализации).
Смотрел сигналы осциллографом - форма верт. и гор синхронизаций нормальная, синхр. данных (DCLK) - почти синус. Это нормально?
Еще интересная особенность - значения LCD_POL(IPC Invert panel clock., IHS Invert horizontal synchronization., IVS Invert vertical synchronization.) в в нескольких комбинациях на картинку не влияют.
Подскажите плз в какую вообще сторону думать? )

На всякий случай код с парой тестов и картинку с ДШ ТФТ прилагаю.
Код
#define LCD_RES_H 320
#define LCD_RES_V 240
#define LCD_BUF_SIZE (LCD_RES_H*LCD_RES_V*2)

unsigned char VideoBuf[LCD_BUF_SIZE] __attribute__((at(NOR_FLASH_BASE))); //SDRAM

void InitLCD()
{
  int i, testnum = 0;
  int k=0;
  unsigned short *Pall = (unsigned short *)&LCD_PAL;
  unsigned short *Vbuf = (unsigned short *)&VideoBuf;
  unsigned short *Curs = (unsigned short *)&CRSR_IMG;
    
    PCONP|= (1<<20); //LCD

    PINSEL11 = (6<<1)|(1<<0);// bit0=1 - LCD port is enabled.    bit1...3 = 110 TFT 16-bit. (1:5:5:5 mode)
  
  LCD_CFG    = 10;//72 MHz div 11
  //1
//  LCD_TIMH   = (((42-1)<<24) | ((67-1)<<16) | ((11-1)<<8) | (((LCD_RES_H/16)-1)<<2));
//  LCD_TIMV   = ((6<<24) | (16<<16) | ((3-1)<<10) | (LCD_RES_V-1));
  //2
  //LCD_TIMH   = (((31-1)<<24) | ((67-1)<<16) | ((11-1)<<8) | (((LCD_RES_H/16)-1)<<2));
  //LCD_TIMV   = ((3<<24) | (16<<16) | ((3-1)<<10) | (LCD_RES_V-1));
  //kartinka posredine
  LCD_TIMH   = (((61-1)<<24) | ((67-1)<<16) | ((11-1)<<8) | (((LCD_RES_H/16)-1)<<2));
  LCD_TIMV   = ((33<<24) | (16<<16) | ((3-1)<<10) | (LCD_RES_V-1));

  LCD_POL    = ((0<<27) | (1<<26) | (((LCD_RES_H/1)-1)<<16) | (0<<14)
                  | (1<<13)| (1<<12) | (1<<11)| (0<<6) | (0<<5) | (2<<0));

  LCD_CTRL   = ((0<<10) | (0<<9) | (0<<8) | (1<<5) | (4<<1)); // 100 = 16 bpp, 1:5:5:5 mode.

  for(i=0; i<256; i++)
      Curs[i] = 0xFFFF;

  CRSR_CFG = 0;
  CRSR_XY = (110<<16)|(160<<0);
  CRSR_CTRL = 1;//Cursor on

  LCD_UPBASE = (unsigned long)VideoBuf;
  LCD_LPBASE = (unsigned long)VideoBuf;    

    
    for(i=0; i<256; i++)//test
    {
        Pall[i] = 0xFF00+i;
    }
                            

  LCD_CTRL |= 1;//Enable
  LCD_CTRL |= 1<<11;//PWR ON

    testnum = 3;
    while(1)
    {
          switch(testnum)
          {
              case 0://bleklie tsveta
              for(i=0; i<(LCD_BUF_SIZE/2); i++)
                  if(i < (LCD_BUF_SIZE/4))
                    Vbuf[i]= (32<<10)|(0<<5)|(0<<0);
                else
                    Vbuf[i]= (0<<10)|(0<<5)|(32<<0);
            testnum = -1;
            break;
        
            case 1://ne vivodit - vse beloe
              for(i=0; i<(LCD_BUF_SIZE/2); i++)
                  if(i < (LCD_BUF_SIZE/4))
                    Vbuf[i]= 0;
                else
                    Vbuf[i]= 0xFFFF;
            testnum = -1;
            break;
        
            case 2://sverhu beloe, vnizu-4ernoe
              for(i=0; i<(LCD_BUF_SIZE/2); i++)
                  if(i < (LCD_BUF_SIZE/4))
                    Vbuf[i]= 0xFFFF;
                else
                    Vbuf[i]= 0;
            testnum = -1;
            break;
        
            case 3://poloski
              for(i=0; i<(LCD_BUF_SIZE/2); i++)
            {
                if((i % (320*20)) == 0)
                    k = rand();
                Vbuf[i]= k;
            }
            testnum = -1;
            break;
        
            case 4://random
              for(i=0; i<(LCD_BUF_SIZE/2); i++)
                Vbuf[i]= rand() & 0xFFFF;
            testnum = -1;
            break;

            default:
            break;
          }
    }

}

Прикрепленное изображение
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Prinz
сообщение Apr 4 2011, 06:09
Сообщение #2


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

Группа: Участник
Сообщений: 184
Регистрация: 11-09-08
Пользователь №: 40 121



Здравтсвуйте.
У меня немного похожий вопрос. Разбираюсь с отладочной платой QVGA v1.0
SD заработала на ура, вывожу картинку на экран, работаю с внешней памятью.
А как повысить частоту обновления этого дисплея?
Я брал готовый код, сейчас разбираюсь, там вроде всё по максимуму стоит, а обноление всё равно не очень.
Например:
// 0 = divide by 1
LCD_CFG = 0x0;
Где ещё что псмотреть???
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- overloaded   LPC2478 + TFT 320x240 совсем рябит (   Apr 5 2010, 03:29
- - skripach   Вы бы сделали что-то вроде: Код// init Horizonta...   Apr 5 2010, 06:56
|- - overloaded   Сделал более удобочитаемым. Что еще заметил - вдол...   Apr 5 2010, 10:18
|- - Dog Pawlowa   Цитата(overloaded @ Apr 5 2010, 13:18) Чт...   Apr 5 2010, 15:36
|- - overloaded   Судя по изображению, явно что-то не то с сигналами...   Apr 6 2010, 11:01
|- - ar__systems   Цитата(overloaded @ Apr 6 2010, 06:01) Су...   Apr 6 2010, 11:28
|- - overloaded   Спасибо, как-то об этом не подумал)) Действительно...   Apr 6 2010, 11:45
- - skripach   Тогда так, а именно.   Apr 5 2010, 10:29
|- - SPACUM   У Меня эффект мерцания был на экране 640х480 при н...   Apr 5 2010, 11:12
- - skripach   Рябь и мерцание разные вещи.   Apr 5 2010, 11:27
- - ar__systems   у LPC если не ошибаюсь front & back порч означ...   Apr 6 2010, 12:12
- - aaarrr   Как экран зовут?   Apr 6 2010, 13:07
|- - overloaded   Анализатор в ближайшие пару дней возможности доста...   Apr 6 2010, 14:30
|- - scorp1969   пару мыслеи: видео буфер выровнен по границе 8? а ...   Apr 6 2010, 15:22
- - Dog Pawlowa   Работа с ПДАшными платами от Колибри научила меня ...   Apr 6 2010, 15:41
|- - scorp1969   а земля точно хорошая к дисплею идет?   Apr 6 2010, 15:52
|- - overloaded   Цитата(Dog Pawlowa @ Apr 6 2010, 18:41) В...   Apr 6 2010, 17:07
- - overloaded   До сих пор не могу заставить нормально работать ((...   Apr 14 2010, 16:43
- - overloaded   Заработало! =)) Все-таки надо было более тщате...   Apr 16 2010, 15:13
- - overloaded   Не прошло и года =) В общем фон стал окончательно ...   Mar 16 2011, 15:06
|- - SergeyDDD   Цитата(overloaded @ Mar 16 2011, 19:06) Н...   Mar 17 2011, 12:06
- - overloaded   Это COMMON ELECTRODE CENTER VOLTAGE. Т.е. средняя ...   Mar 20 2011, 20:19
|- - M_Andrey   Цитата(Prinz @ Apr 4 2011, 09:09) // 0 = ...   Apr 5 2011, 09:11
|- - Prinz   Цитата(M_Andrey @ Apr 5 2011, 15:11) И по...   Apr 5 2011, 10:14
|- - M_Andrey   1. PINSEL11 = 0x0000000d; - это режим 1:5:5:5 не ...   Apr 5 2011, 15:29
|- - Prinz   Цитата(M_Andrey @ Apr 5 2011, 21:29) 1. ...   Apr 6 2011, 05:11
- - Prinz   Уточню, контроллер тот же LPC2478. Ядро на частоте...   Apr 5 2011, 05:57
- - slava2148   Вообще-то должны быть либо HSYNC и VSYNC либо DCLK...   Jun 6 2011, 11:24


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

 


RSS Текстовая версия Сейчас: 19th June 2025 - 23:44
Рейтинг@Mail.ru


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