【STM32L496G-DISCO试用体验】+08.SAI简单语音播放

  • wuQAQ
  • LV4工程师
  • |      2017-09-19 11:57:53
  • 浏览量 1058
  • 回复:0
本帖最后由 wuQAQ 于 2017-9-19 14:36 编辑 1、SAI介绍 STM32L496自带了两个个串行音频接口(SAI),SAI具有灵活性高、配置多样的特点。可以支持:I2S标准、LSB或MSB对齐、PCM/DSP、TDM和AC’97等协议,适用于多声道或单声道应用。 2、硬件介绍 从图上可知L496-DISCO使用的是CS42L51的解码芯片,与现在用的比较多WM8978有点不同,但很相似,所以如果想要更了解其工作原理,我推荐大家去看原子的教程,上面写的比我的详细。主要的工作原理应该是使用I2C来控制该解码芯片,使用SAI来进行数据的传输。 3、软件配置(1)、配置SD卡 SD卡的配置和之前的基本相同,为了读取更快,添加了DMA进行传输。 (2)、配置SAI FrameLength:一帧数据的长度。这里笔者播放的是44.1khz,双声道的音频。因此一个声道是16bit,两个声道为一帧数据,即一帧有32bit。 DataSize:一个声道的音频数据。 Output Mode:Mono(单声道)Stereo(双声道) 音频频率为44.1Khz,开启FIFO (3)、SAI DMA设置 (4)、时钟配置 (5)、中断配置 四、软件实现 1、使用I2C来配置编码芯片,因为与SAI没有多大关系,因此这里我直接采用了DISCO给的函数来完成配置。 因为前面44个字节为头部,所以要将其去掉,从44字节之后读取。 2、修改DMA中断回调函数 3、开启SAI DMA运输功能 4、循环读取文件内容 工程文件:
  • 0
  • 收藏
  • 举报
  • 分享
我来回复

登录后可评论,请 登录注册

所有回答 数量:0
x
收藏成功!点击 我的收藏 查看收藏的全部帖子