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