EXP_4030_LCD_HDMI 확장 보드를 이용하면 12핀 SSM-Type EVM에서 TFT LCD보드 제어를 할 수 있다.
표준 핀맵의 확장 핀맵은 아래와 같이 구성 하였다.
소스코드는 https://github.com/adafruit/TFTLCD-Library 를 참고 수정해서 사용 했다. 초기화 부분과 데이터 출력 부분은 아래와 같이 수정 했다.
#define Led1Off() sbi(0, BIT13)
#define Led1On() cbi(0, BIT13)
#define LCD_XLINE_SIZE 240
#define LCD_YLINE_SIZE 400
#define PORTA (sio_hw->gpio_out)
#define GPIO0 0
#define GPIO1 1
#define LCD_LAT_BIT 27
#define LCD_LAT_PORT
#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 17
#define LCD_EN_PORT
#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 28
#define LCD_RS_PORT
#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 26
#define LCD_WR_PORT
#define LCD_WR_OFF() cbi(LCD_WR_PORT, LCD_WR_BIT);lcd_delay()
#define LCD_WR_ON() sbi(LCD_WR_PORT, LCD_WR_BIT);lcd_delay()
#define _LCD_DAT_OUT(Data) PORTA = (PORTA&0xFFFF00FF) | (Data);\
LCD_DATA_LATCH();\
PORTA = (PORTA&0xFFFF00FF) | ((Data&0xFF)<<8);
테스트 결과 TFT LCD에 잘 출력되는것을 확인 할 수 있다.
이미지 한장 출력 하는 속도는 13ms 정도로 75pfs 정도로 측정이 된다. 저렴한 MCU이지만 GPIO 출력 속도가 빨라 LCD 출력을 상당히 빨리 할 수 있는것 같다.
반응형