作者:merlin07 看了這個題目,我估計許多人都會有在手邊劃拉找板兒磚臭雞蛋的沖動。這年頭兒連撿破爛兒的口袋里興許都揣個手機,難不成還會有誰不會開電源? 別誤會,我當然不是問你會不會按開關扳電鈕。我是問:作為一個設計師,你了解一個系統的加電過程,和如何保證正確加電嗎? 這樣問,我估計還會有人撇嘴。“這有什么,不就是保證那些參數:輸出電壓,負載電流,波紋系數,轉換效率,開關噪聲 。。。”。 沒錯,這些都是設計過程中必須考慮到問題,也都很重要 。。。但是,還有嗎? 按照上面說的那些參數考察一個電源設計,好象是到一個餐館點菜吃飯。你按自己的口味點菜,后面廚房按單下鍋,服務員端菜上來,你就可以抄起筷子品酸甜苦辣了。可是,如果有人告訴你,剛才服務員上菜時,端著盤子在走廊摔了個跟頭,你會有什么反應?還想往下品嗎? 隨著電子設備復雜程度的提高,對電源的要求也越來越高。前面提到都是電源系統在穩定狀態下的指標,當然很重要。但是在很多情況下,電源的動態特性也很重要,甚至可以說更重要。保證不了這個要求,有時就要有麻煩。 不信?我有現成的例子。當然,還是拿我自己說事兒。 C公司,路由器設計。背景還是那些,就不廢話了。與前面的故事不同的是,這是我到C公司后的第一個設計,也是到目前為止最大的一個設計。板子的大小幾乎相當一塊中型的切菜板。10A以上電流容量的電源有好幾路。電路圖多達一百多頁。PCB板層數達到32層,其厚度已經接近一些過孔安裝器件的管腳長度所能接受的極限。 這樣規模的一個設計,放在剛剛離開的N公司,起碼要兩到三個人干。可在這兒,就我一個。公司文化及作風的區別由此可見。在這里,工程師被給予了一切可能的物質條件,同時你也必須釋放出最大限度的能量。 初次面對這種規模的設計,不免有些手忙腳亂。好在這個設計的很多部分沿用了其他同類產品的相同部分,并不是第一次使用。電源部分更是如此,幾乎已經是標準化的設計了。基本上屬于照抄照搬。所以這就能讓我把注意力都集中在了這個設計中與新的通信協議有關的芯片和電路方面。 不久,一家電源器件生產廠家的銷售代理來訪,聽說了這個項目,立刻向我建議:他們有一款新的DC/DC電源模塊,幾何尺寸,管腳分布及電路特征都與我現在用的兼容。不但在價格上有一定的優勢,一些性能還有增強。而我現在使用的模塊,又只有一個供貨商,正好可以因此加上做備份。所有這些讓我覺得好像沒有理由拒絕。而最關鍵的一點是:我天性不安分,痛恨跟在別人后面亦步亦趨。在設計中總希望有些與眾不同的地方。原來的設計照抄照搬本是無奈之舉,現在有可能而且有理由作出改變,為什么不呢? 于是我決定使用這家的電源,將其列入了同一器件編號,并在樣機裝配時就用上了。 樣機完成了初始調試及軟件合成后,轉入了全面測試。但是,剛剛開始測試不久,就傳來消息,出事了! 測試結果表明,幾臺供測試的樣機不同程度的出了問題。故障又全部集中在一組靜態存儲器上。故障特征是:讀寫結果出現錯誤,并且沒有固定的錯誤地址及數據模式,完全是隨機狀態。 聽著有點兒耳熟吧? 沒錯,和以前寫的那篇“捉鬼”里面的見到的故障模式幾乎一樣。但是在時間順序上,這次的故障在前,“捉鬼”在后。 “你這個人怎么這么背呀!怎么存儲器老和你過不去!” 是嗎?我倒不這么看。對工程師來說,這其實是件好事。 不過說是好事,那是就事后而言。在當時可是有點兒頭大了。存儲器故障,首先的措施當然就是換存儲器器件,但是無效,故障依然存在。這就有點兒麻煩了。這部分的設計是直接由其他產品上拿過來的,沒有任何改變,連布線都幾乎相同。已經被驗證過的設計怎么會又出問題?懷疑的對象似乎只能還是存儲器器件本身。而來自同一廠家同一批號的這種器件現在正同時在幾個產品上使用,有的還正處于量產狀態。如果真是器件問題,影響可就大了。 為了防止問題擴大,馬上通知了有關部門。而有關部門采取的措施也是干脆果斷:凡是使用相同批號該型器件而處于生產狀態的產品立即停產! 事兒鬧大了! 面對這種情況,我倒是沒慌,相反還有點得意。如果真是這個批號的器件問題,出了這個故障,不正好給其他項目提了醒兒,避免了問題蔓延嗎? 很快,拆下來被認為有問題的芯片被送回了廠家檢測。出乎意料的是,廠家重新測試的結果表明,這些芯片沒有問題,是好的!同時,為了驗證問題,另外一個使用了相同批號器件的產品也被送到測試組測試,結果是,全部測試通過,沒有發現類似的問題! 問題轉了一圈,又回到了我這兒:相同的設計,相同的芯片,為什么別人的沒事,到我這兒出毛病?芯片廠家對此也不敢怠慢,他們建議:將我的這個產品與另一個使用相同芯片通過了測試的產品進行狀態比對,重點檢查存儲器的電源及時鐘的初始狀態。 所謂初始狀態,就是指由開始加電的零時起,一直到電源和時鐘都穩定后這中間幾十毫秒的過程。這么一比,差別就出來了! 已經通過測試的那個產品,其存儲器的電源電壓變化,由0V開始一直到額定值,保持了一條直線。用數學語言來精確描述,就是:單調,線性。 而在我的板子上,電源電壓上升到一半,突然呈現一段停滯,有兩塊板子甚至出現電壓下跌的狀況,看上去幾乎呈現出一個反“S”的形態。雖然最終電壓上升到了額定值,但是這個升壓過程的變化,顯然成為最大的疑點。存儲器廠家也表示,保持電源電壓的線性變化,對保證器件工作的正常很重要。 兩個產品,相同的設計,相同的芯片。不同的,就只有我換的那個電源模塊了。存儲器的電源正是由它供電的。將一臺樣機上的電源拆下來,換上原來老廠家的模塊。再檢查電源,電壓的上升呈現理想的線性,反“S”的狀態不見了!重新對存儲器測試,好了! 到此,問題清楚了:新換的這個電源模塊的動態特性不滿足器件要求,不能用。于是,怎么把它掛牌列入數據庫的,還得怎么摘牌拿出來。還得恢復使用原來廠家的東西。 這個故障的出現和排除,使我對現代電子設備設計中電源性能對整個系統的影響有了新的認識。對它的評估,不能僅僅局限在其穩定后的指標,還要包括它開始動作的那個過程。就像一出戲開場,不能等演員站到了臺口才算開始。鑼鼓家伙一響,演員后臺一叫板,這戲就算開了!原因是:現在系統中所用器件對環境的要求越來越高。說白了就是來飯館吃飯的客人,譜兒大了,嘴刁了。不小心認真伺候,搞不好就出亂子了。 就對電源的動態特性的要求而言,一般地說,數字器件比模擬器件敏感,時序邏輯比組合邏輯敏感。特別是含有存儲和記憶功能的器件尤為如此。現在大多數的SoC器件都需要一個以上的電源以提供不同的電壓。在這種情況下,除了每一路電源還應保持“單調,線性”(monotonic and linear) 這一基本要求外,各路電源之間的時序也變得重要起來。由于CMOS器件本身的特征,錯誤的電源電壓及次序有可能導致“Latchup” 現象的發生,造成工作不正常,甚至器件失效。這一情況有時甚至連模擬器件都不能幸免。所以若是檢查哪些SoC器件或者FPGA的手冊,你會發現大多對電源的時序都有嚴格規定。比如:“器件核心部分必須先于IO部分加電”,或“同時加電”等等。盡管現在的芯片設計已經改進,采取了許多措施避免“Latchup”的現象發生,但是作為設計者,對此仍然不能掉以輕心。 現在許多SoC廠家在推出一款新的芯片同時,還會推出與之相配套的電源管理器件(PMIC)。一些專門的PMIC制造商也會特別說明,那款PMIC適用于那個系列的SoC芯片。這些PMIC除了其輸出電壓及電流容量會滿足那些芯片要求,更重要的是,其各路電源輸出的時序是按照其要求設計的,或者是可以通過編程改變以適應其要求。所以,選用這些PMIC,不能只看它的輸出電壓和負載容量,還必須看其加電及關電的時序是否適合你的芯片。 現在用于各種應用的SoC芯片種類繁多,對電源的要求也不盡相同。下面的幾個圖代表了幾種典型的情況。 綜合這些對系統電源的要求,在評價一款電源器件時,你就很難用簡單的一句話來概括,它是好還是不好。以前面我用過的那款導致存儲器工作不正常的電源模塊為例,并不能簡單地下結論說它“不好”,而只能說它“不合適”。電源廠家在產品的設計過程中肯定會考慮其應該具有的動態性能。但是面對不同形式不同特征的負載,它的表現就很難一致了。那款電源的情況只是說明,它的動態特性不滿足我的設計中特定負載的要求。 這事兒跟婚姻一樣,別人說好說壞都沒用,關鍵要自己“合適”。 如此說來,那在電源設計的過程中到底有沒有經驗可循呢? 當然有。我的經驗就是:不要相信任何“經驗”,無論是他人的還是自己的。每當你開始一個新設計,都去老老實實地檢查你的芯片和系統對電源的要求。即使你曾經用過這款芯片。因為,時過境遷,芯片的版本可能已經更新,要求有了變化。因為,芯片的應用環境不同,導致對電源的要求也會不同。還因為,你永遠不知道那塊云彩會下雨,那塊石頭會絆人。危險和意外往往是在你不留意的時候發生的。 有人可能會對此不屑:我的電源沒那么多講究,一樣工作,沒見出過什么問題。。。 沒錯,完全有可能這樣。我的那個設計在測試時,也不是每個板子都出問題,也不是每次都出問題。但是,一個爛西紅柿吃下去,不是每個人都鬧肚子,你不能應此而就得出結論:爛西紅柿可以吃。電子設備,電源是其基礎的基礎。直觀的電源失效(電壓過高或過低)會直截了當地讓你的設備趴窩。而那些隱形的問題所帶來的結果可能更可怕,因為它造成的后果往往和其他問題混雜在一起,讓你難以分辨。你也無法預料它什么時候爆發。沒人會愿意一直吃爛西紅柿,到了上吐下瀉時再找原因。作為設計師,你也不會愿意讓你的設計帶著個不知什么時候響的**出廠吧? 這件事已經過去了很多年。當初設計的那個產品現在已經停產了。可是,那條在示波器上呈現出的反“S”曲線所帶來的影響,我一直沒有忘記。它對我后來的工作幫助不小。這就是為什么我在前面說是“好事”的原因。 幾年以后,又一個突如其來的存儲器故障擺在了我面前。不過這次的事,卻是個喜劇結尾。過程嘛,以前寫的“捉鬼”已經說過了,在這兒就免了吧。 |