adStar - SD Card 이용한 7" TFT LCD 테스트
adStar의 자장 큰 장점으로 MCU내에 TFT LCD 컨트롤러가 내장되어 있는 것이다. 때문에 7" TFT LCD도 쉽고 저렴하게 제어 할 수 있다.
adStar TFT LCD제어 초기화 코드
PORT6, PORT7, PORT8 이 TFT LCD데이터 포트 이므로 기능 설정 레지스터를 LCD 로 설정해 주면된다.
주의 사항으로 JTAG핀과 공통으로 사용하므로 개발할때 불편함이 있다. MUX칩으로 스위칭 할수 있도록 하면 좀더 쉽게 개발할수 있다.
{
Cbi(*R_PAF5, 0xFFC0);//VSYNC,HSYNC,DISP_EN,CRTC_CLK_OUT
BCKLIGHT_IO_INIT();
BCKLIGHT_OFF();
*R_PAF6 = 0; //LCD R
*R_PAF7 = 0; //LCD G
*R_PAF8 = 0; //LCD B
crtc_clock_init();
}
LCD 종류에 따라 모드 설정이 필요한데 setscreen() 함수에서 설정 가능하다.
초기에 정상동작을 하지 않아 약간의 수정을 해 주니 잘 동작한다.
void setscreen(SCREENRES res,U32 scmode)
{
switch(res)
{
case SCREEN_480x272:
setscreenex(480,272,scmode,0x0000020D,0x0002002B,0x002D020D ,0x0000011E ,0x0002000C ,0x000E011E );
break;
case SCREEN_640x480:
setscreenex(640,480,scmode,0x00000320,0x00130073,0x00A00320 ,0x0000020D ,0x0007000D ,0x002B020B );
break;
case SCREEN_800x480:
//setscreenex(800,480,scmode,1000,(3<<16)|0,(24<<16)|1000 ,530 ,(23<<16)|2 ,(13<<16)|530 );
break;
case SCREEN_800x600:
setscreenex(800,600,scmode,0x00000420,0x002300b0,0x01000420 ,0x00000274 ,0x0004000a ,0x001a0272 );
break;
default:
debugstring("invalid screen size\r\n");
return;
}
}
void setscreenex(U32 width,U32 height,U32 scmode,U32 ht,U32 hs, U32 ha, U32 vt,
U32 vs, U32 va)
{
*R_CRTHT = ht; //Horizontal
Active와 Blank구간을 포함한 Horizontal Total Scan Value
*R_CRTHS = hs; //Horizontal Sync 구간의 Start(End) value
*R_CRTHA = ha;
//Horizontal Active 구간의 Start(End)
value
*R_CRTVT = vt; //Vertical Active와 blank
구간을 포함한 Vertical Total scan value
*R_CRTVS = vs; //Vertical Sync 구간의 Start(End) value
*R_CRTVA = va;
//Vertical Active구간의 Start(End) value
screen_w=
width;
screen_h = height;
U32 conval=0;
debugprintf(" CRTC %d x
%d Setting
Done\r\n",width,height);
if(scmode&SCREENMODE_RGB888)
{
debugstring("RGB888
Mode\r\n");
screen_bpp = 32;
conval |=
(1<<13);
}
else
{
debugstring("RGB565
Mode\r\n");
screen_bpp = 16;
conval |= (1<<12);
}
conval
|= (1<<4);//line pitch not align 512,1024
*R_CRTWIDTH =
screen_w;
*R_CRTCON =
conval;
drawsetclipwindow(0,0,screen_w,screen_h);
set_interrupt(INTNUM_FRAMESYNC,framesync_isr);
enable_interrupt(INTNUM_FRAMESYNC,FALSE);
}
asStar 7" TFT LCD 테스트 동영상
sdCard를 이용하여 7" TFT LCD에 BMP영상을 출력핟록 하고 있다. jpg파일도 가능하지만 JPG->BMP 변환 속도가 느려 BMP보다는 출력속도가 느린것 같다.