[PIC32-SM EVM] TFT LCD (COM26T2844) 테스트
[EXP-NET EVM] 보드는 W5100을 연결하여 이더넷 테스트를 하기 위한 보드로 제작 했는데 TFT LCD모듈도 연결하여 테스트 가능하다. PIC32의 속도를 좀더 테스트 해 보기 위해 테스트 자료정리를 좀 해 보았다.
추후 PIC32의 USB호스트 기능을 테스트 하거나 이더넷 테스트를 진행할 예정이다.
[EXP-NET EVM] 보드의 TFT LCD (COM26T2844)) 회로도
(한가지 아쉬운점이 있다면 RS신호를 RF4로 할당해야 하는데... 멀리 떨어져 있을뿐 아니라 16핀용 다른 MCU와 호환이 안된다. 다음에 화장보드 제작시에는 고려를 할 필요가 있을것 같다.)
TFT LCD Driver 코드
PIC32-SM EVM TFT LCD테스트 동영상
거의 구분이 가지 않는다. 240x400 1프레임 그리는데 20ms정도 밖에 걸리지 않는다. 옵티마이즈와 오버 클럭하면 동영상도 가능할듯...
ATMega128 7.3728Mhz에서 TFT LCD테스트 동영상과 비교하면 차이가 많이 난다. 가격도 훨씬 더 저렴한 PIC32가 AVR과 성능 비교가 않될 정도 이다.
[EXP-NET EVM] 보드는 W5100을 연결하여 이더넷 테스트를 하기 위한 보드로 제작 했는데 TFT LCD모듈도 연결하여 테스트 가능하다. PIC32의 속도를 좀더 테스트 해 보기 위해 테스트 자료정리를 좀 해 보았다.
추후 PIC32의 USB호스트 기능을 테스트 하거나 이더넷 테스트를 진행할 예정이다.
[EXP-NET EVM] 보드의 TFT LCD (COM26T2844)) 회로도
(한가지 아쉬운점이 있다면 RS신호를 RF4로 할당해야 하는데... 멀리 떨어져 있을뿐 아니라 16핀용 다른 MCU와 호환이 안된다. 다음에 화장보드 제작시에는 고려를 할 필요가 있을것 같다.)
TFT LCD Driver 코드
//-----------------------------------------------------------------------------
//LCD Driver
//-----------------------------------------------------------------------------
// TFT LCD(COM26T2844) Driver
#define TFT_DRV_COM44 1
#define LCD_EN_BIT BIT5
#define LCD_EN_PORT LATF
#define LCD_ENABLE() Cbi(LCD_EN_PORT, LCD_EN_BIT)
#define LCD_DISABLE() Sbi(LCD_EN_PORT, LCD_EN_BIT)
#define LCD_RST_BIT BIT6
#define LCD_RST_PORT LATD
#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 BIT15
#define LCD_RS_PORT LATB
#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 BIT4
#define LCD_WR_PORT LATD
#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 BIT7
#define LCD_BL_PORT LATD
#define LCD_BL_OFF() Cbi(LCD_BL_PORT, LCD_BL_BIT)
#define LCD_BL_ON() Sbi(LCD_BL_PORT, LCD_BL_BIT)
#define TFTGpioInit() Cbi(TRISE, 0xFF);\
Cbi(TRISD, BIT4|BIT5|BIT6|BIT7);\
Cbi(TRISF, BIT5);\
Cbi(TRISB, BIT15);
//LCD Driver
//-----------------------------------------------------------------------------
// TFT LCD(COM26T2844) Driver
#define TFT_DRV_COM44 1
#define LCD_EN_BIT BIT5
#define LCD_EN_PORT LATF
#define LCD_ENABLE() Cbi(LCD_EN_PORT, LCD_EN_BIT)
#define LCD_DISABLE() Sbi(LCD_EN_PORT, LCD_EN_BIT)
#define LCD_RST_BIT BIT6
#define LCD_RST_PORT LATD
#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 BIT15
#define LCD_RS_PORT LATB
#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 BIT4
#define LCD_WR_PORT LATD
#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 BIT7
#define LCD_BL_PORT LATD
#define LCD_BL_OFF() Cbi(LCD_BL_PORT, LCD_BL_BIT)
#define LCD_BL_ON() Sbi(LCD_BL_PORT, LCD_BL_BIT)
#define TFTGpioInit() Cbi(TRISE, 0xFF);\
Cbi(TRISD, BIT4|BIT5|BIT6|BIT7);\
Cbi(TRISF, BIT5);\
Cbi(TRISB, BIT15);
PIC32-SM EVM TFT LCD테스트 동영상
거의 구분이 가지 않는다. 240x400 1프레임 그리는데 20ms정도 밖에 걸리지 않는다. 옵티마이즈와 오버 클럭하면 동영상도 가능할듯...
ATMega128 7.3728Mhz에서 TFT LCD테스트 동영상과 비교하면 차이가 많이 난다. 가격도 훨씬 더 저렴한 PIC32가 AVR과 성능 비교가 않될 정도 이다.
반응형