[AVR]/AT90USB2012. 1. 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

댓글을 달아 주세요

[AVR]/AT90USB2012. 1. 25. 21:43

[AT90USB1287-EX] USB Host Test - 간단히 USB 메모리스틱 인식하기

[AT90USB1287-EX] USB Host Test - 간단히 USB 메모리스틱 인식하기

ATMEL에서 제공하는 MS예제가 정상 동작을 하지 않는다.
데모를 위해 복잡한 기능들이 포함되어 있어 수정하기가 까다롭다.
잘 안될때는 분해 해서 하나씩 테스트 하는것이 이해하기도 좋고 관리에있어 편리할것 같다.

간단히 메모리 스틱을 인식하는 아주 간단한 예제를 작성해 보도록 하자.


일단 ATMEL에서 제공하는 기본 Lib파일을 드라이버 폴더에 복사 한다.
(그대로 사용하기는 좀 힘들고 include path 설정을 좀 수정할 필요가 있다.)





가장 기본이 되는 Lib파일을 인식 시킨다.






AT90USB1287 USB 메모리 스틱 인식 테스트 예제코드
코드 자체는 아주 단순하게 동작한다.
usb_task_init() 함수로 USB초기화 하고 usb_task()함수로 USB관련 처리를 하도록 하면 된다.
이후 ProcessMS()함수에서 메모리 스틱 인식 및 해지에 관련된 이벤트를 받아서 처리하면 쉽게 작성 할 수 있다.

USB 메모리 스틱을 인식하면 LED 점등되고 해지하면 소등되는 예제이다.
//-----------------------------------------------------------------------------
int main(void)
{
 //시스템 초기화
 SystemInit();
 
 //LED포트 초기화
 Led1Init();
 Led1On();

 Led2Init();
 Led2On();

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

 //USB초기화
 usb_task_init();

 while(1)
 {
  usb_task();
  ProcessMS();
 }
}
//-----------------------------------------------------------------------------



AT90USB1287 USB 메모리 스틱 인식 처리 함수
//USB 메모리 스틱 인식 처리
void ProcessMS(void)
{
 //메모리 스틱 인식되면...
 if( Is_host_ready() )  
 {
  if(Is_new_device_connection_event())
    {
      Led1On();
   DebugPrint("New Device Connected\r\n");
  }
 }

 //연결 해지되면..
 if (Is_device_disconnection_event())
 {
  Led1Off();
  DebugPrint("Disconnection...\r\n");
 }
}


Posted by nexp

댓글을 달아 주세요

[Microchip]/PIC322010. 4. 25. 19:30

[PIC32-SM EVM] 보드 제작 - Mini USB Host Board

[PIC32-SM EVM] 보드 제작 - Mini USB Host Board


USB Host기능이 있는 작은 모듈을 제작 하기 위해 저렴하고 고성능의 PIC32를 선택해서 소형의 USB Host모듈을 제작 해 보았다. 기존 [SM-Type EVM] 형태로 제작하여 핀맵을 통일 했고 여러 용도로 사용하기 편리하게 제작 했다.

USB Host기능을 우선으로 해서 USB Host커넥터를 보드 앞쪽에 장착했다.


MPU는 PIC32중에서 가장 소형이고 기능이 좋은 PIC32MX440F512로 제작 해 보았다. Microchip의 장점으로 소형이지만 상당한 기능을 가지고 있는데 32bit core, USB Host에 512Flah로 웬만한건 쉽게 구현할 수 있을것 같다.



확장 테스트 보드






TFT LCD테스트 확장 모듈


PIC32 MP3 테스트 보드



PIC32MX440 보드 테스트 동영상

Posted by nexp

댓글을 달아 주세요

[TI]/LuminaryMicro2009. 10. 24. 12:02

[LM3S3748 EVM] LuminaryMicro Cortex-M3 USB 테스트

[LM3S3748 EVM] LuminaryMicro Cortex-M3 USB 테스트



USB OTG기능이 있는 Luminary Micro사의 Cortex-M3 LM3S3748 의 USB기능을 테스트 했다.


PC Host 테스트 프로그램
Visual Studio 2008을 이용하여 데이터 송수신을 테스트 할 수 있는 예제를 작성하였다.



테스트 동영상



[LM3S3748 EVM] USB Host Module




LM3S3748 USB회로 구성시 주의 사항
USB블럭으로 인가되는 전원 포트가 PB1과 공유하도록 되어 있다.
자세하게 보지 않으면 실수 할 수 있는데... PB1/USB0VBUS 핀을 USB전원으로 연결해야 한다.
연결되지 않으면 USB동작을 하지 하지 않는다.
메뉴얼에 블록도로 좀 자세하게 나와 있으면 좋을것 같은데... 아쉬운 부분이다.
Posted by nexp

댓글을 달아 주세요

  1. 비밀댓글입니다

    2010.06.21 03:46 [ ADDR : EDIT/ DEL : REPLY ]

[Microchip]/PIC322009. 8. 29. 08:05

[PIC32 - 100 EVM] 관련자료

[PIC32-100 EVM] 관련자료


Posted by nexp

댓글을 달아 주세요