spartan6 加载程序几个带usb接口的插座,AS和JATG是一个插座吗

multijtager(基于FPGA的多功能JTAG调试/下载接口)开源项目倡议与讨论
回复【462楼】minux 啊啊?
-----------------------------------------------------------------------
用0402封装我觉得没问题,就算0201我也不在乎,但对其他朋友们来说是不是难度有点大?
ADC就不用了吧,最多留几个测试点给它就行了
RAM用61LV51216吧(兼容到51216,但实际可以焊等同封装RAM)
Flash MT29F2G16这个型号不太熟,我先查查看
电源方案没有意见,5V进线串肖特基二极管、自恢复保险,其他电压各串0欧电阻,方便有必要时断开,或者检测电流
TF当然要,如果空间足够,可以考虑放全尺寸的 SD slot
【460&461楼】 h2feo4 无机酸
我正在画电路图。
封装规则用中密度或者高密度都行我觉得,似乎板子不是很密,不过既然你布线就你决定吧~
用0402的阻容没啥问题吧?
SAM3U我们不需要ADC部分吧?那我就不加各种滤波了。
NAND用MT29F2G16如何?SRAM使用2片8位的61LV256还是用一片16位的?抑或是用容量更大的PSRAM?
TF卡要不要?
电源方案我觉得3.3V应该用DC-DC,1.8V的核心电源用自带的LDO,是否要预留电流测量电阻?
更重要的一个问题是,是不是得考虑外接5V供电?
器件用什么封装规则 ? IPC High Density ?
分立元件用什么封装 ? 0603 ?
SAM3U的电源方案 ?
原理图有初稿了么
SAM3U的引脚真够乱的
A2-A7 每个都有三个,乱……
顶,...& &SD这个要啊, 电源方面不太懂, 电流方面应该不多, LDO应该可以
诸位,3.3V DC-DC有没有好的建议?另,是否使用SAM3U的内置LDO?我建议这版先使用,但是留下测量点,我们还不知道核心电压的电流。
要不要microSD卡接口?应该得要吧?
哈哈,几个小时没看就有了这么激动人心的进展了啊。
目前我还没发现有什么问题。
鉴于目前的情况,我建议先邮件传递设计文件,同时贴详细的电路图和PCB图片供大家挑错;PCB封装可以公开发布吧。
我们先做多少块板子?如果有其他感兴趣的网友想要,怎么处理?
License的问题,我以前建议是by-sa(http://creativecommons.org/licenses/by-sa/3.0/);
不过后来考虑国情,估计by-nc-sa会更好些(http://creativecommons.org/licenses/by-nc-sa/3.0/)
这个我们回头再考虑,反正这个内部版我们不计划很快公开吧?(唉,其实去掉nc的条文对于开源项目肯定是好的……)
代码的授权用GPL(暂定是v2版,是不是可以升级到v3我们再考虑下)没异议吧?我考察了我们可能需要贡献/参考的项目,
GPL授权是很适合的。
IO板的设计,我还得补充下,有些单片机需要给某根JTAG数据线上加编程高压(比如MSP430烧fuse的时候),高压倒是不高,
6.5V而已,但是我们目前的设计没办法处理这个情况。PIC的MCLR脚更甚,高压的时候需要12V,这个问题我们得再考虑考虑。
现在来看,IO板可以先搭一个简单的,上个244都行,只要是能初步工作的平台,软件开始了就一切都可以开始啦~~
5月4日上午是否可以确定MCU板的PCB?我计划大概那时候投板。五一那天确定电路图如何?我先画除了接插件处连接的其余
部分,然后h2feo4和dr2001你们检查电路图?
暂时没看出什么错误, 是个好的开始
回复【454楼】h2feo4&&无机酸
-----------------------------------------------------------------------
那原来的描述容易引起误解,呵呵。
别的我没啥意见了。
回复【453楼】dr2001
-----------------------------------------------------------------------
我所说的“排针对准网格“指的是所有的“针”对准网格,原意是:可以用一块2.0mm洞洞板DIY一块子板
同意铺铜间距改为0.3mm
参考原点位置,我用的是板子的几何中心
:: &网格尺寸1mm,所有排针/排座对准1mm网格&
确认一下是Pin 1;还是对称器件的几何中心?
:: &铺铜间距 不小于 0.25mm&
这个最好和内电层合并,为0.30mm。
另外,确认板卡参考原点位置。
multijtager layout guide
Ver0.1 by h2feo4
机械尺寸:
外形 100mm * 70mm 四个角圆角R5
四个Φ3.5mm 定位孔,孔中心距离板边5mm
定为孔焊盘外径 7mm
板厚 1.6mm
多层板 信号层铜厚18um 电源层铜厚35um
单、双面板 铜厚35um
器件高度 正面6mm,背面1.5mm
布线规则:
全部尺寸采用公制(mm)
网格尺寸1mm,所有排针/排座对准1mm网格
线宽/线距 不小于 0.15mm/0.15mm
孔径/环径 不小于 0.30mm/0.50mm
铺铜间距 不小于 0.25mm
内电层扩展间距0.3mm
阻焊丝印:
一般焊盘阻焊扩展 0.08mm
承力焊盘阻焊扩展 -0.1mm
所有过孔盖油
丝印与孔、焊盘距离0.15mm 以上
功率器件热管理
屏蔽、抗干扰与抗静电:
围绕板边缘1mm 屏蔽地
IO保护器件、隔离、退耦
(原文件名:A.PNG)
(原文件名:B.PNG)
(原文件名:C.PNG)
(原文件名:D.PNG)
(原文件名:E.PNG)
(原文件名:F.PNG)
(原文件名:G.PNG)
(原文件名:H.PNG)
(原文件名:I.PNG)
(原文件名:J.PNG)
(原文件名:K.PNG)
(原文件名:L.PNG)
看看还缺什么,补充
不合理的,修改
另外,请minux考虑下文件是贴在这里,还是邮件传递?
是不是应该把license具体化一点?
把库做出来先看看吧,,
定位销&&到时候再想办法, 磨一下可以安装好, 就是麻烦点没关系了
目前暂时不用考虑别人是否买得到,只要确定我们自己能买到就行了
即使以后发行,也是我们自己采购零件
最怕这里买到了, 别的地方买不到,..& &先问问看阿莫的意见
回复【447楼】minux 啊啊?
-----------------------------------------------------------------------
定位销可以把两种版本的定位孔都留下,例如在第一排之外放0.85mm定位孔,第一排和第二排之间放1.25mm定位孔
先采购少量样品,数量够制作几只样机即可,确保它能和我们设计的定位孔正确配合
至于定位销的高度,不行就削短一点吧
明天我做一个接插件的 Altium Designer 封装库初稿
其它问题等第二版再说吧,到时肯定还会有不少问题一起修改呢
【445楼】 h2feo4 无机酸
ft... 这问题还真是挺麻烦了…… 那我们必须得先采购才能定下来了…… 可是我们好采购的别人不一定好采购啊……
要不问问armok看看有没有推荐货源?(如果我们要单独开论坛讨论,似乎一定是要能和邮购部配合才行,我记得某个
帖子他是这么说的……)
要么就是我们按绝大多数情况的位置做,尺寸比最大的稍微小一点,比如1.1mm? 买到不合适的话,就稍微打磨下?
Molex的定位销比较特别,可以单独为它做一个,这样两面都可以用定位销了,实在买不到就稍微削短一点装吧。
看看数据手册先..
看了一圈各个厂商的数据手册,除了molex的定位销位置在第一排之外(尺寸0.8mm)
其他厂商的定位销都在第一排和第二排之间,但尺寸从1mm到1.4mm不等
定位销的高度貌似都是1.45mm,貌似问题来了,如果板子正面和背面都使用带定位销的接插件,两面的定位销之间会冲突
因为1.45mm * 2 = 2.9mm,而板厚只有1.6mm,除非把定位销切短,否则是装不进去的
另一种方法,正面使用一般厂商的带销排针,背面使用molex的排座,这样定位销倒是错开了,不过采购上貌似很麻烦
从可行性上考虑,最好先确定货源,买几个样品回来测绘
附,几个厂商的数据手册
点击此处下载
(原文件名:conn.rar)
回复【443楼】minux 啊啊?
-----------------------------------------------------------------------
可以先画板,给接插件留出足够的空间(从板边缘算起的话留10mm吧),其他尺寸按【437楼】的草图如何?
看看还有没有什么其它的问题,近几天多找几个接插件厂家的资料看看
焊盘最好能让相邻两脚间跑两条0.15mm线(即相邻焊盘间距至少0.75mm),这样才能保证在双面板上可以比较舒服的布通
在此条件下焊盘尽量大,以保证强度
【442楼】 h2feo4 无机酸
恩,看来得确定一家的产品,然后买到带有定位销的插座再继续弄?
正反面分别是排针和插座我觉得没问题,底下放插座正好免得直接放桌子上意外短路了……
回复【441楼】minux 啊啊?
-----------------------------------------------------------------------
molex 和 amp 的数据手册我都看过了,但是有个问题,就是排针和排座不能使用同一种焊盘尺寸(原因稍后我会画图说明)
所以咱们需要确定下,板子正面和背面,哪个放排针,哪个放排座(其实两面都放排座也可以)。
以我的想法,正面排针,背面排座,如何
另外,不同厂家生产的排座,有的有定位销,有的没有定位销,位置和尺寸可能还都不一样,要考虑兼容性
还有,对于没有定位销的接插件,焊接时如何保证对准?这么大的排针,歪一点就插不进去了
【439楼】 h2feo4 无机酸
参考下这里?http://www..tw/tw/p/Product-0.html
有数据手册。
我买过2.54mm的,那个商家货很齐,估计2.00mm的没问题。
软件方面,我突然发现如果我们稍加修改OpenOCD,自己做一个编译器把TCL程序编译成我们的虚拟机代码,
直接送到下位机(MCU或FPGA)执行,应该是个加速的好办法。
找时间去OpenOCD的邮件列表里讨论下这个问题。
晕, 不是吧, 定位的不要搞错啊, 尺寸不对 安都安不上去啊??&&
我这边有买内存条那种插座,
我这破地方买不到2mm贴片排针/排座
最好还是能验证一下封装尺寸?
有些排座底部有定位销,这个也要考虑进去
第一版能用2面解决不??
做了一个尺寸规划,看看行不行
粉色线是板轮廓
绿色线是keepout
四角各一个3.5mm机械孔
至于定位键,从适当位置删除4个焊盘应该就可以了吧
3mm*1.25mm这个焊盘尺寸应该足够结实,而且能装下任何可能的排针或排座
相邻焊盘间可以跑一条0.25mm(10mil)线,或者两条0.15mm(6mil)线,布通也肯定没问题
按上次讨论的,线宽线距不小于0.15mm(6mil)/0.15mm(6mil),过孔尺寸不小于0.3mm(12mil)/0.5mm(20mil),所有过孔盖油
全板都采用公制(mm)参数,及网格尺寸(我推荐使用0.1mm/1mm网格)
(原文件名:size.PNG)
先把第一版确定下来吧, 再后慢慢改, 硬件先确定下来..
那现在模板大概出来了吗?
123万点击,这个帖子太猛了吧?
【431楼】 h2feo4 无机酸
恩,那没啥意思了……不过电平转换电路竟然是LV125...
【432楼】 kk2614755
做GDB的接口,没有几个开发工具不支持这个。
对于ARM,可以先给OpenOCD做个驱动这个只要下位机实现了JTAG访问就可以做。
回复【429楼】minux 啊啊?
-----------------------------------------------------------------------
那软件上位机谁来搞??&&确保和编译软件连接起来有点难度哦
回复【430楼】minux 啊啊?
-----------------------------------------------------------------------
我猜是瑞萨自己的单片机,可能是 H8S/2215
看看这里 /read-htm-tid-1127.html
又发现了一个有内部照片的仿真器,架构类似。我没看出来正面的USB接口芯片是什么…… ft
Renesas 16位的H8S系列。
/bbs/bbs_content.jsp?bbs_sn=3951271&bbs_page_no=1&bbs_id=2070
【426楼】 h2feo4 无机酸
恩,板子尺寸就按照既定的讨论结果吧,10cm*7cm可以。
MCU板子提供3V3电源我同意,但是我们在MCU板上用DC-DC还是LDO? 预期向其他板子提供多大电流?
我觉得应该这样,这个电流首先要保证USB这边不过载(&500mA@5V),其次要保证MCU全速,一个适当大小的FPGA以及IO板
前提下不需要再加电源。按照这个,3V3肯定得是DC-DC,负载得能达到800mA,找一个好买的,便宜的,外围器件少的DC-DC。
排针如果我们不能容忍倒着插,还是加上定位键吧…… 2*2*40 2.00mm pitch 贴片排针我觉得没问题。
排针的位置主要是要留下足够的面积布线,还有机械强度的问题和焊接难易程度得考虑下。
放在板子中间靠左边一点, 或者中间靠右边一点
回复【423楼】minux 啊啊?
-----------------------------------------------------------------------
那先确定关键问题
2mm 间距 2*40 贴片排针,在靠近板边缘的中间位置?是否要安排定位键?
板子尺寸100mm*70mm?
MCU板提供3.3V的电源?
回复【423楼】minux 啊啊?
-----------------------------------------------------------------------
暂时不管连接器, 把样品做出来先
建议使用我们常用的MINI-PCIE,标准的尺寸是50*30.我们设计的ARM核心板,使用的是55*30,可以与标准的MINI-PCIE卡区分开,
又能够使用常见的插座.前提是,你需要的IO比较少,MINI-PCIE有双面,共52个信号,除去电源与地的话,提供40条IO是没有
【420楼】 h2feo4 无机酸
说的是。似乎确实不好选这个连接器啊…… 要不先放放,先把需要4层板的PCB确定下来我尽快送去加工,至少基本的板子先
确定,然后我们慢慢讨论6层板的FPGA子板怎么做如何?
【422楼】 kk2614755
我建议是尽可能板厚无关,因为最后做板子一般都是拼板的,很可能没有办法给这一块板设定板厚。
板厚 可以和PCB工厂那边商量一下
to 【417楼】 h2feo4 无机酸
像偶这种打酱油的人很多啊...
回复【419楼】minux 啊啊?
-----------------------------------------------------------------------
貌似有很多ARM9开发板都在用内存的接插件
一般的板对板连接器,可靠性和易用性上都不如内存插槽
排针的密度又远远不够
用FPC连接器,“内存条”用软板做,不太现实
用现成的内存座,增加一些手段防止误插倒是可以,不过也要考虑误插可能是双向的
即真正的内存条可能插入我们的插座,我们的“内存条”“短路条”也可能被插入真正的计算机
使用真正的内存条,咱们貌似没这么多IO,而且这样做就完全失去了[将闲置的RAM信号线转给IO]的作用了,还不如把RAM直接焊在板子上方便
另外一个,内存插槽和mini-pci都太宽了,如果不增加母板尺寸是排不下的
我就觉得,如果我们用这种有工业标准的槽自己定义接口,得防止不明真相用户插入真正的内存条……
0.5mm pitch的板间接插件确实不容易焊接牢固…… 不太适合我们这个经常拔插的场合。
不过我建议,如果我们不用现成的内存条,就不要用现成的内存条插座…… 防止误插……
如果能用笔记本的SDRAM内存条,倒是可行…… 但是那个似乎也不好买了……
/search?shopf=newsearch&q=SO-DIMM+%B2%E5%B2%DB
这些都行不??
就是大了点..
刚刚发现这个帖子的点击量好猛啊
(原文件名:点击量.PNG)
回复【415楼】h2feo4&&无机酸
-----------------------------------------------------------------------
如果考虑爱好者自行组装,最好选择牢固,相对耐用,焊接难度低的。
0.5的板板连接器焊接难度不低,而且寿命有限,焊不好的话强度也不足,我不认为是比较好的选择。0.65/0.8可能好点,但是我没有应用经验,无法评价。也许还是用排针排座比较好,板卡可以略大一点。
如果引脚数量不够,MCU总线考虑适量减少,16Bit Data;14Bit LSB,2-3Bit MSB Addr;相关控制信号的总线,这样可能节约一些。
板卡堆叠和以前的想法有变化,如果认为引脚数不够,那就不如简化成:MCU专用IO板卡 - MCU卡 - FPGA -(FPGA) - FPGA专用IO这样。一摞构成一组。预留堆叠间同步,时钟,复位等信号就可以了。这样FPGA引脚压力小一些。
FPGA 150引脚的话,那么40+40给双面的连接线;50左右给SRAM/SDRAM;8左右给全局信号和LED等。
综合压力应该比较小,依然具有必要的灵活性,供参考。
回复【414楼】dr2001
-----------------------------------------------------------------------
如果按之前商定的母板尺寸100mm*70mm,两边各10mm要留给接插件,所以极限条件就是60*2,0.8mm脚距
考虑宽松一些的话,就是70*2,0.65mm脚距
回复【413楼】h2feo4&&无机酸
-----------------------------------------------------------------------
0.5mm板板连接器的寿命比较堪忧,如果要用,最好用宽一些的。
13A + 32D + 12C = 57
SPI的四根线可以正面两根,背面两根
如果用minipci的话,电源和地可以正面三个,背面三个(虽然还是有点少)
SO-DIMM 200大概也只有不到65mm宽,200pin就绰绰有余了(要是尺寸能缩小三分之一就好了,切割一下?)
板对板连接器也是个不错的选择,但子板的固定不像内存插槽那么方便
“内存条”用edge connector或者(伸出去)用板间插座行不?那个有0.5mm pitch的,60*2的也好找。厚度还可以,3mm左右吧。
我用手机拍了一个我现在手头有的,应该是25*2的:
(原文件名:conn.PNG)
【407楼】 h2feo4 无机酸
恩,我们需要保证FPGA配置,电源,地,全局IIC等信号的位置是完全确定的。其余的IO之类就先照顾SAM3U就好了。
DRAM的厚度还得考虑进来…… 不然板子插不上了……
“内存条”上2片16位SDRAM组合成32位宽度(没有分开控制是为了解决IO资源),那么需要预留
电源,至少2根
数据线,32根
地址线,取决于我们要多大容量的……现在最大的也就256Mbits一片吧…… 以后估计也不会再大多少了…… 13根
控制线,CLK, CLKE, nCS, BA0-BA1, nRAS, nCAS, nWE, DQM0-DQM3 一共12根
辅助线,SPI EEPROM的4跟。
综上,一共2+32+13+12=59根,实际上还得考虑电源还得多点,所以62根都有点紧张……
要不这样,“内存条”的接插件伸出来,也就是FPGA板比预定的8cm长出一块,那里垂直于长边装插座?同时适当扩展
下板子的短边?
mini-PCIE的卡尺寸是大约51mm*30mm(half size的是30*30mm),但是一共只有52pin.... 厚度5mm 估计不行的……
【410楼】 dr2001
我后来想到,软件最应该先写的是一个JTAG sniffer... 可以监听JTAG信息并传回来,跟逻辑分析仪类似,但是上位机我们得
找个软件解析一下数据。这个最近就可以开始做了。
回复【406楼】minux&&啊啊?
-----------------------------------------------------------------------
Xilinx我已经简单反过HEX了,基本知道主要下载操作,用到的Requrest和大致含义。
这个需要平台进行验证。
回复【408楼】kk2614755
淘宝上面都能找到啊,
-----------------------------------------------------------------------
长宽度不大于50mm,脚数不小于120的SO-DIMM
我没找到,请您指教
淘宝上面都能找到啊,
回复【406楼】minux 啊啊?
-----------------------------------------------------------------------
接插件定义还是按SAM3U来吧,以后换FPGA定义就是了,但是给FPGA配置用的SPI之类的还是最好放在一个固定的位置
内存条不知道用什么样的插槽比较合适,考虑能装下32bit SRAM,估计要2*60pin,考虑尺寸,宽度最好不超过50mm,貌似不容易啊
不知道MINI-PCI行不行
查了下,MINI-PCI有2*62pin,脚数倒是够了,但有60mm宽,插座有65mm宽,45mm高,貌似板子上装不下
正在找MINI-PCIE的机械尺寸
不过貌似脚距小于0.75mm的SO-DIMM估计很难找
【403楼】 dr2001
恩,我下次直接去看看上位机程序,看看能不能弄一份完整的Vendor Requests出来。然后用bushound+同样功能的svf对比分析协议。
【404&450楼】 h2feo4 无机酸
换主芯片的问题确实存在…… 那就按你说的做吧。我觉得2层板如果不特别迁就SAM3U的管脚,想完成布线挺困难…… 或者说我们退一步,
只要地址线/数据线/控制线在一起,相对顺序不重要?话说其实如果我们换MCU,即使这要管脚的分区不变(是电源的还是电源,是GPIO的
依旧是GPIO),所需要也就是改下FPGA的管脚映射重新编译一下吧?似乎也没多大麻烦的(因为换主MCU已经带来很多别的麻烦了)……
设置内存槽的提议我觉得可以,不知道其他人有什么看法?如果没有异议,那内存条也上6层板一起拼板吧,哦,还有短路条。
另外,这个思路似乎在别的地方也有启发作用…… 是不是别的地方也可以用这种设计?当然,我们得注意一点,灵活性也是有成本的……
千万别让人说成过度灵活…… 哈哈。
或者说板子上先留两片SDRAM(用外部存储的应用挺多的,但是不一定都要那么大的存储器容量/带宽),如果还不够想扩充就上“内存条”
同时挤占IO的管脚们。这个如何?
FT256封装的FPGA如果上4片SDRAM就没剩几个IO了,除非用FG320,不过我觉得暂时可以不用考虑太远
先做两片的吧
另一种方法是在FPGA板上使用微型内存插槽,使用DRAM时插入“内存条”,不使用时插入“短路板“(将原来分配给RAM的IO转向给IO板)
这样既保证了灵活性(可以灵活选择不同类型、容量、宽度、速度的RAM),又保证了信号完整性(插入“内存条”时,RAM信号线与IO板分开,保证信号完整性)可以在“内存条”上放置小型 SPI EEPROM 来标示其作用
可以把微DIMM插槽的一面全分配RAM信号,另一面是通向IO板的折返线,这样“短路板”只需一排过孔即可解决,而“内存条”仅使用正面信号线即可
回复【401楼】minux 啊啊?
-----------------------------------------------------------------------
考虑一下,如果以后改用SAM3U以外的MCU,按SAM3U制定的接插件定义可能造成不小的麻烦
最好还是看上去规整一点,顺便照顾SAM3U
XPCU直接反向USB协议就行。一般的下载功能,看起来协议很简单。也就用到了几个控制传输的命令而已。
FPGA只要完成一个16Bit的数据分别推送就行。
哦 对了,XPCU的模仿问题我们还一直没有进展呢……
找时间还得研究下这个问题。
我上次发现Quartus竟然可以支持FT2232D做的JTAG线了…… 所以我觉得还应该模拟下FT2232D。
先总结下我们都需要模拟哪些器件(排名不分先后,先后要根据难易程度以及对整体架构的影响决定):
(1) FT2232D/H: 这两款区别不大,就是分频比有所变化
(2) FT245: Altera USB-Blaster用这个,就是一个USB-FIFO,最好搞定应该(我以前用STM32模仿过它)
(3) sn74lvt8980a: TI的XDS系列上面用跟这个很接近的一个,况其模仿这个可以直接加速JTAG操作。
(4) 还有其他的么?
目前我已知的不好模仿的FPGA下载线有Actel的…… APA150的非易失FPGA,又没有任何突破口,很难搞,
等我搞到FlashPro3/4,有时间先尝试黑箱反向。
Xilinx的有两个途径目前,显示读68013A的代码,然后正向分析CPLD的作用;或者参照www.ulogic.org
的著名论文直接考虑反向CPLD位流的网表…… 还有没有别的可用的突破口没?
我感觉,这个项目在完成了前面几个芯片模仿之后,就该同时进入开发和反向阶段了。
唉,不过反向不是目的,其实我觉得另外一个方法是,我们不管别人的实现,直接反向跟PC之间的通信,
直接正向实现之,或许这个更有效且快速。
上位机方面,我们需要首先在确定了我们底下的JTAG访问架构之后给OpenOCD(UrJTAG或许也有必要)写
我们的驱动。
另外就是其他仿真器/下载器在我们的USB通信协议固定后,可以尝试直接开发动态库给上层工具用,我
曾经反向过quartus_pgm和仿真器驱动DLL的接口,如果继续进行的话,估计我们完全不模仿USB-Blaster,
搞一个自己的接口也可行(我现在只知道几个很底层的JTAG操作接口,光用这些可能速度不会太高,所以
还得继续看看USB-Blaster自己的接口是什么)。
先去睡觉,有什么问题继续讨论,起来后再补充~
【400楼】 h2feo4 无机酸
对,我的意思就是说引脚定义要看MCU的管脚的布线方便…… 规整性其次…… 当然规整点也好,不过考虑FPGA那么容易
变管脚分配,我们到时候设定好了管脚给一个tcl脚本出来即可,也不用其他用户费劲。
同意Vccio固定3.3V。我们得注意规定下其他板从3.3V上最多取电多少……
SDRAM估计可以上至少两片吧,那样速度就乘以2了,作为参考,J*Trace用的4片16位166MHz的SDRAM,实现的数据实时采集是
最高200MHz的信号,宽度暂时还不好说,但是我估计怎么得&=24位吧(FPGA是EP1C6Q240C6N),但是其实我觉得得应该有32位以上。
如果我们做200MHz的逻辑分析仪,我觉得两片16位的166MHz SDRAM,到12通道怎么着是可以做到的,更多的通道其实考虑
数据冗余性,在FPGA里面做一点压缩…… (话说,其实那么快的信号,一般的连接线,信号完整性已经很成问题了,我们
估计在数据采集方面做到这个规模已经非常足够了吧。) 如果不管IO的数目,直接上4片,那就无敌了(估计会受限于FPGA)。
这个项目得赶紧做起来了…… 某仿真器公司去年就在说Cortex-A8的支持coming soon,结果到现在还没有兑现…… 更fz的是据说
要到年底…… 这个让我彻底不准备继续等了,还是自力更生吧,我不准备买别的支持A8的仿真器,omap3530只能用XDS560,那个
调试Linux很痛苦或者几乎不可能,所以还是决定自力更生吧,最近得开始阅读OpenOCD的代码,从这里估计能给我一些JTAG仿真器
什么操作最需要在硬件级别完成的信息。前面一段我一直纠结于找一个好的合适的RTOS,现在看还是算了吧,随便用一个吧,那个
对我我们项目来说真不是关键的…… (说一下,我找的结果非常不满意…… 开源的RTOS我现在基本都或多或少看过源代码了,说
实话没一个让我完全满意的…… ft...)
回复【398楼】minux 啊啊?
-----------------------------------------------------------------------
说到在两层板上布线方便,那主要还是看MCU板了吧,FPGA板相对来说还是自由度高得多,不过我觉得考虑未来的应用,接插件保留扩展至32A + 32D总线的空间
用SDRAM我没有意见,不用分bank了省事,DDR还是等S6方便
VCCIO我觉得就固定在3.3V吧
5V肯定要放在接插件里面,我考虑的是在MCU板上放置3.3V电源,接插件上提供5V和3.3V,每块板自己负责其他电压
好东西啊!
【397楼】 h2feo4 无机酸
en 连接器电气定义我觉得主要得考虑下MCU在2层板上布线时的方便问题。
另外,FPGA板(如果IO足够的话)用多片SDRAM就行吧?一定要用DDR/DDR2么?
用DDR/DDR2假设只用1个bank的话,那么最多16位宽度(且不说3S500E用DDR2控制器得占不少资源)……
还得单独开一个IO bank伺候他们……
我觉得有可能的话,用3.3V的SDRAM吧,要想速度快多来几片并行用。(另外,我也不建议在S3E上面用DDR2,
虽然Xilinx是说可以的…… 主要是DQS和DQ不像Altera的Cyclone那样分组,延时之类不好弄…… 所以即使能搞,
速度也有点怕……要是Spartan6好搞,上个这个倒是非常爽的~哈哈,硬core...)
哦,对了,IO板非Target一侧的的Vcc怎么给?是走接插件还是固定在3V3?
各有好处,好处是我们可以根据FPGA这边的情况给,坏处是,一得多占几根线走Vcc,二是我们还得把这个
定义到接口定义里面(那个管脚的Vcc管哪几个IO的电平)。
FPGA板估计得考虑单独供电?还是MCU板上另留5V电源插头?
回复【396楼】minux 啊啊?
-----------------------------------------------------------------------
貌似是个不错的主意
那我就搞块6层的FPGA板,正好手里有XC3S500E-FT256的库存
既然上了6层板使了BGA,估计也不在乎用用DDR2(不过貌似DDR控制器要占掉不少逻辑)
连接件的电气定义再考虑一下
【395楼】 h2feo4 无机酸
恩,目前的形势下,FPGA要还想接DRAM,那还真是得上BGA封装的了……
另外,我觉得我们还是能不用6层板就不用吧……(使用BGA封装的FPGA除外当然) 否则大家不容易DIY……
其实我觉得我们在软件稍微确定些之后,还应该搞一个两层板的方案方便大家自己制作。
你做6层板其实可以给这个做一个用FG256封装的带有DRAM的FPGA板?这样你的逻辑分析仪也有平台了,呵呵。
回复【391楼】minux 啊啊?
-----------------------------------------------------------------------
总线不穿板省事很多呢
至于差分,我觉得在布线空间充足的情况下,搞20对,16对给IO,4对给CLK/Sync等
不过PQ208的158个IO光是系统信号/总线/IO就差不多用光了,上DRAM有点困难呢
另外,我预计5月初会有一次打样6层板,可以考虑把这个拼进来
【392楼】 zm2002
恩,如果以后有机会做开源的高端JTAG/BDM,那么确实得参照BDI3000这样的思路来做…… 我估计会是ARM9(ucLinux?) + FPGA。
网口啥的都有了……
哈哈,那是纯yy,还是先把这个中端的项目做好吧~
不过AD2009里面的那个JTAG叫啥?我竟然从没听说过…… LPC2888…… 这个带有HS USB+1MB Flash/64KB RAM的60MHz ARM7
让我yy得好惨啊…… 唉,NXP从来不考虑我们这些散户…… 是TFBGA-180封装的…… DIY几乎没希望(主要是制板上的压力)……
拆开BDI3000,里面使用了Codefire芯片和一FPGA带有Flash和SDRAM,支持网卡和串口连接方式,支持不同的固件来调试不同的处理器。自己定义一些配置文件可以支持不同的新处理器。功能相当强大,价格也强大。
AD2009 电路软件自带的一个JTAG 使用的是NXP2888,来实现JTAG的也可以借鉴,网上提供电路原理和代码!
【390楼】 h2feo4 无机酸
总线别穿板了吧…… FPGA之间通信就别用总线了,MCU其实只要和第一块FPGA直接通信即可。
逻辑分析仪/示波器类采集类仪器
FPGA每个都实现成FIFO,类似Cypress的FIFO级联那样,MCU从一端读取数据即可(其实如果FPGA内部存储不够大,换一个
外接RAM的FPGA板估计比用多个FPGA更合适些)
话说,如果项目真是大到真是需要FPGA之间通信,我们这个架构估计就不太适应了…… 但是目前FPGA的容量我觉得应付
这类工作还都是没啥问题的,总线还是别穿板了吧。
另外,PQ208的最多158个单端IO,这个还是有点少啊…… 另外,得注意下同步信号和可能走高速的信号尽可能布几对
差分线对吧,以后扩展估计会好些。
用2.00mm pitch的排针和插座我觉得可行(拔插多次足够牢固就行啦)。
回复【389楼】minux 啊啊?
-----------------------------------------------------------------------
如果 160pin 够用,就用 2mm 贴片排针的好了
考虑要有 40pin 是电源和地
总线 24A + 16D + 16C(含SRAM控制线,DMA控制线),共 56pin
同步信号 RST/CLK/Sync 等,8pin
配置信号 SPI/SSC/GPIO 等,16pin
全局信号 IIC/UART/GPIO 等,8pin
共计128pin
如果总线要穿板,留给IO的就只有32pin
不穿板的话,有88pin
就这样吧:
& && &MCU-------SRAM
& && & |(SPI/SSC/Parallel BUS with SRAM nCS/IIC/GPIO)
& &&&FPGA-------DRAM
& && & |&&
其实FPGA-FPGA还是可以支持直接连接的,所以配置还是得考虑下这个问题。
但是比如说IO-FPGA-IO之类的方式不支持…… 这样IO板也简化了…… (但是总IO数就很受限了?这个还得斟酌下……)
接插件就主要考虑牢固性和拔插的方便性等吧,我没用过这个pitch的,所以你们决定吧。
总体来说,应该是这个样子的
& && &MCU-------SRAM
& && & |(SPI/SSC/Parallel BUS)
& &&&FPGA-------DRAM
& && & |&&
只考虑1块MCU板,1块FPGA板,1块IO板的情况
估计IO板用不着上四层
接插件选用40pin 2mm,还是50pin 1.27mm的?
最近有个机会做4层板,我们要是能在一周内搞定几块板子的布线,就可以上4层板啦。
所以,加油吧~
【385楼】 h2feo4 无机酸
JTAG方面,初期我是这么考虑的,FPGA可以先模仿TI的JTAG Master: sn74lvt8980a,这样把JTAG状态转移和数据并串转换帮MCU处理。
后期的话,就得在实现了各种JTAG协议后提取最需要在硬件上完成的工作。这样来看,FPGA需要有并行数据线以及一些控制线。
我们当然可以完全模拟8980或者略加扩展成16位总线等…… 但是我觉得更好的是我们把控制信号用其他的方式传送,比如SPI接口,
这样的好处是FPGA可以在获取了总线直接从SRAM中取数据的时候MCU和FPGA依旧可以通讯(比如强制abort某个操作)。
IO和逻辑分析仪,FPGA主要就是数据采集吧,分成SPI甚至GPIO控制,然后数据通过DMA直接和SRAM交换。
如果这么分析,我觉得我们可以把SRAM的地址线和数据线都给FPGA,MCU对FPGA的控制使用SPI(高速),GPIO(低速/异步通信);
不建议IIC,那个留给单片机用吧,FPGA实现它不如SPI方便,而且它也没有任何优势。(当然,如果大量数据,比如逻辑分析仪时候,
FPGA里面做个FIFO,然后让MCU的DMA往USB送是最方便的)。
回复【384楼】minux 啊啊?
-----------------------------------------------------------------------
1、总线不穿板这个我赞成,当初提出堆叠方案,只是为了使三部分分开设计,方便替换并提高成功率
总线穿板对接插件设计压力很大
2、支持DMA没什么问题,但关键是FPGA要承担哪些工作
对于IO和逻辑分析仪来说,FPGA并没有太多工作要做,至于JTAG我就不是十分了解了
诸位,抱歉我最近忙毕业的事情没过来参与讨论。
我考虑了一下,似乎接口这样定比较好:
1,总线只给紧邻的一块FPGA板。而由于我们的FPGA板上的接插件上下不连通,FPGA和FPGA之间的接口可以更灵活些,
更重要的一点是,如果总线上挂的设备过多,负载过重,可能不能保证足够的总线速度,甚至需要加Driver,那就
就有点得不偿失了。
2,一定要把MCU板的SRAM的CS接到紧邻的FPGA板上,同时增加DMAREQ和DMAGRAND两根GPIO,这样我们可以让上位机
过来的编程数据直接让FPGA从SRAM总读取,使得MCU在此期间能做其他的事情(如果可能,其实可以在MCU上加CPLD
和两片SRAM做ping-pong模式,抑或是那上面干脆除了给MCU单独用的SRAM之外加一个FIFO算了,然后MCU总线彻底
不暴露或者暴露较少的一部分给FPGA板)。因为我们还是需要考虑清楚给FPGA的总线是要做什么,有什么需求,然后
再定,如果是仅仅传数据的话,FIFO(单向传递用超级廉价的AL422B就足够了,双向传递的话倒是用FPGA内部做FIFO
比较好)足以,是否需要用总线控制FPGA的配置以及其他的信息传递。不过怎么说,似乎让所有FPGA板都挂在总线上
意义不大。
如果增加了这个简化,似乎接口就没有那么多要讨论的事情了,现在来看,赶紧出硬件板子是个首要的事情了。
大家讨论下我说的两点?
不得不佩服
强烈支持,现在都好几种下载线在手,烦死了!!
回复【375楼】zclcom79&&
回复【379楼】zclcom79&&
-----------------------------------------------------------------------
首先,我赞成“【374楼】 minux 啊啊?”所指出的,大家参与讨论,十分欢迎,但是希望能完整了解讨论的历史,而不是想起一出说一出。
回复多,潜在的可能之一是讨论内容比较丰富,看着头晕不足以够成不看的理由。毕竟讨论过的问题,谁都不愿意再出来讨论一变,乃至于解释一遍。浪费大家的时间,仅此。
对于您提出的问题,有几点:
1、单纯从假设的项目命名出发,思路局限在JTAG本身。
2、使用整体综合的观点,而不是分层抽象。
其实无所谓。
简单来说,硬件上,我们考虑的是一个平台。这个平台:
- 要有足够的性能,可接受的成本,相当的灵活度;
- 能满足我们在讨论时,视野所达到的范围内,硬件上的适应性,扩展性;
- 能满足我们在讨论时,我们能想象到的应用、软件上的各种需求,扩展,适用,可实现,易实现。
这是一个平台,很大程度上决定了上边的楼能修多高,走多远。仅此。
至于做什么用,软件支持上能走多远,那是更远的问题,这取决于有多少人愿意贡献到这个项目,平台能够提供什么样的能力。
有一个建议,希望讨论的时候不要使用过多的叹号。
叹号不能 提升 信息、文字本身的 价值和重要性。但是很大程度上影响别人阅读文字本身。
如果键盘上的句点坏掉了,出于节约Shift和1键寿命的考虑,建议换用逗号或者空格表达。谢谢。
关于这个项目,今天又想到一点! 写出来,希望 minux 啊啊? 关注!
看到你说,这个项目有一个功能 就是ARM 的Jtag 调试!那么大家有没有注意到!
ARM 的 开发环境,&&GCC 下 基于GDB的调试环境,目前开源最好的是OpenOCD,这可以根据自己的硬件来修改!但是,Windows下
主流的是 keil ,ADS, RVDS ,这些都是使用RDI接口,来完成协议物理层转化的,RDI接口目前还没有完全开源!
如果这个项目在PC软件上不能搞定RDI驱动,那么就只能当做JTAG烧写器来用!
对于Jtag烧写来说,如果自己写PC端的软件,就太累了,为什么! 因为,你需要把能支持的目标板找来,根据每个平台的资料,
各写一套东西,工作量太大了!
还有就是,并不是USB和MCU的处理速度有多快,烧写速度就能有多快!烧写的速度很大程度上决定于flash的操作时间和 JTAG链装态
转移的时间!
举个例子!
我工作中,ARM调试用的是USB的TRACE32 ,这款仿真机应该算是ARM仿真机的老大!TCK可以到几十MHz,但是烧写ARM11的NAND,速度
也只有200k bytes/s !
所以,个家直言,这个开源项目,如果是作为一个USB的开发板,我觉得很好,功能很全!usb to uart ,spi iic jtag 等等,都很
但是如果专注于JTAG的调试和应用,那么PC上的软件很关键!能不能很好的搞定RDI,直接决定这款硬件能否作为JATG调试器使用!
当硬件具备了高速的前提,能不能真正达到高速,完全在于RDI驱动的实现!
来瞻仰一下
回复【374楼】minux 啊啊?
-----------------------------------------------------------------------
同意你的观点!这样的方案并不会很贵,而且灵活!开源的东西本来就是拿来玩的嘛!太注重成本,太注重开发时间,搞得反而像是种商业的东西!
同意375楼的观点!
回复实在是太多,看的头晕!
LZ 想做什么? JTAG吗 ?那没有必要这么复杂!cy7c68013a+FPGA的架构,速度已经可以很快了! 典型的就是H-Jtag!
如果能找到货源的话, TI公司,有专门的总线转 JTAG 芯片, 连FPGA都省了·
LZ 可能想做一个大而全的东西,可是一个开源,完全是自发DIY的项目,我个人觉得,第一版应该选择简洁的软硬件方案!
否则,这个项目可能会被开发中的软硬件BUG拉进泥潭!
第一版成功之后,可以陆续的加入新的功能!
另外,很多的工作应该放在PC端去做,下位机最好只是简单的数据传输和逻辑转换!都说模拟的bit bang 方式 速度上不去, 国外有一
个有名的开源项目usbprog,是usb+AVR的方案,可以模拟很多东西 ,USB to Spi IIC UART JTAG 等等,他的Jtag 就是Bit bang 方
式!它的速度就很慢,配合OpenOCD ,速度就只有 0.2K bytes / s !
& &&&我采用的C 方案,经过改写PC的JTAG驱动程序, BitBang方式的速度,已经超过我的PCI转并口卡 ,今天我用最新的驱
动,测到速度是 7K bytes / s !
& & 不明白“最最常用的cy7c68013a不能用(0xa0这个VR不能被禁用,这样我们的设备没有办法模拟其他用68013的下载线) -& 必须找替
代品”这句话的意思!
& & 你是想,用你的硬件,去配合别人的PC 软件吗?比如说 H-Jtag 用的是 cy7c68013a+FPGA , 你可以用你的硬件去 配合H-Jtag的
软件,让PC的软件 觉得 连上来的就是 H-Jtag的仿真器吗?
& &如果你这句话是这个意思,我个人觉得这个工作量太大了,你需要去分析正版设备的usb数据包,明白每一个包的用途,然后用你的
硬件去完成这个功能!工作量大不说,而且涉及到法律层面,版权的问题!
& &&&还有,cy7c68013a的 GPIF 功能是提高数据吞吐量的关键,如果所有的数据 通过 8051的内核去转, 速度肯定上不来!
胡言乱语,罪过罪过,见谅见谅……
【373楼】 bone
问题是,简单的架构能达到项目目标么?我觉得,做开源的东西,如果没有性能上的目标,那么始终是小打小闹,没办法成气候。
我再总结下我们目前的架构是如何得出的:
LPT口的wiggler慢 -& 加PLD器件 -& LPT口不常见了 -& 改USB口 -& 全速USB的可用带宽最大1MB/s很受限制(况且我们要模拟的下载线
很多已经是高速USB了) -& 需要高速USB接口
-& 最最常用的cy7c68013a不能用(0xa0这个VR不能被禁用,这样我们的设备没有办法模拟其他用68013的下载线) -& 必须找替代品
-& 根据性价比,我们选择了SAM3U,考虑到灵活性,PLD选用FPGA;同时考虑到成本低和灵活性,我们选择了多个板子层叠的方式。
我强烈建议,每个回复说我们硬件复杂的网友先仔细理解我上面说的一系列我们已经作出的决定。
回复【372楼】minux 啊啊?
【371楼】 bone&&
你说的用PLD来shift数据的方法也早有人做过了,都有商业产品(/jtag_accelerator.shtml)了。
但是这有两个问题:
1,现在很多机器没有并口。如果你说USB-&LPT,那么又回到USB的延时上去了,这个我们解释过多次了,同时网上也有说明,
为什么简单实现的USB-&LPT比LPT本身还慢。(这也是我们要用高速USB的一个原因,当然另外一个原因是带宽的需求)
2,这么做速度还是有一个很大的瓶颈,就是没有具有一定处理能力的下位机:
JTAG下载不是只要往目标机里面送数据就可以,很多时候需要不断轮询,查看目标机的状态,决定下一步的操作。
(由于JTAG协议以前没考虑到这点,没有异步通讯线,所以这就非常麻烦了)。
如果让PC来操作所有这些,会慢很多的(比如每次轮询需要移位16位......
-----------------------------------------------------------------------
usb转并口只是我最早最早的想法,后来知道usb发送数据的原理后,就再也没有考虑过这样做了。
之前我弄ejtag的时候,最早只是简单的将数据通过usb送出去,速度很慢,后来发现很多时候数据可以优化,一次性组成更大的数据包,再发出去,速度就有提升了。
当然,用SAM3U是很好,我只是觉得,起步就搞得那么复杂,有必要么?
胡言乱语,罪过罪过,见谅见谅……
【371楼】 bone
你说的用PLD来shift数据的方法也早有人做过了,都有商业产品(/jtag_accelerator.shtml)了。
但是这有两个问题:
1,现在很多机器没有并口。如果你说USB-&LPT,那么又回到USB的延时上去了,这个我们解释过多次了,同时网上也有说明,
为什么简单实现的USB-&LPT比LPT本身还慢。(这也是我们要用高速USB的一个原因,当然另外一个原因是带宽的需求)
2,这么做速度还是有一个很大的瓶颈,就是没有具有一定处理能力的下位机:
JTAG下载不是只要往目标机里面送数据就可以,很多时候需要不断轮询,查看目标机的状态,决定下一步的操作。
(由于JTAG协议以前没考虑到这点,没有异步通讯线,所以这就非常麻烦了)。
如果让PC来操作所有这些,会慢很多的(比如每次轮询需要移位16位,如果有下位机,不管多少次轮训,上位机都不需要占用
通讯口带宽送这些重复的数据)。所以才需要下位机来处理这个问题。
当然,如果你要用FPGA来做这个有处理能力的下位机,那跟我们的做法也没啥区别了(我最开始就曾经计划用FPGA+USB接口来做)。
我们用SAM3U也是不得已,这个讨论我们前面说过不知多少次了(核心原因:我们需要高速USB口,但cy7c68013a不合适,其他的
接口比如isp1581之类不比SAM3U更便宜)。
另外,用了目前的架构,我们可以可扩展性很强,没说这个只能做JTAG下载线,还有逻辑分析仪呢,而且估计这个应用会最早
回复【370楼】minux 啊啊?
【367楼】 bone&&
低成本的已经很多了,我们希望做*开源*的高性能仿真器/下载线。
如果没有开源的高性能作品,那么当你真正需要的时候,还是会去购买商业产品。
不然为啥现在那么多买JL*ink Clone的? 按照你的说法,大家用wiggler不就行了么?
用wigger的性能已经很难提升了,况且现在有并口的机器也越来越少了,却没有机器不支持USB,不过USB-&LPT转换+wiggler
性能上根本不现实(比LPT+wiggler)。
-----------------------------------------------------------------------
我说的是类似哦!
wigger的性能差,是因为它使用了bit的方式模拟的时序,如果使用cpld来shift数据出去的话,速度能至少提高8倍以上!
所以我认为上位机负责数据打包,下位机负责jtag状态机跳转的方式是比较好的一种开源方案。这样的架构,即是类似(注意:类似)HJTAG+wigger的架构!只要上位机合理的打包,就可以加快下载及调试的速度!
【367楼】 bone
低成本的已经很多了,我们希望做*开源*的高性能仿真器/下载线。
如果没有开源的高性能作品,那么当你真正需要的时候,还是会去购买商业产品。
不然为啥现在那么多买JL*ink Clone的? 按照你的说法,大家用wiggler不就行了么?
用wigger的性能已经很难提升了,况且现在有并口的机器也越来越少了,却没有机器不支持USB,不过USB-&LPT转换+wiggler
性能上根本不现实(比LPT+wiggler)。
回复【365楼】minux&&啊啊?
-----------------------------------------------------------------------
我没完整看他的解决方案。从介绍上,有点像创新的干细胞那种架构。好像AMD提出过类似的Stream Processing的概念。
从更宏观一些的层面看,就是芯片级的流水线,现在的普通处理器芯片可以视为没有流水的;当然,说是网格/分布计算也对。主要看实际上采用的芯片互联关系。和FPGA的芯片级互联,进行大规模ASIC测试/验证异曲同工。如果看复杂的现代处理器结构,也是有很多反馈,前馈通路的,实际上内部流水线也不是单向连接的。
如果他的编译工具能支持在给定连接关系的阵列下自动分配计算任务,那整个解决方案就很强了;否则,除了互联_总线他强以外,和普通高性能MCU级联比,没有更大优势。当然,目前FPGA的开发环境,貌似更没这个功能。
从数据处理上看,可以说类似于通信上的SDR实现,移动软硬件的处理边界;从而在灵活性,资源消耗等不同方面获得自己强调的那些。估计学界对SDR的讨论更多一些,应该有很多分析论文可以借鉴。
和MultiJTAG提出的结构类比,之所以提出FPGA板卡的级联,就是考虑单向,纯串行结构,芯片级的PipeLine。其实都是类似的想法。只不过受限于引脚数量等,互联强度很低而已了。
供参考/讨论。
硬件搞的太复杂了,成本就高了,反而不容易做成开源项目吧。
用类似于H-JTAG+WIGGER的方式做,我觉得好的多啊!
【364楼】 dr2001
hehe 不过有种声音说是未来是软件的世界,参考这个公司的产品:
把除了Phy外的东西全给弄成软件做(不过别着急评论,最好是先看看人家的系统架构~)。
其实也挺好。有机会我倒是希望试试这个芯片(价格倒是不贵,不过中国估计买不到)。
回复【363楼】minux&&啊啊?
-----------------------------------------------------------------------
迟早的事情。嵌入硬核+常用外设+FPGA是趋势。
Xilinx已经和ARM签合作协议了,好像,但是不知道License了什么Core。
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:
您需要登录后才可以回帖
阿莫电子论坛, 原"中国电子开发网"

我要回帖

更多关于 带usb接口的插座 评测 的文章

 

随机推荐