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 회로도

 

 

 

 

 

 

 

EFM32G210 EVM - SD Card 이용한 MP3 Player Test




지금까지 테스트한 코드를 이용하여 EFM32의 좀더 다양한 기능을 테스트 해 보자.

VS1053 MP3 모듈을 이용하여 MP3 Player를 만들어 보면 좋을것 같다.


S-Type EVM 을 테스트 할수 있는 [XMega32-EX] 확장 보드를 이용하면 SD Card가 포함된 VS1053 MP3모듈을 연결할 수 있다.

오디오 출력은 15W 출력 Class-D AMP(TPA3110)모듈을 이용하여 음질이 좋다.



테스트 결과 SD Card의 MP3파일 출력시 35mA 소비된다. 확실히 다른 Cortex-M3 코어 제품보다 적게 소비하는것 같다.



EFM32 MP3 Player 테스트 동영상

SD Card의 MP3파일을 순차적으로 출력하고 EFM32G210 EVM보드에 연결된 스위치를 누르면 다음곡을 선택할수 있도록 했다.  TFT-LCD에 플레이되는 곡목록을 출력한다. 추가적으로 VR을 이용하여 볼륨을 조절하고 좀더 소형화 하면 MP3플레이어가 될수 있다.



[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)

 

 

 


 

[ AT90USB1287-EX] MP3(VS1033) 모듈 테스트




[AT90USB1287-EX] 보드는 VS1033 MP3모듈 을 연결할 수 있어 USB메모리 스틱의 MP3파일을 출력하거나 이더넷을 이용하여 인터넷 라디오 등을 제작할 수 있다.




[AT90USB1287-EX] VS1033 MP3모듈 드라이버 소스코드
//-----------------------------------------------------------------------------
#define VS_DREQ_BIT      BIT6
#define VS_DREQ_PORT     PORTD

#define VS_CS_BIT      BIT4
#define VS_CS_PORT      PORTD

#define VS_XDCS_BIT      BIT5
#define VS_XDCS_PORT     PORTD

#define VS_RST_BIT      BIT7
#define VS_RST_PORT      PORTD


#define VS1003_CS_H()      Sbi(VS_CS_PORT, VS_CS_BIT)
#define VS1003_CS_L()      Cbi(VS_CS_PORT, VS_CS_BIT)

#define vs1003_enable()      VS1003_CS_L()
#define vs1003_disable()     VS1003_CS_H()


#define VS1003_XDCS_H()      Sbi(VS_XDCS_PORT, VS_XDCS_BIT)
#define VS1003_XDCS_L()      Cbi(VS_XDCS_PORT, VS_XDCS_BIT)


#define VS1003_RESET_H()     Sbi(VS_RST_PORT, VS_RST_BIT)
#define VS1003_RESET_L()     Cbi(VS_RST_PORT, VS_RST_BIT)

#define IsVs1003DataReady()     (PIND&VS_DREQ_BIT)

#define VS_SendByte       SPI0_WriteReadByte
#define VS_InitSpi()      SPI0_Init()
#define VS_SpiSpeed_Low()        SPI0_SetSpeed(SPI_SPEED_1MHZ)
#define VS_SpiSpeed_High()     SPI0_SetSpeed(SPI_SPEED_4MHZ)

#define MP3_PORT_INIT()         Sbi(DDRD, (BIT4|BIT5|BIT7));\
           Sbi(PORTD, BIT6);Cbi(DDRD, BIT6);\
              VS1003_CS_H();VS1003_XDCS_H()


[dsPIC EVM] MP3 Module (VS1033) 테스트



[NET EVM] 보드를 이용하면 W5100과 같은 이더넷 모듈이나 TFT LCD 모듈을 연결하여 테스트 할수 있고 VS1033과 같은 MP3 모듈을 연결하여 네트웍 라디오를 테스트 해 볼 수 있다.





ADC0 -> RB0



dsPIC33 MP3모듈 HAL Driver 코드
//-----------------------------------------------------------------------------
// VS1033 모듈 HAL
#define VS_DREQ_BIT      BIT6
#define VS_DREQ_PORT     PORTB

#define VS_CS_BIT      BIT4
#define VS_CS_PORT      PORTB

#define VS_XDCS_BIT      BIT5
#define VS_XDCS_PORT     PORTB

#define VS_RST_BIT      BIT3
#define VS_RST_PORT      PORTB

#define VS1003_CS_H()      Sbi(VS_CS_PORT, VS_CS_BIT)
#define VS1003_CS_L()      Cbi(VS_CS_PORT, VS_CS_BIT)

#define vs1003_enable()      VS1003_CS_L()
#define vs1003_disable()     VS1003_CS_H()

#define VS1003_XDCS_H()      Sbi(VS_XDCS_PORT, VS_XDCS_BIT)
#define VS1003_XDCS_L()      Cbi(VS_XDCS_PORT, VS_XDCS_BIT)


#define VS1003_RESET_H()     //Sbi(VS_RST_PORT, VS_RST_BIT)
#define VS1003_RESET_L()     //Cbi(VS_RST_PORT, VS_RST_BIT)

#define IsVs1003DataReady()     (GPIOA->IDR&VS_DREQ_BIT)

#define VS_SendByte       SPI1_WriteReadByte
#define VS_InitSpi()      SPI1_Init()
#define VS_SpiSpeed_Low()        SPI1_SetSpeed(SPI_SPEED_1MHZ)
#define VS_SpiSpeed_High()     SPI1_SetSpeed(SPI_SPEED_4MHZ)


#define MP3_PORT_INIT()      Cbi(TRISB, BIT3|BIT4|BIT5);Sbi(TRISB, BIT6);\
                                         VS1003_CS_H();VS1003_XDCS_H();VS1003_RESET_H()
//-----------------------------------------------------------------------------



dsPIC33 SD Card HAL Driver 코드
#define _SPI1_ENABLE    1

//-----------------------------------------------------------------------------
// SD Card HAL
#define _DEBUG_FAT_FILE                 1

#define MMC_CS_PORT      LATB
#define MMC_CS_BIT      BIT7

#define MMC_CS_INIT()     TRISB=0;MMC_CS_HIGH();

#define MMC_CS_HIGH()     Sbi(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

#define SPI_Mode3()

#define FAT_MAX_NUM_FILE          50

#define FCLK_SLOW()             MMC_SPISpeed(SPI_SPEED_1MHZ) 
#define FCLK_FAST()             MMC_SPISpeed(SPI_SPEED_MAX)
//-----------------------------------------------------------------------------
[DSP28335 EVM] VS1053모듈이용한 MP3 출력 테스트

 



[EXP-ALL EVM] 보드에서 VS1053 MP3모듈의 핀맵과 [DSP28335 EVM]의 핀맵









TMS320F28335 VS1053 모듈 드라이버 코드
#define VS_DREQ_BIT      BIT3
#define VS_DREQ_PORT     PORTA

#define VS_CS_BIT      BIT1
#define VS_CS_PORT      PORTA

#define VS_XDCS_BIT      BIT2
#define VS_XDCS_PORT     PORTA

#define VS_RST_BIT      
#define VS_RST_PORT 

#define VS1003_CS_H()      Sbi(VS_CS_PORT, VS_CS_BIT)
#define VS1003_CS_L()      Cbi(VS_CS_PORT, VS_CS_BIT)

#define VS1003_XDCS_H()      Sbi(VS_XDCS_PORT, VS_XDCS_BIT)
#define VS1003_XDCS_L()      Cbi(VS_XDCS_PORT, VS_XDCS_BIT)

#define VS1003_RESET_H()     //Sbi(VS_RST_PORT, VS_RST_BIT)
#define VS1003_RESET_L()     //Cbi(VS_RST_PORT, VS_RST_BIT)

#define IsVs1003DataReady()     (GPIOA->IDR&VS_DREQ_BIT)
#define VS1003_DREQ()           ((GPIOB->IDR&SW_BIT))

#define vs1003_enable()      VS1003_CS_L()
#define vs1003_disable()     VS1003_CS_H()


#define VS_SendByte       SPI1_WriteReadByte
#define VS_InitSpi()      SPI1_Init()
#define VS_SpiSpeed_Low()        SPI1_SetSpeed(SPI_SPEED_1MHZ)
#define VS_SpiSpeed_High()     SPI1_SetSpeed(SPI_SPEED_4MHZ)

#define MP3_PORT_INIT() 



TMS320F28335 SD Card 드라이버 코드

#define _SPI0_ENABLE     1
//-----------------------------------------------------------------------------
// SD Card HAL
#define MMC_CS_PORT      GPIOA
#define MMC_CS_BIT      BIT20

#define MMC_CS_INIT()     EALLOW;\
          GpioCtrlRegs.GPAMUX2.bit.GPIO20 = 0;\
          GpioCtrlRegs.GPADIR.bit.GPIO20 = 1;\
          EDIS;\
          MMC_CS_HIGH()
          
          
#define MMC_CS_HIGH()     sbi(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()     SPI0_Init()
#define MMC_SendByte     SPI0_WriteReadByte
#define MMC_Send(Data)      SPI0_WriteByte(Data)
#define MMC_Recv()      SPI0_WriteReadByte(0xFF)
#define MMC_RecvP(Data)     MMC_Send(0xFF); (*(Data)=SPI0_ReadByte())
#define MMC_SPISpeed     SPI0_SetSpeed

#define SPI_Mode3()
//-----------------------------------------------------------------------------
[LPC1K-SM EVM] VS1033 을이용한 MP3 출력 테스트


VS1033 MP3 디코드모률을 이용하면 LPC1100과 같은 저가형 MCU에서 쉽게 MP3출력이 가능하다. [EXP-DSP EVM] 보드는 VS1033모듈을 쉽게 연결하여 테스트 할 수 있다.

VS1033 모듈 핀맵
SPI를 위한 3개핀과 아래 제어핀 4개가 필요하다.



LPC1111을 사용할 때는 아래 두 핀은 점퍼로 할당이 필요하다.
DREQ     -> P_A3(P1.11)
MP3_CS -> P_A4(P0.10)







STM32-MP3 모듈 보드 관련자료 - VS1003 MP3 Module + SD Card + STM32



저렴한 STM32F101을 이용하여 VS1033 MP3 모듈 테스트 보드를 제작했다.  3개의 스위치와 2개의 LED가 인터페스가 되어 간단한 MP3 모듈 테스트가 가능하다.






VS1053 MP3 + SD Card Module + STM32



개발환경
STM32는 UART로 프로그램 가능하므로 USB2UART를 이용하면 쉽게 프로그램 가능하다.



D-Class AMP 모듈과 동일한 크기로 제작해서 앰프와 연결 가능 하도록 했다.



[STM32 MP3 Module] 회로도
SD + MP3모듈



확장 커넥터
사용하지 않은 핀들은 표준화된 확장 커넥터로 연결가능하도록 빼두었다.



OnBoard LED / Swtich


STM32-MP3 모듈 보드 제작

[ST_MICRO]/STM32 | 2009.11.14 00:29
Posted by nexp
STM32-MP3 모듈 보드 제작



MP3모듈을 테스트 할 수 있는 [STM32 MP3 Module]를 제작했다. 굴러다니는 STM32F101 이 많아서 소형으로 테스트 모듈로 제작했는데 급하게 제작하다 보니 아쉬운 점이 많네... 그냥 저렴하고 간단한 MP3만들기에 좋지 않을까... 되려 AVR보다 저렴하고 성능도 좋다. 물론 동일한 핀맵의 STM32F103을 이용하면 USB기능도 추가할 수 있다.





VS1053 MP3 + SD Card Module + STM32





SD카드 슬롯을 포함한 소형 MP3모듈을 제작했다.
MP3 코덱은 VS1003, VS1033, VS1053 사용가능하다.

회로도


SD Card 소켓





핀맵



확장 테스트 보드
AVR, ARM, PIC, DSP등의 소형 MCU로 쉽게 테스트 가능하다.



MP3 테스트 보드



STM32와 같은 소형 모듈에 SPI로 연결하면 쉽게 테스트 가능하다.



[LCD_EXP EVM]
TFT LCD를 테스트 할수 있는 LCD_EXP EVM보드의 뒷면에 이더넷 및 MP3모듈을 연결할 수 있도록 하여 이더넷으로 LCD표시하거나 MP3테스트를 할 수 있다.


블로그 이미지

nexp

카테고리

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