33. SPI模拟I2S

33.1. 概述

  • 该示例工程展示了SPI模拟I2S主机接收音频解码模块录音数据并且播放录音数据的功能。

  • 评估板需要接入音频解码模块,本例程使用wm8978

33.2. 注意

  • 由于该示例所用的SPI需要大长度传输,目前仅支持hpm5300系列。

33.3. 需要使用到的组件

  • dma_mgr

  • spi

  • i2s_over_spi

  • codec(wm8978)

33.4. 硬件设置

  • 通过音频模块板载mic进行录音

  • 连接3.5mm耳机到音频模块的输出耳机接口

  • 需要用到GPTMR输出以及SPI引脚,引脚(请参考引脚描述部分)

  • 5V <–> 5V(WM8978)

  • 3.3V <–> 3.3V(WM8978)

  • GND <–> GND(WM8978)

  • MCLK(GPTMR) <–> MCLK(WM8978)

  • LRCK(GPTMR) <–> LRCK(WM8978)

  • BLCK(GPTMR) <–> SCLK(SPI) <–> SCK(WM8978)

  • MISO(SPI) <–> (DAT)DACDATA(WM8978)

  • MOSI(SPI) <–> (SDB)ADCDATA(WM8978)

  • (CS)GPIO <–> CS(SPI)

  • I2C_SDA <–> I2C_SDA(WM8978)

  • I2C_SCL <–> I2C_SCL(WM8978)

33.5. 运行步骤

  • 当工程正确运行后,串口终端会输出如下信息。

---------------------------------------------------------------
*                                                             *
*                   i2s_emulation demo                        *
*                                                             *
*        1 - start play                                       *
*        2 - stop play                                        *
*        3 - start record                                     *
*        4 - stop record                                      *
*-------------------------------------------------------------*
  • 终端输入’3’字符,开启录音,如果录音时长大于指定时长会自行退出保存。

record start enter....
record size overflow, now exit..
  • 终端输入’1’字符,开启录音播放

play start enter....
play end, now exit....
  • 终端输入’4’字符,停止录音

record_stop finish....
  • 终端输入’2’字符,停止播放

play stop finish....