STM32 강좌

STM32F401VC-Discovery용 USB Host MP3 Player

아래에 사용된 자료는 Benjamin's robotics에 올라온 자료를 IAR로 Conversion한 자료입니다.

 

 

4d77ea5f4281908f73dad8f9fa6fc733_1496105253_8213.jpg
 

 

MP3의 특허가 4월 23일자로 만료되었습니다.

http://www.venturesquare.net/748153 

 

이에 STM32에서 MP3를 Player하는 자료를 검색하던 중 Benjamin의 작업을 찾을 수 있었습니다.

(ST는 MP3 Encoding, Decoding library를 보유하고 있으나 License문제 때문에 추가 비용을 지불해야 했었습니다. MP3 특허 만료 후 변경된 사항을 확인해 보아야 합니다.)

 

Benjamin은 Ubuntu에서 GCC환경으로 개발하였기 때문에 Windows환경에서 바로 Test할 수 없었습니다.

따라서 해당 자료를 IAR로 Conversion하였습니다.

자세한 내용은 Benjamin's robotics를 참고하시기 바랍니다.

 

 

STM32F401VC-Discovery용 USB Host MP3 Player

 

아래 Website의 자료를 IAR로 Conversion

 

http://vedder.se/2012/12/stm32f4-discovery-usb-host-and-mp3-player/

 

 

원본 자료는 Linux개발환경에서 GCC로 작성된 Source임.

이를 IAR EWARM 7.80.4에 맞게 Conversion

 

원본 소스는 STM32F4-Discovery(STM32F407)에 맞춰 작성되어 있었음.

보유하고 있는 STM32F4-Discovery가 STM32F401이어서 Clock이 맞지 않았음.

 

STM32F407은 Max 180Mhz이나 USB(48Mhz) 구동을 위해 168Mhz로 동작.

STM32F401은 Max 84Mhz이나 USB(48Mhz) 구동을 위해 72Mhz로 동작하도록 수정.

 

 

IAR Project를 첨부하였습니다.


Comments

주상민 2017.12.19 16:24
안녕하세요 많은 정보 잘 보고 있습니다.

이번 프로젝트 따라하다보니 궁금한점이 있어서 문의 남기게 되었습니다.

올려주신 프로젝트를 돌려보니 Play_MP3함수로 들어갔을 경우 Systick이 1ms마다 제대로 발생하지 않는데.

이것이 for(;;)으로 구성된 와일문에 빠져서 인터럽트가 제대로 걸리지않는것인지 궁금하여 답글 남기게 되었습니다.

혹시 Systick Interrupt가 제대로 걸리지 않는 경우가 어떤 것이 있는지 궁금합니다.
plainy 2018.01.03 13:54
안녕하세요.
답변이 늦었네요.
위 프로젝트로 진행하셨을때 Play_MP3함수로 진입하였을 때 Systick이 발생되지 않는 문제이신거죠?
중간에 Systick을 끄는 부분이 없기 때문에 계속 동작되어야 할텐데
우선 Clock이 맞게 들어가는지 확인해 보시고
다른 인터럽트(DMA)에서 멈춰있지는 않은지 확인해 주시고
SysTick->CTRL레지스터에서 Interrupt가 계속 켜져있는지도 확인해 보셔야 할 것 같습니다.
쿨쿨 2018.05.15 14:06
안녕하세요~
좋은 자료 감사드립니다.
ST에서 제공하는 MP3플레이 방법은 PCM 으로 컨버팅해서 DAC로 출력하는 방식인가요?
plainy 2018.05.18 09:32
ST에서 제공하는 MP3 플레이 방법은 MP3를 PCM으로 변환해서 CS43L22라는 Audio DAC으로 출력하는 방식입니다.
Category
글이 없습니다.
글이 없습니다.
Facebook Twitter GooglePlus KakaoStory NaverBand