同事設計一塊電路板
不知道為什麼一通電
主要的IC開始發燙起來
我看了一看IC的Datasheet
被文件中的接腳方式給攪迷糊了
一下說不用的腳要空接
一下說要接VCC
又一下子說要Pull-Up到VCC
這些接腳是微處理器的介面Data Bus的High Word d[31:16]
一般的設計是不用的接腳是會設定為Input
如果是Data Bus 通常iI/O PAD 也是會有internal pull-up 電阻
這加公司是很有名通訊IC 設計公司 以前絕對不會有這類問題
我猜測可能委託中國或印度外包設計
因為他們設計了一個I/O pin (mode) 來控制微處理器的介面Data Bus的寬度
我們的設計使用16-bit 也就是D[31:16]是不用的
同事依照其中一個指示 把D[31:16]直接接到VCC
沒想到一通電 IC 就狂吃VCC的電流 這也是IC發燙的主因
後來他做實驗把那個I/O pin (mode)改為32-bit的設定 問題就解決了
我想是上電的瞬間 D[31:16] 沒有被設定為Input
而且變成沒有Tri-stated 的Output
VCC就狂送電流給這些I/O pins
加上Pull-up只是限制電流而已 根本不算正解
應該是I/O PAD 設計上出問題
因為是BGA的包裝
另一位同事發揮他的耐心
用微小鑽頭把那些接到VCC的 via 一個個給鑽破
短路現象就解決了
真是佩服他耐心
PS1: bidirectional I/O PAD 在上電穩定前應該都是Input ,Output需 disabled or tri-stated. 尤其是Data bus 不能夠有干擾的問題出現 現代的設計都是以RESET low to high 的edge來 sample boot-strap 設定 當內部logic 正式啟動後才會有 direction的變化 這次見識到大的IC設計公司犯了明顯的錯誤
PS2: 距離我自己鑽VIA解決短路問題至少也有六年了 說真的 不容易