VNC1L MP3 EVM - USB 메모리스틱의 파일 읽고 쓰기 테스트

 

 

 

 

파일 쓰기 테스트

1) 파일 생성 -> OPW 파일명

ex) opw test.txt¶

 

2)데이터 쓰기 -> WRF 쓸바이트 수

->데이터

ex)wrf 5¶

12345

 

3)파일닫기 -> CLF 파일명

ex)clf test.txt¶

 

D:\>dir

 

A.TXT
D:\>opw test.txt

 

wrf 5
12345

D:\>

 

clf test.txt 

 

D:\>dir

 A.TXT
TEST.TXT

 

 

 


 

파일 읽기 테스트

1) 전체 파일 읽기 -> RD 파일명

ex)rd test.txt¶

 

D:\>
12345D:\> 

 

 

 

 

VNC1L Command List

 

 

 

 

 VNC1L MP3 EVM - USB Host Test Module (MP3 Player) 보드 제작

 

 

USB Host 기능을 가진 VNC1L 의 테스트 보드를 새롭게 제작했다. 기존 VNC1L EVM PCB를 모두 소진해서 새로운 형태로 제작 해볼까 하다 VNC1L의 MP3 플레이 기능을 테스트 해보기위해 제작해 보았다.

 

 

 

 

 

VS1053 (VS1033) MP3 모듈을 연결하면 아주 간단하고 USB메모리 스틱을 지원하는 MP3플레이어를 제작할 수 있다.

  

 

 

 

 

 

 

VNC1L MP3 EVM 회로도

 

 

 

 

 

 

 

[VNC1L] USB Memory MP3 Player 테스트

[MODULE]/MP3 | 2012.07.01 23:00
Posted by nexp

[VNC1L] USB Memory MP3 Player 테스트

 

 

 

USB Host 기능이 있는 VNC1L 모듈 VS1033 모듈을 이용하여 USB Memory Stick MP3 Player을 제작했다.

FTDI에서 제공하는 기본 펌웨어중 VMSC1FUL를 이용하면 USB 메모리스틱을 지원하는 MP3모듈을 쉽게 제작할 수 있다.

 

 

 

VNC1L 모듈 핀맵 회로도

 


 

 

 

VS1033 모듈 핀맵

XDCS 핀은 GND처리 해 주면 된다.

 

 

테스트는 USB2UART 모듈을 이용해 터미넝창에서 명령어를 보내면 mp3파일을 출력할 수 있다.

조그만 마이컴을 이용하여 시리얼 포트로 제어명령을 보내도 원하는 동작을 구현할 수 있다.

 

아래는 간단히 mp3을 플레이 하는 예제이고 시리얼 포트로 출력 되는 메세지이다.

 

Ver 03.68-123VMSC1F On-Line:
Device Detected P2
No Upgrade
D:\>
D:\>
Playing YOUN-S.MP3

 

 

T $00 $00
T $01 $00
T $02 $00
T $03 $00
T $04 $00
T $05 $00
T $06 $00
Stopped
D:\>
Playing YOUN-S.MP3

 

 

VMSC(VMUSIC) 명령어
 - Play  File* (VPF)
 - Stop (VST)
 - Play  All  Tracks (V3A  /VRA)
 - Skip  Forward (VSF)
 - Skip Back (VSB)
 - Set  Volume* (VSV)

 

 

 


 

[VNC1L-A1] USB Host - 메모리스틱의 mp3파일 읽어오기

 

 

 

 

1)DIR명령으로 파일 목록을 읽어온다.

 

 


 

2)DIR file 명령을 하면 파일의 크기를 알 수 있다.

 

YOUN-S.MP3 $8D $B5 $01 $00
D:\>

 

-> 실제적으로 하위바이트가 먼저 출력된다.

00 01 B5 D8

 

 


 

 

3)OPR(Open File for Read) 명령으로 파일을 연다.

 

 


 

4)RDF(Read From File) 명령으로 원하는 크기만큼의 데이터를 읽어온다.

mp3파일 512개씩 읽어오는 테스트를 했다.

?l2<0>o[ZD:\>

 

 

테스트 -> USB 메모리 스틱 MP3 플레이어 참고

[STM32F4-100 EVM] USB Host 보드 제작


STM32F407/STM32F17 , STM32F2는 USB Host기능을 지원하는데, STM32F1, STM32F2, STM32F4를 모두 사용할 수 있는 보드를   [M-Type EVM] 형태로 새롭게 제작했다.




USB Device/Host 기능 모두 지원 할수 있도록 커넥터를 배치 했다.



STM32시리즈는 UART 프로그램이 가능하기 때문에 USB2UART 연결할 수 있는 커넥터를 연결할 수 있다.



STM32F4 확장 테스트 보드
[M-Type EVM] 표준 핀맵이므로 기존 확장 테스트 보드에 연결하여 테스트 가능하다.



[LCD_EXP_EVM] 보드 

[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;
}

[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");
 }
}


[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 보드 테스트 동영상

[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동작을 하지 하지 않는다.
메뉴얼에 블록도로 좀 자세하게 나와 있으면 좋을것 같은데... 아쉬운 부분이다.

[PIC32 - 100 EVM] 관련자료

[Microchip]/PIC32 | 2009.08.29 08:05
Posted by nexp
[PIC32-100 EVM] 관련자료


블로그 이미지

nexp

카테고리

분류 전체보기 (1550)
[MyProject] (48)
[TI] (75)
[NXP] (51)
[ST_MICRO] (129)
[FreeScale] (31)
[MSP430] (139)
[Microchip] (131)
Cortex-M (36)
[ATMEL] (29)
[AnalogDevice] (22)
[Embedded] (2)
ARM9 (24)
[AVR] (80)
[DSP] (111)
[8051] (21)
[MCU] (50)
[INTERFACE] (210)
[AppBoard] (23)
[ROBOT] (25)
[MODULE] (127)
[SENSOR] (41)
[DATA] (21)
[FPGA] (29)
[EVB] (1)
[Proramming] (38)
[MyLog] (6)
[IDEA] (0)
[Utility] (19)
[Book] (24)
취미생활 (4)
[Link] (2)