同事設計一塊電路板


不知道為什麼一通電


主要的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解決短路問題至少也有六年了 說真的 不容易

arrow
arrow
    全站熱搜

    AIBOU KAKASHI 發表在 痞客邦 留言(0) 人氣()