logo资料库

用户手册(文件:WM8960_Audio_Board_User_Manual_cn).pdf

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
WM8960 Audio Board 用户手册 WM8960 Audio Board 用户手册 产 品 概 述 我是一个基于 WM8960 芯片的音频模块,低功耗、立体声编解码,可直接录音,可直接驱动扬声器 播放音乐。 产 品 特 性 【我的特点】 • 板载高质量 MEMS 硅麦克风,没有耳机也可以录音 • 板载标准 3.5mm 四段带麦耳机接口,可通过外接耳机录音或播放音乐 • 板载双通道喇叭接口,可直接驱动扬声器 • 支持 8/11.025/22.05/44.1/48KHz 等常用音频采样率 • 支持立体声、3D 环绕等音效输出 • 提供完善的配套资料手册(提供 STM32F429 和 STM32F746 播放和录音程序) 【我的参数】 • 音频编解码芯片:WM8960 • 工作电压:3.3V • 控制接口:I2C • 音频接口:I2S • 音频格式:WAV • DAC 信噪比:98dB • ADC 信噪比:94dB • 耳机驱动:16Ω 40mW • 扬声器驱动:8Ω 1W 管 脚 配 置 功能引脚 描述 电源正(3.3V 电源输入) 电源地 I2C 数据输入 VCC GND SDA
WM8960 Audio Board 用户手册 SCL CLK WS TXSDA RXSDA TXMCLK RXMCLK I2C 时钟输入 I2S 位时钟输入 I2S 帧时钟输入 I2S 串行数据输出 I2S 串行数据输入 I2S 系统时钟(发送数据) I2S 系统时钟(接收数据) 硬 件 配 置 本模块的控制接口为 I2C,音频通信接口支持 I2S 和 SAI。 在模块上有一个 3P 的插针用来选择接入的 MCLK 信号,左边为发送数据时的 MCLK 信号,右边为接收数据时的 MCLK 信号。 耳机接口用来连接耳机,可以是 3 线的耳机,也可以是 4 线的带麦耳机,最右边的接 口为喇叭接口,可以接 8Ω的喇叭,推荐使用本公司生产的 8 欧 5W 喇叭。
WM8960 Audio Board 用户手册 工 作 原 理 本模块使用 WM8960 进行音频解码,该芯片使用 I2C 总线接收主机传来的控制信 号,从而对芯片内部的寄存器进行配置,使用 I2S 总线来输入和输出音频信号。 I2C 通 信 协 议 在 I2C 通信模式中,主设备会先发送一个地址帧,对从设备寻址和设置通信模式,高 7 位为地址,紧接着一位为控制位,最后一位是应答信号。在从设备接收到应答信号并返回给 主设备一个响应之后,主设备开始发送 8 位的数据帧,高 7 位为数据,最低位为应答信号, 可以一次发送一个数据帧,也可以一次发送多个。主设备在和 WM8960 芯片 I2C 通信时, 先传输高字节的数据,后发送低字节的数据。 根据 Datasheet 可知,WM8960 内部的寄存器是 9 位的,因此在发送数据的时候,需 要把数据拆分成两个字节进行发送,在发送数据之前,还需要发送寄存器的编号,以此识别 要设置的寄存器,寄存器的编号用二进制表示是 7 位,因此在发送的时候需要发送两个数据 帧。具体操作见示例程序。 关于 I2C 通信的部分见 WM8960_v4.2 中的 Page15 和 Page 63。 I2S 通 信 协 议 I2S 有四个信号线,即:串行时钟(SCLK)、帧时钟(LRCK)、串行数据(SDATA)、主 时钟(MCLK),其中,三个是不可或缺的,系统时钟是为了更好的同步,可由主设备提供, 也可由时钟电路提供。 串行时钟 SCLK,也叫位时钟(BCLK),即对应数字音频的每一位数据,SCLK 都有 1 个 脉冲。SCLK 的频率=2×采样频率×采样位数。
WM8960 Audio Board 用户手册 帧时钟 LRCK,(也称 WS),用于切换左右声道的数据。LRCK 为“1”表示正在传输的 是右声道的数据,为“0”则表示正在传输的是左声道的数据。LRCK 的频率等于采样频率。 串行数据 SDATA,就是用二进制补码表示的音频数据。 主时钟(MCLK),也叫系统时钟(Sys Clock),是采样频率的 256 倍或 384 倍。本模 块为了给用户提供更多拓展功能,把 MCLK 接口预留出来,使该模块可以支持更多采样率 的音频文件。 使 用 说 明 该模块提供基于 Open429I-C 和 Open746I-C 开发板的例程,每个开发板分别提供三 个例程:播放内置音频数据,播放 SD 卡的 WAV 文件,录制 WAV 音频文件到 SD 卡。 在播放内置音频数据例程中,模块使用的是开发板提供的 I2S 接口;而在播放 SD 卡的 WAV 文件例程和录制 WAV 音频文件的例程是使用开发板上的 SAI 接口。 OPEN429I-C 的 使 用 例程一:播放内置音频数据 1. 硬件配置 该例程使用的开发板为:Open429I-C。 模块直接接入开发板上的 I2S 接口。 功能引脚 VCC GND SDA SCL CLK WS TXSDA TXMCLK 开发板 3.3V GND I2C1_SDA (PB9) I2C1_SCL (PB8) I2S2CLK (PB13) I2S2WS (PB12) I2S2SDA (PB15) I2S2_MCLK (PC6) 列表中未提到的模块引脚为该例程没有使用的。 2. 工程文件的说明 示例工程基于 MDK-ARM V5,使用 STM32CubeMX 配置生成。 工程目录/Src 下: WM8960.c:该芯片的底层驱动,主要提供了向芯片发送数据,芯片初始化,以及 使用 I2S 播放内置音频的程序。 工程目录/Inc 下:
WM8960 Audio Board 用户手册 wave_data.h:用来存储音频数据的文件。 3. 现象 模块上的 MCLK 和 TX 用跳线帽短接,将模块和开发板连接好之后,模块外接一个 耳机或者 8Ω喇叭,给开发板上电烧录后即可听到音频。 例程二:播放 SD 卡的 WAV 音频文件 1. 硬件配置 该例程使用的开发板为:Open429I-C。 需要用到的模块有:Micro SD Storage Board,SD 卡,WM8960_Audio_Board。 将 SD 卡插入 Micro SD Storage Board 模块,并将模块接入开发板上的 SDIO 接口。 接入开发板上的 SAI 接口。 功能引脚 VCC GND SDA SCL CLK WS TXSDA TXMCLK 开发板 3.3V GND I2C1_SDA (PB9) I2C1_SCL (PB8) SAI1_SCK_B (PF8) SAI1_FS_B (PF9) SAI1_SD_B (PF6) SAI1_MCLK_B (PF7) 列表中未提到的模块引脚为该例程没有使用的。 2. 工程文件的说明 示例工程基于 MDK-ARM V5,使用 STM32CubeMX 配置生成。 工程目录/Src 下: WM8960.c:该芯片的底层驱动,主要提供了向芯片发送数据,芯片初始化等功能 函数。 Play_WAV.c:提供播放 SD 卡中的 WAV 文件的相关功能函数,包括读取 WAV 文 件列表,读取文件的音频信息,播放 WAV 文件,以及按键控制处理等函数。 3. 现象 各模块和开发板连接好之后,给模块接上耳机或者喇叭,将开发板的 USART1 连接 到 PC,并在 PC 上打开上位机。 上电烧录后,模块会自动播放音频文件,同时通过串口打印在 SD 卡指定目录下读 取到的 WAV 文件列表,正在播放的文件信息。 通过 Joystick 按键可以控制播放:按下为暂停/恢复播放,向左(C)为上一曲,向右 (B)为下一曲。
WM8960 Audio Board 用户手册 例程三:录制 WAV 文件到 SD 卡 1. 硬件配置 该例程使用的开发板为:Open429I-C。 需要用到的模块有:Micro SD Storage Board,SD 卡,WM8960_Audio_Board。 将 SD 卡插入 Micro SD Storage Board 模块,并将模块接入开发板上的 SDIO 接口。 将 WM8960_Audio_Board 接入开发板上的 SAI 接口。 功能引脚 VCC GND SDA SCL CLK WS RXSDA RXMCLK 开发板 3.3V GND I2C1_SDA (PB9) I2C1_SCL (PB8) SAI1_SCK_A (PE5) SAI1_FS_A (PE4) SAI1_SD_A (PE6) SAI1_MCLK_A (PE2) 列表中未提到的模块引脚为该例程没有使用的。 2. 工程文件的说明 示例工程基于 MDK-ARM V5,使用 STM32CubeMX 配置生成。 工程目录/Src 下: WM8960.c:该芯片的底层驱动,主要提供了向芯片发送数据,芯片初始化等功能 函数。在该文件的开头,使用宏定义来选择用于录音的是板载麦克风或耳机麦克风。在 WM8960 初始化函数中,可以取消注释的代码以启动录音的旁路输出功能。 Record_WAV.c:主要提供录制音频并将数据存储到 SD 卡的功能函数,包括创建 WAV 文件,录制音频,按键控制等函数。 3. 现象 各模块和开发板连接好之后,给模块接上耳机或者喇叭,将开发板的 USART1 连接 到 PC,并在 PC 上打开上位机。 上电烧录后,MCU 会通过串口打印正在录制的文件名,并提示按下 Joystick 按键 开始录制。 开始录制后,对着麦克风说话,在喇叭或者耳机里可以听到声音。在录制的过程中, 按下 Joystick 按键为暂停/恢复录制,长按 Joystick 按键 1-2s 后,松开按键即停止录 制。 录制完成之后,给开发板断电,将 SD 卡取出并接入 PC,可在相应路径找到录制的 WAV 文件并播放;也可以给开发板烧录播放 SD 卡 WAV 的例程,用本模块播放。
WM8960 Audio Board 用户手册 OPEN746I-C 的 使 用 例程一:播放内置音频数据 1. 硬件配置 该例程使用的开发板为:Open746I-C。 模块直接接入开发板上的 I2S 接口。 功能引脚 VCC GND SDA SCL CLK WS TXSDA TXMCLK 开发板 3.3V GND I2C1_SDA (PB9) I2C1_SCL (PB8) I2S2_CK (PB13) I2S2_WS (PB12) I2S2_SD (PI3) I2S2_MCK (PC6) 列表中未提到的模块引脚为该例程没有使用的。 2. 工程文件的说明 示例工程基于 MDK-ARM V5,使用 STM32CubeMX 配置生成。 工程目录/Src 下: WM8960.c:该芯片的底层驱动,主要提供了向芯片发送数据,芯片初始化,以及 使用 I2S 播放内置音频的程序。 工程目录/Inc 下: wave_data.h:用来存储音频数据的文件。 3. 现象 将模块和开发板连接好之后,模块外接一个耳机或者 8Ω喇叭,给开发板上电烧录 后即可听到音频。
WM8960 Audio Board 用户手册 例程二:播放 SD 卡的 WAV 音频文件 1. 硬件配置 该例程使用的开发板为:Open746I-C。 需要用到的模块有:Micro SD Storage Board,SD 卡,WM8960_Audio_Board。 将 SD 卡插入 Micro SD Storage Board 模块,将模块接入开发板的 SDMMC 接口。 将 WM8960_Audio_Board 接入开发板上的 SAI 接口。 功能引脚 VCC GND SDA SCL CLK WS TXSDA TXMCLK 开发板 3.3V GND I2C1_SDA (PB9) I2C1_SCL (PB8) SAI1_SCK_B (PF8) SAI1_FS_B (PF9) SAI1_SD_B (PF6) SAI1_MCLK_B (PF7) 列表中未提到的模块引脚为该例程没有使用的。 2. 工程文件的说明 示例工程基于 MDK-ARM V5,使用 STM32CubeMX 配置生成。 工程目录/Src 下: WM8960.c:该芯片的底层驱动,主要提供了向芯片发送数据,芯片初始化,以及 使用 I2S 播放内置音频的程序。 Play_WAV.c:提供播放 SD 卡中的 WAV 文件的相关功能函数,包括读取 WAV 文 件列表,读取文件的音频信息,播放 WAV 文件,以及按键控制处理等函数。 3. 现象 各模块和开发板连接好之后,给模块接上耳机或者喇叭,将开发板的 USART1 连接 到 PC,并在 PC 上打开上位机。 上电烧录后,模块会自动播放音频文件,同时通过串口打印在 SD 卡指定目录下读 取到的 WAV 文件列表,正在播放的文件信息。 通过 Joystick 按键可以控制播放:按下为暂停/恢复播放,向左(C)为上一曲,向右 (B)为下一曲。
分享到:
收藏