USB2.0学习笔记连载(十九):EZ-USB TRM手册重要部分介绍
TRM手册中给出了所有的寄存器配置,在 slave fifo模式或者 GPIF模式等,所以对于用到的各种寄存器配置需要查看此手册,当然还可以配合着应用手册《AN61345》.
1.主机操作
对于USB2.0的设备来说,是不能作为主机,主动发送数据或者接收数据的,如下面的描述。
2. 方向控制
OUT意味着 主机到设备,IN是设备到主机,这里注意以下,若是工作在slave fifo模式下,FPGA与 EZ-USB通信,最后传递给上位机,应该是工作在IN模式(输入模式)。
3.事务处理方式
令牌包,数据包,握手包。
4.枚举
(1)首先是主机发送 get descriptor device指令请求给地址0;
(2)设备响应请求,发送ID给主机得到确认;
(3)主机发送地址请求,此地址是设备特有的;
(4)主机再发送其他额外的设备信息get descriptor device;
其实上述的这些响应,EZ-USB内部会自动完成,只需了解其机制即可。
4.1重枚举
当第一次插入设备,需要安装驱动,等下次再插入设备时,会自动被识别,这就是重枚举过程。
5.EZ-USB架构
6.端点缓冲配置方式
手册中有介绍,ENDPOINT buffer一共就有12种配置方式,如下所示:
对照两个图可以看出,端点缓冲区的设置是与CPU部分进行通信的,包括缓冲区大小,几个缓冲区,输入和输出,以及缓冲模式(bulk,control,同步模式,中断模式)
7.SLRD,SLWR,FLAGABC,SLOE,SLCS几个信号讲解
上图中,FPGA与CY7C68013A进行通信,工作在slave fifo模式,其中我们只需用到FPGA对CY进行写操作。所以对于写入情况手册中有给出如下情况:
在写入数据时,是伴随着ifclk时钟频率下,在上升沿进行采样,且此时SLWR为低电平,SLCS为低电平。
flagABC,其中A代表空,B代表满,C代表可编程,FPGA可以通过这几个信号来判断CY是写满还是读空。
SOLE是输出使能信号,高电平使能。
SLRD是读出信号,如下图所示:
SLRD也是低电平有效,并且SLCS金额SLOE也是低电平时在ifclk时钟频率下开始读出数据,由于FPGA与CY通信只是写入情况,用不到读出,所以可以直接将SLOE,SLRD直接拉高。
8.电源管理模式
主要有suspend,resume,idle,wakeup模式
8.1晶振时钟源寄存器设置,默认值是1.
8.2 唤醒控制
wakeup引脚的优先权是通过WUPOL和WU2POL来设置的,DPEN使用来设置D+的使能,WUEN使能wakeup引脚,WU2EN使能WU2引脚。通过设置上述参数,就可以进入到wakeup中断。有上述可以看出,有三种中断源可以使CY进入到中断模式,1)wakeup(WUEN),2)D+(DPEN),3)WU2(WU2EN),进入中断后,8052就会推出idle模式。
9.复位
复位有三种方式:硬件复位(低电平有效),CPU复位(由EZ-USB的逻辑控制),USB总线复位。
10.端点介绍
端点2.4.6.8可以进行配置。通过下图的寄存器进行配置。
对于每个buffer缓冲器的数据大小通过以下寄存器进行设置 。
11.自动指针
自动指针会当每个字节发送过来后自动增加。
其他参看博客连载18的内容
USB2.0学习笔记连载(十九):EZ-USB TRM手册重要部分介绍的更多相关文章
- USB2.0学习笔记连载(九):USB设备驱动的安装
在第一次插入USB设备时(笔者用的是自己做的USB最小系统来测试),插入电脑后,在设备管理器中会显示 未知设备,如下图所示: 点击右键,选择属性,在详细信息中可以看到硬件ID以及PID等,如下图所示. ...
- USB2.0学习笔记连载(十八):keil实现寄存器的配置及相关函数讲解(二)
其实之前也有提及过,Cypress公司提供的官方文件和应用手册真的可以解决很多问题.做的也很人性化,操作也及其简单,几乎只要在 TD_int()里面配置一些常用的参数即可,其他都可以不用操作. 作为一 ...
- USB2.0学习笔记连载(一):CY7C68013特性简介
上一篇博客已经给出了整个视频板卡架构,那么对于USB接口部分需要着重理解和学习. 对于目前来说,若是利用FPGA去模拟USB2.0内核,难度还是挺大的,整个状态的收发都不好控制.现在目前都在使用桥接芯 ...
- USB2.0学习笔记连载(十七):keil实现寄存器的配置及相关函数讲解(一)
首先要实现对寄存器的配置,可以参考手册<Development kit User Guide>,如下图所示: 此文件包含在 文件中.上述的应用文档详细介绍了如何利用KEIL实现对固件程序 ...
- USB2.0学习笔记连载(六):USB2.0硬件设计需要注意事项
笔者在设计USB2.0时找到了一个官方给的硬件设计正确设计指南,其中有些内容还挺nice的.不单单只是USB的设计,其中有些思想可以应用到其他的场合中. 对于USB2.0而言,全速状态下可以达到480 ...
- USB2.0学习笔记连载(三):通用USB驱动程序解析
对于USB驱动的开发,读者可以使用Windows DDK.DriverStudio等多种开发工具来实现USB的驱动,但是驱动程序的开发过程都比较复杂,而且很容易致使USB主机内存泄露而死机.那么对于笔 ...
- USB2.0学习笔记连载(二):USB基础知识简介
USB接口分为USB A型.USB B型.USBmini型.USBmicro型.USB3.0其中每种都有相应的插座和插头. 图1 图2 上图是USBA型接口,图1为插座,图2为插头.插座指向下行方向, ...
- USB2.0学习笔记连载(十四):USB驱动安装及固件程序的编写
在之前的博客中已经讲过,驱动程序最核心的两个文件,一个是xxx.sys文件,一个是xxx.inf文件,主机是寻找xxx.inf文件. 在下面的文件中有相关关于USB驱动的说明.对于用户来说,xxx.s ...
- USB2.0学习笔记连载(十):关于WIN8及以上系统哈希值问题
笔者上一篇博客讲解了关于驱动的安装,笔者使用的系统是win8.1系统,那么对于win8系统及以上系统,会对外部设备,没有在windows系统中进行签名过的,都是不允许在windows系统中进行安装的, ...
随机推荐
- Oracle 11G 安装图文教程
Oracle 11G 下载地址:http://www.oracle.com/technetwork/cn/database/enterprise-edition/downloads/index.htm ...
- 通过show variables like ‘general_log%’可以看查询日志
mysql> show variables like 'general_log%'; +------------------+-----------------------------+ | V ...
- 每日英语:Nanjing's New Sifang Art Museum Illustrates China's Cultural Boom
In a forest on the outskirts of this former Chinese capital, 58-year-old real-estate developer Lu Ju ...
- TensorFlow学习笔记(8)--网络模型的保存和读取【转】
转自:http://blog.csdn.net/lwplwf/article/details/62419087 之前的笔记里实现了softmax回归分类.简单的含有一个隐层的神经网络.卷积神经网络等等 ...
- PostgreSQL建表SQL语句写法
DROP TABLE IF EXISTS bus; CREATE TABLE bus( id SERIAL PRIMARY KEY, mac ) NOT NULL UNIQUE, route int ...
- vue 的事件冒泡
一.事件冒泡 方法一.使用event.cancelBubble = true来组织冒泡 <div @click="show2()"> <input type=&q ...
- scala连接数据库
scala连接数据库 使用JDBC即可: 在sbt中添加对应依赖 libraryDependencies ++= Seq( "mysql" % "mysql-connec ...
- netty的线程池-----揭示了使用两个线程池的原因
线程模型是Netty的核心设计,设计地很巧妙,之前项目中有一块处理并发的设计和Netty的Eventloop单线程设计类似,效果得到了实证. Netty5的类层次结构和之前的版本变化很大,网上也有很多 ...
- nohup 后台启动程序,并输出到指定日志
1.启动程序并输入到指定日志 nohup python manage.py runserver 0.0.0.0:9090 > /data/zyj/xadstat/xadstat.log 2&am ...
- 使用jQuery清空file文件域的解决方案
使用jQuery清空file文件域的解决方案 var file = $("#file") file.after(file.clone().val("")); f ...