繼電器 EMI 電磁干擾防範-用一個元件搞定

不知各位是否有訊號被干擾的經驗? 這幾天我發現我的記憶體有時會讀寫錯誤,接上示波器一看,哎呀! 怎麼這麼熱鬧,好多不知打哪來的突波出現,原來是繼電器的 EMI 作怪。雖然這個電路是實驗性質的東西,但龜毛的我還是需要了解一下原因,並且嘗試找到答案,畢竟在實際做產品時,這種現象一定會被客戶打槍。

被干擾的訊號

我的記憶體使用的是\(I^{2}C\)介面,把示波器接上之後,竟然看到非常多的突波,真是傷腦筋,萬一突波剛好出現在\(I^{2}C\)資料的取樣點上,那豈不是就發生資料讀寫錯誤了,而且\(I^{2}C\)的master可能也不會發現資料有問題,因為slave都有回應ACK。當然,若被干擾的是ACK本身,就要看master是否有重送的機制,\(I^{2}C\)的協定請看下面這篇,但這不是我關心的重點。

I2C-協定用法原理簡介-晶片溝通的橋樑

我的重點是,能否將干擾消除? 這要兩方面來思考,一個是電路本身的設計要能夠抗干擾,一個是想辦法降低干擾源。

遭受電磁干擾的I2C訊號
遭受電磁干擾的\(I^{2}C\)訊號

繼電器-它是干擾源

我的應用電路需要與繼電器搭配,雖然電路沒有接在一起,但是實體位置因需求而擺在一起,才會發現這個問題。由於繼電器切換的時候,會發出很大的撞擊聲,讓人很難不注意到它的動作。每當雜訊出現時,我都會聽到繼電器發出的滴答聲響,如此的時間巧合,讓我推測元凶就是繼電器。

如下圖,繼電器是利用電磁鐵來切換電流路徑的裝置,而電磁鐵是線圈繞的,所以它同時也是一顆電感,當電流啟動或切斷的那一瞬間,電感會產生非常高的感應電動勢來對抗這樣的改變,這個感應電動勢便會形成電磁波干擾其他裝置,稱為電磁干擾(EMI,Electromagnetic Interference)。

而波形內有這麼多的突波,並不是我按了很多次按鈕喔,而是我每按一次按鈕,裡面的簧片彼此接觸那瞬間會有局部微小的反彈現象,因此電流會產生劇烈的變化,造成電壓快速的上下彈跳Bounce,直到簧片接觸穩定為止。

圖中的繼電器內寫著12VDC的橫向柱狀體就是電磁鐵,根據規格它需要吃75mA的電流來驅動switch,與一般只吃不到1mA的元件來相比,真的是個龐然大物。

 

繼電器-已打開外蓋
繼電器-已打開外蓋

EMI 干擾訊號

把受干擾的\(I^{2}C\)訊號沿時間軸放大來看,你會看到這些干擾的震幅相當大,這裡一格是5V喔。SDA與SCL都是3.3V,光是干擾就可以超過3.3V很多,實在是太可怕了。

遭受 EMI 電磁干擾的訊號
遭受 EMI 電磁干擾的訊號

加電容為何無效

每當遇到這種突波、雜訊等問題,大家的第一反應都是加電容,但是真的加上去之後,你會發現是無效的,為什麼? 課本不是都教我們要利用電容來濾波嗎?

其實課本教得沒錯(如下圖),只是它講的是用來克服從電源端過來的雜訊,可以透過R1、C1將雜訊濾掉。同樣的,從繼電器來的干擾磁場\(B_{1}\),所形成的\(i_{1}\)也可以透過R1、C1濾掉,因為電容在高頻訊號上形同短路,下面是電容阻抗的公式,頻率越高阻抗越低。

\[Z_{C}=\frac{1}{j\omega C}\]

但我們加進去的電容C1與OP(下圖的放大器OA3)之間的導線好歹是有長度的,因此它還是會形成一個迴圈,從繼電器來的電磁干擾波\(B_{2}\)會在迴圈內形成\(i_{2}\),而OP的輸入端是高阻抗,因此雜訊無法經由C1消除,於是雜訊就被OP吃進去了。

EMI干擾是在C1電容的後級出現
EMI干擾是在C1電容的後級出現

所以加上電容會無效是因為雜訊的切入點根本就在電容之後,而OP的輸入端並沒有任何外部電容存在,所以電容要越靠近IC的輸入端越好,這種電容稱為bypass電容或稱旁路電容,一般在電源上的旁路電容都用0.1uF。既然導線一定有長度,所以干擾一定會有,我們只能盡力改善而已。

另外如果在\(I^{2}C\)的銅線上加旁路電容可以嗎? 當然可以,但不能加太大,以我的電路來說大概只能加上300pF以下的電容,否則\(I^{2}C\)自身的訊號會從方波變成鋸齒波。

下圖是我加了電容看到的波形,從50p到1000p我都試過了,除了電容變大可能會把\(I^{2}C\)的波形搞爛之外,如各位所看到,EMI的干擾波完全不受影響,依舊如此的尖銳。因為印刷電路板的layout是固定的,電容與\(I^{2}C\) chip之間的空隙就是這麼大,除非再改一板layout不然無解,但這工程浩大我還真不想這麼做,所以各位就知道要在設計初期就需要把干擾考慮進來,不然到了後期才要解問題,你的處理空間會變很小。

加電容並無助於減少 EMI 電磁干擾
加電容並無助於減少 EMI 電磁干擾

你看到的雜訊非實際的雜訊

如果想親自看看EMI干擾的威力,不一定需要繼電器,只需要如下圖把示波器的探棒勾住它自己的GND,然後配上一只檯燈就行。探棒勾住GND的目的是作為天線使用,因為Ground lead與探針之間所形成的迴路就是磁場感應電流的迴路,而探針本身的輸入阻抗是\(10M\Omega\),阻抗非常的高,因此感應電動勢幾乎可以完整地被觀察到。

此時只要將檯燈的開關打開或關閉,示波器上就會出現探棒迴路收到的電磁干擾。那問題來了,當我們使用探棒測量電路時,如何知道示波器顯示的雜訊到底是電路貢獻的,還是探棒迴路貢獻的?

若你用的是帶GND尾巴的探棒,那還真的是分不出來誰是誰,我不確定坊間是否有Ground loop面積超級小的被動探棒,但我知道主動探棒有這樣的設計,只是那一支超級貴,若真的有需要也是得買。

只要有電流迴圈,就會受到電磁干擾訊號,探棒也不例外

改善干擾源

既然電路板layout沒法改,加電容也沒效果,探棒不管怎麼接都會有loop,那不妨將焦點放在改善干擾源。Relay的電磁鐵是個大電感,在斷電的那一瞬間,儲存於線圈內的能量必須要讓它有個去處,否則會形成非常大的電壓在線圈兩端,因此只需要在線圈的兩端反向跨接一個二極體,就能有效將剩餘的能量消耗掉。

這個二極體只在反向電流產生時會發生作用,這種接法的二極體稱為flyback diode,用來防止繼電器跳火,對我們來說它可以有效降低發射出去的電磁波。

Relay with Flyback diode

實際接線如下圖,我將二極體1N4001鎖在繼電器的插座上,很醜但是很有用。如果你仔細看會發現我把繼電器的外殼給拔了,因為繼電器實在太吵了,所以只好將它拆開,用一個杜邦頭塞在開關的縫隙中,讓開關不會移動,就不會產生噪音。

線圈端加了二極體的繼電器

改善成效

加了二極體之後,\(I^{2}C\)的波形如下圖,你可以發現突波減少很多,高能量的突波已經看不到了,螢幕內只有中間的觸發點才是EMI的突波位置,其他位置的突波是\(I^{2}C\)自身的串音干擾cross talk,而且剛才有提到光是示波器探棒的ground lead形成的迴圈就足以貢獻很多雜訊了,因此真正進入\(I^{2}C\)的雜訊是少很多的。

已降低電磁干擾的\(I^{2}C\)訊號

為了避免\(I^{2}C\)的串音干擾示波器的觸發,我停止傳送\(I^{2}C\)訊號,這樣就能直接觀察到EMI的訊號,結果如下圖,干擾真的小了非常多。如果你的電路會偶爾發生誤動作的情況,就需要往干擾的方向思考,EMI只是其中一個環節,而且它是一門專業,真正要做產品時是需要經過EMI與EMC驗證的,否則消費者該不會希望誤動作發生在十萬火急的時候。

這裡有一篇Analog Device的文章Power Bypass Decoupling of SHARC Processors,裡面對於bypass電容有非常深入的探討,各位可以參考。

另外還有一個別人做的影片Inductive spiking, and how to fix it!,實際驗證了電阻性與電感性的負載,我想對各位會非常有幫助。

處理後的電磁干擾明顯下降

 

1 Comment

Leave a Reply

Your email address will not be published.


*