티스토리 뷰

VS1003 자체적으로 제공하는 테스트 모드를 이용하여 sine파를 생성 시키는데 문제 없음을 확인한 다음, 실제 mp3파일 일부분을 추출해서 스피커로 재생시켜 보도록 하겠다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
const unsigned char MP3_DATA[] = {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 
...
 
0x4D,0xD0,0xE9,0xAA,0x76,0x2D,0x45,0x0C,0xA0,0xB5,0x8A,0xA1,0xA8,0x00,0x2E,0x01,
0x00,0x02,0x99,0x80,0x60,0x96,0x0F,0x84,0x22,0x20,0x5D,0xB6,0x98,0xF9,0x44,0xE3,
0x8D,0x95,0xC2,0xB2,0x84,0x77,0x12,0x7F,0xE2,0x8E,0x52,0xEF,0x48,0x7C,0x81,0x37,
0xA0,0x82,0xED,0x30,0x53,0x3B,0x75,0x14,0x75,0x84,0x88,0xD0,0x01,0xCF,0x9A,0x9E,
0x51,0xE1,0xA1,0x3C,0x24,0xB6,0x47,0x84,0xF9,0x1F,0xDF,0xE1,0x19,0x66,0xF9,0x5A,
0xC4,0xC4,0x6E,0x29,0x11,0x3C,0xCC,0xED,0xF8,0x72,0x86,0x8D,0x5C,0x40,0x28,0x2A,
0x55,
};//End of Array
 
int MP3_DATA_size = sizeof(MP3_DATA);

MP3Sample.c 파일에 mp3파일에서 추출한 데이터를 배열로 만들고, 그 배열의 크기를 MP3_DATA_size라는 변수에 저장한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
extern unsigned char MP3_DATA[];
extern int MP3_DATA_size;
 
void loop(void)
{
    int     i;
 
    for (i=0; i<MP3_DATA_size; i+=32)
    {
        vs1003_send_data(&MP3_DATA[i], 32);
    }
 
    delay_ms(1000);
}

loop() 함수에서 mp3데이터를 32바이트 단위로 vs1003의 데이터 버스로 보내면 vs1003은 데이터를 디코딩하여 line out으로 오디어 신호를 출력해준다.

비록2~3초 정도밖에 되지 않는 짧은 데이터이지만 스피커를 통해서 소리가 재생되는것을 확인할 수 있을것이다.

이제 남은 것은 SD메모리카드나 이더넷같은 통신을 이용하여 실제 mp3 데이터를 출력해 보는것이다.



vs1003.zip


'프로젝트 > vs1003' 카테고리의 다른 글

Sine Wave 주파수 변경  (0) 2017.06.24
Sine Wave 생성  (0) 2017.06.19
Control register Read/Write  (0) 2017.06.18
VS1003 MP3 Codec  (0) 2017.06.18
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함