首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

从零开始,搭建zynq-7000的PS硬件平台--USB端口

从零开始,搭建zynq-7000的PS硬件平台--USB端口

主机环境:ubuntu10.04lts X64_64bit,root
开发工具:planAhead
参考资料:Zynq-700EPP CTT(UG873)
         ZedBoard(ZynqTM Evaluation and Development Hardware User’sGuide)

  ZedBoard上有3个USB接口,分别是USB-OTG,USB-UART bridge,USB-JTAG。

1,USB-OTG
  OTG技术可以让不同设备间传输数据更容易,整个协议还是有些复杂,不过我们简单的理解成OTG=Host+Slave。Zedboard上使用了TI 的USB1210来实现这个功能。ZedBoard 硬件手册上的引脚定义如图1所示:
图1,USB-OTG的引脚定义














从图1上可以看出OTG一共需要8根数据线OTG_Data[7:0],硬件手册上的文档可能是笔误,与原理图上不一样,写成了[8:0],从TUSB1210看过去的其他信号的说明:

CLOCK:输入,zynq输出的USB参考时钟,提供给TUSB1210

NXT:输出,CMOS  PHY通过NXT来控制数据,当链路层发送数据到物理层时,NXT表明物理层已经接收到字节,那么链路层会下一个时钟周期把下一个字节放置到数据总线。

DIR:输入输出,CMOS  控制数据总线的方向,当物理层有数据传送到链路层时,它驱动DIR高占据数据总线。当物理层没有数据传送时,它使DIR低并且显示来自链路层的总线命令。

STP:输入,CMOS  链路层通过STP用一个时钟周期去停止数据流突然出现在总线上。如果链路层发送数据给物理层,STP表明前一个周期已经有最后一个数据字节在总线上了。

RESET_B:输入,TUSB1210的复位。连接到了Zynq的Bank35上,硬件手册又笔误了…⊙﹏⊙b汗
VBUS_OC:这个是Zynq用于控制USB接口供电的开关

   通过上面的分析,我们发现实际上配置的时候,只要配置图1中前5行就够了,共设计zynq的12个MIO,根据实际设计,在“Zynq PS MIO Configrations“中选择USB0,见图2
图2,USB0 配置





























2,USB UART Bridge
  USB接口的UART,实际就是UART的TTL输出通过USB通信而已,协议转换使用专用ICCY7C64225来做的,在Zynq上就是单纯UART,因此配置的时候直接选择UART 1,即MIO[48..49],如图3所示:
图3,添加UART





























Zynq的MIO电平标准时1.8V,CY7C64225是用的3.3V,因此二者需要电平转换芯片,这个是板级系统设计中要注意的。

文章来源:http://blog.csdn.net/morewd
记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表