PS3 死亡紅燈維修
我從舊家拿了一台 PS3 過來,插上電後按下電源開關,它亮了一下綠燈,然後 “嗶嗶嗶” 三聲後,就跳回紅燈,不肯開機。
我知道我遇到了傳說中的 “死亡紅燈”,或是叫 “死亡黃燈”,因爲有那麼一瞬間,綠燈跟紅燈同時亮的時候,看起來像是黃燈,所以國外叫它 “YLOD” – Yellow Light of Death。
發生 YLOD 的原因不止一個,但多半跟早期 RSX 晶片的封裝或焊接不良有關,另一個大宗的原因是 RSX 晶片的電源電路損壞有關。
PS3 的硬體其實經過非常多次改版,從最早的 2006 年黑色的 60GB model 到後來薄型的 500GB model,總共有十多個不同的硬體型號在市面上流通。早期 90nm 的 RSX 晶片是日本某家半導體的晶圓廠生產的,後來在 65nm 製程轉移時移到了 TSMC,當時我還跟這個 project 沾到了一點邊。
RSX 的致命問題體
RSX 晶片是一個 multi-die 的封裝,在 BGA 的 interposer 上有 GPU 晶片本人跟四顆 GDDR 記憶體。90nm 的版本在封裝製程上犯了一些錯,像是 interposer 上的材料熱膨脹係數不一致,導致 RSX 在高功率下運作時,整個 BGA 封裝會承受不正常的內部熱應力,導致錫球連接損壞,然後就開不了機。這是早期 PS3 死亡紅燈的最大宗原因,而廣大鄉民也找到了解決的方法:幫它重新 reflow 一次。
現在去 YouTube 上找,還可以找到一大堆教你怎麼把 PS3 的主機板拆出來,然後用烤箱幾度烤幾分鐘,就可以把死亡紅燈救回來的影片,其實就是在 reflow RSX。
RSX 這個漏子捅得實在不小,在製程轉移時當然也會注意到,因此 65nm 之後的 RSX 就比較少遇到這個 BGA 壞掉的問題。
But!還有別的問題!
電源問題
另一個在 PS3 上常見的死亡紅燈原因,就是 RSX 晶片或 Cell 晶片的電源濾波電路出了問題。Sony 在 PS3 兩顆高耗能主晶片的電源電路上,使用了 NEC/TOKIN 的 “Proadlizer” 三端子去耦合電容器。日本人很愛用這種零件,我在 Sony 工作時也用過不少 Murata 的三端子電容。三端子電容確實在高頻下因爲寄生電感造成的阻抗上升效應會比較低,但因爲它內部的結構比較複雜,長期的可靠度相對來講比較低,而且零件之間的互換性很低,所以出了日本之外我很少看到 EE 工程師會用這種零件。
而 PS3 的 RSX 和 Cell 兩顆主晶片,每顆用了 4 顆 NEC/TOKIN 的 OE128 三端子電容。OE128 的等效容量是 1200uF,四顆並聯起來就是 4800uF,這是很不得了的濾波容量。
但因爲這個零件的長期可靠度不好, 時間久了之後它的濾波能力會漸漸下降。而 PS3 在開機時會去檢查 RSX 和 Cell 的 Vcore 供電 ripple 大小,如果 ripple 太大就會報錯不讓你開機,然後進入死亡紅燈。
我查了一下,我手上的 PS3 是 CECHG07 這一代的,它的 RSX 已經換用 65nm 的 TSMC 製程,理論上來說 BGA 造成的問題機率比較小,電源搞鬼的機率比較大。由於修復 BGA 需要用熱風槍去吹 BGA 或是用鐵板燒去烤板子,我覺得搞砸的風險比較大,所以在動手前我想先確定一下造成死亡紅燈的問題到底是 BGA 壞掉還是電源。
SYSCON 的線索
PS3 有一顆 Sony 自己設計的系統控制晶片 SYSCON,用來管理電源和 Cell/RSX 的初始化,有點像 Mac 上的 SMC。SYSCON 也經歷過兩個版本,早期的 SYSCON (code name 叫 Mullion) 是 Sony 自己開的一顆用 ARM7 核心的 MCU,所以晶片上有 Sony 半導體的晶片型號開頭 CXR,封裝是 BGA。後期的 SYSCON (code name 叫 Sherwood) 改用了 NEC 的 78K0R 系列 MCU,這是 NEC 自己開發的處理器架構,封裝也改爲 TQFP,應該是一個 cost-down 的結果。
要知道造成死亡紅燈的原因,可以從 SYSCON 的 UART debug port 上將錯誤碼讀出來判斷,經過許多先賢先烈的努力,現在已經有很多好用的小工具可以做這件事。
我查了文件,找到我這張主機板的 debug port 後,把線焊出來,然後接上 UART-USB dongle,在 PC 上執行 SYSCON 的小工具。
然後我就得到了開機的 error log:
這裡面有大量的 A0801002,前面的 A080 代表的是開機的階段,後四碼才是真正的 error code。我再查了一下,1002 代表的是 RSX power failure。後面有個 A0902120 代表 HDMI I/O error,那是因爲我測試的時候沒有插 HDMI 線,它抓不到顯示裝置。
到此,應該八九不離十,就是 NEC/TOKIN 那四顆三端子電容的問題了。
根據文件,如果是 1002 錯誤,應該是 C6229/C6230/C6231/C6232 這四顆三端子電容的問題。但它們到底是哪四顆呢?因爲 Cell 和 RSX 被散熱膏蓋住了,我不是很確定誰是誰。
我用這四個電容器的 reference desinator 加上電路板的版號 SEM-001 去搜尋,居然讓我找到這張電路板的維修文件,裡面有零件位置圖。
這張圖來自一個俄羅斯網站,一看就知道是 Sony 內部流出來的文件。熟悉的 CR-5000 字形與 Sony 獨樹一格的 layout 型式,又讓我想起在 Sony 工作的那些年。
確定零件位置之後就要修它了。
動手修吧
因爲這四顆三端子電容是並聯的,我看 YouTube 上大部分的人都會解焊其中一顆下來,然後在它原來的位置上焊四顆 470uF 的鉭質電容上去。但因爲這顆零件有四個位在下方的超大 pad,而且都跟面積很大的銅箔相連,我看每個拆它的人都用熱風槍掙扎許久才把它拆下來。而且因爲它原來應該是個 1200uF 的電容,所以換上去的鉭電加起來也要差不多這個數量級甚至超過它。
我心裡就想,如果原來的三端子電容並沒有完全掛掉,只是濾波能力降低,那我不要拆任何一顆,直接在上面並聯鉭電是不是就可以了呢?而且也許不需要並聯那麼多顆。因爲我手上應該也沒有 470uF 那麼大的鉭電。
我去翻了零件櫃,我手上最大的鉭電是 100uF 的。
我決定把外掛的鉭電裝在板子的背面。我刮開背面的三端子電容電源測的銅箔,先把鉭電的正極焊上去,讓另一端落在 ground plane 上。接著再刮開 ground plane 上的銅箔,把負極焊上去。
在刮這種多層的電路板時要很小心,因爲表層雖然是 ground plane,但下面的其它層可能有走線。如果下手太重,有可能傷到內層的線路。你不知道裡面可能有什麼訊號,萬一是什麼重要的訊號被刮壞,整張板子可能就 GG 了。
我焊了兩顆 107 的鉭電上去。我其實不知道這兩顆鉭電的耐壓是多少,但因爲這裡是 Vcore,原來那幾顆 OE128 的耐壓也只有 2.5V,我想我的鉭電再怎麼樣耐壓也不會比這個低。
這是板子的正面,右邊比較大顆的是 RSX,左邊則是 Cell/BE。Cell/BE 是 Sony Computer Entertainmetn (Sony 負責 PS 系列的子公司)、Toshiba、IBM 共同基於 PowerPC 技術開發出來的處理器,它裡面有一個基於 PowerPC 的主核心,叫做 PPE (Power Processing Element) 以及 8 個叫做 SPE (Synergistic Processing Elements) 的向量處理器。在 2007 那個年代,這個處理器的算力可以拿去做飛彈和核子模擬,因此有一段時間 PS3 受到美國出口管制法的限制,禁止出口到某些國家。
我焊了兩顆電容上去後,先把機器假組一下,讓它可以開機,然後按下電源開關。
嗶聲開機之後,綠燈長亮,沒有跳回紅燈。我知道 RSX 的電源檢查通過了,可以開機了。於是我再花了點時間把機器拼回去,然後拿去樓下接上 Bravia。
我看到了好久不見的 XMB 界面。
然後我發現我忘了拿手把過來,現在除了開機之外我什麼事都不能做…
近期留言