关于wm8978放音具有噪声和拖音的原因分析

最近在调试音频环回模块,遇到了wm8978模块放音具有很大噪声的问题,而且还伴有啸叫声和拖音,起初以为是时序约束的问题,于是学习了一下时序约束的有关知识,并且将模块中的时钟也进行了约束,然而问题并没有解决,结果又找了很久,最终发现犯了一个比较常见的错误:

由I2S总线可以看出,无论是FPGA采样wm8978输入的音频数据还是wm8978采样FPGA输出的音频数据 ,都是在LRC信号边沿变化后的第二个bclk的上升沿进行采样的,故对于提供数据的一方,必须在bclk的采样上升沿来之前提供完整的一位音频数据,一般会选择在采样bclk上升沿(如上图中的第二个绿色箭头所示)的前一个下降沿进行发送(如上图中的第一个绿色箭头所示),然后逐位均是如此,直至数据按位发送完毕。

问题所在:

问题出现在发送模块,由FPGA输出音频数据,wm8978进行采样,故FPGA应该选择在采样bclk上升沿(如上图中的第二个绿色箭头所示)的前一个下降沿(如上图中的第一个绿色箭头所示)进行发送,而我却写成了在bclk的上升沿发送(如下图所示),这会导致FPGA发送数据与wm8978采样发送冲突,即wm8978无法正确且稳定地采样到FPGA发送的数据,进而导致噪声和拖音。

将上诉问题修改后(如下图所示),问题解决! 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值