[DSP]/DSP280x-M2011. 10. 30. 20:00

[TMS320F2808 EVM] TFT LCD Test - LCD-PLD-IF 보드 이용

[TMS320F2808 EVM] TFT LCD Test - LCD-PLD-IF 보드 이용



[TMS320F2808 EVM] 보드를 이용하여 TFT LCD테스트를 했다. PICCOLO 시리즈인 TMS320F28069 테스트때 SPI속도가 늦어 SD Card 읽어 오는 속도가 느렸는데 TMS320F2808이 조금 더 빠른것 같다.


TMS320F2808 TFT LCD테스트 동영상



TMS320F2808 TFT LCD 드라이버 코드
//-----------------------------------------------------------------------------
// TFT LCD Driver
#define TFT_DRV_HD66791     0
#define TFT_DRV_COM44     1

#define LCD_LAT_BIT      BIT2 //-> GPIO34
#define LCD_LAT_PORT     PORTB

#define LCD_LAT_ON()     Sbi(LCD_LAT_PORT, LCD_LAT_BIT);NOP();
#define LCD_LAT_OFF()     Cbi(LCD_LAT_PORT, LCD_LAT_BIT);NOP();
#define LCD_DATA_LATCH()    LCD_LAT_ON();LCD_LAT_OFF();

#define LCD_EN_BIT      BIT20
#define LCD_EN_PORT      PORTA
#define LCD_ENABLE()     Cbi(LCD_EN_PORT, LCD_EN_BIT);NOP();
#define LCD_DISABLE()     Sbi(LCD_EN_PORT, LCD_EN_BIT);NOP();

#define LCD_RST_BIT      BIT6
#define LCD_RST_PORT     PORTA
#define LCD_RST_ON()     
#define LCD_RST_OFF()     

#define LCD_RS_BIT      BIT21
#define LCD_RS_PORT      PORTA
#define LCD_RS_OFF()     Cbi(LCD_RS_PORT, LCD_RS_BIT);NOP();
#define LCD_RS_ON()      Sbi(LCD_RS_PORT, LCD_RS_BIT);NOP();

#define LCD_WR_BIT      BIT23
#define LCD_WR_PORT      PORTA
#define LCD_WR_OFF()     Cbi(LCD_WR_PORT, LCD_WR_BIT);NOP();
#define LCD_WR_ON()      Sbi(LCD_WR_PORT, LCD_WR_BIT);NOP();

#define LCD_RD_BIT      //BIT7
#define LCD_RD_PORT      //
#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      BIT15
#define LCD_BL_PORT      PORTA
#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)    GpioDataRegs.GPADAT.all = (GpioDataRegs.GPADAT.all&(~0xFF)) | (Data>>8)&0xFF;NOP();\
          LCD_DATA_LATCH();\
          GpioDataRegs.GPADAT.all = (GpioDataRegs.GPADAT.all&(~0xFF)) | (Data&0xFF)&0xFF;NOP();
          

#define TFTGpioInit()     EALLOW;\
          Sbi(GpioCtrlRegs.GPADIR.all, 0xFF);\
          Cbi(GpioCtrlRegs.GPAMUX1.all, 0xFF);\
          GpioCtrlRegs.GPBMUX1.bit.GPIO34 = 0;\
          GpioCtrlRegs.GPBDIR.bit.GPIO34 = 1;\
          GpioCtrlRegs.GPAMUX2.bit.GPIO21 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO21 = 1;\
          GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO20 = 1;\
          GpioCtrlRegs.GPAMUX2.bit.GPIO23 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO23 = 1;\
          GpioCtrlRegs.GPAMUX1.bit.GPIO15 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO15 = 1;\
          EDIS;
//-----------------------------------------------------------------------------
Posted by nexp

댓글을 달아 주세요

[INTERFACE]/iMCU_W71002011. 9. 17. 12:33

[W7100 EVM] TFT LCD 테스트 - [LCD-IF MODULE] 이용 속도 테스트

[W7100 EVM] TFT LCD 테스트 - [LCD-IF MODULE] 이용 속도 테스트



[W7100 EVM]모듈에서 [LCD-IF MODULE]을 이용하여 TFT LCD를 테스트 해 보았다. iMCU W7100은 이더넷 전송 속도가 빠르기 때문에 ([W7100   EVM] 이더넷 전송 속도테스트] ), 이더넷으로 TFT-LCD 이미지 전송 테스트를 해보려고 한다.



LCD-IF MODULE]에 20핀 커넥터를 연결하고 드라이버 코드 수정하여 테스트 했다. 



테스트 결과 이더넷 전송 속도는 아주 빠르지만 TFT LCD에 이미지 한장 출력하는 속도는 아주 느리다. 8051의 패리속도 한계로 다이렉트로 제어하는것은 좀 무리 일듯하고 CPLD나 FPGA 연결해서 이더넷에서 데이터만 전송 해 주는 형태로 바꾸어야 할듯...




W7100 TFT LCD 제어 Driver 코드
#define TFT_DRV_HD66791                 0
#define TFT_DRV_COM44                   1

#define LCD_LAT_BIT      BIT0
#define LCD_LAT_PORT     P2
#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      BIT6
#define LCD_EN_PORT      P2
#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      BIT5
#define LCD_RS_PORT      P2
#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      P2
#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      ///BIT9
#define LCD_RD_PORT      //PORTB
#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      P2
#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)    P0 = (Data>>8);\
                                     LCD_DATA_LATCH();\
                                     P0 = (Data&0xFF);

#define TFTGpioInit() 


[W7100 EVM] TFT LCD 출력 속도 테스트 동영상

Posted by nexp

댓글을 달아 주세요

[Microchip]/dsPIC2011. 7. 22. 23:22

[dsPIC33 EVM] TFT LCD 출력 속도 테스트

[dsPIC33 EVM] TFT LCD 출력 속도 테스트



dsPIC33 은 최대 40Mhz로 동작하고 SPI속도 또한 빠르므로 TFT LCD 테스트 해 두면 좋을것 같다. 8비트 방식으로 TFT LCD연결 가능한 확장 테스트 보드 중에서 [EXP_DSP] 보드가 적당할것 같다.

8비트 제어모드에서 1프레임 출력시 60ms 정도 걸린다. (옵티마이즈 한후)



[dsPIC33 EVM] TFT LCD테스트 동영상
SPI 최대 클럭 속도는 13Mhz로 SD Card를 이용하여 BMP파일을 출력 해 보았다.





[dsPIC33 EVM] TFT LCD관련 회로도





Posted by nexp

댓글을 달아 주세요

[INTERFACE]/EZ-USB2011. 5. 8. 09:36

[FX2 EVM] Ez-USB CY7C68013 TFT LCD 테스트

[FX2 EVM] Ez-USB CY7C68013 TFT LCD 테스트



[FX2 EVM] 보드는 M-Type의 핀맵으로 [EXP-LCD]보드에 연결하여 TFT-LCD 를 테스트 할 수 있다.

FX2 EVM 핀맵




EXP-LCD 핀맵



[FX2 EVM] TFT LCD 드라이버 코드
 원래 8051의 페리 속도가 느리고, 특히나 PORTE는 비트제어 명령이 지원되지 않기 때문에 Address로 접근해야 해서 속도가 더 느려지는것 같다.

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

#define LCD_LAT_BIT      BIT8
#define LCD_LAT_PORT     

#define LCD_LAT_ON()     
#define LCD_LAT_OFF()     
#define LCD_DATA_LATCH()    LCD_LAT_ON();LCD_LAT_OFF();

#define LCD_EN_BIT      BIT5
#define LCD_EN_PORT      
#define LCD_ENABLE()     Cbi(IOE, LCD_EN_BIT)
#define LCD_DISABLE()     Sbi(IOE, LCD_EN_BIT)

#define LCD_RST_BIT      BIT2
#define LCD_RST_PORT     
#define LCD_RST_ON()     PE2 = 1
#define LCD_RST_OFF()     PE2 = 0

#define LCD_RS_BIT      BIT3
#define LCD_RS_PORT      
#define LCD_RS_OFF()     Cbi(IOE, LCD_RS_BIT)
#define LCD_RS_ON()      Sbi(IOE, LCD_RS_BIT)

#define LCD_WR_BIT      BIT5
#define LCD_WR_PORT      
#define LCD_WR_OFF()     PA5 = 0
#define LCD_WR_ON()      PA5 = 1

#define LCD_RD_BIT      BIT4
#define LCD_RD_PORT      
#define LCD_RD_OFF()     PA4 = 0
#define LCD_RD_ON()      PA4 = 1

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

#define _LCD_DAT_OUT(Data)    IOB=Data&0xFF;IOD=(Data>>8);
          
#define TFTGpioInit()     OEB=0xFF;OED=0xFF;\
          PORTECFG = 0;OEE=0xFF;PORTACFG = 0;OEA=0xFF;
//-----------------------------------------------------------------------------




[FX2 EVM] TFT LCD테스트 동영상
한프레임 출력하는데 220ms정도 걸린다.. 너무 느리다. GPIF모드나 BUS모드로 테스트 해 봐야 할것 같다. FPGA를 이용해 FX2는 USB데이터를 받아서 버퍼에 저장하고 LCD제어는 다른 MCU에서 처리하도록 해야 할것 같다.


Posted by nexp

댓글을 달아 주세요

[DSP]/PICCOLO2011. 5. 5. 08:30

[TMS320F28069 EVM] TFT LCD 테스트

[TMS320F28069 EVM] TFT LCD 테스트


[EXP-DSP EVM] 보드를 이용하면 8비트 모드로 TFT LCD를 쉽게 테스트 해 볼 수 있다. TMS320F28069는 최대 80MHz 동작하므로 속도는 느리지 않을것 같다.

일단 기존 코드에 드라이버 부분만 수정하면 프로그램 수정없이 테스트 가능하므로 속도 테스트를 해보자

TFT LCD 드라이버 코드
//-----------------------------------------------------------------------------
// TFT LCD Driver
#define TFT_DRV_COM44     1

#define LCD_LAT_BIT      BIT8
#define LCD_LAT_ON()     sbi(GPIOA_S, LCD_LAT_BIT);NOP();
#define LCD_LAT_OFF()     cbi(GPIOA_C, LCD_LAT_BIT);NOP();
#define LCD_DATA_LATCH()    LCD_LAT_ON();LCD_LAT_OFF();

#define LCD_EN_BIT      BIT30
#define LCD_EN_PORT      
#define LCD_ENABLE()     cbi(GPIOA_C, LCD_EN_BIT);NOP();
#define LCD_DISABLE()     sbi(GPIOA_S, LCD_EN_BIT);NOP();

#define LCD_RST_BIT      BIT6
#define LCD_RST_PORT     PORTA
#define LCD_RST_ON()     
#define LCD_RST_OFF()     

#define LCD_RS_BIT      BIT31
#define LCD_RS_PORT      
#define LCD_RS_OFF()     cbi(GPIOA_C, LCD_RS_BIT);NOP();
#define LCD_RS_ON()      sbi(GPIOA_S, LCD_RS_BIT);NOP();

#define LCD_WR_BIT      BIT12
#define LCD_WR_PORT      
#define LCD_WR_OFF()     cbi(GPIOA_C, LCD_WR_BIT);NOP();
#define LCD_WR_ON()      sbi(GPIOA_S, LCD_WR_BIT);NOP();

#define LCD_RD_BIT      BIT7
#define LCD_RD_PORT      
#define LCD_RD_OFF()     //cbi(GPIOA_C, LCD_RD_BIT);NOP();
#define LCD_RD_ON()      //sbi(GPIOA_C, LCD_RD_BIT);NOP();

#define LCD_BL_BIT      BIT6
#define LCD_BL_PORT      PORTB
#define LCD_BL_OFF()     
#define LCD_BL_ON()      

#define _LCD_DAT_OUT(Data)    PORTA = (PORTA&(~0xFF)) | (Data>>8)&0xFF;NOP();\
          LCD_DATA_LATCH();\
          PORTA = (PORTA&(~0xFF)) | (Data&0xFF)&0xFF;NOP();

#define TFTGpioInit()     EALLOW;\
          Sbi(GpioCtrlRegs.GPADIR.all, 0xFF);\
          Cbi(GpioCtrlRegs.GPAMUX1.all, 0xFF);\
          GpioCtrlRegs.GPAMUX2.bit.GPIO30 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO30 = 1;\
          GpioCtrlRegs.GPAMUX2.bit.GPIO31 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO31 = 1;\
          GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO12 = 1;\
          GpioCtrlRegs.GPAMUX1.bit.GPIO8 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO8 = 1;\
          EDIS;
//-----------------------------------------------------------------------------



TMS320F28069 EVM 핀맵


[EXP-DSP] TFT LCD관련 자료





TMS320F28069 EVM TFT LCD테스트 프로그램 동영상

Posted by nexp

댓글을 달아 주세요