Lan9252-FPGA调试笔记

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)搬运长度不够

时间: 2024-11-20 15:03:34

Lan9252-FPGA调试笔记的相关文章

《格蠹汇编》调试笔记

以前也就是把Windbg作为一个调试所写驱动的调试器.只进行源码级的调试,运用的比较浅显. 最近研读张银奎老师的<软件调试>获益良多,刚好与之配套的<格蠹汇编>提供了老师大量的调试经验以及实验环境.不拿来好好实践一番简直浪费. 0X01调试笔记之侦查广告插件 俗话说:工欲善其事,必先利其器.对于调试领域来说,更是如此.我们不但要在自己的计算机中安装有WinDbg,还应当使用JIT调试的方法.因为对于Windows系统中的应用程序的崩溃问题,JIT调试是非常有效的办法,而且JIT调试

USB wifi调试笔记

本文以realtek 8192CU WiFi模块为例,介绍USB wifi在Jelly Bean 4.1的调试笔记. 1.WIFI打不开现象概述 WiFi打不开是指您在UI的settings下选中WiFi选项,将其置为on(打开),但最终结果是自动变成off(关闭).正在打开Wi-Fi.正在扫描等一系列不能正常打开WiFi的提示. 2.问题分析流程 WiFi打不开从硬件和软件两方面进行定位,一般是先硬件,然后软件.总体分析流程如图: 3.确认硬件可以识别 8192CU WiFi模块是基于usb接

SIM900A基站定位调试笔记 -转

第1步:ATE1 握手并设置回显 第2步:AT+CGMR 查看SIM900的版本信号 第3步:AT+CSQ 查看信号质量 第4步:AT+CREG? 查看GSM是否注册成功 第5步:AT+CGREG? 查看GPRS是否注册成功 第6步:AT+CGATT? 查看GPRS附着状态 第7步:AT+SAPBR=3,1,"CONTYPE","GPRS" 设置网络参数 第8步:AT+SAPBR=3,1,"APN","CMWAP"  //设置

FPGA调试光纤模块

利用FPGA调试光纤接口接口: 由于与项目需要,前段时间调试了光纤接口,记录一些设计经验. 设计中采用FPGA控制光纤模块完成光纤数据的收发,FPGA采用Xilinx公司的Spartan6 LX45T,由于其内部自带的2个GTP收发器,能作为多种高速通信协议(千兆以太网.PCI-E,SATA等)的桥梁,且Xilinx提供了免费的IP核,设计比较方便. 首先,建立ISE工程,添加GTP核,(该过程可参考Xilinx提供的文档:LogiCORE IP Spartan-6 FPGA GTP Trans

Tomcat调试笔记

调试笔记 在使用Tomcat过程中经常碰到问题,导致tomcat启动失败.如下↓ 由于报错太过笼统,我根本无法找出错误.后来我切换到Console视图下,看到了如下错误信息. 根据报错信息,错误原因是32bit 的Tomcat不能在AMD 64-bit的platform 上面运行,但是经过查看我发现自己的tomcat和java都是64bit的. 查看tomcat的版本号的链接:→ http://jingyan.baidu.com/article/e73e26c0c4b40024adb6a789.

JavaScript特效(调试笔记)

JavaScript特效 一.在网页上显示当前的时间日期,例如:“2016年3月26日 星期六”. js源代码: 1 function getTime() { 2 var today = new Date(); //返回当日的日期和时间. 3 var year = today.getFullYear(); //获得当前的年份 4 var month = today.getMonth() + 1; //获得当前的月份 5 var day = today.getDate(); //获得当前的日期 6

OMAPL138调试笔记

title: Linux 嵌入式使用 tags: 新建,模板,小书匠 grammar_cjkRuby: true Copyright (C) @2018 Widic Filename: File-function: Cre_ID: @ Widic 2018-1-23 Mod_ID: 三 学习过程 20170617 uart2 作为调试串口 band rate 115200 串口调试终端采用ZOC 3.开发板启动开官如下: SD卡挂载boot分区挂载在/media/mmcblk0p1 u盘挂载的方

Lattice FPGA 板子 调试笔记

最近在调试LATTICE  FPGA 做的视频板子,颇不顺利,所以记录下来作为以后的参考: 1.FPGA的IO口不是所有的都是双向的,有些有特殊作用的是单向的. 在查阅 LatticeECP3-17EAPinout.CSV 之后, 发现在LEF3-17EA-FN484C中,有以下几个管脚是单向的: C4  G7  G6     : jtag 管脚 C14  C15  B15   B16  :编程管脚 K1   L5   L1   K6   N17  M18   :PLL的反馈(fb)管脚 AB2

DSP与FPGA通信调试笔记——通过GPMC接口用EDMA传送

硬件:TI达芬奇TMS320DM8168(以下简称DSP).EP4CE6E22C8N(以下简称FPGA) 软件:linux-2.6.37 作者:Aadtech 杭州超距科技 近期项目需要实现DSP与FPGA之间的高速数据交换,用到了DM8168的GPMC接口.这部分的中文资料网上还是比较少的,于是苦苦研究芯片的数据手册和参考指南,最近终于有所成果,在Linux下调用GPMC驱动函数调通了GPMC接口,因此发出调试过程与大家分享.目前以DSP端可以通过GPMC用EDMA的方式读取FPGA端的数据,

学生管理系统调试笔记

一 .   数据库连接报错: 报错信息如下: Fri May 06 19:56:07 CST 2016 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default