基于Xilinx的I2S Receiver IP核和I2S Transmitter IP核音频验证

基于Xilinx的I2S Receiver IP核和I2S Transmitter IP核音频验证


前言

本实验基于Xilinx ZU4EV平台,也适用于ZYNQ平台。音频验证完成,记录调过程。
①Xilinx 音频IP只支持主模式,左对齐或右对齐方式,16bit或24bit字长。
②WM8960器件作为从模式;24bit字长;数据传输格式为右对齐,输入输出0增益,高通滤波等。
对于配置WM8960,本次验证需要软件人员在设备树上添加I2C设备信息才可以使用。


提示:以下是本篇文章正文内容,下面案例可供参考

一、工程构架

在这里插入图片描述
在这里插入图片描述
WM860的配置如下图
在这里插入图片描述

二、Xilinx IP的配置

以下命令是配置IP相关寄存器的,命令的格式可以在网上找到,需要注意的是写地址是IP的基地址+寄存器偏移地址。

1.I2S Transmitter IP配置:

代码如下(示例):

//I2S Transmitter IP配置:
devmem 0xA00A0020 w 0x02      //sclk2分频
devmem 0xA00A0008 w 0x07      //打开IP使能,使用右有理

2.I2S Receiver IP配置:

代码如下(示例):

devmem 0xA0090020 w 0x02      //sclk2分频
devmem 0xA0090050 w 0xFF      //地址0x50-0x600为AES通道状态更新
devmem 0xA0090054 w 0xFF                        
devmem 0xA0090058 w 0xFF
devmem 0xA009005c w 0xFF
devmem 0xA0090060 w 0xFF
devmem 0xA0090064 w 0xFF
devmem 0xA0090008 w 0x07     //打开IP使能,使用右有理

3.WM8960的配置:

因为我的板卡上的WM8960音频芯片的I2C管脚是分配到PS端的,所以WM8960的配置需要软件人员在设备树上添加I2C设备信息才可以使用以下命令。对于使用PL端来配置寄存器的不需要使用以下命令。
需要注意的是,命令中的寄存器地址段是7bit地址+最高位寄存器数据组合的,因为这是WM860要求的。
寄存器写地址:7bit地址+[8]data

WM8960配置如下:
这是Linux自带的ic工具,只需要敲命令就可以通过I2C配置WM8960的寄存器了。
命令的格式在网上也可以找到。

i2cset -f -y 0 0x1a 0x1e  0x00
i2cset -f -y 0 0x1a 0x33  0xfe
i2cset -f -y 0 0x1a 0x35  0xe1
i2cset -f -y 0 0x1a 0x5e  0x3c
i2cset -f -y 0 0x1a 0x0e  0x08
i2cset -f -y 0 0x1a 0x08  0x00
i2cset -f -y 0 0x1a 0x41  0x08
i2cset -f -y 0 0x1a 0x43  0x08
i2cset -f -y 0 0x1a 0x56  0x50
i2cset -f -y 0 0x1a 0x58  0x50
i2cset -f -y 0 0x1a 0x01  0x57
i2cset -f -y 0 0x1a 0x03  0x57
i2cset -f -y 0 0x1a 0x05  0xf9
i2cset -f -y 0 0x1a 0x07  0xf9
i2cset -f -y 0 0x1a 0x0a  0x01
i2cset -f -y 0 0x1a 0x0c  0x00
i2cset -f -y 0 0x1a 0x30  0x00
i2cset -f -y 0 0x1a 0x2b  0xc3
i2cset -f -y 0 0x1a 0x2d  0xc3
i2cset -f -y 0 0x1a 0x60  0x10
i2cset -f -y 0 0x1a 0x12  0x00                              
i2cset -f -y 0 0x1a 0x45  0x00
i2cset -f -y 0 0x1a 0x4b  0x00
i2cset -f -y 0 0x1a 0x5a  0x00
i2cset -f -y 0 0x1a 0x5c  0x00

该处使用的url网络请求的数据。


总结

本人是FPGA工程师,这个工程概述试用于验证Xilinx的I2S音频IP。工程要用到的寄存器配置如上。使用上面的配置我的工程声音的采集和播放时正常的,带上耳机可以听到声音,并且没有噪声。
调试的过程中要注意音频的对齐方式要配置为一样。我调试过程中脑子想的是要把他们两个配置为一样但是实际上Xilinx IP配置的是右对齐,WM8960配置的是左对齐,导致带耳机听声音时要么没声音要么有很大的噪声,这个问题困扰了我很久,后面把两个配置为相同的对齐方式就正常了。

  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值