USB2.0学习笔记连载(一):CY7C68013特性简介
上一篇博客已经给出了整个视频板卡架构,那么对于USB接口部分需要着重理解和学习。
对于目前来说,若是利用FPGA去模拟USB2.0内核,难度还是挺大的,整个状态的收发都不好控制。现在目前都在使用桥接芯片作为一个核心控制器,内部集成USB驱动、状态控制、GPIF、FIFO等,可以轻松实现相应功能。USB2.0桥接芯片有台湾的FT232H,FT2232H,还有南京沁恒的CH372B或者CH375等,还有Cypress公司的CY7C68013,笔者打算采用CY7C68013来进行USB2.0的开发。
本篇博客是本着从硬件角度来看CY7C68013,来看一下CY7C68013内部结构和相应的特性。为制板做进一步铺垫。

首先内部有USB2.0收发器部分,串行接口引擎(SIE),还有一个强大的8051微处理器。

功耗较低,在任何模式下电流不会超过85mA,假设使用3.3V供电,其功耗大概也就在0.28W。

对于8051内核,其工作频率有三种可选,这三种频率均由外部晶振24MHz通过PLL得到。

3.3V供电。所以供电的转换可以采用 5V 转3.3V,利用常用的AMS1117即可。

上图是整个内部结构。FIFO的突发速率高达96MBPS。

封装有上述封装可选。但是对应不同的封装又有不同的引脚引出,如下图所示。这个就需要考虑,采用何种封装,要实现何种功能。


支持两种信号位速率,最高达到480MBPS。

对于给8051内核提供的晶振系统有一定要求,要求晶振24MHz(±100ppm),且两个电容容值为12pf,对走线也提出要求,为了给系统提供一个高精度晶振。
对于上述提到的外部晶振 ±100pm的要求,笔者查阅一下资料。PPM是石英晶振的基本单位之一,表示晶振的精度和相对偏差,PPM代表着百万分之一,它表明晶体的频率可能会偏离标称值多少。晶振频率是以MHZ(10的6次方)和KHZ(10的3次方)为基本单位的,标称频率10MHZ晶振的频率偏差10HZ就刚好是1PPM。比如120ppm,27M的晶振,频率的误差 = 120/100万*27M=3240Hz。

配置信息要注意,在做EEPROM的配置时需要和ID信息一致。否则会配置不成功。

对于上电复位和按键复位都提出要求,加电复位要保持5ms以上,这决定着t = n *RC,这个RC值的选取。比如选R = 100K, C = 10uF,能满足要求。

CY7C68013需要软配置时,需要配置寄存芯片,这点和FPGA的配置芯片有类似功能。


供电电压,最大消耗电流,上电复位时间情况。

手册还贴心的给出了布板的信息,笔者打算做4层板,阻抗需控制,还有就是差分信号的走线。
下一步开始做板,逆袭!!!
USB2.0学习笔记连载(一):CY7C68013特性简介的更多相关文章
- USB2.0学习笔记连载(十九):EZ-USB TRM手册重要部分介绍
TRM手册中给出了所有的寄存器配置,在 slave fifo模式或者 GPIF模式等,所以对于用到的各种寄存器配置需要查看此手册,当然还可以配合着应用手册<AN61345>. ...
- 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学习笔记连载(五):EZ-USB重要寄存器的配置
本篇博客主要讲解EZ-USB一些重要寄存器的配置,首先对于本篇博客所讲的内容,读者应该到官网上去下载相关的手册,其中包括<EZ-USB Technical Reference Manual> ...
- USB2.0学习笔记连载(十四):USB驱动安装及固件程序的编写
在之前的博客中已经讲过,驱动程序最核心的两个文件,一个是xxx.sys文件,一个是xxx.inf文件,主机是寻找xxx.inf文件. 在下面的文件中有相关关于USB驱动的说明.对于用户来说,xxx.s ...
- USB2.0学习笔记连载(十八):keil实现寄存器的配置及相关函数讲解(二)
其实之前也有提及过,Cypress公司提供的官方文件和应用手册真的可以解决很多问题.做的也很人性化,操作也及其简单,几乎只要在 TD_int()里面配置一些常用的参数即可,其他都可以不用操作. 作为一 ...
- USB2.0学习笔记连载(十):关于WIN8及以上系统哈希值问题
笔者上一篇博客讲解了关于驱动的安装,笔者使用的系统是win8.1系统,那么对于win8系统及以上系统,会对外部设备,没有在windows系统中进行签名过的,都是不允许在windows系统中进行安装的, ...
随机推荐
- python流程控制之if、 while和for 循环
1.if 语句 语法1 if 条件:# 代码1# ... # cls='human'# sex='female'# age=18## if cls == 'human' and sex == 'fem ...
- java输出格式-----System.out.printf()
package com.lzc.test; public class Main { public static void main(String[] args) { // 定义一些变量,用来格式化输出 ...
- 正则表达式零宽断言详解(?=,?<=,?!,?<!)
在使用正则表达式时,有时我们需要捕获的内容前后必须是特定内容,但又不捕获这些特定内容的时候,零宽断言就起到作用了 正则表达式零宽断言: 零宽断言是正则表达式中的难点,所以重点从匹配原理方面进行分析.零 ...
- 部署前准备--使用Mysql之Django Debug Toolbar安装以及配置
python -c "import django ;print(django.__path__);" 查看python的全局配置 vi /usr/local/lib/python3 ...
- Google C++ 单元测试 GTest
from : http://www.cnblogs.com/jycboy/p/6057677.html 一.设置一个新的测试项目 在用google test写测试项目之前,需要先编译gtest到lib ...
- Java全栈程序员之08:MAVEN+JAVA配置
从Spring3.0开始,Spring支持以Java配置的方式来代替XML配置.这一点说起来其实有点可笑,XML配置的方式最初被创建出来就是为了让配置与程序员无关.可是最终我们发现,绝大多数的那些配置 ...
- Jetpack 架构组件 Room 数据库 ORM MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- centos cron 自动执行脚本异常 命令不生效的解决办法
办法: 1.sh脚本加入 source /etc/profile 2.非系统命令,要写绝对路径
- numpy.trace对于三维以上array的解析
numpy.trace是求shape的对角线上的元素的和,具体看 https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.t ...
- 160多个android开源码汇总
第一部分 个性化控件(View) 主要介绍那些不错个性化的View,包含ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.Pro ...