勞動節連假.... 一樣沒閒著。不過一想到有一個東西要講,還是撥點時間來畫山畫水一下~
事情是這樣的.... 我們最近在搞一個東西的演算法,為了節省實體類比電路的使用,而換成數位訊號處理的方式來解決。在演算法做好之後,驗證的結果一直不太穩定,面對上頭三不五時的關心,公司的阿宅工程師又開始叫了.... 「啊....不是什麼事情都能靠數位解決的啦~ 竹篙裝菜刀~ 不通啦~ 機X啦~ 去死啦~」
這時,從實驗室中遠遠傳來的靠北聲,讓我的耳朵癢癢的.... 此時我內心的那隻「叫獸」,彷彿受到召喚,又從我的椎間盤中一竄而起....
「此時,我肥胖的身子向左微傾,顯出努力的樣子。這時工程師看見我的背影,他的淚很快地流下來了。他趕緊拭乾了淚,怕我看見,也怕別人看見。他再向外看時,我已抱了朱紅的橘子走過來了。」....
喂~~~ 不是朱自清的背影啦!這是在演哪一齣....
我:「你是又在叫什麼啦~」
阿宅:「蔥山小啦~~~ 賣來亂啦!」
我:「認真在問你的啊!我今天不是來鬧的吼~有問題大家一起想阿....」
阿宅:「X!就那個ADC取樣進來的訊號,經過演算法算完,不知道怎樣,有時候正常,有時候好像又會亂跳.... 這演算法可能還是有點問題。解不出來啦....」
此時,我看到實驗桌上那一坨電路,大概有上萬條線在那邊糾纏.... 李組長眉頭一皺,又發現事情並不單純....
我接著問:「等一下啦.... 你一坨電路,解釋一下你在兜甚麼。」
阿宅:「這邊主要有三個電路,第一個是一個切換式電源,為其他兩個電路供電。第二個是一個 radio 模組,自身帶有 ADC。這個ADC,會去取樣第三個電路提供的類比輸出。」
**********************************
為各個板子命名一下好了,比較好說明
我說:「這樣啊!懂了!我現在看你的電路,很粗淺地覺得,有兩個問題。我們分別來試試看。」
「第一個問題,這個切換式電源,在 power rail 上我看不到濾波(穩壓)電容,會不會波紋太大導致板C的類比輸出因而受到影響。這樣吧!我們先拿個100 uF的電容焊上去試試看。」
註:板C的電路內部沒有穩壓器之類的東西,輸出很明顯會受電源波動影響而產生類似振幅擾動的結果。例如偏壓點會受電源波動而微幅擺動.... 實際上是什麼電路,因公司機密的緣故,恕小弟不太方便在網路上說明。總之,它就是會受電源波動影響就對了....
*************************************************************************
經過了一番折騰.... 我們在那個尺寸小到不能在小的地方,硬是掛上了一顆穩壓電容。
阿宅:「ㄟ!X!好像有點準起來了~ 但還是會稍微飄動,不過沒有之前飄的那麼嚴重了」
我:「科科.... 好!來,我們再來試第二個東西。」
「板B上有ADC,它要去取板C的輸出。ADC要取訊號取的準,這兩張板子之間當然是要共地的對吧!」
阿宅:「這還用你說....我知道啊!」
我:「是阿!我有看到你有拉共地線,可是,你這條共地線也太長了吧(目測約20公分)!然後很不幸,你板C的電源,是由板B提供,迴流電流會從這條長長的共地線流回板B。又很不幸,power rail 很愛抖,所以我敢說....... 板C的地一定在 bouncing (長線相當於電感效應,時變電流將於其上產生時變電壓)。 」
我:「Bouncing 的幅度我不敢說,但至少我可以說,板B跟板C,兩個的地根本不一樣!更何況,ADC取樣時,它的參考地是自己的地,當它要去取樣別人,當然也是希望別人是跟ADC擁有一樣的地!可是,偏偏現在兩個人的地就不一樣,代表 ADC 取進來的那個訊號已經參雜了 bouncing....」
我問:「你可以說一下,在什麼情況下,板B跟板C的地,會一樣?」
阿宅:「恩.... 線是理想導線的時候,沒有電感效應!」
我:「很好!但偏偏線就不是理想的啊!還有沒有其他想法?」
阿宅:「電源不要抖!」
我:「好,對我們的情況,我們是可以想辦法讓它不抖。可是剛剛加了穩壓電容,還是多多少少會抖~ 況且,在其他電路中,搞不好是數位的切換電流在跑(這是必要的電流),也不是電源在抖.... 所以.... 還有沒有其他想法?」
阿宅:「mmm.....」
我:「想一下啊!降低電感效應.... 甚麼時候沒有電感效應???」
阿宅:「X!靠北啊.... 就共地,但不要接地線啊!」
我:「我知道你的意思,就是「共地線無限短」,對吧!」
阿宅:「你到底想說什麼啊?馬的最好是有無限短的線啦....」
我:「哈哈~ 當然是沒有無限短的線,只是要跟你說,共地線的長度接短一點啦!這樣 bouncing 就會比較輕微啦~」
阿宅:「靠夭~ 直說就好了!在那繞什麼圈子~」 (阿宅立馬從桌上撈了一條2~3公分長的單芯線,給換上去)
重新測試中....
阿宅:「有哦~有哦~ 有 fu 哦~~~ 靠!整個穩定了耶!....mmmm.... 雖然好像還是會稍微飄一咪咪,但是X,真的改善超多的!」
我心想:「科科.... 幸好有給我矇中~~~不然就糗了!」
我說:「事情還沒完哦!之前我有聽說你演算法的事情,我覺得現在只是基本排除了一些問題而已!我上次無意間聽到你們在討論,我覺得你那演算法,應該還是有點問題!不然找個時間,我們再來討論一下你的算法吧~」
阿宅:「感謝你的雞婆.... 但不管怎樣,我總算稍微有點東西可以先報告交差了.... 不然明天又要被釘在牆上了」
我:「免客氣!今天晚餐你請..........」
*************************************************************************
事情是這樣的.... 我們最近在搞一個東西的演算法,為了節省實體類比電路的使用,而換成數位訊號處理的方式來解決。在演算法做好之後,驗證的結果一直不太穩定,面對上頭三不五時的關心,公司的阿宅工程師又開始叫了.... 「啊....不是什麼事情都能靠數位解決的啦~ 竹篙裝菜刀~ 不通啦~ 機X啦~ 去死啦~」
這時,從實驗室中遠遠傳來的靠北聲,讓我的耳朵癢癢的.... 此時我內心的那隻「叫獸」,彷彿受到召喚,又從我的椎間盤中一竄而起....
「此時,我肥胖的身子向左微傾,顯出努力的樣子。這時工程師看見我的背影,他的淚很快地流下來了。他趕緊拭乾了淚,怕我看見,也怕別人看見。他再向外看時,我已抱了朱紅的橘子走過來了。」....
喂~~~ 不是朱自清的背影啦!這是在演哪一齣....
我:「你是又在叫什麼啦~」
阿宅:「蔥山小啦~~~ 賣來亂啦!」
我:「認真在問你的啊!我今天不是來鬧的吼~有問題大家一起想阿....」
阿宅:「X!就那個ADC取樣進來的訊號,經過演算法算完,不知道怎樣,有時候正常,有時候好像又會亂跳.... 這演算法可能還是有點問題。解不出來啦....」
此時,我看到實驗桌上那一坨電路,大概有上萬條線在那邊糾纏.... 李組長眉頭一皺,又發現事情並不單純....
我接著問:「等一下啦.... 你一坨電路,解釋一下你在兜甚麼。」
阿宅:「這邊主要有三個電路,第一個是一個切換式電源,為其他兩個電路供電。第二個是一個 radio 模組,自身帶有 ADC。這個ADC,會去取樣第三個電路提供的類比輸出。」
**********************************
為各個板子命名一下好了,比較好說明
- 電源:板A
- ADC:板B
- 待取樣輸出:板C
我說:「這樣啊!懂了!我現在看你的電路,很粗淺地覺得,有兩個問題。我們分別來試試看。」
「第一個問題,這個切換式電源,在 power rail 上我看不到濾波(穩壓)電容,會不會波紋太大導致板C的類比輸出因而受到影響。這樣吧!我們先拿個100 uF的電容焊上去試試看。」
註:板C的電路內部沒有穩壓器之類的東西,輸出很明顯會受電源波動影響而產生類似振幅擾動的結果。例如偏壓點會受電源波動而微幅擺動.... 實際上是什麼電路,因公司機密的緣故,恕小弟不太方便在網路上說明。總之,它就是會受電源波動影響就對了....
*************************************************************************
經過了一番折騰.... 我們在那個尺寸小到不能在小的地方,硬是掛上了一顆穩壓電容。
阿宅:「ㄟ!X!好像有點準起來了~ 但還是會稍微飄動,不過沒有之前飄的那麼嚴重了」
我:「科科.... 好!來,我們再來試第二個東西。」
「板B上有ADC,它要去取板C的輸出。ADC要取訊號取的準,這兩張板子之間當然是要共地的對吧!」
阿宅:「這還用你說....我知道啊!」
我:「是阿!我有看到你有拉共地線,可是,你這條共地線也太長了吧(目測約20公分)!然後很不幸,你板C的電源,是由板B提供,迴流電流會從這條長長的共地線流回板B。又很不幸,power rail 很愛抖,所以我敢說....... 板C的地一定在 bouncing (長線相當於電感效應,時變電流將於其上產生時變電壓)。 」
我:「Bouncing 的幅度我不敢說,但至少我可以說,板B跟板C,兩個的地根本不一樣!更何況,ADC取樣時,它的參考地是自己的地,當它要去取樣別人,當然也是希望別人是跟ADC擁有一樣的地!可是,偏偏現在兩個人的地就不一樣,代表 ADC 取進來的那個訊號已經參雜了 bouncing....」
我問:「你可以說一下,在什麼情況下,板B跟板C的地,會一樣?」
阿宅:「恩.... 線是理想導線的時候,沒有電感效應!」
我:「很好!但偏偏線就不是理想的啊!還有沒有其他想法?」
阿宅:「電源不要抖!」
我:「好,對我們的情況,我們是可以想辦法讓它不抖。可是剛剛加了穩壓電容,還是多多少少會抖~ 況且,在其他電路中,搞不好是數位的切換電流在跑(這是必要的電流),也不是電源在抖.... 所以.... 還有沒有其他想法?」
阿宅:「mmm.....」
我:「想一下啊!降低電感效應.... 甚麼時候沒有電感效應???」
阿宅:「X!靠北啊.... 就共地,但不要接地線啊!」
我:「我知道你的意思,就是「共地線無限短」,對吧!」
阿宅:「你到底想說什麼啊?馬的最好是有無限短的線啦....」
我:「哈哈~ 當然是沒有無限短的線,只是要跟你說,共地線的長度接短一點啦!這樣 bouncing 就會比較輕微啦~」
阿宅:「靠夭~ 直說就好了!在那繞什麼圈子~」 (阿宅立馬從桌上撈了一條2~3公分長的單芯線,給換上去)
重新測試中....
阿宅:「有哦~有哦~ 有 fu 哦~~~ 靠!整個穩定了耶!....mmmm.... 雖然好像還是會稍微飄一咪咪,但是X,真的改善超多的!」
我心想:「科科.... 幸好有給我矇中~~~不然就糗了!」
我說:「事情還沒完哦!之前我有聽說你演算法的事情,我覺得現在只是基本排除了一些問題而已!我上次無意間聽到你們在討論,我覺得你那演算法,應該還是有點問題!不然找個時間,我們再來討論一下你的算法吧~」
阿宅:「感謝你的雞婆.... 但不管怎樣,我總算稍微有點東西可以先報告交差了.... 不然明天又要被釘在牆上了」
我:「免客氣!今天晚餐你請..........」
*************************************************************************
後記
我這篇文章本來想要順便連示波器一起說一下的,但實在唬爛太多了!一下子寫太多,觀眾一定會看的很累啊!是不是~ 那就下回分曉囉!
工程師在解 bug 時,一定要先把基本問題給排除,才能比較容易鑽到問題核心。我們在實戰中,雖然很常靠經驗,但是回過頭來想一想,事實上這些事情還是有它的理論基礎在的哦!
老師:
ReplyDelete我有個問題诶,本身是做Power Management/Energy harvesting IC的,對於切換式電源ripple太大那邊加電容上去有個疑問,一般switching converter輸出端會有LC filter,加大L或者C都可以降低ripple;但是從閉迴路控制系統的轉移函數來看,LC filter 那邊會形成一個 complex pole,因此如果加大電容來降低ripple的話會把complex pole 向內推,使得系統的穩定度變差、頻寬也跟著降下來,如果後面輕重載切換的時候不會造成後面訊號處理系統的問題嗎?
因為一般來說給ADC 那些analog signal processing system的Vdd會再加上一個LDO降ripple,switching noise,而比較少直接加大電容或者電桿來降ripple。還是說我理解錯誤或者是這邊視為在系統的容忍度內?謝謝老師!
切換式轉換器的穩定性如何考量,這點我並不懂,或許您可找一下相關文獻,但我相信負載效應確實是對系統響應是有影響的,只不過影響如何,我不敢輕易斷言。但就我的看法,切換式電壓源本來就有其重載限制(輸出額定電流),這應該跟電壓源輸出的漣波幅度的spec是直接相關的。
Deletedc-dc切換式轉換器的結構可能有好幾種,但總的來說我的觀念都是,切換電晶體的輸出都會先串進電感,再並電容出來。電感當成電流源,電容則作為電壓源。電壓員能提供的電流,是來自於電流源的補充。若先並C再串L,這電晶體大概很難切換得起來,切換損耗一定會很高。所以電晶體輸出端的寄生並聯電容的影響就是那麼機八,要加大電晶體尺寸來催高電流的同時,寄生電容變大,效率就會因此下降。
依據這個理念,你加大L是在增加電流源的電流量,C就能很快地被填到某特定平穩電壓(當然這道電流會受電晶體的sink/source電流限制)。如果你將L縮小,補充電流縮小,C沒辦法很快被填滿,ripple就出來了。相反地說,若L不動,補充電流固定,那麼C越大,越不容易被填平,ripple嚴重;C較小,ripple就比較輕微。當你加上電阻性負載,重載會讓ripple越嚴重,因為補充電流一下子就被重載抽掉。所以不是一昧地加大誰,或縮小誰就能穩壓,畢竟converter輸出的LC是特殊的resonator,會影響converter的行為。
當你透過另一顆LDO,再掛過去的電容,我認為才是扮演穩壓電容的角色。
以上,一點淺見。
恩恩,感謝老師的指教。
Delete