Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отладка с LPC2478
Форум разработчиков электроники ELECTRONIX.ru > Дополнительные разделы - Additional sections > Продам
starterkit
Наконец случилось!
Из МТ-system мне выделили 5 штук LPC2478 для SK-LPC2478-S3E.
Подключил через переходник TFT LCD AM800480B3 (800х480, 6-6-6, подключил как 5-6-5).
Работает без нареканий, написал тест в котором тест SDRAM крутится одновременно с разверткой LCD картинки, никаких рывков и прочих артефактов не наблюдается.
По плану, до 20-го июня эти пять плат должны быть в MT-System (спрашивайте Виктора Лымарь).
Нажмите для просмотра прикрепленного файла
izerg
LPC2478 - Семпловые? или уже доступные в серии?
Можно тестовую программу посмотреть?
starterkit
Оборазцы, но маркированы С ревизией (это еще более поздняя версия относительно текущих LPC2468).
Когда серия будет, пока не знаю (постоянно сроки переносили).
Код
#include "tft.h"
#include "lpc23xx.h"
#include "banner_1.h"
#include "banner_2.h"

#define BUFFER_ADDR 0xA0000000

//extern const unsigned char banner_1[70][800];
//extern const unsigned char banner_2[20][800];

void InitPanel(void)
{
int 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) | (((800/16)-1)<<2));
  LCD_TIMV_REG = ( (0<<24) | (0<<16) | (1<<10) | 480 );
  LCD_POL_REG =  ( (1<<26) | (((800/1)-1)<<16) | (1<<12) | (0<<5) );
  LCD_CTRL_REG = ( (1<<5) | (6<<1) );
  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;
}

void ShowTest_1(void)
{
int x,y,i;
unsigned short * Ptr16;

  Ptr16 = (unsigned short *)BUFFER_ADDR;  
  for(y=0;y<(800*480);y++)
  {
      *Ptr16++=0xffff;
  }
  Ptr16 = (unsigned short *)BUFFER_ADDR+8000;  
  for(y=0;y<70;y++)
  {
    for(x=0;x<800;x++)
    {
       *Ptr16=(((banner_1[y][x]>>3)<<(5+6))) | ((((banner_1[y][x]>>2)&0x3f)<<5)) | ((banner_1[y][x]>>3)&0x1f);
       Ptr16++;
    }
  }
  Ptr16 = (unsigned short *)BUFFER_ADDR+(800*(70+15));  
  for(y=0;y<20;y++)
  {
    for(x=0;x<800;x++)
    {
       if(banner_2[y][x] < 150)
         *Ptr16=(((233>>3)<<(5+6))) | ((((0>>2)&0x3f)<<5)) | ((5>>3)&0x1f);
       else
         *Ptr16=0xffff;
       Ptr16++;
    }
  }

  Ptr16 = (unsigned short *)BUFFER_ADDR+(800*(70+15+20+20))+30;  
  for(y=0;y<250;y++)
  {
    for(x=0;x<226;x++)
    {
       *Ptr16=(y/(260/32))<<(5+6);//blue
       Ptr16++;
    }
    Ptr16+=574;
  }

  Ptr16 = (unsigned short *)BUFFER_ADDR+(800*(70+15+20+20))+30+226+30;  
  for(y=0;y<250;y++)
  {
    for(x=0;x<226;x++)
    {
       *Ptr16=(y/(260/64))<<(5);//green
       Ptr16++;
    }
    Ptr16+=574;
  }

  Ptr16 = (unsigned short *)BUFFER_ADDR+(800*(70+15+20+20))+30+226+30+226+30;  
  for(y=0;y<250;y++)
  {
    for(x=0;x<226;x++)
    {
       *Ptr16=(y/(260/32));//red
       Ptr16++;
    }
    Ptr16+=574;
  }

  Ptr16 = (unsigned short *)BUFFER_ADDR+(800*400)+30;  
  for(y=0;y<60;y++)
  {
    for(x=0;x<740;x++)
    {
       *Ptr16=((((x/3)>>3)<<(5+6))) | (((((x/3)>>2)&0x3f)<<5)) | (((x/3)>>3)&0x1f);
       Ptr16++;
    }
    Ptr16+=60;
  }

}
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.