作者:用芯創(chuàng)造未來 這篇文章主要是還原一個“事故”現(xiàn)場,具體原因有待進(jìn)一步分析。 遇難芯片:1片Xilinx FPGA XC5VSX95T、1片PROM XCF32P、2片PROM XCF08P、一塊盜版Xilinx Platform Cable USB II。 事故起因:如下圖,左邊板子的硬件是我做的,右邊的硬件不是(但以前的整個系統(tǒng)是我調(diào)的)。我的工作就是將這兩款板子的各個功能接口調(diào)試完成并將實(shí)驗(yàn)平臺搭起來,剩下的工作就是動動嘴皮子就行了。之前,我一直在調(diào)試右邊板子上的超高速AD,有一個通道有些誤碼(這個以后再談)。之后,我畫的板子回來了,便隨心所欲的挨個調(diào)試。為了方便描述,左邊板稱為A板,右邊板稱為B板。 A板 B板 但是,手上只有一個我以前自己買的盜版下載線(官方下載線退還了),如下圖。 盜版下載線 官方下載線 事故之前還有個細(xì)節(jié),A板剛送來時有隔離磁珠沒有焊上,我挨個焊上測量電壓均正常,唯獨(dú)1.2V的磁珠左端正常,而右端只有800mV。當(dāng)時覺得磁珠礙事,便換了0Ω電阻,但測量還是一樣的情況。觀察之后發(fā)現(xiàn)800mV出現(xiàn)的原因是我把示波器的地線接在了電源地上,而0Ω右端都是與板子右邊那片數(shù)字區(qū)域相連(電源地和數(shù)字、模擬地之間也通過0Ω連接,單點(diǎn)接地設(shè)計(jì))。因此,將電源地?fù)Q成數(shù)字地,顯示的就是1.2V了。這之后A、B兩塊板子單獨(dú)找FPGA都是正常的。 事故過程:正當(dāng)我認(rèn)為都沒問題,覺得其他電源都是磁珠,就1.2V是0Ω電阻,不滿意便換回了磁珠。這里列出磁珠選用型號:PB2012-800/3A(100M阻抗80Ω、最大過流3A),ZRX圖如下。 準(zhǔn)備再次上電調(diào)試時,不幸的事情發(fā)生了(我只是單獨(dú)上電,絕沒有同時上點(diǎn)的可能)打開連接A板子的電源,顯示的電流變大了將近200mA(輸入24V)左右。這意味著肯定有東西短路了,計(jì)算機(jī)上FPGA也找不到了。馬上關(guān)掉電源,上手去摸一下各個IC的溫度,發(fā)現(xiàn)A板的PROM XCF08P已經(jīng)發(fā)燙,但FPGA沒有溫度,其他也無異常,情況還不算遭。仔細(xì)看了下當(dāng)時的電路,下載線連接如下圖 雖然只有一個盜版下載線,但是剛好調(diào)試臺下面有兩**立電源,而我做的板子有14Pin接口,另外一塊則剛好是6Pin接口。于是乎就想當(dāng)然的將這兩塊板子同時掛在了下載線上。 現(xiàn)在記不清在未換1.2V磁珠上電測試之前,正常狀況下這樣是否連接過,隱約有這個印象是連過的。換了磁珠再上電就出了狀況,這是我的第一反應(yīng)。因?yàn)閾?dān)心未上電的B板也出問題,我又開了下B板的電源,同樣也是增加了200mA左右(B板12V輸入,具體電流增加多少沒太留意,A板正常應(yīng)該是110mA,B板插上AD正常應(yīng)該是500mA左右)。這下情況不妙了,B板的PROM XCF08P一樣很燙,背面的PROM XCF32P也有點(diǎn)溫度但不燙,F(xiàn)PGA一樣無明顯的溫度變化,其他IC,包括電源都無異常。再看看下載線,還是綠燈,電源正常,但是壞的可能性已經(jīng)很大了,我以前也用壞過盜版下載線,不過沒有燒過配置芯片。 事故排查:心急之下,第一反應(yīng)便是還原之前的正常狀態(tài),因?yàn)閼岩墒谴胖榈膯栴},便把A板1.2V的電源磁珠換成了0Ω電阻。換了A板的PROM XCF08P,電源電流正常,但是這次單獨(dú)連接下載線就找不到FPGA了,臨時找到別的地方一個盜版下載線連上正常。心里暗自慶幸,希望B板也只是PROM燒了問題不算大。于是乎也換了B板的PROM XCF08P,因?yàn)樗臏囟忍珶崃恕3废翧D板再次上電,電流是降了下來,幾乎回到了正常值的范圍300mA左右(AD板加上500mA),但是依然找不到FPGA,同時我也用示波器徹底檢查了下各個電壓值,均無異常。那么,現(xiàn)在要做的就是檢查B板的菊花鏈,主要保證FPGA未壞。取下08P和32P,飛線接出FPGA TDO到JTAG TDO,依然找不到FPGA,檢查了N多遍(因?yàn)檫@個板子的下載線是用串口頭引出的,起初總是懷疑是不是連線有問題),還是不找不到。為了確定FPGA的JTAG是否被打壞,除了看官方資料,調(diào)整了配置模式M[2:0]=101為JTAG模式外,還拿來了一個正常的小開發(fā)板挨個對比TCK、TDI、TMS、TDO。這下算是確認(rèn)了。如下圖所示。 正確的TCK 正確的TDI 正確的TMS 正確的TDO 而B板JTAG的TCK、TDI、TMS都有信號,并與正確信號類似只是信號電平有些出入,唯獨(dú)TDO在示波器上觸發(fā)不到任何邊沿信號。FPGA的TDO無輸出?這我想國內(nèi)任何人都無能為力,只有更換芯片了。第二天換好的了FPGA、兩塊PROM的B板送過來,再次上電只找到了FPGA,ID還是錯誤的。這下是虛驚了一身冷汗,其實(shí)這個問題我碰到過不止一次,就是虛焊而已,以前是TQFP的FPGA虛焊,這次就是PROM虛焊。FPGA虛焊很可能就想以前那樣找不到任何東西,PROM虛焊則可能找到些異常的東東,補(bǔ)焊一遍就解決了。這并不一定是焊工不行,在搬運(yùn)或者移動過程中,一些顛簸或者摩擦振動、殘?jiān)加锌赡芤鹛摵福娇諟y試就有專門的振動試驗(yàn),聽別人說有的板子一上測試臺連有些航空導(dǎo)線都被振的七零八亂的,這又和安裝、接插件、設(shè)計(jì)結(jié)構(gòu)以及工藝有關(guān)了。 事故分析:這次事故主要原因還是在于我的操作不規(guī)范,如果規(guī)規(guī)矩矩借個下載線分開調(diào)試,可能就不會有這么多麻煩事。但是,我還是有興趣在分析下這個內(nèi)藏玄機(jī)的事件。我是這樣看的,我的目的只是換了磁珠,上A板電驗(yàn)證之前的正常狀況而已,B板根本未上電,只是A、B兩板由盜版下載線的轉(zhuǎn)接頭有連接關(guān)系。A板上電壞了XCF08P,Spartan6 XC6SLX25正常,而B板上不光是壞了XCF08P、XCF32P、最值錢的Xilinx FPGA XC5VSX95T的TDO(或者JTAG)卻壞了(這也可能是我第二次上電打壞的,但B板電源依然完好)。這便是我覺得悲劇的地方,95T躺著都中*。我覺得有些差異,V5是真脆弱還是有別的原因。我畫的FPGA板子在JTAG的供電問題上我都是3.3V和2.5V二選一,一般都是使用2.5V,而B板只能接3.3V,這是我調(diào)試忽略地方。A、B板菊花鏈(JTAG鏈路)如下圖所示。 A板菊花鏈?zhǔn)疽鈭D B板菊花鏈?zhǔn)疽鈭D 轉(zhuǎn)接板連接圖 雖然A、B板的JTAG電源不同,但只是上了A板電源的電,B板相當(dāng)于負(fù)載。 有一種解釋是B板3.3V負(fù)載較多,而A板2.5V只有PROM和FPGA的VCCAUX。由于同根下載線VREF和GND同時連接A、B板,負(fù)載變小。導(dǎo)致電源輸出電流增加,同時A板菊花鏈TDO與B板菊花鏈的TDO共同連接在JTAG的TDO上,當(dāng)A板響應(yīng)時,TDO輸出信號,灌進(jìn)B板的TDO(V5)引腳,置其損壞。但兩板的電源沒有絲毫損壞,而且A板的FPGA還完好無損。也就是說,主要原因出在A板菊花鏈的最后一級,但又是什么原因造成最后一集的PROM被打壞的呢?電源過來的脈沖?不得而知。 另一個解釋就是盜版下載線內(nèi)部因?yàn)槟撤N原因把脈沖漏進(jìn)了TDO管腳,致使兩條菊花鏈的最后一級的TDO被損壞,A板FPGA幸免的原因是前面有PROM用身軀擋住了脈沖,而B板則是FPGA第一個遭殃,后面的PROM靠近FPGA的也損壞(至于A、B板后級菊花鏈的一好一壞的結(jié)果可能與FPGA和PROM的JTAG結(jié)構(gòu)有關(guān),這就不是很清楚了)。對于盜版下載線的TDO是如何有輸出脈沖的,也許浪涌是罪魁禍?zhǔn)住6俜降南螺d線是有這方面的保護(hù)芯片,盜版沒有,至少我這款確定是沒有。 至于我當(dāng)時的第一反應(yīng)磁珠,我自己也不敢肯定是否與它有關(guān)。雖然磁珠隔離只會吸收高頻脈沖,是降壓而非升壓,即便是過流也不是一個磁珠造成的,更何況我換的還是1.2V FPGA核心電源的磁珠,這產(chǎn)生的浪涌也能漏進(jìn)2.5V的話,F(xiàn)PGA還完好無損如何解釋?。這就與TI開關(guān)電源模塊的輸出網(wǎng)絡(luò)扯不上關(guān)系了。 事故小結(jié):現(xiàn)在我深刻意識到調(diào)試貴重東西時候一定要按步就班,不異想天開、想當(dāng)然的做。每次上電都要高度警覺,對電源,對開板子之外的一切外設(shè)接口都要留心。除自我約束之外,我想應(yīng)該是時候好好研究一下JTAG下載線,之前也早有打算自己弄一個,但沒有時間。再說了,USB傳輸比PCIe要小型化的多,到哪里都能用。剛好我導(dǎo)師的雷達(dá)上用到68013做為USB傳輸芯片,不過是與Altera的FPGA連的,不懂USB有點(diǎn)說不過去。這次如果真是盜版沒有浪涌保護(hù)的原因,那就真的是一次大教訓(xùn)了。FPGA并不是金剛不壞之身,他的致命弱點(diǎn)或許就是TDO管腳。對于配置接口的浪涌保護(hù),下載沒有,那設(shè)計(jì)的時候不防加上。 (PS:題外話,寫這篇文章主要為我自己留下深刻印象,有啰嗦的地方見諒,電路不便放多,忘理解,如有不同觀點(diǎn)的動動手交流交流哈) |
寫的忒多,一時沒看懂,電流漲了這么多,估計(jì)不是簡單的浪涌問題。首先是不同電源bank的引腳連接要小心,當(dāng)你的板子沒上電的時候,或許IC里的電源保護(hù)不如上電以后完善。 盜版的下載器往往省掉或者用便宜的電參數(shù)不同的型號代替那個昂貴而對低電壓接口極為重要的電平移位芯片,這給1.8V、2.5V器件編程帶來很大隱患。我剛才特意拆了我的那個正版下載器,比你這個盜版的復(fù)雜太多了,上面還有片CPLD。 都燒掉一片V5了,用這么貴的芯片,弄個正版的下載器去好了,與V5比也不太貴,少燒一片就回來了。 |
經(jīng)驗(yàn),值得注意 |