MP3音乐播放器芯片VS1053B芯片使用教程
MP3音乐播放器芯片VS1053B芯片使用教程
#if 1
/**********************************************************/
/* 函数名称 : SPIPutChar
*/
/* 函数功能 : 通过 SPI 发送一个字节的数据
*/
/* 参数 : 待发送的字节数据
*/
/* 返回值 : 无
*/
/*--------------------------------------------------------*/
*/
/*--------------------------------------------------------*/
void InitPortVS1003(void)
{
MSPI_Init();//SPI 口的初始化
// IODIR &= 0xfffeffff; //其他接口线的设置,其中 dreq 为输入口
** 输 入: 无
Input: NULL
** 输 出: 收到的字节
Output: the byte that be received
*******************************************************************************
*************************************/
// IODIR |= MP3_XRESET | MP3_XCS | MP3_XDCS;//xRESET,xCS,xDS 均为输出口
// IOSET |= MP3_XRESET | MP3_XCS | MP3_XDCS;//xRESET,xCS,xDS 默认输出高电平
VS1053B中文资料应用
7.2.2 VS1001 兼容模式(不推荐) . . . . .. . . . . . . . . . . . . . . . . . . 18
7.3 数据请求引脚 DREQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
4.4 功率消耗 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4.5 数字电路特性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
8.2.4 支持的 Ogg Vorbis 格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1.1 LQFP‐48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
6 接线图, LQFP‐48167 SPI 总线
18
7.1 通用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
VS1053_MP3模块用户手册.pdf
项目 接口特性 解码格式 编码格式 对外接口 板载录音 其他特性 模块尺寸
项目 DAC 分辨率 总谐波失真(THD) 动态范围(A-加权) 信噪比 通道隔离度(串扰) 咪头(MIC)放大增益 咪头(MIC)总谐波失真 咪头(MIC)信噪比 LINE IN 信号幅度 LINE IN 总谐波失真 LINE IN 信噪比 LINE IN 阻抗
用户手册 4
VS1053 MP3 模块用户手册
高性能音频编解码模块
主机必须在判断 DREQ 有效(高电平有效)后,才可以发送数据,每次可以发送 32 字节。 这里我们重点介绍一下 SCI。SCI 串行总线命令接口包含了一个指令字节、一个地址字 节
和一个 16 位的数据字。读写操作可以读写单个寄存器,在 SCK 的上升沿读出数据位,所 以主机必须在下降沿刷新数据。SCI 的字节数据总是高位在前低位在后的。第一个字节指 令 字节,只有 2 个指令,也就是读和写,读指令为:0X03,写指令为:0X02。
图 2.3.3.2 SCI 写时序 图 2.3.3.2 中,其时序和图 2.3.3.1 基本类似,都是先发指令,再发地址。不过写时序中, 我们 的指令是写指令(0X02),并且数据是通过 SI 写入 VS1053 的, SO 则一直维持低电 平。另 外,在图 2.3.3.1 和图 2.3.3.2 中,DREQ 信号上都产生了一个短暂的低脉冲,也就是 执行时间。这个不难理解,我们在写入和读出 VS1053 的数据之后,它需要一些时间来处理 内部的事情,这段时间,是不允许外部打断的,所以,我们在 SCI 操作之前,最好判断一 下 DREQ 是否为高电平,如果不是,则等待 DREQ 变为高。 了解了 VS1053 的 SPI 读写,我们再来看看 VS1053 的 SCI 寄存器。 2.3.2 SCI 寄存器 VS1053 总共有 16 个 SCI 寄存器,通过这些寄存器实现对 VS1053 的各种控制,VS1053 的所有 SCI 寄存器如表 2.3.2.1 所示:
基于STM32的多功能音频播放器的设计
福建电脑2012年第12期基于STM32的多功能音频播放器的设计高云红1,刘志群2(1.山东行政学院计算机系山东济南2500142.闽江学院物理学与电子信息工程系福建福州350108)【摘要】:文章设计了一款基于STM32F103RBT6的多功能音频播放器,系统以STM32F103RBT6为控制核心,利用高性能、低功耗的音频解码芯片VS1053B实现音频数据解码,文件管理控制芯片CH376实现SD卡中的音频文件、图片、电子书等内容的读写,并配合2.8寸TFT触摸液晶屏,构建友好的人机交互系统。
整个系统实现了音频的高质量播放、图片和电子书浏览等功能,具有操作方便稳定可靠等特点。
【关键词】:STM32F103RBT6;VS1053B;音频解码;CH3761、引言自从1998年韩国第一款MP3播放器诞生以来,就受到了广大消费者的青睐,MP3播放器以其广阔的市场容量、丰厚的利润和较低的产业门槛等优势,吸引了众多电子企业积极参与,并且成为了IT行业的一个新增长点。
随着电子技术的发展和芯片集成度的提高,现阶段的MP3播放器在维持自身轻巧、时尚、下载方便、存储容量大、高音质等优势的前提下,还应尽可能吸收其它产品的功能,以便增加产品的卖点。
系统包括以下几个电路模块:STM32F103RBT6最小系统模块、VS1053音频解码模块、JTAG下载接口电路、SD卡、EEPROM模块24C04、2.8寸TFT液晶、USB转串口PL2303模块、USB控制芯片CH376等。
其中,STM32F103RBT6最小系统模块是整个系统的控制核心,USB转串口PL2303模块负责将电脑的USB口转换成串口;EEPROM存储器24C04用来存储系统掉电后的一些信息;SD卡模块用来储存音乐文件、汉字字库、图片等资源;TFT触摸液晶模块实现信息显示和触摸屏的控制;VS1053B音频解码模块主要获取STM32F103RBT6传入的音频文件信息与控制信息,同时解码输出音频信号;电源模块提供+3.3V 直流电压。
VS1003中文说明
VS1003-MP3/WMA 音频解码器VS1003 DataSheet 翻译版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 添加VS1003概述:●VS1003 是一个单片MP3/WMA/MIDI音频解码器和ADPCM编码器。
它包含一个高性能,自主产权的低功耗DSP 处理器核VS_DSP4,工作数据存储器,为用户应用提供5KB 的指令RAM 和0.5KB 的数据RAM。
串行的控制和数据接口,4 个常规用途的I/O 口,一个UART,也有一个高品质可变采样率的ADC和立体声DAC,还有一个耳机放大器和地线缓冲器。
●VS1003 通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。
输入的比特流被解码,然后通过一个数字音量控制器到达一个18 位过采样多位ε-ΔDAC。
通过串行总线控制解码器。
除了基本的解码,在用户RAM 中它还可以做其他特殊应用,例如DSP 音效处理。
PDF created with pdfFactory Pro trial version 4.1参数容许最大范围参数符号最小最大单位模拟正电源AVDD -0.3 3.6 V数字正电源CVDD -0.3 2.7 VI/O 正电源IOVDD -0.3 3.6 V所有数字口输出电流±50 mA所有数字口输入电压-0.3 IOVDD+0.31 V操作温度-40 +85 ℃存储温度-60 +150 ℃1 不能超过3.64.2建议操作环境参数符号最小值典型值最大值单位环境温度-25 +70 ℃模拟和数字地1 AGND DGND 0.0 V模拟正电源AVDD 2.6 2.8 3.6 V数字正电源CVDD 2.4 2.5 2.7 VI/O 正电源IOVDD CVDD-0.6V 2.8 3.6 V输入时钟频率2 XTAL1 12 12.288 13 MHz内部时钟频率CLKI 12 36.864 50.04 MHz内部时钟倍频数3 1.0x 3.0x 4.0x主机时钟占空比40 50 60 %1 必须相互连接并尽量靠近VS1003 以避免锁存上拉2 最大的采样率XTAL1/256,决定了能以正确的速度播放的音频采样率。
VS1053的应用
VS1053的应用VS1053本身是一款非常强大的MP3解码芯片,然而大多是人实践上才用了它很小一部份功能。
我也是第一次使用VS1053,所以也只用了它非常少的功能。
1. 最常见的方法就是,通过MCU控制VS1053进行解码。
用这中方法是最为简单的,只要正确使用VS1053的命令就可以实现。
当然这样可以快速使用VS1053,是入门的最好方法,但是成本比较高。
2. 直接使用VS1053进行控制,这样就节约了一块MCU。
不过需要应用VSIDE平台,所以使用起来相当比较麻烦。
本人就讲讲使用第一种方法的应用,等以后利用第二种方法进行开发时,在和大家一起学习。
VS1053的应用其实非常简单,基本的步骤如下:1. 编写好SPI总线驱动代码;2. 编写好VS1053初始化代码;3. 编写正弦波测试代码;4. 内存测试代码。
完成以上几个步骤后就可以进行MP3解码了。
/************************************************************** ************************* FunctionName : VS1053SineTest()* Description : 正弦波测试* EntryParameter : freq - 测试频率 0x24,0x44等* ReturnValue : None*************************************************************** ***********************/void VS1053SineTest(uint8 freq){uint8 i;uint8 test[] = {0x53, 0xEF, 0x6E, 0x24, 0x00, 0x00, 0x00,0x00}; // 向vs发送正弦测试命令uint8 back[] = {0x45, 0x78, 0x69, 0x74, 0x00, 0x00, 0x00, 0x00}; // 向vs发送退出测试命令VS_XRESET_CLR(); // xreset = 0VS1053_Delay(100);SSP1Send(0xFF); // 发送一个字节的无效数据,启动SPI传输VS_CS_SET(); // cs = 1VS_XDCS_SET(); // xdcs = 1VS_XRESET_SET(); // xreset = 1VS1053_Delay(100);VS1053WriteReg(VS_SCI_MODE, 0x0820); // enter vs1003 test modelwhile (VS_DREQ_PIN() == 0); // wait for DREQ Highlevel GPIOSetValue(1, 2, 0); // xdcs = 0test[3] = freq; // 写入频率for (i=0; i<8; i++){VS1053WriteData(test[i]); // 程序执行到这里后应该能从耳机听到一个单一频率的声音}VS_XDCS_SET(); // xdcs = 1VS1053_Delay(100000);GPIOSetValue(1, 2, 0); // xdcs = 0for (i=0; i<8; i++){VS1053WriteData(back[i]); // 退出正弦测试}VS_XDCS_SET(); // xdcs = 1VS1053_Delay(200);/************************************************************** ************************* FunctionName : VS1053RamTest()* Description : 内存测试,0x8000表示测试完成,0x83FF表示完好* EntryParameter : None* ReturnValue : 完好返回0,否则返回1*************************************************************** ***********************/uint8 VS1053RamT est(void){uint16 res = 0x0000;uint8 i;uint8 test[] = {0x4D, 0xEA, 0x6D, 0x54, 0x00, 0x00, 0x00, 0x00}; //VS_XRESET_CLR(); // xreset = 0VS1053_Delay(100);SSP1Send(0xFF);VS_CS_SET(); // cs = 1VS_XDCS_SET(); // xdcs = 1VS_XRESET_SET(); // xreset = 1VS1053_Delay(100);VS1053WriteReg(VS_SCI_MODE, 0x0820); // Allow SCI tests while (VS_DREQ_PIN() == 0); // wait for DREQ Highlevel //After this sequence wait for 1100000 clock cycles.//The result can be read from the SCI register SCL_HDATA0 GPIOSetValue(1, 2, 0); // xdcs = 0for (i=0; i<8; i++)VS1053WriteData(test[i]); // 写入测试代码}VS_XDCS_SET(); // xdcs = 1VS1053_Delay(10000);res = VS1053ReadReg(VS_SCI_HDAT0); // 如果得到的值为0x83FF,则表明完好。
MP3-stm32-资料
Cortex-M3 是ARM 公司为要求高性能(1.25 Dhrystone MIPS/MHz)、低成本、低功耗的嵌入式应用专门设计的内核。
STM32 系列产品得益于Cortex-M3 在架构上进行的多项改进,包括提升性能的同时又提高了代码密度的Thumb-2 指令集和大幅度提高中断响应的紧耦合嵌套向量中断控制器,所有新功能都同时具有业界最优的功耗水平。
本系统是基于Cortex-M3 内核的STM32 微控制器的mp3 播放器,在硬件方面主要有VS1003 硬件音频解码器和12864 点阵液晶屏,在软件方面主要有VS1003 的驱动,SD 卡工作在SPI 模式下的读写驱动,FAT 文件系统的移植,12864 液晶的驱动,(嵌入式操作系统ucOSii 的移植以及嵌入式图形管理器ucGUI 的移植)。
首先将MP3歌曲文件从内存中取出并读取存储器上的信号→到解码芯片对信号进行解码→通过数模转换器将解出来的数字信号转换成模拟信号→再把转换后的模拟音频放大→低通滤波后到耳机输出口,输出后就是我们听到的音乐。
STM32不同的外设是挂载在不同的总线上的,见图5-8。
有AHB总线、APB2总线、APB1总线从芯片角度来说,时钟源分为内部时钟与外部时钟源,内部时钟是在芯片内部RC振荡器产生的,起振较快,所以时钟在芯片刚上电的时候,默认使用内部高速时钟。
而外部时钟信号是由外部的晶振输入的,在精度和稳定性上都有很大优势,所以上电之后我们再通过软件配置,转而采用外部时钟信号。
所以,STM32有以下4个时钟源:高速外部时钟(HSE):以外部晶振作时钟源,晶振频率可取范围为4~16MHz,我们一般采用8MHz的晶振。
高速内部时钟(HSI):由内部RC振荡器产生,频率为8MHz,但不稳定。
低速外部时钟(LSE):以外部晶振作时钟源,主要提供给实时时钟模块,所以一般采用32.768KHz。
野火M3实验板上用的是32.768KHz,6p负载规格的晶振。
基于STM32的多功能音乐播放器设计
• 123•基于STM32的多功能音乐播放器设计绵阳职业技术学院 罗金生 王荣海 李 岷 刘 成以音乐播放器为研究对象,提出一种基于STM32的音乐播放器的硬件和软件的设计方法,系统以STM32F103ZET6为控制核心,音频解码芯片VS1053B实现音频数据解码,挂载FATFS文件系统实现对SD卡中的音频文件进行读取,利用FFT快速傅里叶变换将音频信号转为频谱,加入了一个小型GUI显示界面配合OLED显示屏,实时的将界面、播放状态以及频谱生动的展示出来,此外还加入了蓝牙音频功能,通过手机蓝牙即可连接播放器播放音乐。
实验表明,该音乐播放器连接耳机能流畅播放多种格式的音乐文件,具有多功能、高性能、低功耗、操作方便、稳定可靠等特点。
引言:音乐可能是人类史上最古老、最具普遍性以及感染力的艺术形式之一。
音乐能提高人的审美能力,净化人们的心灵,树立崇高的理想。
不论时代怎么发展,人们的生活娱乐都离不开音乐。
因此,设计一款简单实用,多功能化的音乐播放器完全可以符合人们的爱好及需求。
本文介绍一种基于STM32F103处理器的SDIO接口模块及外围音频解码芯片实现一个SD卡的音乐播放器,它读取存储在SD卡里的音频格式文件,并通过立体声音解码芯片输出,能进行频谱显示,还可以通过手机蓝牙与其连接播放音乐等功能。
1.系统硬件电路设计基于STM32F103VET6微控制器所设计的MP3播放器,主要包括:存储模块、蓝牙音频模块、音频解码模块、显示模块。
系统方案设计的系统框图如图1所示。
主控制器芯片,利用其SDIO接口不断读取SD卡音频文件送入缓存区;使用了三组SPI接口,第一组SPI接口将读取的音频数据流送至音频解码芯片VS1053进行解码,第二组SPI接口连接了字库存储芯片,用于显示歌曲名等,第三组SPI接口连接OLED显示屏幕实现人机交互以及显示歌曲信息和频谱等;使用了一个定时器、一个DMA以及一个ADC通道实时快速采集音频输出,并利用FFT将其从时域转换为频域;使用通用IO控制蓝牙以及音频切换芯片和键盘。
MP3播放器实验
它使用的 IO 为:
VS1053 的 SPI 支持两种模式: 1, VS1002 有效模式 (即新模式) 。 2, VS1001 兼容模式。这里我们仅介绍 VS1002 有效模式(此模式也是 VS1053 的默认模 式) 。 从原理图中,我们看出 VS1053 跟单片机相连的引脚主要有 7 根,他们是: 1) VS_MISO:SPI 输入线 2) VS_MOSI:SPI 输出线 3) VS_SCK:SPI 时钟线 4) VS_XCS:器件片选 5) VS_XDCS:数据片选和字节同步 6) VS_DREQ: 数据请求, 输入总线。 这个信号引脚是用来反馈 VS1053 的 2048 字节 FIFO 是否可以接受数据。如果它为高电平,则 VS1053 可以接收最少 32 字节的 SDI 数据或者接受 SCI 命令。 当流缓冲区太 满和 SCI 命令正在执行的期间,DREQ 会转换到低电平,此时应该 停止想 VS1053 发送新数据和命令。 7) VS_RST:复位端 31.2 VS1053 的操作 VS1053 通信支持 SPI 协议,所以我们使用 STM32 的硬件 SPI 发送接收数据 就可以了, 开发板上面使用的是 STM32 的硬件 SPI1, 具体操作跟之前介绍的 SPI 操作时一样的,这么我们就不详细介绍了。 1. SCI 串行命令写操作 此串行命令接口 SCI 的串行总线协议包括:一个指令字节、一个地址字节和 一个 16 位的数据字,也就是 4 个字节。
MP3 播放器实验
学习目标 1. 复习 STM32 硬件 SPI 2. 学会操作 VS1053 播放音乐 前几年,MP3 曾经风行一时,几乎人手一个,今天我们用开发板自己来实现 一个 MP3 播放器。 31.1 VS1053 简介 VS1053 是继 VS1003 后荷兰 VLSI 公司出品的又一款高性能解码芯片。该 芯片可以实现对 MP3/OGG/WMA/FLAC/WAV/AAC/MIDI 等音频格式的解码, 同 时还可以支持 ADPCM/OGG 等格式的编码, 性能相对以往的 VS1003 提升不少。 开发板上面自带了一个 VS1053 解码芯片,电气原理图为:
在VS1003上实现wma格式音乐的播放
在VS1003上实现wma格式音乐的播放在VS1003上实现wma格式音乐的播放今天晚上我在我做的mp3上试验了播放wma音乐。
vs1003手册上说可以解码吗mp3 wma和midi格式的音乐。
试验发现播放wma音乐可以像播放mp3那样播放,只要把wma 文件数据送给vs1003就可直接播放。
刚开始在从正在播放的wma音乐转入下一首音乐会出现不能播放的问题。
wma格式不像mp3格式那样容易播放,因此不能播放的原因是其不能正确结束当前播放的数据帧。
后来查datasheet发现可以通过设置SCI_MODE的SM_OUTOFWAV位来结束wma的播放。
由于我的程序没有判断当前播放的音乐是什么类型音乐的程序。
所以我有找了个变通的方法,就是复位。
我用的是软件复位,通过设置SCI_MODE的SM_RESET位来实现。
即在播放每一首歌前复位一下vs1003就可解决wma歌曲的切换。
按手册上的要求复位前最好向VS1003填充2048个0 且这些数据要根据DREQ引脚的请求送给芯片。
另外复位后还要延时约1.35ms芯片才能恢复到先前的工作频率。
接下来就可以发送你的mp3或wma数据了。
不过这种方法只能整首的播放wma音乐,不能快进。
如要快进VLSI网站上有示例代码。
现在我的mp3可以播放mp3和wma两种格式的音乐了,至于midi有空再研究。
不知阿永第三版的mp3板是否支持wma,如果没有可以考虑把它加上去,不复杂的,只要按我上面的方法就可。
今天早上我又把vs1003的midi功能做出来了。
不过在播放midi之前要把SMF1格式的midi转成SMF0格式的midi文件。
在应用手册上的网址/doc/b36593691.html,/下载转换程序GN1:0转换。
将转换后的文件拷到sd卡中按播放mp3及wma的方式播放即可。
但要注意在从正在播放的midi曲子跳出来,在复位前就不要填充2048个零了如果填充了将会花很长时间才能进入下一首歌的播放,因为midi 需要的数据量很小。
基于STM32的MP3播放器设计与实现
基于STM32的MP3播放器设计与实现设计和实现基于STM32的MP3播放器需要完成以下几个主要步骤:硬件设计、软件编程以及调试。
以下将详细描述每个步骤,并提供基于Keil MDK的完整源代码。
硬件设计:1.硬件平台选择:选择适合于MP3播放器的STM32系列单片机,如STM32F4系列。
2.音频芯片选择:选择具有I2S或SPI接口的音频解码芯片,如VS1053芯片。
3.外设选择:选择适当的外设来控制用户输入(如按键)、显示屏幕和存储介质(如SD卡)。
4.硬件连接:按照芯片和外设的接口要求,连接单片机、音频解码芯片、按键、显示屏幕和SD卡等。
软件编程:1.硬件初始化:初始化单片机和外设的引脚配置、时钟和中断等。
2.外设驱动编写:编写外设的驱动程序,包括音频解码芯片驱动、SD 卡驱动、按键驱动、显示屏幕驱动等。
3.MP3解码器:基于音频解码芯片的通信协议,编写MP3解码器的相关程序,实现文件的解码和音频数据的播放。
4.用户接口:编写用户界面程序,实现按键控制、显示屏幕显示、菜单操作等功能,以便用户操作音乐播放器。
5.文件系统:编写文件系统程序,实现对SD卡中音乐文件的读取和管理。
调试:1. 编译:使用Keil MDK进行编译,检查程序是否能够正确编译通过。
3.调试:通过串口或调试器连接STM32单片机,查看程序运行过程中的输出信息,检查是否存在问题并进行调试。
以下是一个基于STM32F4系列的MP3播放器的部分源代码,完成了初始化、外设驱动、MP3解码器和用户接口的编写。
```c#include "stm32f4xx.h"#include "vs1053.h"#include "sdcard.h"#include "lcd.h"#include "key.h"void Delay(uint32_t nCount)for(; nCount != 0; nCount--);int main(void)LCD_Init(;Key_Init(;VS1053_Init(;SD_Init(;while(1)if (Key_Scan( == KEY_PLAY)SD_Play(;}}void EXTI0_IRQHandler(void)if (EXTI_GetITStatus(EXTI_Line0) != RESET)VS1053_TriggerInterrupt(;EXTI_ClearITPendingBit(EXTI_Line0);}```以上代码只是一个简单的示例,具体实现需要根据所选择的硬件平台和外设来编写相应代码,例如音频解码芯片的驱动程序、SD卡的读写程序等。
基于嵌入式系统的多媒体音乐播放器
基于嵌入式系统的多媒体音乐播放器宫鹏;宫玥;王瑞宝【摘要】为了改善音乐播放器传统界面,扩充功能,提高音质,基于ARM7嵌入式系统平台和FAT 32文件系统,设计了一款带有文本阅览功能的多媒体音乐播放器.它不仅能正确识别并显示存储在SD,MMC等存储卡内的音频文件,支持环绕立体声调节和重低音调节,还可通过液晶屏浏览存储在存储卡内的中、英文TXT文档.该播放器选用具有出色音频解码能力的VS1053解码芯片,它支持320 Kb/s的MP3或256 Kb/s的WMA音乐文件的播放.该播放器通过视听验证,实现了4种以上不同的音效,满足使用者对音效的不同喜好.实现了环绕立体声调节和真正的立体声双声道音频输出.同时在操作上简单便捷,具有友好的人机界面.%To perfect the tranditional interface, extend the functions, and improve the tone quality of music player, a multimedia music player with text readLng function was designed based on Arm7 embedded platform and FAT32 file system. It not only can recognize and display MP3 and WMA files stored in memory cards (such as SD and MMC, etc. ) , support the tuning of surround sound and mega bass, but also can read Chinese or English TXT documents stored in memory card by LCD. The vs1053 decoding chip which has a perfect voice frequency decoding ability is chosen for the player. It supports the play of 320 kbps MP3 and 253kbps WMA files. More than four sound effects of the player can meet the requirement of different users.The tuning of surround sound and the output of real stereo dual-sound channel were achieved. Moreover, this system with excellent human-machine interface is easy to operate.【期刊名称】《现代电子技术》【年(卷),期】2011(034)012【总页数】4页(P100-103)【关键词】ARM7;SD卡;多媒体播放器;VS1053【作者】宫鹏;宫玥;王瑞宝【作者单位】青岛大学自动化工程学院,山东青岛266071;青岛有线电视网络中心,山东青岛266000;青岛有线电视网络中心,山东青岛266000【正文语种】中文【中图分类】TN911-34;TP3330 引言嵌入式系统具有处理速度快、低功耗、体积小、功能强大且易于移植等优点而得到广泛的应用。
基于STM32与VS1053B的智能语音药盒设计
基于STM32与VS1053B的智能语音药盒设计作者:张丽芳杨林田开坤来源:《科学家》2016年第14期摘要本文主要阐述的是一种基于STM32单片机和VS1053B解码芯片,采用模块化结构设计的智能语音药盒。
与普通的药盒相比,本设计考虑更多的是病患的老年化导致记忆力的减退,无法按照准确的医嘱服药,所以增加了语音提醒功能,内置有音频生成软件生成的医嘱音频。
同时为了减少医护人员的工作量,通过SD卡内置参数配置文件clock.ini来设定闹钟功能,针对不同的医嘱配置不同的闹钟参数。
关键词智能药盒;STM32;VS1053B中图分类号 TN409 文献标识码 A 文章编号 2095-6363(2016)14-0040-01经过多项调查发现,患者的自护技能远远没有达到预期要求,同时由于老龄患者记忆力的减退,使每次健康教育后的记忆衰减期大大缩短,这是一个巨大的反差。
目前,市场上出现的药盒大部分只有储存功能,少部分药盒加上了闹钟功能。
为了使患者能够用最简单的方法,提高在自我护理技能中最重要的一项技能——遵从医嘱服药,使患者更方便的参与自我护理,对加强老年病患的自我护理能力具有十分重要的研究价值和实际意义。
1系统简介及工作原理系统的工作原理参考实用新型专利“家用智能药箱”的设计方案,如图1所示。
本实用型家用药箱箱盖上设有显示器、控制按钮和喇叭,箱内设有固定药品放置槽和活动药品防止槽。
本实用型药箱结构简单,能灵活分区贮存摆放药品,外出携带方便,具有闹钟、语音提醒和健康教育功能。
智能语音药盒系统是由STM32F103RCT6单片机模块、音频解码模块、功放模块、SD卡模块、OLED显示模块、USB模块组成,其系统结构框图如图2所示。
显示模块上显示日期时间和闹钟,按键模块共设置7个按键,其中通过key1~key3按键控制日历时间的校准,key4~key6为健康教育播放按键,key7按键为重复播放按键,重复上一个闹钟对应的医嘱音频的播放。
基于VS1053芯片的录音装置设计
基于VS1053芯片的录音装置设计作者:周璐璐来源:《卷宗》2014年第10期Mp3曾经风靡全球,几乎无人不知,无人不晓。
录音器是在基本mp3播放的基础上的功能的一个升级。
本设计是基于Cortex-M3内核的STM32F103系列单片机设计录音的功能,单片机控制VS1053实现录音和播放的录音装置的制作。
整个系统主要由音频解码部分、音效处理部分、SD卡部分、功率放大、电源部分等几个部分组成,整个系统由一块MCU(STM32F103RBT6)控制运行,各个部分协调运作。
硬件部分介绍:本次设计所做的是基于STM32的录音器,解码芯片VS1053的作用不言而喻,因为此次录音文件是保存在SD卡上的,自然少不了对SD卡的介绍。
STM32F103系列微处理器是首款基于ARMv7-M体系结构的32位标准RISC (精简指令集)处理器,提供很高的代码效率,在通常8位和16位系统的存储空间上发挥了ARM 内核的高性能。
该系列微处理器工作频率为72MHz,内置高达128K 字节的Flash存储器。
其内部结构图如图1所示:图1 STM32内部结构STM32 MCU系列包含五个产品线:1.基本型系列STM32F101:36MHz 最高主频,具有高达1MB的片上闪存。
B基本型系列STM32F102:48MHz最高主频,具有全速USB模块。
3.增强型系列STM32F103:72MHz最高主频,具有高达1MB的片上闪存,集成电机控制、USB和CAN模块。
4.互联型系列STM32F105/107:72MHz最高主频,具有以太网MAC。
CAN以及USB 2.0 OTG功能。
本系统采用STM32F103RBT6作为控制核心,该芯片具有6通道的16位PWM输出,RTC时钟,两个高速SPI,两个IIC,三个串口,自带USB和CAN接口。
具有128K flash和20K 的SRAM,对本系统来说足够了,同时以后还有很大的升级空间。
本系统采用VS1053解码芯片,VS1053是荷兰VLSI公司出品的一款高性能的解码芯片。
VS1003作MP3播放器_教程
0024单片机实现MP3播放的方法有一个东西你一定听说过或用过,那就MP3播放器。
MP3播放器以其小巧的体积、强大的功能、优异的音质倍受人们的青睐。
如果把它嵌入到我们的单片机系统中,实现音频输出,那么对系统的增色是不言而喻的。
单独拿单片机来说,要解码MP3文件,是不可能的,因为从处理速度和资源各个方面都是不能满足要求的。
所以要依赖于专用MP3解码芯片,而单片机要作的就是对其进行控制。
这里我们围绕芬兰VLSI公司出品的VS1003来进行解MP3的实现方法。
1、VS1003芯片1)芯片简介VS1003是由荷兰VLSI公司出品的一款单芯片的MP3/WMA/MIDI音频解码和ADPCM编码芯片,其拥有一个高性能低功耗的DSP处理器核VS_DSP,5K的指令RAM,0.5K的数据RAM,串行的控制和数据输入接口,4个通用IO口,一个UART 口;同时片内带有一个可变采样率的ADC、一个立体声DAC以及音频耳机放大器。
VS1003通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机。
输入的比特流被解码,然后通过一个数字竟是控制器到达一个18位过采样多位ε-ΔDAC。
通过串行总线控制解码器。
除了基本的解码,在用户RAM中它还可以做其他特殊应用,例如DSP音效处理。
2)芯片实物与SiriuS板上的VS10033)芯片封装以下的讲述都是针对于LQFP-48封装的。
4)VS1003特性1.能解码MPEG1 与MPEG2音频层III(CBR+VBR+ABR);WMA 4.0/4.1/7/8/95~384kbps所有流文件;W A V(PCM+IMA AD-PCM);产生MIDI/SP-MIDI文件。
2.对话筒输入或线路输入的音频信号进行IMA ADPCMM编码3.支持MP3和WA VV流4.高低音控制5.单时钟12~13MHz6.内部PLLL锁相环时钟倍频器7.低功耗8.内含高性能片上立体声数模转换器,两声道间无相位差9.内含能驱动30欧负载的耳机驱动器10.模拟,数字,I/O单独供电11.为用户代码和数据准备的5.5KB片上RAM12.串行的控制/数据接口13.可被用作微处理器的从机14.特殊应用的SPI Flash引导15.借高度用途的UART接口16.新功能可以通过软件和4 GPIO添加5)VS1003的引脚定义管脚名称LQFP-48 管脚类型管脚功能MICP 1 AI 同相差分话筒输入,自偏压MICN 2 AI 反相差分话筒输入,自偏压XRESET 3 DI 低电平有效,异步复位端DGND0 4 DGND 处理器核与I/O地CVDD0 5 CPWR 处理器核电源IOVDD0 6 IOPWR I/O电源6)VS1003的功能寄存器VS1003共有16个16位的寄存器,地址分别为0X0~0XF;除了模式寄存器(MODE,0X0)和状态寄存器(STA TUS,0X1)在复位后的初始值分别为0X800和OX3C外,其余的寄存器在VS1003初始化后的值均为0。
用VS1003 DIY MP3播放器(支持SD卡,TF卡,U盘) 原创制作
目录中文摘要 (Ⅰ)英文摘要 (Ⅱ)1. 引言 (1)2. 课题研究背景 (2)2.1国内外的研究现状 (2)2.2 课题研究的意义 (3)3. 课题研究内容 (4)3.1研究主要内容 (4)3.2主要方案选择 (4)4. 主要器件的原理及应用 (5)4.1主控制器MCU (5)4.1.1 ATmega32L性能 (5)4.1.2 引脚说明 (6)4.1.3 AVR CPU 内核 (8)4.1.4 SPI 串行外设接口 (10)4.1.5 C语言初始化程序和SPI传输程序 (13)4.2 USB 总线接口芯片CH375 (14)4.2.1 概述 (14)4.2.2特点 (14)4.2.3 接口说明 (15)4.2.4 主机模式下的使用方法 (18)4.2.5 初始化U盘C语言程序 (19)4.3 音频解码芯片VS1003 (20)4.3.1 VS1003 特性 (20)4.3.2 VS1003概述 (21)4.3.3 VS1003通信模式 (22)4.3.4 VS1003 C语言初始化程序 (24)5. 整体方案的实现 (26)5.1方案结构框图 (26)5.2 设计流程图 (28)5.3 软件实现方法 (29)5.4 系统电路原理图 (31)5.5 解码板电路图 (33)6. 结束语 (34)致谢........................................................................................................错误!未定义书签。
参考文献.. (35)附录........................................................................................................错误!未定义书签。
车载数字音源的设计摘要本设计部分采用苹果公司最初IPOD设计的方案,以美国ATMEL 公司的AVR 芯片作为主控制器,芬兰VLSI公司的VS1003作为音频解码芯片,南京沁恒公司的CH375作为USB设备接口芯片,以优盘、SD /TF卡作为媒体存储介质,NOKIA(诺基亚)3510i手机的4096色彩屏作为显示屏,来完成音乐播放器的功能。
基于STM32与VS1053B的智能语音药盒设计
SCIENTIST40经过多项调查发现,患者的自护技能远远没有达到预期要求,同时由于老龄患者记忆力的减退,使每次健康教育后的记忆衰减期大大缩短,这是一个巨大的反差。
目前,市场上出现的药盒大部分只有储存功能,少部分药盒加上了闹钟功能。
为了使患者能够用最简单的方法,提高在自我护理技能中最重要的一项技能——遵从医嘱服药,使患者更方便的参与自我护理,对加强老年病患的自我护理能力具有十分重要的研究价值和实际意义。
1 系统简介及工作原理系统的工作原理参考实用新型专利“家用智能药箱”的设计方案,如图1所示。
本实用型家用药箱箱盖上设有显示器、控制按钮和喇叭,箱内设有固定药品放置槽和活动药品防止槽。
本实用型药箱结构简单,能灵活分区贮存摆放药品,外出携带方便,具有闹钟、语音提醒和健康教育功能。
图1 智能语音药盒实物参照图智能语音药盒系统是由STM32F103RCT6单片机模块、音频解码模块、功放模块、SD 卡模块、OLED 显示模块、USB 模块组成,其系统结构框图如图2所示。
显示模块上显示日期时间和闹钟,按键模块共设置7个按键,其中通过key1~key3按键控制日历时间的校准,key4~key6为健康教育播放按键,key7按键为重复播放按键,重复上一个闹钟对应的医嘱音频的播放。
当设定的闹钟时间到了后,喇叭会播放当前闹钟对应的医嘱音频,想收听健康教育音频,可以通过key4~key6选择相应的音频。
医护人员可以通过药盒上的USB 接口连接电脑对SD 卡进行文件的存储或删除。
2 硬件设计MUC 采用的STM32F103RCT6芯片,其具有高性能、低成本、低功耗等特点。
解码芯片选择的是VS1053B,该芯片是由荷兰VLSI 公司出品的一款单芯片MP3/WMA/MIDI/WAV 音频解码和ADPCM 编码芯片。
功放模块使用的是TPA2008D2放大器,TPA2008D2是德州仪器公司生产的第三代5V-D 类放大器。
显示模块采用的是OLED,显示屏只需要显示时间日期和闹钟,选用尺寸较小的OLED 作为显示屏。
MP3 Trigger v2用户指南说明书
MP3 Trigger v2 User Guide
2012.02.01
1 long blink, followed by 1 short blink - microSD media found, no MP3 files located. Constant short blinks - Hardware problem with MP3 Decoder. 3 short blinks - microSD media found, at least 1 MP3 file located.
When a triggered track reaches the end, the MP3 Trigger v2 looks to see if any trigger inputs are active, and will automatically start another track if so. If only the same trigger is active, then that track will restart (loop). If other triggers are active, the MP3 Trigger v2 will always start the next higher trigger track, wrapping back to 1 after 18.
Trigger (WIG-09356) is a trademark of SparkFun Electronics, Inc. All other trademarks contained herein are the property of their respective owners. MP3TRIGGER_UG_090917
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
c_SPI_SI = 1 c_SPI_SI = 0 c_SPI_CLK = 1 c_SPI_CLK = 0
void LCD_write_english_string(unsigned char X,unsigned char Y,char *s);
//#define SPIWait() { while((S0SPSR & 0x80) == 0); }//等待 SPI 将数据发送完毕
MP3 音乐播放器芯片 VS1053B 芯片使用教程
MP3,MP4,数码相机曾经是奢侈品。科技发展了,这些东西也就成了普通手 机的附属品了。但是作为手艺人学习这些芯片了解这些高性能芯片是很有必要的。 学习了解它既拓展了自己的眼界,也可以提升自己对嵌入式系统的认识。原子战 舰板上就板载了一颗高性能 MP3 音乐播放器芯片 VS1053B 芯片。通过原子源码对 一些参数的修改,也能欣赏美妙的音乐。这是一款真正的数字产品。还可以作为 录音机使用。
static uchar SPI_RecByte(void)
{
uchar ucReadData; uchar ucCount;
ucReadData = 0; Macro_Set_SI_High();
for(ucCount=0; ucCount<8; ucCount++) {
ucReadData <<= 1; //降低时钟频率
S0SPCCR = 0x08;
// SPI 时钟设置
S0SPCR = (0 << 3) |
// CPHA = 0,
(0 << 4) |
// CPOL = 0,
(1 << 5) |
// MSTR = 1,
(0 << 6) |
// LSBF = 0,
(0 << 7);
// SPIE = 0,
*/
c_SPI_SO = 1;
*************************************
** 函数名称: INT8U SPI_RecByte()
Name: INT8U SPI_RecByte()
** 功能描述: 从 SPI 接口接收一个字节
Function: receive a byte from SPI
interface
MP3_XRESET = 1; MP3_XCS = 1; MP3_XDCS = 1; }
//uint8 SD_SPI_ReadByte(void); //void SD_SPI_WriteByte(uintyte() SD_SPI_ReadByte() //#define SPIPutChar(x) SD_SPI_WriteByte(x)
uchar ucTempCount; uchar uci;
for(ucTempCount=0; ucTempCount<ucDelayCount; ucTempCount++)
{
//
uci = 200; //Err
//
uci = 250; //OK
uci = 230;
while(uci--)
{
_nop_();
VS1053 是继 VS1003 后荷兰 VLSI 公司出品的又一款高性能解码芯片。 该芯片可以实现对 MP3/OGG/WMA/FLAC/WAV/AAC/MIDI 等音频格式的解码,同时还 可以支持 ADPCM/OGG 等格式的编码,性能相对以往的 VS1003 提升不少。VS1053 拥有一个高性能的 DSP 处理器核 VS_DSP,16K 的指令 RAM,0.5K 的数据 RAM,通 过 SPI 控制,具有 8 个可用的通用 IO 口和一个串口,芯片内部还带了一个可变 采样率的立体声 ADC(支持咪头/咪头+线路/2 线路)、一个高性能立体声 DAC 及 音频耳机放大器。
MP3_DREQ = 1;
}
/**********************************************************/
/* 函数名称 : InitPortVS1003
*/
/* 函数功能 : MCU 与 vs1003 接口的初始化
*/
/* 参数 : 无
*/
/* 返回值 : 无
Macro_Set_CLK_Low();
if(c_SPI_SO) {
ucReadData |= 0x01; } Macro_Set_CLK_High();
下面是电路图:
下面是音频驱动电路图:即耳机驱动电路。
这两张电路图是战舰板原理图,电路图设计是核心技术。本人对原子的电路设计只有学 习和佩服的份。其中 74HC4052 和 TDA1308 分别是用作音频选择和耳机驱动,74HC4052 芯 片将板载的 MP3,FM 收音机和 STM32 发出的方波信号通过程序控制做出选择;也就是说将 众多音频信号集于一身可以分别单独送到耳机驱动电路输出,既节约了空间也节约了成本。 设计非常精妙!
新增
* Huafeng Lin
20010/09/10
修改
*
*/
#include "vs1003.h" #include "MusicDataMP3.c"
#include <intrins.h>
#define uchar unsigned char #define uint unsigned int #define ulong unsigned long #define bool bit #define true 1 #define flase 0
/* 返回值 : 无
*/
/*--------------------------------------------------------*/
void MSPI_Init(void)
{
/*
PINSEL0 = (PINSEL0 & 0xFFFF00FF) | 0x00005500; //选择 SPI
通过学习 VS1053B,对电路分析能力也有提高。如果看不懂电路图,即便 c 语言代码分 析的多么透彻也无济于事。 通过学习类似 VS1053B 芯片的驱动,能真正提高手艺人的编程 能力。通过数据手册,写出相应芯片的驱动程序实现一些简单功能是一个程序员的核心竞争 力!这里涉及到许多 c 语言编程技巧。一句话,目前我是没有这个能力。也就只能好好学习 别人源码的份了。有所收获就记录下来。
#if 1
/**********************************************************/
/* 函数名称 : SPIPutChar
*/
/* 函数功能 : 通过 SPI 发送一个字节的数据
*/
/* 参数 : 待发送的字节数据
*/
/* 返回值 : 无
*/
/*--------------------------------------------------------*/
** 输 入: 无
Input: NULL
** 输 出: 收到的字节
Output: the byte that be received
*******************************************************************************
*************************************/
//#define SPI_RESULT_BYTE S0SPDR
//extern long volatile timeval; //用于延时的全局变量 //1ms Delayfunction //void Delay(uchar ucDelayCount) void wait(uchar ucDelayCount) {
* 用途:MP3 模块测试程序
*
vs1003 的硬件测试程序,主控芯片为 STC12LE5A60S2
*
其他的微处理器(带 SPI 接口的)只需稍加修改即可适用
*
对于不带硬 SPI 接口的微处理器可以用 IO 进行 SPI 的时序模拟
*
* 作者
日期
备注
* Huafeng Lin
20010/09/10
Macro_Set_CLK_Low();
if(ucMaskCode & ucSendData) {
Macro_Set_SI_High(); } else {
Macro_Set_SI_Low(); }
Macro_Set_CLK_High(); ucMaskCode >>= 1;
} }
/******************************************************************************
// IODIR |= MP3_XRESET | MP3_XCS | MP3_XDCS;//xRESET,xCS,xDS 均为输出口
// IOSET |= MP3_XRESET | MP3_XCS | MP3_XDCS;//xRESET,xCS,xDS 默认输出高电平
MP3_DREQ = 1;
//置为输入
//针对 SD 卡读写板调整引脚 #define uint8 unsigned char