搜索
bottom↓
楼主: multijtager

multijtager(基于FPGA的多功能JTAG调试/下载接口)开源项目倡议与讨论

[复制链接]

出0入0汤圆

发表于 2010-4-20 02:01:12 | 显示全部楼层
哦 对了,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自己的接口是什么)。

先去睡觉,有什么问题继续讨论,起来后再补充~

出0入0汤圆

发表于 2010-4-20 08:39:13 | 显示全部楼层
XPCU直接反向USB协议就行。一般的下载功能,看起来协议很简单。也就用到了几个控制传输的命令而已。

FPGA只要完成一个16Bit的数据分别推送就行。

出0入0汤圆

发表于 2010-4-20 11:58:04 | 显示全部楼层
回复【401楼】minux 啊啊?
-----------------------------------------------------------------------

考虑一下,如果以后改用SAM3U以外的MCU,按SAM3U制定的接插件定义可能造成不小的麻烦
最好还是看上去规整一点,顺便照顾SAM3U

出0入0汤圆

发表于 2010-4-20 12:08:20 | 显示全部楼层
FT256封装的FPGA如果上4片SDRAM就没剩几个IO了,除非用FG320,不过我觉得暂时可以不用考虑太远
先做两片的吧

另一种方法是在FPGA板上使用微型内存插槽,使用DRAM时插入“内存条”,不使用时插入“短路板“(将原来分配给RAM的IO转向给IO板)
这样既保证了灵活性(可以灵活选择不同类型、容量、宽度、速度的RAM),又保证了信号完整性(插入“内存条”时,RAM信号线与IO板分开,保证信号完整性)可以在“内存条”上放置小型 SPI EEPROM 来标示其作用

可以把微DIMM插槽的一面全分配RAM信号,另一面是通向IO板的折返线,这样“短路板”只需一排过孔即可解决,而“内存条”仅使用正面信号线即可

出0入0汤圆

发表于 2010-4-21 00:05:15 | 显示全部楼层
【403楼】 dr2001

恩,我下次直接去看看上位机程序,看看能不能弄一份完整的Vendor Requests出来。然后用bushound+同样功能的svf对比分析协议。

【404&450楼】 h2feo4 无机酸

换主芯片的问题确实存在…… 那就按你说的做吧。我觉得2层板如果不特别迁就SAM3U的管脚,想完成布线挺困难…… 或者说我们退一步,
只要地址线/数据线/控制线在一起,相对顺序不重要?话说其实如果我们换MCU,即使这要管脚的分区不变(是电源的还是电源,是GPIO的
依旧是GPIO),所需要也就是改下FPGA的管脚映射重新编译一下吧?似乎也没多大麻烦的(因为换主MCU已经带来很多别的麻烦了)……

设置内存槽的提议我觉得可以,不知道其他人有什么看法?如果没有异议,那内存条也上6层板一起拼板吧,哦,还有短路条。
另外,这个思路似乎在别的地方也有启发作用…… 是不是别的地方也可以用这种设计?当然,我们得注意一点,灵活性也是有成本的……
千万别让人说成过度灵活…… 哈哈。
或者说板子上先留两片SDRAM(用外部存储的应用挺多的,但是不一定都要那么大的存储器容量/带宽),如果还不够想扩充就上“内存条”
同时挤占IO的管脚们。这个如何?

出0入0汤圆

发表于 2010-4-21 10:31:52 | 显示全部楼层
回复【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估计很难找

出0入0汤圆

发表于 2010-4-21 10:56:48 | 显示全部楼层
淘宝上面都能找到啊,

出0入0汤圆

发表于 2010-4-21 11:12:14 | 显示全部楼层
回复【408楼】kk2614755
淘宝上面都能找到啊,
-----------------------------------------------------------------------

长宽度不大于50mm,脚数不小于120的SO-DIMM
我没找到,请您指教

出0入0汤圆

发表于 2010-4-21 12:59:00 | 显示全部楼层
回复【406楼】minux  啊啊?
-----------------------------------------------------------------------

Xilinx我已经简单反过HEX了,基本知道主要下载操作,用到的Requrest和大致含义。
这个需要平台进行验证。

出0入0汤圆

发表于 2010-4-21 17:12:45 | 显示全部楼层
【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信息并传回来,跟逻辑分析仪类似,但是上位机我们得
找个软件解析一下数据。这个最近就可以开始做了。

出0入0汤圆

发表于 2010-4-21 17:17:54 | 显示全部楼层
“内存条”用edge connector或者(伸出去)用板间插座行不?那个有0.5mm pitch的,60*2的也好找。厚度还可以,3mm左右吧。

我用手机拍了一个我现在手头有的,应该是25*2的:

(原文件名:conn.PNG)

出0入0汤圆

发表于 2010-4-21 19:05:21 | 显示全部楼层
13A + 32D + 12C = 57
SPI的四根线可以正面两根,背面两根
如果用minipci的话,电源和地可以正面三个,背面三个(虽然还是有点少)

SO-DIMM 200大概也只有不到65mm宽,200pin就绰绰有余了(要是尺寸能缩小三分之一就好了,切割一下?)

板对板连接器也是个不错的选择,但子板的固定不像内存插槽那么方便

出0入0汤圆

发表于 2010-4-21 20:00:28 | 显示全部楼层
回复【413楼】h2feo4  无机酸
-----------------------------------------------------------------------

0.5mm板板连接器的寿命比较堪忧,如果要用,最好用宽一些的。

出0入0汤圆

发表于 2010-4-21 20:06:05 | 显示全部楼层
回复【414楼】dr2001
-----------------------------------------------------------------------

如果按之前商定的母板尺寸100mm*70mm,两边各10mm要留给接插件,所以极限条件就是60*2,0.8mm脚距
考虑宽松一些的话,就是70*2,0.65mm脚距

出0入0汤圆

发表于 2010-4-21 20:34:50 | 显示全部楼层
回复【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等。
综合压力应该比较小,依然具有必要的灵活性,供参考。

出0入0汤圆

发表于 2010-4-21 21:01:09 | 显示全部楼层
刚刚发现这个帖子的点击量好猛啊

(原文件名:点击量.PNG)

出0入0汤圆

发表于 2010-4-21 22:37:43 | 显示全部楼层
http://search.taobao.com/search?shopf=newsearch&q=SO-DIMM+%B2%E5%B2%DB

这些都行不??

就是大了点..

出0入0汤圆

发表于 2010-4-21 22:46:04 | 显示全部楼层
我就觉得,如果我们用这种有工业标准的槽自己定义接口,得防止不明真相用户插入真正的内存条……
0.5mm pitch的板间接插件确实不容易焊接牢固…… 不太适合我们这个经常拔插的场合。

不过我建议,如果我们不用现成的内存条,就不要用现成的内存条插座…… 防止误插……
如果能用笔记本的SDRAM内存条,倒是可行…… 但是那个似乎也不好买了……

出0入0汤圆

发表于 2010-4-22 00:16:54 | 显示全部楼层
回复【419楼】minux 啊啊?
-----------------------------------------------------------------------

貌似有很多ARM9开发板都在用内存的接插件

一般的板对板连接器,可靠性和易用性上都不如内存插槽

排针的密度又远远不够

用FPC连接器,“内存条”用软板做,不太现实

用现成的内存座,增加一些手段防止误插倒是可以,不过也要考虑误插可能是双向的
即真正的内存条可能插入我们的插座,我们的“内存条”“短路条”也可能被插入真正的计算机

使用真正的内存条,咱们貌似没这么多IO,而且这样做就完全失去了[将闲置的RAM信号线转给IO]的作用了,还不如把RAM直接焊在板子上方便

另外一个,内存插槽和mini-pci都太宽了,如果不增加母板尺寸是排不下的

出0入0汤圆

发表于 2010-4-22 09:51:13 | 显示全部楼层
to 【417楼】 h2feo4 无机酸

像偶这种打酱油的人很多啊...

出0入0汤圆

发表于 2010-4-22 12:32:01 | 显示全部楼层
板厚 可以和PCB工厂那边商量一下

出0入0汤圆

发表于 2010-4-22 13:23:52 | 显示全部楼层
【420楼】 h2feo4 无机酸
说的是。似乎确实不好选这个连接器啊…… 要不先放放,先把需要4层板的PCB确定下来我尽快送去加工,至少基本的板子先
确定,然后我们慢慢讨论6层板的FPGA子板怎么做如何?

【422楼】 kk2614755
我建议是尽可能板厚无关,因为最后做板子一般都是拼板的,很可能没有办法给这一块板设定板厚。

出0入20汤圆

发表于 2010-4-22 13:29:58 | 显示全部楼层
建议使用我们常用的MINI-PCIE,标准的尺寸是50*30.我们设计的ARM核心板,使用的是55*30,可以与标准的MINI-PCIE卡区分开,
又能够使用常见的插座.前提是,你需要的IO比较少,MINI-PCIE有双面,共52个信号,除去电源与地的话,提供40条IO是没有
问题的.

出0入0汤圆

发表于 2010-4-22 18:59:11 | 显示全部楼层
回复【423楼】minux 啊啊?
-----------------------------------------------------------------------

暂时不管连接器, 把样品做出来先

出0入0汤圆

发表于 2010-4-23 09:47:10 | 显示全部楼层
回复【423楼】minux 啊啊?
-----------------------------------------------------------------------

那先确定关键问题
2mm 间距 2*40 贴片排针,在靠近板边缘的中间位置?是否要安排定位键?
板子尺寸100mm*70mm?
MCU板提供3.3V的电源?

出0入0汤圆

发表于 2010-4-23 15:32:29 | 显示全部楼层
放在板子中间靠左边一点, 或者中间靠右边一点

出0入0汤圆

发表于 2010-4-24 09:43:01 | 显示全部楼层

出0入0汤圆

发表于 2010-4-24 20:09:27 | 显示全部楼层
【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 贴片排针我觉得没问题。
排针的位置主要是要留下足够的面积布线,还有机械强度的问题和焊接难易程度得考虑下。

出0入0汤圆

发表于 2010-4-24 22:33:51 | 显示全部楼层
又发现了一个有内部照片的仿真器,架构类似。我没看出来正面的USB接口芯片是什么…… ft
Renesas 16位的H8S系列。
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3951271&bbs_page_no=1&bbs_id=2070

出0入0汤圆

发表于 2010-4-25 10:06:40 | 显示全部楼层
回复【430楼】minux 啊啊?
-----------------------------------------------------------------------

我猜是瑞萨自己的单片机,可能是 H8S/2215
看看这里 http://renesas-mcu.com/read-htm-tid-1127.html

出0入0汤圆

发表于 2010-4-25 10:16:09 | 显示全部楼层
回复【429楼】minux 啊啊?
-----------------------------------------------------------------------

那软件上位机谁来搞??  确保和编译软件连接起来有点难度哦

出0入0汤圆

发表于 2010-4-25 17:23:47 | 显示全部楼层
【431楼】 h2feo4 无机酸
恩,那没啥意思了……不过电平转换电路竟然是LV125...

【432楼】 kk2614755
做GDB的接口,没有几个开发工具不支持这个。
对于ARM,可以先给OpenOCD做个驱动这个只要下位机实现了JTAG访问就可以做。

出0入614汤圆

发表于 2010-4-25 18:37:59 | 显示全部楼层
123万点击,这个帖子太猛了吧?

出0入0汤圆

发表于 2010-4-25 22:19:02 | 显示全部楼层
那现在模板大概出来了吗?

出0入0汤圆

发表于 2010-4-25 22:21:29 | 显示全部楼层
先把第一版确定下来吧, 再后慢慢改, 硬件先确定下来..

出0入0汤圆

发表于 2010-4-26 16:12:12 | 显示全部楼层
做了一个尺寸规划,看看行不行

粉色线是板轮廓
绿色线是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)

出0入0汤圆

发表于 2010-4-26 20:18:49 | 显示全部楼层
第一版能用2面解决不??

出0入0汤圆

发表于 2010-4-26 20:29:15 | 显示全部楼层
我这破地方买不到2mm贴片排针/排座
最好还是能验证一下封装尺寸?
有些排座底部有定位销,这个也要考虑进去

出0入0汤圆

发表于 2010-4-26 23:39:57 | 显示全部楼层
晕, 不是吧, 定位的不要搞错啊, 尺寸不对 安都安不上去啊??  

我这边有买内存条那种插座,

出0入0汤圆

发表于 2010-4-27 23:02:43 | 显示全部楼层
【439楼】 h2feo4 无机酸

参考下这里?http://www.hr-connector.com.tw/tw/p/Product-2007610232020.html
有数据手册。

我买过2.54mm的,那个商家货很齐,估计2.00mm的没问题。


软件方面,我突然发现如果我们稍加修改OpenOCD,自己做一个编译器把TCL程序编译成我们的虚拟机代码,
直接送到下位机(MCU或FPGA)执行,应该是个加速的好办法。
找时间去OpenOCD的邮件列表里讨论下这个问题。

出0入0汤圆

发表于 2010-4-28 13:44:50 | 显示全部楼层
回复【441楼】minux 啊啊?
-----------------------------------------------------------------------

molex 和 amp 的数据手册我都看过了,但是有个问题,就是排针和排座不能使用同一种焊盘尺寸(原因稍后我会画图说明)
所以咱们需要确定下,板子正面和背面,哪个放排针,哪个放排座(其实两面都放排座也可以)。
以我的想法,正面排针,背面排座,如何

另外,不同厂家生产的排座,有的有定位销,有的没有定位销,位置和尺寸可能还都不一样,要考虑兼容性
还有,对于没有定位销的接插件,焊接时如何保证对准?这么大的排针,歪一点就插不进去了

出0入0汤圆

发表于 2010-4-28 18:10:49 | 显示全部楼层
【442楼】 h2feo4 无机酸

恩,看来得确定一家的产品,然后买到带有定位销的插座再继续弄?

正反面分别是排针和插座我觉得没问题,底下放插座正好免得直接放桌子上意外短路了……

出0入0汤圆

发表于 2010-4-28 18:37:29 | 显示全部楼层
回复【443楼】minux 啊啊?
-----------------------------------------------------------------------

可以先画板,给接插件留出足够的空间(从板边缘算起的话留10mm吧),其他尺寸按【437楼】的草图如何?
看看还有没有什么其它的问题,近几天多找几个接插件厂家的资料看看
焊盘最好能让相邻两脚间跑两条0.15mm线(即相邻焊盘间距至少0.75mm),这样才能保证在双面板上可以比较舒服的布通
在此条件下焊盘尽量大,以保证强度

出0入0汤圆

发表于 2010-4-28 20:41:16 | 显示全部楼层
看了一圈各个厂商的数据手册,除了molex的定位销位置在第一排之外(尺寸0.8mm)
其他厂商的定位销都在第一排和第二排之间,但尺寸从1mm到1.4mm不等

定位销的高度貌似都是1.45mm,貌似问题来了,如果板子正面和背面都使用带定位销的接插件,两面的定位销之间会冲突
因为1.45mm * 2 = 2.9mm,而板厚只有1.6mm,除非把定位销切短,否则是装不进去的

另一种方法,正面使用一般厂商的带销排针,背面使用molex的排座,这样定位销倒是错开了,不过采购上貌似很麻烦

从可行性上考虑,最好先确定货源,买几个样品回来测绘

附,几个厂商的数据手册
点击此处下载 ourdev_549973.rar(文件大小:1.54M) (原文件名:conn.rar)

出0入0汤圆

发表于 2010-4-29 10:04:33 | 显示全部楼层
看看数据手册先..

出0入0汤圆

发表于 2010-4-29 22:32:28 | 显示全部楼层
【445楼】 h2feo4 无机酸

ft... 这问题还真是挺麻烦了…… 那我们必须得先采购才能定下来了…… 可是我们好采购的别人不一定好采购啊……
要不问问armok看看有没有推荐货源?(如果我们要单独开论坛讨论,似乎一定是要能和邮购部配合才行,我记得某个
帖子他是这么说的……)

要么就是我们按绝大多数情况的位置做,尺寸比最大的稍微小一点,比如1.1mm? 买到不合适的话,就稍微打磨下?
Molex的定位销比较特别,可以单独为它做一个,这样两面都可以用定位销了,实在买不到就稍微削短一点装吧。

出0入0汤圆

发表于 2010-4-30 00:07:46 | 显示全部楼层
回复【447楼】minux 啊啊?
-----------------------------------------------------------------------

我的建议
定位销可以把两种版本的定位孔都留下,例如在第一排之外放0.85mm定位孔,第一排和第二排之间放1.25mm定位孔
先采购少量样品,数量够制作几只样机即可,确保它能和我们设计的定位孔正确配合
至于定位销的高度,不行就削短一点吧
明天我做一个接插件的 Altium Designer 封装库初稿

其它问题等第二版再说吧,到时肯定还会有不少问题一起修改呢

出0入0汤圆

发表于 2010-4-30 08:27:40 | 显示全部楼层
最怕这里买到了, 别的地方买不到,..   先问问看阿莫的意见

出0入0汤圆

发表于 2010-4-30 10:30:40 | 显示全部楼层
目前暂时不用考虑别人是否买得到,只要确定我们自己能买到就行了
即使以后发行,也是我们自己采购零件

出0入0汤圆

发表于 2010-4-30 12:48:15 | 显示全部楼层
把库做出来先看看吧,,

定位销  到时候再想办法, 磨一下可以安装好, 就是麻烦点没关系了

出0入0汤圆

发表于 2010-4-30 20:31:20 | 显示全部楼层
multijtager layout guide
20100430 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保护器件、隔离、退耦


(原文件名:20100430A.PNG)


(原文件名:20100430B.PNG)


(原文件名:20100430C.PNG)


(原文件名:20100430D.PNG)


(原文件名:20100430E.PNG)


(原文件名:20100430F.PNG)


(原文件名:20100430G.PNG)


(原文件名:20100430H.PNG)


(原文件名:20100430I.PNG)


(原文件名:20100430J.PNG)


(原文件名:20100430K.PNG)


(原文件名:20100430L.PNG)

看看还缺什么,补充
不合理的,修改

另外,请minux考虑下文件是贴在这里,还是邮件传递?
是不是应该把license具体化一点?

出0入0汤圆

发表于 2010-4-30 20:47:24 | 显示全部楼层
小修改:

:: "网格尺寸1mm,所有排针/排座对准1mm网格"
确认一下是Pin 1;还是对称器件的几何中心?

:: "铺铜间距 不小于 0.25mm"
这个最好和内电层合并,为0.30mm。

另外,确认板卡参考原点位置。

出0入0汤圆

发表于 2010-4-30 21:18:26 | 显示全部楼层
回复【453楼】dr2001
-----------------------------------------------------------------------

我所说的“排针对准网格“指的是所有的“针”对准网格,原意是:可以用一块2.0mm洞洞板DIY一块子板

同意铺铜间距改为0.3mm

参考原点位置,我用的是板子的几何中心

出0入0汤圆

发表于 2010-4-30 21:42:30 | 显示全部楼层
回复【454楼】h2feo4  无机酸
-----------------------------------------------------------------------

那原来的描述容易引起误解,呵呵。

别的我没啥意见了。

出0入0汤圆

发表于 2010-4-30 22:10:49 | 显示全部楼层
暂时没看出什么错误, 是个好的开始

出0入0汤圆

发表于 2010-4-30 22:47:51 | 显示全部楼层
哈哈,几个小时没看就有了这么激动人心的进展了啊。
目前我还没发现有什么问题。

鉴于目前的情况,我建议先邮件传递设计文件,同时贴详细的电路图和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你们检查电路图?

出0入0汤圆

发表于 2010-4-30 23:08:26 | 显示全部楼层
诸位,3.3V DC-DC有没有好的建议?另,是否使用SAM3U的内置LDO?我建议这版先使用,但是留下测量点,我们还不知道核心电压的电流。
要不要microSD卡接口?应该得要吧?

出0入0汤圆

发表于 2010-5-1 10:34:57 | 显示全部楼层
顶,...   SD这个要啊, 电源方面不太懂, 电流方面应该不多, LDO应该可以

出0入0汤圆

发表于 2010-5-1 18:40:14 | 显示全部楼层
原理图有初稿了么
SAM3U的引脚真够乱的
A2-A7 每个都有三个,乱……

出0入0汤圆

发表于 2010-5-1 19:10:17 | 显示全部楼层
器件用什么封装规则 ? IPC High Density ?
分立元件用什么封装 ? 0603 ?
SAM3U的电源方案 ?

出0入0汤圆

发表于 2010-5-1 19:45:35 | 显示全部楼层
【460&461楼】 h2feo4 无机酸

我正在画电路图。
封装规则用中密度或者高密度都行我觉得,似乎板子不是很密,不过既然你布线就你决定吧~
用0402的阻容没啥问题吧?

SAM3U我们不需要ADC部分吧?那我就不加各种滤波了。
NAND用MT29F2G16如何?SRAM使用2片8位的61LV256还是用一片16位的?抑或是用容量更大的PSRAM?
TF卡要不要?

电源方案我觉得3.3V应该用DC-DC,1.8V的核心电源用自带的LDO,是否要预留电流测量电阻?

更重要的一个问题是,是不是得考虑外接5V供电?

出0入0汤圆

发表于 2010-5-1 19:58:10 | 显示全部楼层
回复【462楼】minux 啊啊?
-----------------------------------------------------------------------

用0402封装我觉得没问题,就算0201我也不在乎,但对其他朋友们来说是不是难度有点大?

ADC就不用了吧,最多留几个测试点给它就行了

RAM用61LV51216吧(兼容到51216,但实际可以焊3216、6416等同封装RAM)
Flash MT29F2G16这个型号不太熟,我先查查看

电源方案没有意见,5V进线串肖特基二极管、自恢复保险,其他电压各串0欧电阻,方便有必要时断开,或者检测电流

TF当然要,如果空间足够,可以考虑放全尺寸的 SD slot

出0入0汤圆

发表于 2010-5-1 20:24:48 | 显示全部楼层
【463楼】 h2feo4 无机酸

恩,要不这样,你布线的时候根据情况选择尽可能大的封装(优先0603,实在不行就0402).
NAND Flash反正都是兼容的,我们只需要确定是要16位的还是8位的就行了(只要是2KB的页就好)。

恩 电源就这个方案。USB接口进来也得接肖特基二极管,防止电脑关机的时候倒灌电流回去。
USB口放静电我加了一片SN65220,没有的话可以不上(也可以申请样片),不占地方。

出0入0汤圆

发表于 2010-5-1 20:29:56 | 显示全部楼层
另外一个问题,SRAM是不是允许地址线/数据线乱序排列?
FLASH可能困难一点,要仔细看看手册

出0入0汤圆

发表于 2010-5-1 20:35:41 | 显示全部楼层
【465楼】 h2feo4 无机酸

SRAM可以,NAND的数据线千万别随意排,因为有预定的命令格式。
16位的NAND数据线排布很不规则,你看下吧,不行我们就上8位的吧,反正这里不会是速度瓶颈。

http://hynix.com/datasheet/eng/nand/details/large_11_HY27UF162G2A.jsp?menu1=01&menu2=05&menu3=02&menuNo=1&m=5&s=2

出0入0汤圆

发表于 2010-5-1 20:42:50 | 显示全部楼层
若空间许可,还是0603比较好;0402很多人焊接起来会不那么方便。
考虑人工焊接的话,贴片引脚,焊接侧最好多出0.4-0.5mm,否则容易虚。大致是IPC中密度的级别。

一般使用的静态SRAM,可以地址乱序;数据8Bit的组内可以乱序;如果8Bit组交换的话,UB/LB选择同时交换,否则就不能支持Byte Write,SRAM使用受限。
如果RAM提供了Page加速,写保护等额外功能,比如FRAM这类的,要根据手册确认。一般是低地址不能乱,保证Page的Burst。

NAND Flash,数据线最好不要乱序。乱序将导致所有控制指令值要重新计算;Block操作时,地址需要特殊处理,尤其是Erase操作。后果主要在于让软件工作变得复杂,不易理解。

出0入0汤圆

发表于 2010-5-1 20:49:51 | 显示全部楼层
【467楼】 dr2001

NAND如果我们用SAM3U的NAND控制器的话就根本不能乱序了…… 咱不能用同步SRAM,只要注意下nUB/nLB就行了。
外部RAM有点小感觉,你觉得上PSRAM如何?

出0入0汤圆

发表于 2010-5-1 20:52:34 | 显示全部楼层
算了,别上PSRAM了,没找到合适的封装,而且速度上的劣势太明显了。

出0入0汤圆

发表于 2010-5-1 20:53:02 | 显示全部楼层
回复【468楼】minux 啊啊?
-----------------------------------------------------------------------

是否用SAM3U的NAND控制器,先考虑下IO复用能不能把他们都排下

估算一下需要多少RAM? 1MB or more?

出0入0汤圆

发表于 2010-5-1 21:00:11 | 显示全部楼层
回复【468楼】minux  啊啊?
-----------------------------------------------------------------------
NAND用8Bit的,不要乱序,我认为比较好。16Bit貌似也不是太好买片子。本来指望的就是SD卡,NAND其实是次要的。
异步SRAM主要是注意数据组内乱序,UB/LB和组的对应关系即可,别的没啥。
PSRAM貌似封装没有合适的,建议不要用。而且,小70ns的速度,我觉得吸引力有限。

回复【470楼】h2feo4  无机酸
-----------------------------------------------------------------------
256-512KiB足够了吧……主要考虑调试比较方便,一定量的内部Buffer。数据主要指望FPGA挂的SRAM/SDRAM。

出0入0汤圆

发表于 2010-5-1 21:01:52 | 显示全部楼层
回复【471楼】dr2001
-----------------------------------------------------------------------

那RAM就首选 61LV25616 吧,价格也算合理,速度足够快

出0入0汤圆

发表于 2010-5-1 21:12:13 | 显示全部楼层
回复【472楼】h2feo4  无机酸
-----------------------------------------------------------------------
支持SRAM首选61LV25616或者12816。
但是建议,引脚按照51216进行设计和连接。也就是Pin 28连接A19。好处:支持51216;由于SAM3U的A19可以设置成GPIO,因而可以支持FRAM的25616和12816,型号FM22L16/FM21L16。

有利于扩展用途,付出的PCB成本只是一根线。

出0入0汤圆

发表于 2010-5-1 21:15:59 | 显示全部楼层
回复【473楼】dr2001
-----------------------------------------------------------------------

我原本就是计划按51216设计的(我手里有10片剩余的51216)

出0入0汤圆

发表于 2010-5-1 21:37:05 | 显示全部楼层
ok

SRAM用一片61LV51216来设计,地址线随意换,数据线8位组内换。
NAND就用8位的吧。

我估计要是做ARM调试,还是得有NAND才行…… 程序空间不够。

出0入0汤圆

发表于 2010-5-1 21:40:16 | 显示全部楼层
回复【475楼】minux 啊啊?
-----------------------------------------------------------------------

同意,地址线调动我还要考虑一下,【467楼】dr2001说的兼容FRAM问题

出0入0汤圆

发表于 2010-5-1 21:51:25 | 显示全部楼层
回复【473楼】dr2001
-----------------------------------------------------------------------

请dr2001核实一下FRAM允许哪些地址线交换,不允许哪些地址线交换
我看了看数据手册,貌似很难搞啊,尤其是 Write Protect Sectors 那里,好像高位也不能随便换
我算下来,只有A2到A13是可以乱序的,不知道对不对

出0入0汤圆

发表于 2010-5-1 21:54:20 | 显示全部楼层
【477楼】 h2feo4 无机酸

我刚看了FRAM的pinout,地址线跟61LV512完全不同,数据线和控制线全兼容,所以为了兼容,我直接按FRAM画原理图吧。

出0入0汤圆

发表于 2010-5-1 21:58:26 | 显示全部楼层
回复【478楼】minux 啊啊?
-----------------------------------------------------------------------

其实6416、12816、25616的地址线分布都相差很远
按FRAM画原理图没问题,有些细节我最后再改都来得及

另,FRAM是否能完全兼容还不好说,Write Protect Sectors 这个功能可能用不了

出0入0汤圆

发表于 2010-5-1 23:46:15 | 显示全部楼层
调试用的UART要不要引出来并加RS232电平转换电路?

出0入0汤圆

发表于 2010-5-2 09:12:44 | 显示全部楼层
要, 引出排针..

出0入0汤圆

发表于 2010-5-2 09:15:08 | 显示全部楼层
FRAM,基本上这样:
- 低位地址最好不要乱。16Bit的话,就是SAM3U的A2,A1必须按顺序,我们可以扩展到A3和以下必须按顺序。LSB不按顺序的后果是没有Page Read功能,降低吞吐率。
- nZZ连接到最高位地址。这个应该是51216的地址线,用于最高位或者上拉。
- 我觉得写保护意义不重大,不支持就不支持好了。只不过需要注意的是乱序完毕后,需要核对一下操作序列,别把奇异的操作序列变成简单的操作序列就行了。

FRAM设计的时候就是和SRAM Drop In的,基本问题不大。


回复【480楼】minux  啊啊?
-----------------------------------------------------------------------
- SWO会连接到JTAG调试接口。在SWCK/SWDT之外,提供UART类型的Printf调试输出。具体可参见STM32的SWO调试。(我没工具测量SWO输出是不是完全兼容UART,JLink显示的是。。。)
- UART(DBGU)不使用232转换器,保留3.3/TXD/RXD/GND的接口就足够了。
- 由于SAM3U ES的SWO有问题,可以SWO/DBGU Tx用0 Ohm跳线选择谁连接到JTAG接口。足够支持Printf类型的调试了。
供参考。

出0入0汤圆

发表于 2010-5-2 12:29:05 | 显示全部楼层
回复【480楼】minux 啊啊?
-----------------------------------------------------------------------
先把大致的原理图出来吧,细节功能可以边画边加


回复【482楼】dr2001
-----------------------------------------------------------------------
RAM这边应该基本没问题了

出0入0汤圆

发表于 2010-5-2 13:19:39 | 显示全部楼层
又仔细看了下接插件的数据
2.0mm pitch 双排排座的塑高,最小的2.0mm,最高的6.4mm,常见的4.0mm-4.6mm
2.0mm pitch 双排排针的塑高,最小的1.5mm,最高的4.0mm,常见的2.0mm-3.0mm

以我的想法,两块板之间的间距最好要有8mm
这样板背面可以使用2mm左右,可以装下贴片电阻/电容等,TSOP/QFP等,也足够装下一般直插元件的引脚
板正面使用5.5mm左右,可以装下D-PAK,DIP,以及CR1220电池座,mini-USB插座等
中间还可以留出0.5mm安全间隙

这样对排针/排座的采购就提出了较高的要求,即排针和排座的塑高之和要在8mm之内并且尽量接近8mm
如果超过8mm就尽量凑9mm,要考虑铜柱一般只会有整数毫米高度的现货库存

出0入0汤圆

发表于 2010-5-2 17:58:42 | 显示全部楼层
电路图基本完成,就差电源部分了,怎么定?LDO还是DC-DC?有什么芯片推荐没?

【482楼】 dr2001
ES版SWO不支持异步Trace唉……
我接了URXD/UTXD和一组UART到MAX3232,到时候根据情况抉择吧(主要是考虑到还有USB->RS232的支持)。
根据您的建议,JTAG插座上的TDO脚使用跳线选择UTXD或者真正的TDO。

出0入0汤圆

发表于 2010-5-2 18:40:10 | 显示全部楼层
LDO吧,功耗不大的话,稳定可靠。

ES不支持只是Bug么……等正式的出来就OK了。。。

出0入0汤圆

发表于 2010-5-2 18:53:18 | 显示全部楼层
【486楼】 dr2001

主要是考虑到3.3V别的板子也用,我们不是尽可能希望只用USB不用外部电源么。
要不使用双电源方案,想用LDO的就焊接一个1117-3.3上去,DC-DC的话,我给留一个LM2852-3.3(?)的空间。
后者2A的最大电流输出,其他板子山用3.3V也没不用自己整了。

主要是不好选择这个buck开关电源IC的型号。

我目前的电路图把可以必须的IO都分配了,剩下了17个GPIO(包括4个支持AD输出的)可以任意分配,
留了3个LED(包括1个电源LED,可以酌情取舍)。

要不电源部分先空着,我先发邮件大家提意见吧。

出0入0汤圆

发表于 2010-5-2 19:12:45 | 显示全部楼层
今天花1个半小时看完,记号,几位研究比较深,但我看响应人不会多

出0入0汤圆

发表于 2010-5-2 19:17:07 | 显示全部楼层
回复【487楼】minux 啊啊?
-----------------------------------------------------------------------

DC-DC 要注意一下电感的高度,不要超过5.5mm

电路图先发过来吧,我先做一下主体布局

出0入0汤圆

发表于 2010-5-2 19:24:40 | 显示全部楼层
【489楼】 h2feo4

贴片电感的高度确实是个问题啊…… 我们得用2A电流的电感,1uH,倒是有10mm*10mm*4.8mm的封装,应该是可行的。

出0入0汤圆

发表于 2010-5-2 19:27:35 | 显示全部楼层
MCU板初稿pdf板,欢迎大家提出意见~

点击此处下载 ourdev_551130.pdf(文件大小:294K) (原文件名:multijtager-MCU Rev 0.1 Preview.pdf)

出0入0汤圆

发表于 2010-5-2 19:52:05 | 显示全部楼层
回复【491楼】minux 啊啊?
-----------------------------------------------------------------------

邮件已收到(不过怎么自动划到垃圾邮件那边去了?),我仔细看看

出0入0汤圆

发表于 2010-5-2 20:30:07 | 显示全部楼层
- TST & JTAGSEL,手册说可以Float,内部15kOhm下拉。其实没有外拉的必要性。
  如外引,建议加1kOhm电阻下拉。(板子上有地方的话,最好也加上。)
  如不引TST和JTAG SEL,Erase可以用一个按钮开关到VCC解决。
- JTAG PullUp必须要。
- 由于SAM3U默认上电所有GPIO的Pull Up开启,上拉强度在100kOhm。
  RAM的nZZ/nCS上拉可省略;NAND CS上拉可省略;SD卡的都可以省略。(这些看空间吧)

暂未有别的建议。是否取消看空间吧。

其实,是FPGA板卡的引脚分配。。。

出0入0汤圆

发表于 2010-5-2 20:38:15 | 显示全部楼层
【493楼】 dr2001

是的,我忘记说了,上拉电阻和退耦电容我都按最大可能画的,所以其实很大一部分都可以去掉。
TST和JTAGSEL其实直接接地都是可以的。

出0入0汤圆

发表于 2010-5-2 20:42:34 | 显示全部楼层
问题1:
nCS0-nCS3的分配
我的建议
nCS0: SRAM/FRAM
nCS1: NAND Flash
nCS2: FPGA Board
nCS3: Reserved
考虑MCU板背面放nCS2,正面放nCS3
以后MCU板上面可能会搭载LCD之类的

问题2:
RAM的地址线分配
为了兼容3216、6416、12816和25616,部分地址线需要调整
p23 - A18
p22 - A17
p1  - A16
其他基本不用动

问题3:
电源进线的NMOS管的G极与VCCIN间建议串个电阻,另外可以把SHDN脚也拉过来控制这个MOS管

问题4:
USB数据线上建议装共模线圈

问题5:
32.768K晶体及后备电池要不要加上?

问题6:
是否考虑把HSMCI的高四位也用上?MMC slot?

出0入0汤圆

发表于 2010-5-2 20:50:02 | 显示全部楼层
板子上的布线空间感觉还是比较充足
可以考虑把功能放全一点

出0入0汤圆

发表于 2010-5-2 21:08:17 | 显示全部楼层
USB的EMI和ESD设计可以参考这里
http://www.ed-china.com/ART_8800009845_400004_500010_TS_8a1b7111.HTM

装个这个:
点击此处下载 ourdev_551134.pdf(文件大小:225K) (原文件名:0805usb.pdf)

出0入0汤圆

发表于 2010-5-2 21:15:57 | 显示全部楼层
【495楼】 h2feo4 无机酸

问题1:
nCS0: SRAM/FRAM
nCS1: NAND Flash
nCS2: FPGA Board
nCS3: Reserved
考虑MCU板背面放nCS2,正面放nCS3
以后MCU板上面可能会搭载LCD之类的
====
我同意。

问题2:
RAM的地址线分配
为了兼容3216、6416、12816和25616,部分地址线需要调整
p23 - A18
p22 - A17
p1  - A16
其他基本不用动
===
没问题。

问题3:
电源进线的NMOS管的G极与VCCIN间建议串个电阻,另外可以把SHDN脚也拉过来控制这个MOS管
====
这里我是觉得我们需要在接着USB的时候用低功耗模式么?支持休眠?如果接了外接电源,那么这里自动关断;
如果没接外接电源,如果把这里关了,估计板子上的耗电全部由后备电池来承担可能不太行(考虑还有FPGA和IO板时候)。
另外,用SHDN脚控制的话,还得加一个NMOS提升下控制电压,不然3.3V-5V=-1.7V可能关断得不够完全。

问题4:
USB数据线上建议装共模线圈
====
呵呵,我原来是考虑用好点的带磁环的USB线,如果地方够,上这个当然没问题。那样SN65220似乎可以去掉了。

问题5:
32.768K晶体及后备电池要不要加上?
====
如果地方够,我觉得是可以加上的,但是电源部分要做适当修改了。

问题6:
是否考虑把HSMCI的高四位也用上?MMC slot?
====
恩 这个也是可以的,只要我们留下的GPIO够用。


电源有没有什么想法?
另外,剩下的AD要不要留几个用来测试电压/电流?

出0入0汤圆

发表于 2010-5-2 21:25:56 | 显示全部楼层
回复【498楼】minux 啊啊?
-----------------------------------------------------------------------

后背电池貌似是仅供RTC使用的,应该不用修改其它电源部分

至于AD检测电压和电流,还要考虑下,麻烦略大
可检测的有5V/3.3V/1.8V的电压和电流,共6个量
貌似10bit-AD和12bit-AD都拿不出6个空闲通道来(不过加起来倒是够了)

出0入0汤圆

发表于 2010-5-2 21:30:52 | 显示全部楼层
电路图咱们最好分成几页画吧,现在有点乱
分成MCU/Power/Memory/Peripheral之类的?

出0入0汤圆

发表于 2010-5-2 22:25:40 | 显示全部楼层
【499楼】 h2feo4 无机酸

我发现有一个地方丢了点东西:USB接口处VBUS应该用47k+68k电阻分压,10pF电容滤波,接到一个GPIO上,检测USB插入。

恩,后备电源通过二极管给VDDBU,然后VCC_3V3也通过二极管给VDDBU就行了。

如果要检测电流的话,就检测给其他板的5V的电流?自己的电流知道了似乎意义不大。
对了,要不要提供MCU关闭FPGA等的电源的方式?还是FPGA有一个全局IO通知其他板子进入低功耗状态(USB总线供电的时候还是
考虑下降低功耗的问题)?
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子论坛 ( 公安交互式论坛备案:44190002001997 粤ICP备09047143号 )

GMT+8, 2022-8-9 15:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表