FPGA操作WM8731音频编解码器从机模式,小白的自我批判
之前写过一片关于WM8731的文章,当时对这块芯片的理解还不够深,所以有些表述是错误的,当时用的是WM8731作为从机,FPGA作为主机,这次反过来,FPGA作为主机操作WM8731。
在这里插入图片描述
如果是麦克风输入,然后采集数据的话,不能走上去所示路径,如是,则输入音频直接回环耳机输出,你不知道播放的音乐是否为你采集到的音乐,具体解释如下:
在这里插入图片描述好了,既然如此,我们把他关了不就得了?是的,在寄存器里设置,如下:
在这里插入图片描述
解决了音频回环输出问题,现在就要来采集了,方案如下:
在这里插入图片描述

在这里插入图片描述这次FPGA作为主机,wm8731作为从机,bclk位时钟由fpga的pll产生,bclk=256X采样率,若采样率设置位48k,则bclk=256X48000=12.288M,WM8731只支持48k和8k的采样率,没有16K,这一点需要注意,当然,这些都是要寄存器配置的,如图:
在这里插入图片描述
这里的adclrc和daclrc可以是同一个信号,在写这个信号的时序时一定要注意,此信号应该在bclk的下降沿赋值变化,这是i2s协议的要求,如果是bclk上升沿赋值变化的话采集的音频是完全错误的,小编就吃过没文化的亏,在这里栽过跟头。具体参考如下:
在这里插入图片描述在这里插入图片描述具体的采集传输过程,可参考我之前的那边博文。
最后,经过摸爬滚打,采集成功了,整个工程我已经打包了,可以直接拿去用,改改引脚啥的就行了;
FPGA驱动WM8731实现音频环回工程源码获取链接:https://download.csdn.net/download/qq_41667729/87781868

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐