对于目前来说,若是利用FPGA去模拟USB2.0内核,难度还是挺大的,整个状态的收发都不好控制。现在目前都在使用桥接芯片作为一个核心控制器,内部集成USB驱动、状态控制、GPIF、FIFO等,可以轻松实现相应功能。USB2.0桥接芯片有***的FT232H,FT2232H,还有南京沁恒的CH372B或者CH375等,还有Cypress公司的CY7C68013,笔者打算采用CY7C68013来进行USB2.0的开发。 本篇博客是本着从硬件角度来看CY7C68013,来看一下CY7C68013内部结构和相应的特性。为制板做进一步铺垫。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/wpsCE74.tmp[4].jpg][/url] 首先内部有USB2.0收发器部分,串行接口引擎(SIE),还有一个强大的8051微处理器。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[3].png][/url] 功耗较低,在任何模式下电流不会超过85mA,假设使用3.3V供电,其功耗大概也就在0.28W。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/wps2175.tmp[7].jpg][/url] 对于8051内核,其工作频率有三种可选,这三种频率均由外部晶振24MHz通过PLL得到。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/wpsB9DE.tmp[4].jpg][/url] 3.3V供电。所以供电的转换可以采用 5V 转3.3V,利用常用的AMS1117即可。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/wpsED6E.tmp[5].jpg][/url] 上图是整个内部结构。FIFO的突发速率高达96MBPS。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[7].png][/url] 封装有上述封装可选。但是对应不同的封装又有不同的引脚引出,如下图所示。这个就需要考虑,采用何种封装,要实现何种功能。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[12].png][/url] [url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[16].png][/url] 支持两种信号位速率,最高达到480MBPS。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[20].png][/url] 对于给8051内核提供的晶振系统有一定要求,要求晶振24MHz(±100ppm),且两个电容容值为12pf,对走线也提出要求,为了给系统提供一个高精度晶振。
对于上述提到的外部晶振 ±100pm的要求,笔者查阅一下资料。PPM是石英晶振的基本单位之一,表示晶振的精度和相对偏差,PPM代表着百万分之一,它表明晶体的频率可能会偏离标称值多少。晶振频率是以MHZ(10的6次方)和KHZ(10的3次方)为基本单位的,标称频率10MHZ晶振的频率偏差10HZ就刚好是1PPM。比如120ppm,27M的晶振,频率的误差 = 120/100万*27M=3240Hz。 [url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[24].png][/url] 配置信息要注意,在做EEPROM的配置时需要和ID信息一致。否则会配置不成功。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[29].png][/url] 对于上电复位和按键复位都提出要求,加电复位要保持5ms以上,这决定着t = n *RC,这个RC值的选取。比如选R = 100K, C = 10uF,能满足要求。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[33].png][/url] CY7C68013需要软配置时,需要配置寄存芯片,这点和FPGA的配置芯片有类似功能。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[40].png][/url] [url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[41].png][/url] 供电电压,最大消耗电流,上电复位时间情况。
[url=http://www.cnblogs.com/C:/Users/Administrator/AppData/Local/Temp/WindowsLiveWriter1286139640/supfiles2CB8F42/image[46].png][/url] 手册还贴心的给出了布板的信息,笔者打算做4层板,阻抗需控制,还有就是差分信号的走线。