logo资料库

用户手册(Music-Shield-Manual-CN).pdf

第1页 / 共12页
第2页 / 共12页
第3页 / 共12页
第4页 / 共12页
第5页 / 共12页
第6页 / 共12页
第7页 / 共12页
第8页 / 共12页
资料共12页,剩余部分请下载后查看
Music Shield 用户手册 Music Shield 用户手册 1. 产 品 概 述 Music Shield 是基于 VS1053b 解码芯片的 Arduino 音频播放模块,带 TF 卡槽,支持常用音频 文件格式。 产品特性如下:  基于 Arduino 标准接口设计,兼容 UNO、Leonardo、NUCLEO、XNUCLEO 开发板  支持的格式:MP3/AAC/WMA/WAV/MIDI 等  板载 TF 卡,可播放 TF 卡中的相关文件  板载 MIC 录音功能,带标准 3.5mm 四段耳机插座  板载 74VHC125 电平转换芯片,可兼容 3.3V 和 5V 单片机接口  易使用的多功能导航键,轻松控制音乐播放与音量调节  引出 I2S 和 MIDI 接口,方便功能扩展 注意:因传输速度和内存限制,UNO、Leonardo 等暂不支持 WAV 音频文件播放以及录音功 能,建议使用 NUCLEO 或 Due 等。 版本:1.1,日期:2015 年 12 月 7 日 1 微雪电子WAVESHARE ELECTRONICS
Music Shield 用户手册 2. 使 用 说 明 2.1. VS1053B Music Shield 采用芬兰 VLSI 公司的 VS1053 作为音频编解芯片,它内部结构如图所示: 控制端口:VS1053 通过 SPI 接口与单片机通信,通过 7 根信号线共同控制,分别如下: XRSET 异步复位控制线,低电平有效。 XCS 片选输入,低电平有效 XDCS 数据片选,低电平有效。 SI SO SCK DREQ 串行输入 串行输出 串行时钟线 数据请求,如果它为高电平,则可以接收最少 32 字节的 SDI 数据或者接收一 条 SCI 命令。当流缓冲区太满和 SCI 命令正在执行的期间,DREQ 会转换到低电 平,此时应该停止向 VS105 发送数据和新命令 音频输出:VS1053 可通过 I2S 接口或耳机接口输出音频,LEFT,RIGHT 为耳机左右声道,GBUF 为耳机公共缓冲器。Music shield 保留 I2S 输出接口(LOROUT,MCLK,SCLK,SDTA)。 版本:1.1,日期:2015 年 12 月 7 日 2 微雪电子WAVESHARE ELECTRONICS
Music Shield 用户手册 录音输入:mic 差分输入 MICP/MICN;线路输入,LINE1/LINE2。Music shield 板载麦接到 mic 差分 MICP/MICN 输入,耳机麦接到 LINE2 输入。 2.2. 串 行 命 令 接 口 的 串 行 协 议 ( SCI) 此串行命令接口 SCI 的串行总线协议包括:一个指令字节、一个地址字节和一个 16 位的数 据字。每次读取操作或写入操作均可以访问一个寄存器。由于那些数据位是在 SCK 的上升沿读取 的,所以用户只能在 SCK 的下降沿上更新数据。每个字节的 MSb 总是被首先发送。在整个传送 操作的期间,XCS 必须要保持为低电平。 这些操作是通过 8 位指令码来指定的。所支持的指令是读取操作和写入操作,如下表所示: 指令 操作码 名称 操作 0b0000 0011 读取数据 READ WRITE 0b0000 0010 写入数据 SCI 读操作: (参见 SV1053b 数据手册图 6) VS1053b 使用上图时序对寄存器进行读取操作。首先,XCS 信号线被拉到低电平来片选此设 备。随后,读取操作码(0x3)加上 8 位宽度的地址后,组成的 16 位字通过 SI 信号线发送到设备。 在地址被读取之后,SI 信号线上发送的任何数据都将被芯片忽略。而被确认的地址中的十六位宽 度数据将在 SO 信号线上移动输出。 XCS 信号应该在数据移动送出之后驱动到高电平。 版本:1.1,日期:2015 年 12 月 7 日 3 微雪电子WAVESHARE ELECTRONICS01234567891011121330311415161700000011000032100000000000000000151410Xinstruction (read)addressdata outXCSSCKSISOdon’t caredon’t careDREQexecution
Music Shield 用户手册 DREQ 在读取操作期间会被芯片短暂的拉到低电平,这是非常短的时间,并不需要用户特别 的留意。 SCI 写操作: (参见 SV1053b 数据手册图 7) 写入 VS1053b 寄存器的操作要使用上图顺序。XCS 信号线先下拉到低电平表示选中该设备。 将写操作码 (0x2) 加上 8 位的字地址通过 SI 信号线发送到 VS1053b。在这个数据字移位发送的 最后一个时钟结束之后,XCS 应该上拉到高电平来结束这个写入顺序。 2.3. SCI 寄 存 器 VS1053 共有 16 个 SCI 寄存器,通过读写如下寄存器现实 VS1053 各种控制。如下表所示: 寄存器 类型 复位值 时间长度 简称 说明 SCI 寄存器组,前缀 SCI_ 0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB rw rw rw rw rw rw rw rw r r rw rw 0x4800 80 CLKI MODE 0x000C 80 CLKI STATUS 0 80 CLKI BASS 0 1200 XTALI CLOCKF 模式控制 VS1053b 的状态 内建的低音/高音控制 时钟频率加乘数 0 100 CLKI DECODE_TIME 解码时间长度(秒) 0 450 CLKI AUDATA 0 100 CLKI WRAM 0 80 CLKI WRAMADDR 0 80 CLKI 0 210 CLKI HDAT0 HDAT1 0 80 CLKI AIADDR 0 80 CLKI VOL 各种音频数据 RAM 写/读 RAM 写/读的基址 流的数据标头 0 流的数据标头 1 应用程序的起始地址 音量控制 版本:1.1,日期:2015 年 12 月 7 日 4 微雪电子WAVESHARE ELECTRONICS01234567891011121330311415161700000010000321010XaddressXCSSCKSI1514data out0000000000000000SO0000X0instruction (write)DREQexecution
Music Shield 用户手册 0xC 0xD 0xE 0xF rw rw rw rw 0 80 CLKI 0 80 CLKI 0 80 CLKI 0 80 CLKI AICTRL0 AICTRL1 AICTRL2 AICTRL3 应用程序控制寄存器 0 应用程序控制寄存器 1 应用程序控制寄存器 2 应用程序控制寄存器 3 以下介绍几个主要的寄存器。(更多详情请参见 SV1053b 数据手册 8.7 节) SCI_MODE 寄存器:该寄存器用于控制 VS1053 模式。 位元 名称 SM_DIFF 功能 差分 0 1 2 3 SM_LAYER12 允许 MPEG layers I & II SM_RESET 软件复位 SM_CANCEL 取消当前的文件解码 4 SM_EARSPEAKER EarSpeaker 低设定 5 6 SM_TESTS 允许 SDI 测试 SM_STREAM 流模式 7 SM_EARSPEAKER EarSpeaker 高设定 8 9 SM_DACT DCLK 的有效边沿 SM_SDIORD SDI 位顺序 10 SM_SDISHARE 共享 SPI 片选 11 SM_SDINEW VS1002 本地 SPI 模式 12 SM_ADPCM ADPCM 录音激活 13 14 - - SM_LINE1 mic / 线路 1 选择 版本:1.1,日期:2015 年 12 月 7 日 值 说明 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 正常的同相音频 左通道反相 不允许 允许 不用复位 复位 不取消 取消 关闭 激活 不允许 允许 不是 是 关闭 激活 上升沿 下降沿 MSb 在前 MSb 在后 不共享 共享 非本地模式 本地模式 不激活 激活 正确的 错误的 MICP LINE1 5 微雪电子WAVESHARE ELECTRONICS
Music Shield 用户手册 15 SM_CLK 输入时钟范围 0 1 12..13 MHz 24..26 MHz 这个寄存器,我们关注几个重要的位: 第 2 位 SM_RESET 为软件复位, 第 12 位 SM_ADPCM 为激活录音功能, 第 14 位 SM_LINE1 为选择 mic 或线路作为录音输入。 SCI_BASS 寄存器:该寄存器可设置 VS1053 高低音效。 名称 位域 说明 ST_AMPLITUDE 15:12 高音控制,步长为 1.5dB(-8..7, 0 关闭) ST_FREQLIMIT SB_AMPLITUDE 下限频率,步长为 1000Hz(1..15) 11:8 7:4 低音增强,步长为 1dB(0..15, 0 关闭) SB_FREQLIMIT 3:0 频率上限,步长为 10Hz(2..15) 通过这个寄存器如上位的设置,可随意配置自己喜欢的高低音效。 SCI_CLOCKF 寄存器:这个寄存器用来设置时钟频率、倍频等相关信息,该寄存器各位描述 如表所示: SCI_CLOCKF bits 名称 位域 说明 SC_MULT 15:13 时钟乘数 SC_ADD 12:11 允许的附加乘数 SC_FREQ 10:0 时钟频率 SCI_VOL 寄存器:该寄存器用于硬件音量控制。这个音量寄存器的高字节是控制左通道音量 的,低字节是控制右通道音量的。对每个通道,数值在 0..254 的范围内设置可以实现在最大音 量级别内的微调(步长 0.5 dB)。左通道数值是通过乘上 256 后再加到这个数值上的。所以,最 大的音量是 0、无声是 0xFEFE。 SCI_HDAT1/SCI_HDAT0 寄存器:在激活了 IMA ADPCM 录音之后,寄存器 SCI_HDAT0 和 SCI_HDAT1 有了新的功能。 IMA ADPCM 的采样缓冲区是 1024 个 16 位字。缓冲区的填充状态可 以通过 SCI_HDAT1 来读取。如果 SCI_HDAT1 大于 0,则你可以从 SCI_HDAT0 读取许多个 16 位的 字。如果数据没能足够快的读取,则缓冲区会溢出并返回空的状态。 版本:1.1,日期:2015 年 12 月 7 日 6 微雪电子WAVESHARE ELECTRONICS
Music Shield 用户手册 2.4. 播 放 音 频 文 件 用 VS1053 为硬件音频解码器,播放音频文件非常简单。只需三步即可实现。 1) 复位 VS1053 启动时,硬件和软件复位,让 VS1053 状态回到原始状态,准备解码下一首歌曲。 2) 配置 VS1053 相关寄存器 需要配置的寄存器包括模式寄存器(SCI_MODE),时钟寄存器(SCI_CLOCKF),音调寄存器 (BASS),音量寄存器(VOL)等。 3) 发送音频数据 当配置完成后,就可以不断向 VS1053 发送音频数据。只要是 VS1053 支持的音频格式,VS1053 就能自动识别解码,进行播放,直到音频数据发送完。 (注:仅当 DREQ 为高电平,VS1053 才能接收数据) 2.5. 录 音 录音和播放步骤都是差不多,先复位,然后设置相关寄存器。这里主要配置如下寄存器: 寄存器 位域 说明 SCI_MODE 2, 12, 14 开始 ADPCM 模式,选择:mic/线路 1 SCI_AICTRL0 15..0 SCI_AICTRL1 15..0 SCI_AICTRL2 15..0 SCI_AICTRL3 1..0 2 15..3 采样率 8000..48000Hz(在录音启动时读取的) 录音增益(1024 = 1×)或 0 是自动增益控制(AGC) 自动增益放大器的最大值(1024 = 1×,65535 = 64×) 0=联合立体声(共用 AGC), 1=双声道(各自的 AGC), 2=左通道, 3=右通道 0=IMA ADPCM 模式,1=线性 PCM 模式 保留,设置为 0 IMA ADPCM 录音模式是通过设置 SCI_MODE 中的 SM_RESET 和 SM_ADPCM 位来激活的。如 果 SM_LINE1 被设置,则“线路输入”会替代“mic”的差分输入。 (Music Shield 板载麦被接到 mic 差分输入,耳机麦接到线路输入 2)。 在激活 ADPCM 录音之前,用户必须要将正确的值写入 SCI_AICTRL0 和 SCI_AICTRL3 中。这些 值仅在录音被启动时才读取。SCI_AICTRL1 和 SCI_AICTRL2 可以随时更改,但在激活之前最好写入 好的初始值。 版本:1.1,日期:2015 年 12 月 7 日 7 微雪电子WAVESHARE ELECTRONICS
Music Shield 用户手册 设置好寄存器后就可以不断读取音频数据了。如果 SCI_HDAT1 大于 0,则你可以从 SCI_HDAT0 读取(SCI_HDAT1)同样多个 16 位的字。 注:这些录音数据不包括音频文件的 RIFF 标头,录音完毕要在数据之前加上标头才是一个 真正的音频文件。 2.6. 实 时 MIDI 如果在启动时 GPIO0 是低和 GPIO1 是高,则实时 MIDI 模式被激活。在此模式下 PLL 是设定 为 4.0×,UART 被配置为 MIDI 的数据传输率 31250bps,并且实时 MIDI 数据是从 UART 和 SDI 读 出的。这两个输入不应该同时使用。如果您使用的 SDI,首先要发送 0xff 然后发送 MIDI 数据字 节。 (Music Shield 引出 UART 的 RX 管脚作为 MIDI 输入端口。) 注:如果 GPIO1 不为高,实时 MIDI 可以使用 SCI 加载一个小的补丁代码来开始。 3. 快 速 入 门 3.1. 引 脚 说 明 1) D11、D12、D13 默认为 SPI 接口的 MISO、MOSI、SCLK 总线。 2) A0、A1、A2、A3 分别接到 VS1053 的 XRESET、DREQ、XDCS、XCS。 3) D10,D9 分别为 SD 卡的片选 CS 和检测管脚 SD_Detect 4) D7,D6,D5,D4,D3 分别为功能按键的下(音量-),左(上一首),中(播放/暂停/录音), 右(下一首),上(音量+)。 5) D8 为 LED 指示灯(播放/录音时闪烁)。 3.2. 操 作 与 现 象 下面章节以本公司两款不同类型的开发板为例,描述具体操作步骤及实验现象。 3.2.1. XNUCLEO-F103RB( 主 控 芯 片 STM32F103R) : 1. 音频播放实验 1) 将音频文件复制到 TF 卡的根目录下,并将 TF 卡插入 Music shield TF 卡座中。 2) 将开发板连接到电脑。 3) 编译下载 Demo 程序。 版本:1.1,日期:2015 年 12 月 7 日 8 微雪电子WAVESHARE ELECTRONICS
分享到:
收藏