[DSP]/DSP60002012.02.11 22:00

[TMS320C6720 EVM] TFT LCD테스트

 [TMS320C6720 EVM] TFT LCD테스트


TMS320C6720은 최대 200Mhz까지 동작한다. 속도가 빠르기 때문에 타이밍 조절하는데 좀 고생했다.
EMIF는 SDRAM, SRAM 모두 가능한데 SARM을 위한 CS가 하나밖에 없어 보드상의 Nor Flash CS인 CS2에서 점퍼를 이용해 [LCD_EXP_EVM] 보드 의 CS로 사용했다.

TFT LCD 400x240 한프레임 출력하는데 걸리는 시간은  4.2ms정도 이고(좀더 튜닝을 하면 더 오르겠지만.. EMIF속도가 빨라 Wait Time 설정이 필요하다), 안정적인 구동을 위해 7ms 설정 했다.


TMS320C672x TFT LCD 출력 테스트 동영상




TMS320C6720 SD Card 이미지 출력 예제 동영상
역시 SPI로 SD Card제어하기 때문에 속도는 그리 빠르지 않아 보인다. NAND를 이용하여 테스트 하면 속도가 빨라지지 않을까..




TMS320C6720 TFT LCD 구동 Read/Write 함수

#define LCD_DATA       *(volatile unsigned short*)(0x90000000)

//Write Command
void Lcd_Cmd(unsigned int Data)  
{
 LCD_RS_OFF();

  _LCD_DAT_OUT(Data);

LCD_RS_ON(); 
}

//Write Data
void Lcd_Data(unsigned int Data)  
{
 _LCD_DAT_OUT(Data);
}



TMS320C6720 SD Card 드라이버코드
//-----------------------------------------------------------------------------
// SD Card HAL
#define MMC_CS_PORT      SPI0_PC3
#define MMC_CS_BIT      BIT11

#define MMC_CS_INIT()     Cbi(SPI0_PC0, MMC_CS_BIT);Sbi(SPI0_PC1, MMC_CS_BIT);\
          MMC_CS_HIGH()
          
#define MMC_CS_HIGH()     Led1Off()
#define MMC_CS_LOW()     Led1On()
//#define MMC_CS_LOW()     Cbi(MMC_CS_PORT, MMC_CS_BIT)
//#define MMC_CS_LOW()     Cbi(MMC_CS_PORT, MMC_CS_BIT)

#define MMC_ASSERT_INIT()    MMC_CS_INIT();MMC_CS_HIGH()
#define MMC_ASSERT()     MMC_CS_LOW()
#define MMC_DEASSERT()     MMC_CS_HIGH()

#define MMC_SpiInit()     SPI1_Init()
#define MMC_SendByte     SPI1_WriteReadByte
#define MMC_Send(Data)      SPI1_WriteByte(Data)
#define MMC_Recv()      SPI1_WriteReadByte(0xFF)
#define MMC_RecvP(Data)     MMC_Send(0xFF); (*(Data)=SPI1_ReadByte())
#define MMC_SPISpeed     SPI1_SetSpeed
Posted by nexp

댓글을 달아 주세요

[AVR]/AT90USB2012.01.25 23:00

[AT90USB1287-EX] USB Host 테스트 - 메모리 스틱의 이미지 파일 TFT LCD에 출력하기

[AT90USB1287-EX] USB Host 테스트 - 메모리 스틱의 이미지 파일 TFT LCD에 출력하기


AT90USB1287은 USB 호스트 기능이 있어 USB 메모리 스틱의 파일을 읽거나 쓸수 있다.


USB 메모리 스틱의 파일 리스트를 읽어 LCD에 출력하고 bmp파일을 차례로 TFT LCD에 출력하는 예제를 작성해 보았다.





AT90USB1287 USB Host 테스트 동영상
USB메모리 스틱이 인식되면 BMP파일을 찾아서 순서대로 출력하는 예제를 작성해 보았다.





AT90USB1287 USB 메모리스틱 테스트 예제 소스코드
int main(void)
{
 //시스템 초기화
 SystemInit();
 
 //LED포트 초기화
 Led1Init();
 Led1On();
 Led2Init();
 Led2On();

 //UART Init
 DebugInit(BAUD_57600);
 DebugPrint("[AT90USB1287-EX] Test Program - USB Host MS\r\n");

 //TFT LCD 초기화
 TftLcd_Init();         
    Disp_Full_Color(White);
    Delay(500); 

 PutString("[AT90USB1287] Host MS Test",1,0,Red,0);

 //USB Host초기화
 usb_task_init();
 host_ms_task_init();
 nav_reset();

 while(1)
 {
  usb_task();
  host_ms_task();
  
  //메모리스틱 파일 처리
  ProcessMSTest();
 }
}



AT90USB1287 USB 메모리스틱 호스트 처리 함수
void ProcessMSTest(void)
{
 char name[10] = "a_1.bmp";
    unsigned char cnt = 0;

 unsigned char i;
 
 // USB인식되면
 if( !Is_device_disconnection() )
 {
  if(ms_connected == 1)
  {
   if(mounted == FALSE)
   {
    if(nav_drive_set(host_selected_lun) == FALSE)
    {
     mounted = FALSE;
     return;
    }
    
   //FAT 초기화
    if(nav_partition_mount()==FALSE)
    {
     mounted = FALSE;
     return;
    }
    else
    {
     mounted = TRUE;
     
     //파일 리스트 출력
     USB_FileNameRead();

     Delay(100);
     
     //MS에서 파일 읽어와 TFT에 출력
        while( 1)
        {
      if(cnt>gMaxFileCnt)cnt=0;
      sprintf(name, "a_%d.bmp", cnt);
      Draw_BitMap(name);
      cnt++;
        }
     return;
    }
   }
  }
  else mounted = FALSE;
 }
 else mounted = FALSE;
}

Posted by nexp

댓글을 달아 주세요

[MCU]/CANTUS2012.01.20 23:00

[CANTUS-EX] 이더넷을 이용한 움직이는 이미지파일 전송 테스트

[CANTUS-EX] 이더넷을 이용한 움직이는 이미지파일 전송 테스트


[CANTUS-EX] 보드는 저렴한 고속 이더넷 솔루션으로 제작한 보드이다. AVR가격 보다 저렴하지만 고속의 메모리제어 방식을 적용하면 고속 이더넷이 가능하다.

초기 기능 테스트를 위해 이더넷으로 GIF이미지를 전송하여 LCD에 출력하는 테스트를 진행 해 보았다.
아직 외부 메모리 부분의 속도를 고속으로 하기는 무리가 있지만, 이더넷으로 이미지 전송하는 기본 테스트는 가능하기 때문에 간단한 테스트를 해 보았다.


CANTUS 이더넷을 이용항 이미지 전송 테스트 동영상
[CANTUS-EX] 보드가 TCP서버로 동작하며 Client에서 움직이는 GIF이미지를 설정하면 이미지를 받아와 TFT-LCD에 출력하는 테스트 이다.


Posted by nexp

댓글을 달아 주세요

[MODULE]/LCD_TFT2011.12.31 21:24

[I1511 TFT LCD] SPI 제어방식 테스트

[I1511 TFT LCD] SPI 제어방식 테스트


[I1511 TFT LCD] 모듈은 SPI방식의 3핀으로 제어 가능하다. 보드내에 시프트레지스터(74HC595)를 이용하여 제어할 수 있다.
핀수가 적은 소형 MCU모듈에 적용하면 좋다.

초소형 [ATMeag88-SS EVM] 모듈을 이용하여 SPI방식으로  TFT-LCD제어 테스트를 해 보았다.


I1511 TFT LCD SPI방식 회로도




SO, SCLK, LATCH 3개의 핀에 연결하여 TFT LCD를 간단히 제어할 수 있다. (물론 속도는 좀 느리다.)




Posted by nexp

댓글을 달아 주세요

[ST_MICRO]/STM32F42011.12.06 22:00

[STM32F4] STM32F405 TFT LCD 출력 테스트

[STM32F4] STM32F405 TFT LCD 출력 테스트



STM32F103 EVM] 보드와 핀맵이 동일하기 때문에 기존 확장 보드에서 TFT LCD테스트 가능하다.
GPIO 최대 클럭으로 제어시 LCD가 동작을 하지 않는다. 이때 1프레임 출력시간은 4ms로 너무 빨라서 GPIO로는 타이밍을 맞추기 힘든것 같다.  약간의 지연시간을 주니 정상 동작하고 1프레임 출력 시간은 8ms 정도 된다. 상당히 빠른것 같다.
 (메모리 버스 타입이 아니라 딜레이는 더이상 줄이기 힘든것 같다.)

STM32F4 TFT LCD 출력 속도 테스트 동영상





STM32F4 TFT LCD BMP 파일 출력 테스트 동영상

SPI를 이용하여 SD Card의  BMP 파일 출력 테스트
Posted by nexp

댓글을 달아 주세요