几年前和Lattice的技术支持交流时他们给出的原理说明,有做广告之嫌,不过道理是说得很清楚的。现在的工程师调试FPGA很多人不注意这一点,须不知,目前主流厂商的线缆均不支持热插拔,高达几十V的浪涌很可能让你的FPGA或者线缆挂掉。下面是原文:
问题是:能否允许加电情况下插拔Jtag电缆接口,对单板编程?
回复如下:
任何一家PLD器件,包括Lattice和其对手器件,甚至包括其它使用Jtag加载的器件(如CPU等),都不支持加电情况下热插拔Jtag编程电缆,这样做很容易对器件造成损坏,原因如下:
1. 在插拔Jtag电缆接口时,不论单排或双排电缆接口,一般都没有特殊的保护装置可以保证每次插上电缆的时候是GND先接入,拔出时是VCC先离开。因此,经常由于操纵者的手法的随机性,造成插入时VCC先接到JTAG插座,容易造成较强的过冲,这种过冲往往超出CMOS电路的抗过冲能力。Lattice的CPLD是基于CMOS工艺的,其数据手册声明,过冲不能超过6V或不能超过20ns,否则容易造成电路功能不正常,过强的过冲也能造成电路损坏。
2. 目前Huawei使用的Jtag电缆,不论那家PLD器件,都不是最复杂结构的原厂原装电缆,该原装电缆成本很高,要100USD左右,不能满足Huawei免费提供电缆的需求。目前的电缆一般没有很复杂的保护电路,而PC机提供的电源是5V的,免费JTAG电缆内部通过分压网络分压到3.3V,因此如果PC机的地和单板的地一致性不强,则很容易在插拔时造成电位不平衡,产生过冲。
因此,必须要避免的问题是一下三种:
1. 带电插拔Jtag电缆。
2. 编程计算机不接地。
3. 最恶劣的情况,也是客户最容易出现的情况是,在局方或现场使用笔记本电缆,热插拔,更新程序。由于笔记本电脑不用插电源,因此做不到和设备的GND共地,加上热插拔JTAG电缆,很容易造成非常高电压的过冲。我曾经在上述情况下测量过高达12~20V的过冲电压。
至于为什么多次热插拔Jtag电缆,但是没有损坏芯片的现象原因如下,
Lattice CPLD具有较强的热插拔特性,普通I/O支持热插拔。而带电插拔Jtag电缆造成的过冲与电脑的接地情况,插拔的手法,持续时间等有关,造成的过冲的强度和时间也不一致,所以很多情况下并没有将芯片的JTAG口烧毁,但是这不能说明CPLD支持热插拔Jtag端口,请务必避免前面列举的3种情况。正确的做法是,计算机与单板共地(起码计算机的串口接地),然后关电情况下插拔Jtag电缆。
ash_riple_768180695 2010-3-9 08:47