본문 바로가기

[NXP]/LPC1k

[LPC1K EVM] LPC1100 TFT LCD테스트 (LCD_IF_P Board)

[LPC1K EVM] LPC1100 TFT LCD테스트 (LCD_IF_P Board)


소형에 저렴한 (현재 쇼핑몰에서 1000원대에 판매하고 있다. 링크) MCU에도 불구 하고 기능이 좋아 여러곳에 사용기 좋은것 같다. SD Card의 이미지 파일을 TFT LCD에 출력하는 테스트를 해 보았다.





[LPC1113 EVM] TFT-LCD 테스트 동영상

보드 특성상 Data가 0~7의 순서로 되어 있지 않아 추가적인 비트 조작이 필요 하고  SPI클럭이 최대 12Mhz이기 때문에 속도는 조금 느려 보이는데 가격대비 성능비로는 아주 만족할만하다.




LPC1100에서 일부 핀들은 디폴트가 JTAG으로 할당되어 있기 때문에 GPIO로 설정할 필요가 있다.

    LPC_IOCON->JTAG_TDO_PIO1_1  &= ~0x07;
    LPC_IOCON->JTAG_TDO_PIO1_1  |= 0x01;

    LPC_IOCON->JTAG_TMS_PIO1_0  &= ~0x07;
    LPC_IOCON->JTAG_TMS_PIO1_0  |= 0x01;

    LPC_IOCON->JTAG_nTRST_PIO1_2  &= ~0x07;
    LPC_IOCON->JTAG_nTRST_PIO1_2  |= 0x01;
   
    LPC_IOCON->ARM_SWDIO_PIO1_3  &= ~0x07;
    LPC_IOCON->ARM_SWDIO_PIO1_3  |= 0x01;
   
    LPC_IOCON->PIO0_7  &= ~0x07;
    LPC_IOCON->PIO0_3  &= ~0x07;
    LPC_IOCON->PIO3_2  &= ~0x07; 




TFT LCD제어 드라이버 코드

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

#define LCD_LAT_BIT      BIT5
#define LCD_LAT_PORT     PORT3
#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      BIT3
#define LCD_EN_PORT      PORT0
#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      BIT7
#define LCD_RS_PORT      PORT0
#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      BIT2
#define LCD_WR_PORT      PORT3
#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)    DataOut((Data>>8));\
                                     LCD_DATA_LATCH();\
                                     DataOut(Data&0xFF);

//-----------------------------------------------------------------------------

반응형