15.35、 USB实现PC音频播放器实验.pdf

上传人:紫竹语嫣 文档编号:5514380 上传时间:2020-05-27 格式:PDF 页数:14 大小:557.18KB
返回 下载 相关 举报
15.35、 USB实现PC音频播放器实验.pdf_第1页
第1页 / 共14页
15.35、 USB实现PC音频播放器实验.pdf_第2页
第2页 / 共14页
15.35、 USB实现PC音频播放器实验.pdf_第3页
第3页 / 共14页
15.35、 USB实现PC音频播放器实验.pdf_第4页
第4页 / 共14页
15.35、 USB实现PC音频播放器实验.pdf_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《15.35、 USB实现PC音频播放器实验.pdf》由会员分享,可在线阅读,更多相关《15.35、 USB实现PC音频播放器实验.pdf(14页珍藏版)》请在三一文库上搜索。

1、 USB实现实现PC音频播放器实验音频播放器实验 ? 意义与作用意义与作用 现在的智能终端已经逐步由按键+指示灯或数码管发展为触摸屏+音频输出,前面已经 介绍了神舟系列STM开发板的触摸屏,本章节我们来学习一下如何使用神舟系列STM开发 板的USB接口和I2S音频接口在PC侧实现一个免驱动音频声卡免驱动音频声卡功能。本实验USB工作在同步 传输模式。 通过该实现使大家了解如何使用STM32的USB的同步传输模式实现即插即用的功 能,以及如何使用STM32的I2S音频接口实现音频播放功能。 ? 实验原理实验原理 在USB中,USB HOST是通过各种描述符来识别设备的,有设备描述符,配置描述符,

2、 接口描述符,端点描述符,字符串描述符,报告描述符等等。更详细的说明请参看USB HID 协议,该协议可从Http:/www.usb.org下载。关于STM32的USB知识可以参考附件的STM32 USB固件的中文资料.pdf 和STM32的USB详解.pdf等文档。 本实验音频部分主要是初始化DA芯片PCM1770, 设置STM32的I2S接口的参数, 然后将 来自USB接口的音频数据通过I2S2接口送给DA芯片PCM1770播放。 PCM1770 简介:简介: 神舟系列 STM 开发板采用 TI 公司的进口原装音频 DA 芯片 PCM1770。PCM1770 是一款 具有耳机放大器的 24

3、 位低功耗立体声音频 DAC PCM1770 是一款 具有耳机放大器的 24 位低功耗立体声音频 DAC。 可直接驱动耳机, 具有软件控制音量大小、 芯片模式和模拟语音合成等功能。该芯片的功能框图如下: PCM1770 支持工业标准音频数据格式(industry-standard audio data formats) ,包括标准 模式(standard) 、I2S 飞利浦标准、MSB 对齐标准(left-justified) 。本次实验本次实验 PCM1770 为为 从设备模式和从设备模式和 MSB 对齐标准(对齐标准(left-justified) 。 PCM1770 的 I2S 共需要

4、4 信号: SD:串行数据,用来接收 2 路(左右声道)时分复用通道的数据; WS:字选(左右声道选择),从模式下作为输入; CK:串行位时钟,从模式下作为输入。 MCK:主时钟,PCM1770 工作需要的时钟。 PCM1770 在 MSB 对齐标准(left-justified)模式下的信号时序如下图所示: 神舟系列神舟系列 STM32 开发板的开发板的 I2S 接口接口特性如下: 单工通信(仅发送或接收) 主或者从操作 8 位线性可编程预分频器,获得精确的音频采样频率(8KHz 到 96kHz) 数据格式可以是 16 位,24 位或者 32 位 音频信道固定数据包帧为 16 位(16 位数

5、据帧)或 32 位(16、24 或 32 位数据帧) 可编程的时钟极性(稳定态) 从发送模式下的下溢标志位和主/从接收模式下的溢出标志位 16 位数据寄存器用来发送和接收,在通道两端各有一个寄存器 支持的 I2S 协议: I2S 飞利浦标准 MSB 对齐标准(左对齐) LSB 对齐标准(右对齐) PCM 标准(16 位通道帧上带长或短帧同步或者 16 位数据帧扩展为 32 位通道帧) 数据方向总是 MSB 在先 发送和接收都具有 DMA 能力 主时钟可以输出到外部音频设备,比率固定为 256xFs(Fs 为音频采样频率) 在互联型产品中,两个 I2S 模块(I2S2 和 I2S3)有一个专用的

6、 PLL(PLL3),产生更加精准 得时钟 STM32 的 I2S 的框图如下图所示: 通过将寄存器 SPI_I2SCFGR 的 I2SMOD 位置为1 ,即可使能 I2S 功能。此时,可以 把 SPI 模块用作 I2S 音频接口。I2S 接口与 SPI 接口使用大致相同的引脚、标志和中断。 STM32 的 I2S 的 4 个引脚: SD:串行数据(映射至 MOSI 引脚),用来发送和接收 2 路时分复用通道的数据; WS:字选(映射至 NSS 引脚),主模式下作为数据控制信号输出,从模式下作为输入; CK:串行时钟(映射至 SCK 引脚),主模式下作为时钟信号输出,从模式下作为输入。 MCK

7、: 主时钟(独立映射), 在 I2S 配置为主模式, 寄存器 SPI_I2SPR 的 MCKOE 位为 1 时,作为输出额外的时钟信号引脚使用。输出时钟信号的频率预先设置为 256 Fs,其中 Fs 是音频信号的采样频率。 设置成主模式时,I2S 使用自身的时钟发生器来产生通信用的时钟信号。这个时钟发生 器也是主时钟输出的时钟源。I2S 模式下有 2 个额外的寄存器,一个是与时钟发生器配置相 关的寄存器 SPI_I2SPR,另一个是 I2S 通用配置寄存器 SPI_I2SCFGR(可设置音频标准、从/ 主模式、数据格式、数据包帧、时钟极性等参数)。 本次实验本次实验 PCM1770 为从设备模

8、式和为从设备模式和 MSB 对齐标准(对齐标准(left-justified) ,对应神舟系列) ,对应神舟系列 STM32 开发板的开发板的 I2S 接口主模式和接口主模式和 16bit MSB 对齐标准。对齐标准。 STM32的I2S支持的MSB对齐标准时序图: 在此标准下,WS 信号和第一个数据位,即最高位(MSB)同时产生 根据以上分析所以后续代码中会看到如下配置: ? 硬件设计硬件设计 本实验硬件包括“STM32 的 I2S 音频接口” 和 “USB 2.0 OTG 全速接口”两部分。 STM32的I2S音频接口: 音乐播放器要用到的硬件资源STM32的I2S接口和外部DA芯片PCM

9、1770, 将从I2S2接口 传过来的音频音频信号输出到耳机接口。 神舟 IV 号 STM32 开发板上使用了 PCM1770 这款具有耳机放大器的 24 位低功耗立体 声音频 DAC 芯片提供音频播放功能。处理器通过 I2S 接口(处理器的 I2S2)传送音频信号 到 PCM1770,由它进行解码输出到 J3 音频座。而 PCM1770 的配置接口与处理器的 SPI3 连 接,处理器通过 SPI 接口访问 PCM1770 的寄存器,实现配置和控制功能。 图表 1 音频解码电路原理图 D/A 芯片 PCM1770 通过 I2S2 接口与 STM32F107VCT6 处理器连接。 音频信号通过

10、I2S2 接口传到 D/A 芯片,转换成音频信号播出。相关管脚定义如下: GPIO 管脚 功能描述 说明 PB12 I2S2_WS 左右通道时钟,频率和音频采样速率一致 PB13 I2S2_CK 串行比特位时钟。 PB15 I2S2_SD 串行音频数据信号。 PC6 I2S2_MCK 系统时钟输入,PCM1770 工作需要的时钟 STM32F107VCT6 处理器通过 SPI3 接口访问 DA 芯片 PCM1770,对它内部数据进行读 取和配置。相关管脚定义如下: GPIO 管脚 功能描述 说明 PC7 SPI 片选 连接到 PCM1770 的 SPI 接口片选 PC10 SPI3_SCK S

11、PI3 接口 SCK 时钟信号 PC12 SPI3_MOSI SPI3 接口的 MOSI 信号 DAC 芯片说明芯片说明 在神舟IV号中, 使用了TI公司推出的低电压, 低功耗带耳机放大的DAC芯片PCM1770, 来实现音频的 DA 转换。 PCM1770 的管脚信号图: PCM1770 的管脚信号定义: USB 2.0 OTG 全速接口作为 Device 设备 注:本实验的硬件设计与前面“USB人机交互设备HID实验”对应章节完全相同,此处 不再重复,请参考“USB人机交互设备HID实验”对应章节。 ? 软件设计软件设计 在本实验中的原理是采用的是 I2S 中断方式来将音频数据送到 DAC

12、 芯片实现播放音乐 的功能,主程序实现如下: 1、 配置 LED、串口和 LCD 液晶屏 2、 配置 I2S 管脚和参数 3、 USB 时钟、USB 协议相关初始化,等待 USB 中断 本实验 USB 工作在同步传输模式。 关于 LED、串口、LCD 液晶屏,系统滴答等知识在前面章节已经讲解过,请回顾相关 知识。 下面我们将重点讲解 MAIN 函数中的 Speaker_Config 函数: 该函数的第二行可知本实验的 I2S 数据传输使用的是 DMA 方式,继续深入看一下 I2S_Config()函数: I2S_Config()函数配置 I2S 的 GPIO 和 I2S 参数: 查看神舟 IV

13、 号原理图可知, D/A 芯片 PCM1770 通过 I2S2 接口与 STM32F107VCT6 处 理器连接。音频信号通过 I2S2 接口传到 D/A 芯片,转换成音频信号播出。相关管脚定义如 下: GPIO 管脚 功能描述 说明 PB12 I2S2_WS 左右通道时钟,频率和音频采样速率一致 PB13 I2S2_CK 串行比特位时钟。 PB15 I2S2_SD 串行音频数据信号。 PC6 I2S2_MCK 系统时钟输入,PCM1770 工作需要的时钟 对应的代码如下: 2S_Config()函数配置和初始化 I2S 管脚以及接口参数: USB 接口初始化接口初始化 USB接口初始化在前面

14、已经进行了详细的实验,在本实验中,就不再详细描述,相关的 初始化代码如下: “pProperty-Init()”实际调用的是“void Virtual_Com_Port_init()” 中断配置函数中断配置函数: 该例程使用了 USB 中断和 I2S 中断,由于 USB 工作同步传输模式,所 以将其优先级设为最高,I2S 中断优先级次之(STM32 的 I2S 和 SPI 共用接口资源) 。进行 中断组设置和中断优先级设计,相关代码如下: ? 下载与验证下载与验证 神舟IV号光盘源码目录包含本实验的工程源码,在神舟IV号光盘源码33.神舟IV号 STM32_USB_MUSIC实 现PC音 频

15、播 放 器 实 验.rarProjectAudio_StreamingEWARMv5 STM3210C-EVAL-25MHzExe目录下的神舟IV号STM32_USB_MUSIC实现PC音频播放器实 验.hex文件即为前面我们分析的神舟IV号STM32的USB实现PC音频播放器实验编译好的固 件,我们可以直接将固件下载到神舟IV号开发板中,观察运行效果。 如果使用JLINK下载固件,请按错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。下载固件 到神舟IV号开发板小节进行操作。 如果使用USB下载固件,请按错误!未找到引用源。错误!未找到引用源。错误!未找到引用源

16、。错误!未找到引用源。小节进行操 作。 如果使用串口下载固件,请按错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。错误!未找到引用源。小节进行 操作。 如果在IAR开发环境中, 下载编译好的固件或者在线调试, 请按错误! 未找到引用源。错误! 未找到引用源。 错误!未找到引用源。错误!未找到引用源。小节进行操作。 如果在MDK开发环境中,下载编译好的固件或者在线调试,请按错误!未找到引用源。错误!未找到引用源。 错误!未找到引用源。错误!未找到引用源。小节进行操作。 ? 实验现象实验现象 将实验的程序固件下载到神舟IV号后,将耳机插入音频口(J3)以后,连接USB与PC 电脑,重新为神舟IV号上电运行,PC机会提示发现新硬件并免驱自动完成安装,此时原此时原PC 的声音会通过神舟的声音会通过神舟IV号从耳机播放,在号从耳机播放,在PC上打开音乐就可以通过神舟上打开音乐就可以通过神舟IV号听到悦耳的歌 声 号听到悦耳的歌 声。同时LCD会有消息提示,串口2(波特率115200)输出打印信息,提示程序运行情况。 PC机免驱自动完成安装后,可以在PC的设备管理器里看到如下设备: 同时双击电脑任务栏右侧的喇叭,可以看到ARMJISHU.COM-STM32 Speaker音频 设备信息。 可以查看ARMJISHU.COM-STM32 Speaker音频设备的属性信息:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料


经营许可证编号:宁ICP备18001539号-1