开发板:Kintex7-410T开发板;
开发环境:vivado2019.1;
输入:WM8731转换的ad数据;
输出:WM8731转换的da数据;
实验概述:
手机播放音乐,通过3.5mm耳机线接入Kintex7开发板,WM8731将手机播放音乐转换为I2S协议的数字信号送入FPGA,FPGA做串并转换,处理为32bit并行数据,并将数据送入DDR3缓存,同时从DDR3读出音频数据做并串转换,再送回WM8731耳机输出,效果就是通过耳机实时听到存储的音频。
工程代码架构如下:

工程BD部分如下:

1 音频采集和输出部分
音频phy芯片选择WM8731,通过iic总线配置为从机模式,之所以配置为从机模式是为了数据同步,WM8731配置为从机模式、I2S、32位、48K采样率,具体看代码,此部分代码结构如下:

该部分顶层如下:

音频采集、发送、wm8731配置均在100M时钟同步下完成,解决了数据跨时钟域问题;
2 音频缓存
这部分是核心,利用米联客的FDMA实现,这里重点介绍FDMA控制器部分的设计思路,
首先顶层参数如下:

音频数据操作时钟100M;
DDR3读写时钟200M;

FDMA突发长度设置为128,可修改;
FDMA读写数据位宽都设为32,与音频输出位宽一致;
音频采样率设置为48K,与wm8731设置的一致;
音频通道设为2,左右声道;
音频录音时长设为20,单位是秒,可修改;
那么,FDMA一次传输的总数据量=音频采样率X音频通道X音频录音时长;
所以,FDMA一次传输需要突发的次数=FDMA一次传输的总数据量÷FDMA突发长度;
同理,FDMA读写一次的地址增量(字节数)=32÷8XFDMA突发长度;
先来看看FDMA写时序,在代码中以注释形式给出,方便理解代码,如下:

具体关于FDMA的介绍可以去米联客看,也可以私信联系我;
写操作逻辑十分简单,如下:
写操作部分的fifo操作如下:

如果你不知道FDMA操作时序,可能看不懂代码;

FDMA读时序如下:

读操作部分与写同理,不再粘贴代码;

最后:需要源码的兄弟可以私信联系我,也可接受私人订制。

FPGA音频录音,WM8731音频采集存储DDR3,基于米联客FDMA实现相关推荐

  1. FPGA运动目标检测,基于米联客FDMA设计开发,A7和zynq两个版本

    FPGA运动目标检测,基于米联客FDMA设计开发,A7和zynq两个版本 开发环境如下: 纯FPGA开发板:米联客MA703FA,A7-35T的FPGA: ZYNQ开发板:米联客MZ7100FA,zy ...

  2. 基于米联客zynq7020的fpga实现的帧差法

    博主是一个年初刚刚接触FPGA的新人,说实话觉得自己还是挺水的.上年的12月份刚刚了解了什么是FPGA,然后就参加了一个叫全国大学生集成电路创新大赛的比赛,里面的robei杯(当然可以后续和我交流一下 ...

  3. 小小白对SPI的理解,基于米联客例程的FPGA实现

    SPI协议,大佬们讲得很多,但总感觉没有讲到小白的痛处,比如:极性和相位 极性指的是空闲状态下时钟的电平状态,这个很好理解,verilog代码也很好实现, 比如,极性为0,表示空闲状态下时钟的电平为低 ...

  4. 米联客FDMA3.1数据缓存方案全网最细讲解,自创升级版,送3套视频和音频缓存工程源码

    米联客的FDMA数据缓存方案发布也有五六年了,但真正能熟练使用的兄弟却很少,其实还是没有好的例程作为参考和同熟易懂的讲解,这里我做如下解析: FDMA部分:这部分是米联客封装了用户接口的AXI4-FU ...

  5. 米联客 ZYNQ/SOC 精品教程 S02-CH24 利用AXI VDMA 实现MT9V034摄像头采集

    软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...

  6. 米联客 ZYNQ/SOC精品教程 S01-CH06 FPGA按钮去抖实验

    软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...

  7. 米联客资料笔记FPGA篇EDA先锋工作室官方DOC常用TestBench模板Vivado基本使用

    文章目录 背景 一.米联客verilog篇笔记 1.为什么要推出vivado 2.状态机,软核的理解 3.always @的含义与 @() 4.条件运算符 5.阻塞逻辑和非阻塞逻辑混用 二.xilin ...

  8. 米联客 ZYNQ/SOC精品教程 S01-CH07 FPGA多路分频器实验

    软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...

  9. FPGA图像三帧缓存,手写米联客FDMA3.0控制器,逐行讲解代码

    米联客推出了FDMA3.0,下载试用了将近一个月,感觉还行,总体比较平衡,相比于FDMA1.0操作也更简单,适用于基于AXI4_FULL的数据缓存方案,源码可以去米联客官网下载. 其实这种ASXI M ...

  10. 米联客 ZYNQ/SOC精品教程 S01-CH05 FPGA程序的固化和下载

    软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛:www.osrc.cn答疑解惑专栏开通,欢迎大家给我提问!! ...

最新文章

  1. 双端队列的实现与应用
  2. mysql转化为GaussDB,GaussDB(openGauss)宣布开源,性能超越 MySQL 与 PostgreSQL
  3. Java爬取frame的课程表_从爬取湖北某高校hub教务系统课表浅谈Java信息抓取的实现 —— import java.*;...
  4. python学习之函数的参数类型
  5. github windows客户端
  6. 移动开发利器——APICloud开发平台介绍
  7. 蓝桥杯 ADV-237 算法提高 三进制数位和
  8. BZOJ5475 WC2019数树(prufer+容斥原理+树形dp+多项式exp)
  9. linux安装curl扩展
  10. “渠道之王”2.0   百丽携手乐淘的背后
  11. NGN学习笔记3——软交换中的协议1--SIP、SIP-I\SIP-T\BICC
  12. php 时间转换yyyymmdd,YYYYMMDD字符串日期转换为日期时间值
  13. android bitmap 去锯齿,bitmap缩放时抗锯齿
  14. ubuntu安装anaconda教程
  15. 电脑文件管理——XYplorer
  16. 5年培养2000名高端专业人才 阿里巴巴大数据学院落地成都
  17. 《富爸爸穷爸爸》书摘-富爸爸穷爸爸
  18. 已解决RuntimeError: CUDA error: device-side assert triggered异常的正确解决方法,亲测有效!!!
  19. bat 设置 IP, 清除IP
  20. hive异常 return code X from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask 解决

热门文章

  1. libpcap简介及网络监测系统
  2. perfectmoney php接口_兑换paypal PerfectMoney(转载)
  3. 网络工程师 第1章 计算机网络概述
  4. 再无风清扬,再有少年郎
  5. 电子计算机的发展经历了四代
  6. 威联通TS231nas虚拟服务器,威联通NAS小技巧:自带VS3软件下安装win7虚拟机
  7. 路由器的几种工作模式
  8. 计算机用户接入最快的,行测真题_2013-2017年固定互联网宽带接入用户数的年增长速度最快的年份是...
  9. Akka 指南 之「Actors」
  10. 基于OpenCv+Django的网络实时视频流传输(前后端分离)