IFCLK应该是clkout,与数据同步

flagd就是就是slcs

FPGA的系统时钟用FX2LP的clkout时钟,个人觉得关键点在时钟是48M,别的异步时钟也是可以的。

模式配置

使用的模式是从设备FIFO。

从设备FIFO下的寄存器配置

FPGA代码架构

FPGA 代码的主要功能是监控从设备 FIFO 的满标志和空标
志,然后分别对 FIFO 进行读和写操作。
来自 FPGA 的接口时钟(IFCLK)需要转动 180 度,以满
足 FX2LP 的从设备 FIFO 接口建立时间的要求。

FIFOADR:地址控制端,选择CY7C68013A内部的四个FIFO。其中FIFOADR=2’b00时,对应端点2,即内部FIFO对应的地址。FIFOADR=2’b01,对应端点4,FIFOADR=2’b10对应端点6,FIFOADR=2’b11对应端口8。

PINFLAGSAB =0xe8; // FLAGA - fixed EP2EF(empty flag), FLAGB -fixed EP6FF(full flag)
SYNCDELAY; //FLAGA引脚,EP2空时为0,非空为1,FLAGB引脚,EP6满为0,非满为1。信号有效电平通过FIFOPINPOLAR寄存器设置,0为低有效,1为高有效,默认都为低有效。
PINFLAGSCD =0xac; // FLAGC - fixed EP2FF, FLAGD - fixed EP6EF
SYNCDELAY; //FLAGC引脚,EP2满时为0,非空为1,FLAGD引脚,EP6空为0,非满为1

EP2EF :endpoint empty flag

EP6FF : endpoint full flag

EZ-USB量子FIFO特点:当FIFO的空标志从1(空)到0(非空)时,FIFO的数据不是增加一个字节,而是一个USB数据包。

(1)FIFO设置

FIFO设置的过程包括节点,方向和缓存大小等

The bits in the EPxCFG registers control the following:
■ Valid. Set to ‘1’ (default) to enable the endpoint. A nonvalid endpoint does not respond to host IN or OUT packets.
■ Type. Two bits, TYPE1:0 (bits 5 and 4) set the endpoint
type.
❐ 00 = invalid
❐ 01 = ISOCHRONOUS (EP2,4,6,8 only)
❐ 10 = BULK (default)
❐ 11 = INTERRUPT
■ Direction. 1 = IN, 0 = OUT.
■ Buffering. EP2 and EP6 only. Two bits, BUF1:0 control
the depth of buffering.
❐ 00 = quad
❐ 01 = invalid
❐ 10 = double (default)
❐ 11 = triple

(2)flag标志。

EZ-USB共有4 个标志flgaA,flagB,flagC,flagD。flagA ,flagB和flagC可以配置为索引模式和固定模式两种,而flagD只能配置成固定模式。

在索引模式下,

Flag pins configured for Indexed mode report the status of the FIFO currently selected by the FIFOADR[1:0] pins.
When configured for Indexed mode, FLAGA reports the programmable level status, FLAGB reports the ‘full’ status, and
FLAGC reports the ‘empty’ status

固定模式:

Flag pins configured for Fixed mode report one of the three conditions for a specific FIFO, regardless of the state of the
FIFOADR[1:0] pins. The condition and FIFO are userselectable. 
空满标志极性:由FIFOPINPOLAR 寄存器设置。

The polarity of the ‘empty’ and ‘full’ flag pins defaults to
active-low but may be inverted via the FIFOPINPOLAR register.

PINFLAGSAB 寄存器配置flaga和flagb

PINFLAGSCD寄存器配置flagc和flagd

每个flag的4bit代表的意义:

对于0000的情况就是索引模式,在索引模式下标志信号对应的FIFO由FIFOADR1 和FIFOADR0来指示:

在非0000的情况就是固定模式。

flag

flag indexd fixed      
flagA PF        
flagB FF        
flagC EF        
flagD --        
  由FIFOADR[1:0] 控制 与FIFOADR[1:0] 无关      
PIN      
SLRD slave read 在同步模式,FIFO指针在IFCLK上升沿递增,在异步模式,FIFO指针在SLRD信号的断言到非断言跳变时增加  
SLOE slave output enable 使能FD输出  
SLWR slave write    
PKTEND Packet End     
       
       
       
       
       
       
       
       
       
       

usb_ctrl的更多相关文章

  1. LPC1768的USB使用--宏定义

    #ifndef __USBREG_H #define __USBREG_H /* usb设备中断定义 usb_devintst usb_devinten usb_devintclr usb_devin ...

随机推荐

  1. java中钩子方法的概念

    钩子方法源于设计模式中模板方法(Template Method)模式,模板方法模式的概念为:在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以在不改变算法结构的情况下,重新 ...

  2. VIO回顾:从滤波和优化的视角

    https://mp.weixin.qq.com/s/zpZERtWPKljWNAiASBLJxA 根据以上网页自己做的总结: 在机器人社区中,定位与构图问题属于状态估计问题.主流使用的工具可以对给定 ...

  3. go语言中操作mysql的方法

    需要下载指定的golang的mysql驱动包 > go get github.com/go-sql-driver/mysql 下面的例子: package main; import ( &quo ...

  4. 使用SQL语句创建数据库2——创建多个数据库文件和多个日志文件

    在matser数据库下新建查询,输入的命令如下: USE master GOCREATE DATABASE E_MarketON PRIMARY--主文件组( NAME ='E_Market_data ...

  5. JFinal中文件上传后会默认放置到WebContent的upload包下,但是tomcat会自动重启,当我们再次打开upload文件夹查看我们刚刚上传的文件时,发现上传的文件已经没有了。

    JFinal中文件上传后会默认放置到WebContent的upload包下,但是tomcat会自动重启,当我们再次打开upload文件夹查看我们刚刚上传的文件时,发现上传的文件已经没有了.因为tomc ...

  6. 9.29 h5日记

    1.CSS中哪些属性可以继承? font系列 text系列 color line-height 2.border-radius的值 值的顺序是左上 右上 右下 左下 则 border-radius:5 ...

  7. C# 解决SharpSvn启动窗口报错 Unable to connect to a repository at URL 'svn://....'

    在远程机打开sharpsvn客户端测试,结果报错 Svn启动窗口报错 Unable to connect to a repository at URL 'svn://...' 咋整,我在win10我的 ...

  8. 使用 Spring 2.5 注释驱动的 IoC 功能

    概述 注释配置相对于 XML 配置具有很多的优势: 它可以充分利用 Java 的反射机制获取类结构信息,这些信息可以有效减少配置的工作.如使用 JPA 注释配置 ORM 映射时,我们就不需要指定 PO ...

  9. ftp上传文件异常

    ftp一个服务器 如果是22端口 ssh-2.0-openssh_4.3 ,是什么意思? ftp服务用的是20.21端口,客户端添加ftp信息的时候输入的是21端口 ssh服务用的是22端口,应用于远 ...

  10. C++11并发编程实战 免费书籍

    C++11 博客http://www.cnblogs.com/haippy/p/3284540.html 网上推荐的C++多线程基本都是C++ Concurrency in Action 英文版的,中 ...