본문 바로가기

[NXP]/LPC1700

[LPC1756 EVM] TFT-LCD 테스트

[LPC1756 EVM] TFT-LCD 테스트


LPC1756 EVM을 이용하여 TFT-LCD를 테스트 해보았다. 100Mhz 클럭 이기 때문에 좀더 빠를것 같은 기대로 테스트 진행 해 보았다.


IO제어는 빠른것 같다. 1프레임 출력하는데 10ms 안으로 들어온다. 좀더 옵티마이즈 하면 더 빨라질것 같다. 물론 Address/Data Bus를 이용하는것 보다는 느리겠지만 간단히 GPIO만으로도 빠른 속도를 낼 수 있을것 같다.





SPI속도도 빠르기 때문에 SD Card를 이용해서 테스트 해 보았다. LPC1756의 SPI최대 속도는 50Mhz까지 출력되지만 SD Card 제어시는 18Mhz이상 힘들기 때문에 16Mhz로 테스트 해 보았다. (SPI클럭 조합이 좀 아쉽다. 16Mhz 다음에 24Mhz, 48Mhz..로 설정 가능하다.)




LPC1756 EVM TFT-LCD 테스트 드라이버 코드

//-----------------------------------------------------------------------------
//TFT LCD
#define TFT_DRV_HD66791                 0
#define TFT_DRV_COM44                   1

#define LCD_LAT_BIT      BIT0
#define LCD_LAT_PORT     GPIO1
#define LCD_LAT_ON()     sbi(LCD_LAT_PORT, LCD_LAT_BIT)
#define LCD_LAT_OFF()     cbi(LCD_LAT_PORT, LCD_LAT_BIT)
#define LCD_DATA_LATCH()    LCD_LAT_ON();LCD_LAT_OFF();

#define LCD_EN_BIT      BIT4
#define LCD_EN_PORT      GPIO1
#define LCD_ENABLE()     cbi(LCD_EN_PORT, LCD_EN_BIT)
#define LCD_DISABLE()     sbi(LCD_EN_PORT, LCD_EN_BIT)

#define LCD_RST_BIT      //BIT8
#define LCD_RST_PORT     //PORTB
#define LCD_RST_ON()     //Sbi(LCD_RST_PORT, LCD_RST_BIT)
#define LCD_RST_OFF()     //Cbi(LCD_RST_PORT, LCD_RST_BIT)

#define LCD_RS_BIT      BIT0
#define LCD_RS_PORT      GPIO0
#define LCD_RS_OFF()     cbi(LCD_RS_PORT, LCD_RS_BIT)
#define LCD_RS_ON()      sbi(LCD_RS_PORT, LCD_RS_BIT)

#define LCD_WR_BIT      BIT1
#define LCD_WR_PORT      GPIO1
#define LCD_WR_OFF()     cbi(LCD_WR_PORT, LCD_WR_BIT)
#define LCD_WR_ON()      sbi(LCD_WR_PORT, LCD_WR_BIT)

#define LCD_RD_BIT      //BIT5
#define LCD_RD_PORT      //LATD
#define LCD_RD_OFF()     //Cbi(LCD_RD_PORT, LCD_RD_BIT)
#define LCD_RD_ON()      //Sbi(LCD_RD_PORT, LCD_RD_BIT)

#define LCD_BL_BIT      BIT4
#define LCD_BL_PORT      PORT3
#define LCD_BL_OFF()     //Cbi(LCD_BL_PORT, LCD_BL_BIT)
#define LCD_BL_ON()      //Sbi(LCD_BL_PORT, LCD_BL_BIT)

#define _LCD_DAT_OUT(Data)    PORT2 = (PORT2&0xFF00) | (Data>>8);\
                                     LCD_DATA_LATCH();\
                                     PORT2 = (PORT2&0xFF00) | (Data&0xFF);

#define TFTGpioInit()     GPIOInit(0, DIR_OUT, (BIT0));\
                                        GPIOInit(1, DIR_OUT, (BIT0|BIT1|BIT4));\
                                        GPIOInit(2, DIR_OUT, 0xFF);
//-----------------------------------------------------------------------------


반응형