本帖最后由 nightseas 于 2012-12-28 17:27 编辑
一直想DIY一个自己的FPGA开发平台,能够像一台小电脑一样运行,并依自己的需要随意扩展外设。不能太贵也不要太低端。由于前些日子忙于各种事情,抽不出身,所以一直搁置,现在把设想提出来,希望有共同兴趣爱好的朋友加入,或者提出你的看法和建议。好的设计是需要不断推敲和论证的,兔子在此不尽感激。
设想的起因: 借助一块参加论坛活动获得的ZedBoard,让我真正地到了FPGA的神奇之处,这是之前做逻辑粘合时无法比拟的感受。一个(或多个)处理器内核,一条AXI总线,通过组合各种外设,FPGA就能够用来搭建一个图形化的通用嵌入式平台。在Linux系统下,集合图形显示、音频输入输出、以太网、USB等功能,并且可以随意地裁剪组合,看来Xilinx宣称的All Programable是恰如其分的。
然而问题还是有的——ZYNQ平台瞄准的是较为高端的领域,因而成本不菲,并且其Cortex-A9硬核只适用于ZYNQ-7000系列,不具有通用性。于是决定利用Xilinx的MicroBlaze软核DIY一款通用性更强,价格更低廉的嵌入式平台。硬件就选用同样支持AXI总线的Spartan-6 FPGA(Spartan-3E只支持早期的OPB),这样一来自行开发的外设也可以与ZYNQ通用。
整体结构: 这就是兔子的初步设想,各种配置一应俱全。本来希望加个USB Device或者USB Host(划红线的地方),但由于USB芯片占用大量的IO,且需要另行编程,加不加就需要斟酌了。
芯片选型: 确定了设计方向和功能后,我对使用的主要IC做了选型(电源方案还没确定),如下表所示:
功能类型 | | | | | 14.5K Cell,MCBx2,I/Ox186,FTBGA260 | | | 1Gbit DDR2-667,16-Bit,FBGA84 | | | | | | | | | | | | PHY,首选GE RGMII,备选FE MII,LQFP48 | | | USB2.0 SOC,16-Bit总线,8051核,QFN56(优先去除) | | | USB2.0 to UART Bridge,QFN28 | | | | | | | | | | | |
FPGA选用了FBGA256封装的LX16,这个封装采用4层PCB基本可以搞定,可以节省不少DIY成本,选这个芯片可以说权衡了成本、资源和设计。Spartan-6里除了TQFP144的就是BGA,真的很让人不爽。相应的,DDR2也是BGA封装,最高工作频率667MHz,128M-Byte容量,能够满足一般的Linux应用。
QSPI Flash用作配置器件,价格适中速度也说得过去,令配SD卡接口,用来放Linux文件系统和数据。视频输出这部分很多开发板上都用电阻来搭,只能用于演示,这里兔子选用VGA芯片ADV7125,包含3个8位DAC,能够达到24位色。音频选用Wolfson的芯片我倒是没什么底,因为有人用它,应该比较容易找到资料。
以太网芯片选用GE还是FE的PHY需要确认,FE的可能有人觉得太水了,但GE的不知道Xilinx有没有现成的AXI MAC IP可用。这两款芯片是可以做兼容性设计的。
CY7C68013A这个芯片比较鸡肋,原因除上面提到的以外,还有就是这个开发平台兔子希望设计成一个主机设备,运行自己的嵌入式Linux系统,而不是简单的下位机。最初的设想是有一个USB Host来接键盘鼠标,后来从复杂度考虑还是作罢,改用PS2的键鼠,简单省钱。
串口设计成U转串的形式,方便tty调试。扩展口方面,觉得Digilent的PMOD接口形式不错,可作为低速I/O使用,另加一高速连接器座,用于扩展高速应用的子板。
结构设计最好能配合照市面上已有终端设备来做,这样可以直接套用其外壳,最终做成这样的小设备:
设计生产规划: 兔子准备在年后开始一步步执行计划,首先是两周左右的论证(同时开始进行原理图设计),原理图应该在1月期间完成,之后是5周左右的PCB设计。
投板在网上进行,问题是要不要由PCB厂家来进行阻抗控制(成本会相应增加)。PCB一般会回来10pcs,BGA焊接是个大问题,兔子准备想办法找人帮忙贴3pcs,只贴BGA,剩下的元件手焊。或者哪位有更好的建议和门路也行,只要费用不是太高,委托贴焊也可以。
备料工作在PCB投板后进行,考虑成本问题,兔子自己只会买3pcs的物料,若有童鞋一起参与再考虑增加数量。焊接调试会持续两周,测试基本的功能,出测试代码。
由于平时要上班,只能在休息时间进行该项目,所以周期会比较长~~~欢迎拍砖~~~
|