usb_ctrl
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的更多相关文章
- LPC1768的USB使用--宏定义
#ifndef __USBREG_H #define __USBREG_H /* usb设备中断定义 usb_devintst usb_devinten usb_devintclr usb_devin ...
随机推荐
- spring+quartz报错:Table 'XXXX.QRTZ_TRIGGERS' doesn't exist
Spring4.3.4 + quartz2.2.1配置到application.xml中 <properties> <spring.version>4.3.4.RELEASE& ...
- 36-2018 蓝桥杯Java B组试题及答案
1:第几天2000年的1月1日,是那一年的第1天.那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 用excel算,答案125. 2.标题:方格计数 ...
- call指令和ret指令配合实现子程序调用
子程序的框架如下. 标号: 指令 ret 具有子程序的源程序的框架如下. assume cs:code code segment main: : : call sub1 : : mov ax,4c00 ...
- c# 关于取小数点后值四舍五入精度问题
---恢复内容开始--- 最近做一个校验码验证法算法的生成程序,涉及到取小数点后值的问题;对其中遇到的问题做一下总结: 1:ToString()转换时碰到0.9999999999999之类的数据,给自 ...
- (转)android拨打电话崩溃6.0以上实时动态权限申请
文章转自:http://blog.csdn.net/qq_29988575/article/details/54909213 6.0以下手机正常,6.0以上的却崩溃 解决方法: targetSdkVe ...
- PAT乙级 解题目录
有些题做得可能比较傻,有好方法,或者有错误还请告诉我,多多指教=.= 思路比较好的题目我都有讲的很详细. 剩下三道题有待优化,等改好了再上传. 标题 题目链接 解题链接 1001 害死人不偿命的( ...
- Introduction to 3D Game Programming with DirectX 11 翻译--开篇
Direct3D 11简介 Direct3D 11是一个渲染库,用于在Windows平台上使用现代图形硬件编写高性能3D图形应用程序.Direct3D是一个windows底层库,因为它的应用程序编程接 ...
- Win7下Qt5的安装及使用
1.安装Qt5 Qt5的安装比Qt4的安装简单多了,我装的是Qt5.4(qt-opensource-windows-x86-mingw491_opengl-5.4.0.exe),它集成了MinGW.Q ...
- Mybatlis SQL 注入与防范
SQL注射原理 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意)的SQL命令 ...
- 服务程序 -st
Windows 服务由三部分组成:1.一个服务可执行文件:2.一个服务控制程序(SCP):3.服务控制管理器(SCM),负责在 HKLM\SYSTEM\CurrentControlSet\Servic ...