tag 标签: usb3

相关博文
  • 2025-4-5 17:01
    64 次阅读|
    0 个评论
    基于ARTIX7的FPGA+DDR3+USB3的摄像头开发板1
    一、基于SPARTAN6的USB3摄像头开发板已经完成有几年了,为适合最近的项目需求,又重新设计了一款基于ARTIX7的USB3电路板。总体设计目标基本一致,都是想胜任通用USB3的数据采集及工业相机的开发,所以电路板的硬件结构都一样,都是基于FPGA+DDR3+USB3的结构。FPGA选择的是484引脚的XC7A35TFGG484的,DDR3选择的是MT41J128M16,用来做图像数据的帧缓存,USB3芯片还是常用的CYUSB3014。电路板总体结构如下: 二、电路板上的主要部分简单介绍如下: 1、FPGA主芯片,A7的XC7A35TFGG484的,用做主控芯片; 2、USB3.0芯片,型号是CYUSB4014BZXI,USB3数据传输的; 3、DDR3芯片,型号是MT41J128M16,用做图像数据帧缓存的; 4、外部连接器,可以将摄像头子板的,如IMX178的,IMX287的,IM273的子板。引脚是100PIN的,分别连接到了FPGA的两个独立的BANK上,分别是BANK34和BANK35上。 5、USB3连接器,TYPE-B接口,比较结实的这种连接器。后面的USB4开发板会全部转向TYPE-C接口; 6、电源芯片两个,LDO类型的,提供给USB3芯片3.3V和1.2V,独立供电; 7、FPGA的电源芯片,三个电压为别是内核的1.0V,DDR3的1.5V和独立的3.3V; 8、FPGA的GTX电源芯片三个,分别是1.0V、1.2V和1.8V; 9、BANK35的单独供电芯片,默认是1.8V,用户可以自己更改这个电压; 10、BANK34的单独供电芯片,默认是1.8V,用户可以自己更改这个电压; 11、调试用的4个LED指示灯,还有一个FPGA配置好的指示灯; 12、调试用的4个按键; 13、USB3用的启动方式拔码开关,可以设置成从USB3启动还是从SPI FLASH芯片启动。8脚SOP芯片是SPI FLASH芯片; 14、外部供电及电源开关。电路板一般从USB3电缆取电就行; 15、FGPA的JTAG下载接口; 16、DDR3的端接电压芯片; 三、以下是电路板连接摄像头子板的示意图 上图摄像头是用的IMX273或者是IMX287,当然也可以接之前的IMX178。这些摄像头都是Sub-LVDS接口的,开发板也可以MIPI接口的摄像头,后面再作介绍。 四、电路板硬件准备好了,后面会重点说明一下IMX273摄像头的开发。类似的方案已经用在了多个项目上了,下面简单介绍几种应用。一是应用于口腔扫描仪,二是标准的工业相机。后面会有专门的帖子说明这方面的应用。 五、除了前面介绍的ARTIX7硬件电路板,适合项目应用的还有K7的以及ECP5的工业相机开发板。后面还会推出国产易灵斯FPGA的USB3.2开发板。 这是一个基于K7的FPGA+DDR3+USB3的通用开发板,硬件结构基本上和前面的电路板是一致的。 这是一个基于LATTICE的FPGA的开发板,具体系列是ECP5的,设计这款开发板主要目的是为了开发工业相机。ECP5的FPGA可以支持多种摄像头的接口,包括LVDS、Susb-Lvds、SLVS和MIPI的,当然也能用做SLVS-EC的接口。关于SLVS-EC接口,后面会抽时间开发一下。 良子USB,20250405 专注USB3.0、FPGA、PCIE、定制UVC摄像头 VX:15940187710
  • 热度 3
    2022-4-4 19:53
    2453 次阅读|
    1 个评论
    最近A和X的低端FPGA全部涨价了,价格已经翻了几十倍,原来50元左右的EP4CE10F17C8N芯片,现在的价格大约是1000元以上了,就是翻新的旧芯片,价格也在200元以上了。原来的SPARTAN6芯片,价格基本上在100元左右,现在飞涨到了报价几千元,还没有现货。所以现在需要设计一款基于国产FPGA的USB3.0开发板,FPGA选择是安路的,型号确定的是EG4A20BG256。 原来的基于ALTERA的FPGA+USB3.0的开发板,FPGA型号是EP4CE10F17C8N,具体可以参考网上的说明。安路的EG4A20BG256可以兼容EP4CE10F17C8N,所以设计起来就比较简单的了。另外安路还有一款FPGA,兼容XC6SLX16的型号,后面会有介绍。 正在更新中,,,,,,
  • 热度 27
    2020-2-15 16:38
    5025 次阅读|
    0 个评论
    基于SPARTAN6+DDR3+USB3开发板的DDR3读写实例4_TEST工程的约束文件修改
    前面生成了test工程,用于测试DDR3。在实际下载测试前,还需要修改一下exapmle_top.ucf约束文件。以下记录了修改的要点: 一、修改文件exapmle_top.ucf的第23行,修改VCCAUX的供电电压,从2.5V修改为3.3V,如下: 二、修改文件exapmle_top.ucf的第58行,输入晶振的周期修改为20nS。电路板上设计为单端晶振,3.3V供电,频率为50M。 三、修改文件exapmle_top.ucf的第74、75行,处理两个关键信号error和calib_done所在BANK的供电电压,修改为3.3V。另外,这两个信号实际连接到了W20和W22引脚上,也需要根据硬件电路板对应修改一下,如上面76、77行。 四、修改主文件exapmle_top.v的148行时钟相关部分。这部分内容比较复杂,需要熟悉ug388的时钟及PLL部分,帖图如下 : 上图中左侧是差分时钟输入的,先经过一个IBUFGDS原语缓冲,再接到PLL输入端。实际硬件电路板为单端时钟,不是差分时钟,这部分可以省略。PLL输出有三路,分别为CLKOUT0、CLKOUT1和CLKOUT2,前两个时钟经过BUFPLL_MCB后,生成2倍速的sysclk_2x和sysclk_2x_180,这是MCB工作的两个主要时钟。假定DDR3时钟频率为312.5M,2倍速为312.5M*2=625M。 具体修改如下 : 上图中的汉字注释部分,对于MCB用到的几个时钟已经说明的很清楚了,右下部分是出自于ug388中的第39面。 经过以上修改, 工程test已经和实际硬件电路板对应起来了,程序可以实际下载到电路板上运行了。 test工程的具体代码分析,见后面的文章。 良子USB,20200215 专注USB3.0、FPGA、PCIE、定制UVC摄像头 QQ:392425239
  • 热度 34
    2020-2-15 16:33
    6350 次阅读|
    0 个评论
    基于SPARTAN6+DDR3+USB3开发板的DDR3读写实例3_TEST工程建立及测试
    一、前面通过MIG生成了DDR3的IP核,同时生成了一个用于测试的工程test 。只不过这个test工程比较晦涩,并不是所见即所得,还得经过一些隐秘的步骤,才能呈现出来。前面生成IP核后,在ddr3文件夹内生成了1个mig_39目录,以及一些文件,如下图:其中有个mig_30_readme文本文件,需要看一下。 二、打开目录mig_39,里面含有3个目录,如下: 1、docs目录,里面含有两个DDR3开发的文档UG416和UG388。这两个文档需要仔细看,所有SPARTAN6与DDR3相关的内容都在这两个文档里。需要至少看十篇。 2、example_design目录,MIG提供的测试例程test,或者叫traffic generator。这里主要就是实际测试这个test工程。 3、user_design,这个目录是用户需要集成到自己的项目中的。 三、开始创建test工程。打开如下的目录,里面根本没有test工程的影子。先找到两个批处理文件,如下 ,直接双击不行,需要在命令行下进行, 四、打开ISE14.7自带的64位命令行程序,如下: 五、输入如下DOS指令,定位在前面的目录C:\ddr3\mig_39\example_design\par下,再运行create_ise.bat文件, 六、经过一段时间,test工程成功建立。如下, 七、回头再看C:\ddr3\mig_39\example_design\par目录,test工程已经出现了,如下 : 八、直接双击打开这个test工程,如下: 如上的test工程可以正常编绎成功。 1、上图中左侧的文件管理窗口,已经包含了.ucf约束文件,待会会进一步修改这个文件,以便和我的硬件开发板对应; 2、接下来会用CHIPSCOPE软件与实际电路板连接,观测实际的波形; 九、打开.ucf约束文件,修改了LED引脚以及时钟相关部分,再重新编绎工程,成功后连接电路板。 (具体修改部分见下一篇文章。) 十、连接成功后,直接点Trigger运行,成功如下: 十一、这里重点关注DDR3初始化是否成功的信号c3_calib_done。DDR3初始化成功,c3_calib_done信号为高;DDR3初始化失败,c3_calib_done信号为低。打开Trigger setup窗口,设置c3_calib_done为0,看初始化是否失败?程序运行后,没有触发到任何波形,说明DDR3初始化成功。 十二、进一步放大c3_p0_wr_data信号,如下,可以看到数据非常有规律,说明成功。 至此,DDR3已经正常运行了。后面,会对这个test工程详细分析。 良子USB,20200215 专注USB3.0、FPGA、PCIE、定制UVC摄像头 QQ:392425239
  • 热度 35
    2020-2-15 16:25
    7201 次阅读|
    0 个评论
    基于SPARTAN6+DDR3+USB3开发板的DDR3读写实例2_MIG生成DDR3的IP核
    一、前面介绍了含有DDR3的硬件开发板,以下内容都是基于这块FGA 开发板所进行的,生成的DDR3控制器直接可以下载到硬件电路板中实际验证,观察结果,加深理解学习。SPARTAN6芯片内部含有控制DDR3的硬核MCB,这个硬核还需要从软件上进行管理,这个软件即是MIG,以下是通过MIG生成DDR3的IP核的过程。生成过程主要是通过帖图体现的,为了创建一个可以参考的实例,帖图会比较详细,适合刚入门的使用,高手可以忽略。 二、如下图:先启动ISE14.7的IP核生成器CORE Generator, 二、IP核生成器CORE Generator启动后如下: 三、在IP核生成器CORE Generator里先创建一工程,如下: 四、在C盘里创建一文件夹ddr3,文件名为corgen,如下, 五、选择硬件电路板对应的FPGA型号,在Part选项中,选择SPARTAN6,XC6SLX45,封装为484引脚的,速度等级为-2的,如下: 六、切换Generation选项中,Verilog开发语言,如下: 七、按下图找到MIG的IP核,双击打开, 八、启动MIG画面如下,点下一步, 九、创建一个新的IP核 ,名字为mig_39,如下: 十、这一步选择兼容的FPGA型号,这里不作任何选择,直接下一步, 十一、这里选择BANK3上的MCB控制器, 十二、这里设置DDR3的时钟频率,工作在667M,一半就是333.3M;DDR3的实际型号为MT41J64M16JT-125,64M*16的, 十三、这里默认的就可以,直接下一步, 十四、选择一个128位宽的双向接口,寻址方式为ROW_BANK_COLUMN方式, 十五、默认、下一步, 十六、这里选择DDR3上电后校准的几个引脚,要对照实际的硬件原理图设置,RZQ电阻选Y2,ZIO引脚选W3,使能DEBUG调试,后面就用CHIPSCOPE调试,选择单端时钟,直接点一下步, 十七、上面的硬件设置,是和我的硬件电路板对应的,如下: 十八、MIG设置总体完成了,这一步是汇总相关的信息,直接下一步, 十九、点同意,点下一步, 二十、点下一步, 二十一、点Generate生成IP核, 二十二、IP核成功生成,点Close,结束。 至此,DDR3的IP核生成完毕。 下一篇将生成的TEST工程下载到实际硬件电路板中运行一下。硬件电路板如下: 良子USB,20200214 专注USB3.0、FPGA、PCIE、定制UVC摄像头 QQ:392425239