티스토리 뷰
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' 카테고리의 다른 글
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 |