开发环境:集成开发环境μVision4 IDE版本4.60.0.0 主机系统:Microsoft Windows XP 开发平台:旺宝NXP LPC1768开发板 21.1 VS1003简介 21.2 硬件描述 21.3 程序说明 21.4 实验现象 1、VS1003简介:VS1003是一个单片MP3/WMA/MIDI音频解码器和ADPCM编码器。它包含一个高性能,自主产权的低功耗DSP 处理器核VS_DSP,工作数据存储器,为用户应用提供5KB 的指令RAM 和0.5KB 的数据RAM。串行的控制和数据接口,4个常规用途的I/O 口,一个UART,也有一个高品质可变采样率的ADC和立体声DAC,还有一个耳机放大器和地线缓冲器。 VS1003 特性: ●能解码 MPEG 1 和MPEG2 音频层 III(CBR+VBR+ABR);WMA 4.0/4.1/7/8/9 5-384kbps 所有流文件;WAV(PCM+IMAAD-PCM);产生MIDI/SP-MIDI 文件。 ●对话筒输入或线路输入的音频信号进行IMAADPCM编码 ●支持 MP3 和WAV 流 ●高低音控制 ●单时钟操作12..13MHz ●内部PLL锁相环时钟倍频器 ●低功耗 ●内含高性能片上立体声数模转换器,两声道间无相位差 ●内含能驱动30 欧负载的耳机驱动器 ●模拟,数字,I/O 单独供电 ●为用户代码和数据准备的5.5KB片上RAM ●串行的控制,数据接口 ●可被用作微处理器的从机 ●特殊应用的SPI Flash引导 ●供调试用途的UART接口 ●新功能可以通过软件和4 GPIO 添加 2、硬件描述: 如图是VS1003电路图,通过LPC1768通过SPI0接口与VS1003连接,P0.0和P0.1分别控制命令和数据片选,P0.4接数据请求引脚 3、程序说明: 本例程是在已有移植好的Fatfs 文件系统进行添加,在这里就不介绍Fatfs文件系统移植等操作了,直接调用即可。
程序开始先初始化VS1003、初始化LCD(3.2寸)、初始化AD转换用于调节音量、初始化文件系统后开始查找SD卡根目录下的mp3文件并存放在缓冲区,开始逐个播放缓冲区里面的mp3文件,当播放到文件尾后从头开始播放,并检测滑动变阻器值来改变播放音量。对于硬件下mp3解码相对比较简单,将VS1003初始化完成后,将SD卡里面的mp3文件读出来后直接通过SPI接口传送到VS1003进行解码即可。因此这里主要介绍VS1003的初始化,首先是初始化LPC1768与VS1003相连的SPI接口及命令数据片选端如下: VS1003软件复位:通过向SCI_MODE寄存器SM_RESET位写1即可,当复位成功后自动清零; 设置时钟:3倍频,允许在WMA流解码时给倍频器增加的额外的倍频值1.5倍,其中每位含义可参考SCLCLOCKF寄存器定义; 设置音量:高八位代表左声道,第八位代表右声道,数值越小音量越大,初始化将音量设置为0x4040,即左声道40(-20dB)右声道40(-20dB),主函数中通过检测滑动变阻器值设置音量,只需想0x0B寄存器写入对应的值即可。 4、实验现象: 将SD卡(不大于2G)内装入mp3音频文件插在开发板SD卡座上,插上3.2寸彩屏模块,下载程序复位后,彩屏上面显示播放音频文件名(这里不支持中文歌曲名显示),将耳机插在J3耳机插座上,可以听到播放的mp3歌曲,程序为循环播放歌曲。
|