1.接口完成以后先去读,0x64寄存器。如果值为0x87654321,则时序okay;否,则修改时序
2.访问Lan9252接口的时候
  Byte1 Byte2 Byte3 Byte4
数据线 add[0+:16] add[16+:16] data[0+:16] data[16+:16]
地址线1组 00000 00010 00100 00110
地址线2组 01000   01100 01110
3.DMA流程
1)CPU做状态机初始化
2) DMA写数据初始化
a) 读地址0x314;判断data[31]==1;是则跳转到状态b;否则跳转到状态c【这一步是为了判断当前是不是在写过程数据】
b) 写地址0x314,data[30]<= 1;【这一步是为了停止当前写过程数据】
c) 写地址0x310,data<={length,address};【address <= 0x1400,这是Lan9252写过程数据区的起始地址;Length <= 待搬运的数据长度,单位为byte】
d) 写地址0x314,data[31]<=1;【启动写操作】
e) 读地址0x314,判断data[0]==0?是,则开始DMA数据搬运;否,则停留在这个操作等待可用。【判断是否有可用空间,如果有,则Fifocnt <= data[8+:5]】
3)DMA数据搬运状态
a)发送第一个数据,fifocnt <= fifocnt - 1'b1;跳至b
b)判断Fificnt ==0?是,则跳转到c;否,则跳转到d
c) 读地址0x314,取Fifocnt <= data[8+:5],跳转到d
d)发送下一个数据,fifocnt <= fifocnt - 1'b1;跳转到e
e)判断是否发送完成;是,则跳转到f;否则跳转到b)
f)读0x310,判断当前数据是否写入【仅供测试】
g)读0x314,data[31]==0?是,则跳转到h;否,则等到
h)结束发送
4.DMA如果遇到问题排查的顺序
a)时序问题;(读寄存器0x64)
b)流程问题:
i. 确保DMA开始的时候,CPU已经完成初始化,从站状态机==8(仅适合当前工程)
ii.如果DMA不成功,DMA完成后,读0x310,看数据写入状态
5.调试Lan9252碰到的问题:
a)时序太快(CS持续时间太短;CS间隔时间太短)
b)DMA的时候,写入0x310的数据,地址和长度弄反了
c)DMA的时候,用两个cs写数据,三个cs读fifocnt;继续搬运数据的时候地址没有改回来
d)搬运长度不够

转载于:https://www.cnblogs.com/xiz-cheng/p/6899510.html

Lan9252-FPGA调试笔记相关推荐

  1. FPGA调试笔记~PCIE之XDMA(一):一些概念性介绍

    目录 XDMA引荐 PCIE介绍 历史渊源 通信拓扑结构 地址映射与管理 加载与初始化过程 总结 XDMA引荐 XDMA是Xilinx系列FPGA中官方自带的PCIE"高级"IP, ...

  2. FPGA学习笔记_ROM核调用与调试

    FPGA学习笔记 ROM核调用与调试 1. ROM存储器IP核的使用 2. 创建.mif文件 3. In system memory content editor内存查看工具的使用 4. Signal ...

  3. Quartus 调试笔记

    Quartus 调试笔记 @(verilog) 最近忙于芯片跟测试FPGA联调,解锁了不少quartus的用法,在此记录一下备忘. 文章目录 Quartus 调试笔记 一. modelsim 联仿 1 ...

  4. 小梅哥FPGA学习笔记

    小梅哥FPGA学习笔记 一.38译码器 功能: 译码器其任一时刻的稳态输出,仅仅与该时刻的输入变量的取值有关,它是一种多输入多输出的组合逻辑电路,负责将二进制代码翻译为特定的对象(如逻辑电平等).38 ...

  5. 【分享干货】AD9653调试笔记

    标题AD9653调试笔记 一.简介 AD9653是ADI公司于2012年推出的一款四通道.16位.125MSPS模数转换器,内置片内采样保持电路,专门针对低成本.低功耗.小尺寸和易用性设计.该产品转换 ...

  6. ARM+Movidius VPU 目标识别调试笔记(一)

    写在前面 Movidius 是一家被Intel收购的计算机视觉创业公司.Intel收购Movidius之后,在AI和边缘计算方面的布局又增加了一支生力军.Movidius的AI芯片分为Myriad x ...

  7. zynq linux ip配置,ZYNQ+linux网口调试笔记(2)PS-GEM1

    1. 开发环境 Windows SDK 2017.4 Ubuntu Petalinux 2017.4 硬件平台:米联客ZYNQ开发板MIZ7035 2. 开发目标 在ZYNQ上使用gigE Visio ...

  8. 调试笔记--jlink 变量转实时波形小技巧

    调试笔记–jlink 变量转实时波形小技巧 上篇讲了jlink RTT组件在RAM中开辟一段内存,将printf字符串存入然后通过jlink调试接口读取RAM,将printf字符串在jlink-RTT ...

  9. 调试笔记--keil 测量周期小技巧

    调试笔记–keil 测量周期小技巧 本文参考安富莱专题教程第7期 http://www.armbbs.cn/forum.php?mod=viewthread&tid=87176&ext ...

  10. 调试笔记--keil 断点调试小技巧

    调试笔记–keil 断点调试小技巧 给变量打断点 调试不熟悉的项目时,卧槽!怎么这么多全局变量?这玩意又在那修改了??这个时候会给变量打断点就能省好多事. 将要监视的全局变量添加到watch窗口 选中 ...

最新文章

  1. 分享:Orthanc 0.4.0 发布,DICOM 服务器
  2. XPath 详解,总结
  3. bpython bs4用哪个解释器好_针对python爬虫bs4(BeautifulSoup)库的基础问题
  4. Gentoo 安装日记 01 (工具准备)
  5. centos6.10中部署percona-mysql双实例的方法
  6. [转]C++学习:VC++动态链接库(DLL)编程深入浅出(zz)
  7. VTK:图片之ImageGaussianSmooth
  8. java面向对象程序课本,Java面向对象程序设计
  9. java 对象压缩_理解Java对象:要从内存布局及底层机制说起,话说....
  10. Android 系统(119)---Android启动页黑屏及最优解决方案
  11. Scala 2.8馆藏图书馆是“历史上最长的遗书”吗? [关闭]
  12. 开源视频质量评价工具: Evalvid
  13. RedHat搭建DHCP服务器
  14. spring mvc 中,直接注入的 HttpServletRequst 是否安全呢?
  15. python 系统学习实例1.2 - 人民币与美元的转换
  16. 卷积到底卷了个啥?--卷积定理详解(一)
  17. 【网络安全】重放攻击(Replay Attacks)
  18. LeetCode-House_Robber
  19. 鸿蒙系统绿幕,英伟达发布新RTX 30系显卡:全新安培架构 支持8K游戏
  20. 你和阿里资深架构师之间,差的不仅仅是年龄(进阶必看) 1

热门文章

  1. 集成融云的视频通话功能
  2. C语言——伸缩型数组成员
  3. 凌动z3735f运行64位linux,iwork8平板电脑安装ubuntu,Z3735d/f系列CPU通用
  4. 谷歌浏览器在编辑器中打不开_如何在Google文档中使用编辑器聊天
  5. 将ppt转换成html文件格式,如何将幻灯片.pptx格式转换成.ppt格式
  6. 用eclipse和androidstudio和基于高德地图API开发的附近购平台的java服务端和android客户端数据库用mysql包括程序设计图
  7. GEE引擎架设好之后进游戏时白屏的解决方法——gee引擎白屏修复
  8. 比知识更重要的,是元认知和深度思考
  9. Python学习笔记(一)(图灵学院)
  10. 如何做好一名合格的项目组长