2021年12月26日 星期日

使用同軸電纜製作近磁場探棒

近磁場探棒是偵測近場EMI常用的儀器,構造類似一個小型的環形天線。

除了購買以外,也可以使用同軸電纜製作。

同軸電纜構造如下圖(圖片來源:https://www.techtarget.com/searchnetworking/definition/coaxial-cable-illustrated








 

中心是銅線,外面則有一層銅網屏蔽層銅線與屏蔽層之間有塑膠隔絕。

屏蔽層外又有一層塑膠保護,有些同軸電纜的屏蔽層比較堅硬,所以最外層無塑膠。

目前常見的自製磁場探棒是以下兩種設計。

圖中橘線是銅線,黑線是屏蔽層,藍色部分是焊接點,塑膠的部分省略不畫上去。

=======================================================

第一種設計如下圖。

這種設計是將銅線與屏蔽層的最尾端一起與環形起點的屏蔽層焊起來,並且在探棒最前端切開屏蔽層藉此露出銅線(塑膠層可保留)


 

 







=======================================================

第二種方法是將銅線的最尾端與環形起點的屏蔽層焊起來,但屏蔽層尾端則保持開路。

探棒最前端不要切開屏蔽層。


 

 

 

 

 

 

 

 

=======================================================

看過一些資料說第一種比較靈敏,但我沒深入研究。

我自己實作過第一種,確實能偵測到低頻磁場。

參考資料 

Design and Study of a Wide-Band Printed Circuit Board Near-Field Probe

EMI 探头的 DIY 与使用

MagneticField Probes: What it is and how to make it (if you don’t want tobuy it)

Probing the Magnetic Field Probe 

Topic: DIY Magnetic field Probe

Make your own EMI measurement probes

EEVblog 1178 - Build a $10 DIY EMC Probe

2021年12月25日 星期六

電磁屏蔽原理:反射損失與吸收損失

金屬阻擋電阻波主要是透過兩種方法,分別是反射損失(Reflection Loss)與吸收損失(Absorption Loss)

________________________________________________ 

反射損失(Reflection Loss)是利用金屬的本質阻抗(Intrinsic Impedance,也有人稱為波阻抗)與自由空間阻抗377 Ohm的阻抗不匹配來造成反射。

金屬的本質阻抗如下[1][2][3]


 

 


 

μ是磁導率(Permeability),無磁性物質磁導率與真空相同,其值大約1.26*10^(-6)

σ是電導率Conductivity),金屬的電導率通常都很高

ε是電容率(Permittivity),ε=ε0*εr,ε0是真空電容率(Vacuum Permittivity),εr是Relative Permittivity,有些資料會稱為介電常數(Dielectric Constant),不同物質的εr也不同,真空的εr = 1

只要金屬的本質阻抗與真空本質阻抗377 Ohm差異夠大,就能利用阻抗不匹配的原理來反射電磁波。

________________________________________________ 

吸收損失(Absorption Loss)是利用趨膚效應(Skin Effect)來讓電磁波在金屬內衰減,趨膚效應是指高頻電磁波只會在金屬表面流動而不會進入金屬內部,因此用一個厚度大於集膚深度(Skin Depth, δ)的金屬即可阻擋電磁波,公式如下[4][5]

 




 

δ單位為公尺(m)

μ與σ同上,分別是磁導率與電導率

由這個公式也可以看出低頻電磁波的δ比較大,這就是低頻電磁波會比較難阻擋的原因。

________________________________________________ 

參考資料

[1] 王博彥 . 電磁屏蔽材料之特性分析與應用模擬

[2] The Derivation of Intrinsic Impedance

[3] Wave Impedance and Phase

[4] 林漢年. 《電磁相容分析與設計 : PISI根因探討》ISBN 9789865647735.

[5] David M. Pozar. 《微波工程》ISBN 9789863780809

2021年11月27日 星期六

KiCAD新增原理圖(schematic)的方法

近日在練習使用KiCAD,卻一時之間找不到增加原理圖的方法

嘗試了幾次才知道與OrCAD或Altium Designer這類整合性較高的軟體不同,"KiCAD"這個主程式只是類似檔案總管的管理器,如果要增加原理圖,必須從KiCAD目錄中的Eeschema建立(如下圖)


 

 

 

 

 

 

 

 

 

 

開啟Eeschema後再選擇"另存當前圖頁",將.sch檔案存到已建立的KiCAD project所在的資料夾


 

 

 

 

 

 

 

 

 

 

我將這個新增的原理圖取名為test2

接下來到"KiCAD"這個主程式查看目前project有哪些schematic,可以看到除了剛建立project時同時建立的test.sch之外,也有新增儲存的test2.sch


 

 

 

 

 

 

 

2021年11月21日 星期日

用BJT控制主動元件的電源

之前我寫過用BJT設計開關這篇文章,但這種方法通常用於建立邏輯電路,如果要用以控制主動元件,則需將BJT與元件串聯

下圖是用npn BJT控制運算放大器(Op Amp)的電路,CTRL高電位時,電流就會經由BJT流到Op,Op就會啟動

但使用npn BJT所需的CTRL電位可能會比pnp高,實際電壓多少要看BJT的datasheet













也有電路是將主動元件放在npn BJT的Collector與電源之間,BJT的Emitter直接接地,這種方法也是正確的

下圖是用pnp BJT控制運算放大器(Op Amp)的電路,CTRL低電位時,電流就會經由BJT流到Op,Op就會啟動


 

 

 

 

 

 

 

 

 

 

也有電路是將主動元件放在pnp BJT的Emitter與電源之間,BJT的Collector直接接地,這種方法也是正確的

上面的設計也可將BJT改為MOSFET

*****************************************

參考資料

Emitter-Follower 

Relay Switch Circuit

Connection diagram of PNP and NPN transistor outputs for electronic pressure switches

2021年11月14日 星期日

下拉電阻(Pull-down resistor)在開關中的用途

參考用BJT設計開關

 有次我做了一個p-type的反向器(如下圖),用以控制一顆零件的開關。


 

 

 

 

 

奇怪的是當SW高電位時,V_out應變成低電位,然而被控制的零件卻保持在高電位的狀態。

仔細檢查才注意到SW高電位時,V_out會類似於一個沒接地也沒電源的導線,與接地不同電位,需要加一顆下拉電阻(Pull-down resistor)讓V_out保持在低電位(如下圖)


 

都卜勒效應的影響

無線通訊的接收端與發射端若有相對速度,頻率會受都卜勒效應(Doppler effect)影響

然而根據 鎖相迴路應用於GPS定位系統之研究 這篇論文的計算,即使是速度三馬赫的火箭改變量只有±10.235 kHz,現在收發機中的濾波器通常沒窄頻到這種程度,所以其實設計收發機時不用過於擔憂都卜勒效應的影響

2021年11月7日 星期日

Op Amp(運算放大器)的飽和輸出電壓

 








 

 

這是一個運算放大器,某些教科書會說Vout最大值等於Vs+,最小值等於Vs-,然而實際上卻不一定

在實際的電子零件上,有不少OP的Vout最大值比Vs+小1 V,最小值比Vs-大1 V,所以若要使用上下限接近Vs的OP,就必須用有標註"rail to rail"的OP

dBm與dBV的換算

現在大部分的儀器使用dBm來當功率單位,不過偶爾也會在某些零件的datasheet中看到功率單位是dBV。

以下log均以10為底

Z代表阻抗

dBm的定義:dBm = 10*log( (V^2) / Z / 1mW )

dBV的定義:dBV = 20*log(V)


若設某儀器的功率為x dBV,相當於y dBm,則x與y關係如下

V = 10^(x/20)

y = 10*log( (V^2) / Z / 10^(-3) )

整合上兩式可得x(dBV)與y(dBm)之轉換公式

 y = x - 10*log(Z) + 30


順便提供一個好用的線上換算器

https://www.analog.com/cn/design-center/interactive-design-tools/dbconvert.html

2021年10月17日 星期日

無損傳輸線電長度對反射係數與負載阻抗的影響

除非完美的完成阻抗匹配(位於史密斯圖中心),否則反射係數是複數,可寫成A∠θ

具有特性阻抗的無損傳輸線雖然對於反射係數的大小A沒影響,但是卻會改變θ,所以利用史密斯圖進行阻抗匹配時須注意這點。

 

在此舉個例子來說明

下圖是一個RL串聯電路,RL與訊號源之間有一段電長度90°(0.25波長)且具有特性阻抗無損傳輸線,請問若頻率1 GHz,從最左方的訊號源向右看的負載阻抗與反射係數會在史密斯圖的上半部,還是下半部?



 

 

 

 

由於史密斯圖上半部是電感性,下半部電容性,因此有些初學者看到電路中有電感,又看到那條傳輸線是50 Ohm的無損傳輸線,因此會誤以為答案是上半部。

實際上位於下半部,反射係數0.532∠-122.142°,負載阻抗(19.4-24.35j) Ohm












 

現在來分析為什麼會有這種情況。

假設我們先將傳輸線的電長度改成0,那麼由電路學理論可知ZL = R + jωL = (50+62.9j) Ohm,反射係數0.532∠57.858°,即下圖DP1的位置(點擊圖片可放大)


 












 

接下來我們將電長度改成90°,因為史密斯圖一圈代表電長度180°(0.5波長),所以電長度90°在史密斯圖上已移動半圈,變成反射係數0.532∠-122.142°,負載阻抗(19.4-24.35j) Ohm。

到圓心的距離則不改變,換句話說反射係數的大小0.532不變。


 












 

因此在無法得知電長度的情況下,進行阻抗匹配會較困難。

以此題為例,反射係數位於電容性,可能會讓人誤以為需要增加電感來彌補,然而這樣匹配反而更糟糕。

 

下圖是將電感由10 nH改為20 nH的結果, 反射係數的大小反而從原本的0.532增加到0.782,更遠離圓心。


2021年10月16日 星期六

利用共軛匹配來完成阻抗匹配

本文使用軟體模擬來說明,但網路分析儀也能看史密斯圖,所以實作電路時也可用相同方法。

不知如何測量負載阻抗的請先閱讀透過軟體或網路分析儀求出負載阻抗(Load Impedance)的方法

先提醒,點擊圖片可放大

匹配電路最簡單的方法就是在負載與訊號源之間加上匹配網路,讓從訊號源看入的整個阻抗等於特性阻抗(如下圖)

 

 

 

 

 

但是在設計電路時,偶爾會遇到負載與訊號源之間還有一個無法更動的電路網路(如下圖),在這種情況下就必須用共軛匹配的方式來處理。 





 

共軛匹配顧名思義,就是讓從中間往左右看的反射係數為共軛複數,藉此完成匹配。

換句話說,我們要做的就是讓下圖中的ΓS = ΓL*,完成後將左右兩邊串聯起來就能完成匹配。


 

 

 

 

***************************************************************** 

Example

這次範例如下圖,ZL是負載網路,ZS則是不可修改的網路1,最左邊的是50 Ohm的訊號源,中間空格是要增加的匹配網路,頻率500 MHz,該如何設計

先單獨求出右方的ΓL,由史密斯圖可知ΓL = 0.623∠71.473° ≈ 0.20 + 0.59j,ZL = (30.8+59.55j) Ohm




 

 

 

 

 

 

 

 

 

 

 

接下來求出左方的ΓS,最左邊的訊號源因為也有阻抗,所以測量時不可去除。請注意ΓS是由右往左看的反射係數。

由史密斯圖可知ΓS = 0.76∠61.359° ≈ 0.36 + 0.67j














 

接下來要讓ΓS = ΓL* = 0.623∠-71.473° ≈ 0.20 - 0.59j

 ΓL*在史密斯圖上的座標是(0.616,-1.191),同時這也是正規化的zl = 0.616 + 1.191j的共軛複數。

這就是史密斯圖好用的地方,反射係數的共軛也是負載阻抗的共軛。

下圖是匹配過程的史密斯圖,DP1是ΓS = 0.76∠61.359°,先串2.38 pF電容即可移至DP2,再並169.99 nH電感即可移至DP3的位置

DP3是ΓL* = 0.623∠-71.473°,完成匹配後的ΓS = ΓL*


 

 

 

 

 

 

 

 

 

 

 

 

ΓS = ΓL*匹配完的網路如下圖,請注意此處說的ΓL*是由右方訊號源往左看的反射係數,最左方的訊號源只是因為需考慮其50 Ohm阻抗,所以不移除。


 

 

 

 

由此可知題目要增加的匹配網路就是一個串聯2.38 pF電容與並聯169.99 nH電感接地。

最後完成匹配的整個電路如下圖,完成匹配後ΓS = ΓL*

模擬結果顯示由左方訊號源往右看的反射係數Γin趨近於0,匹配相當好



 

 

2021年9月26日 星期日

Python暫停程式的方法

最近將以前寫的Python程式轉成exe之後,才注意到如果不加一個暫停程式的功能,程式執行完後就會馬上關閉,根本看不到顯示的內容

其實要暫停很簡單,在最後加上一列input()就可以了,例如以下程式碼 

print('test')

input('按任意鍵結束程式')

這樣轉成exe檔,程式顯示test後不會立即關閉,使用者按下鍵盤任意鍵才會關閉程式。

用PyCharm將Python程式轉成exe檔

以下使用Windows 10與PyCharm 2021.2.1(Community Edition)進行示範

要用PyCharm將Python程式轉成exe檔,首先裝PyInstaller

1.在PyCharm上方的工具列選View / Tool Windows / Terminal

然後在Terminal輸入以下指令即可安裝 

pip install pyinstaller

補充:除了用Terminal安裝之外,也可至File / Settings / Python Interpreter中點選"+"來選擇PyInstaller進行安裝(如下圖,點擊圖片可放大)


 

 

 

 

 

2.接下來在Terminal上輸入以下指令,將Python程式轉成exe

pyinstaller -F main.py

其中main是PyCharm預設的.py檔案名稱,若你的檔案名稱不同,請自行修改

如果你的程式是GUI而非純文字介面,可以改用以下指令,之後匯出的檔案執行時就不會出現黑底白字的文字視窗

pyinstaller -F -w main.py

3. 執行完以上動作後,在Project目錄的dist資料夾會出現一個exe檔,這就是成功匯出的檔案

2021年9月15日 星期三

Python的虛數單位

python與octave一樣支援虛數與複數的計算,但有些細節不同

假設我要計算 (5+j)*(7+9j),octave直接輸入 (5+j)*(7+9j)即可

但python輸入以下程式碼卻會出錯

x=(5+j)*(7+9j)
print(x)

因為python中虛數單位j的係數一定要打出來

所以j要改成1j才會正確運算

x=(5+1j)*(7+9j)
print(x)

這樣即可算出正確答案(26+52j)

 

2021年9月12日 星期日

Pycharm的直譯器

 Pycharm是一款知名IDE (Integrated Development Environment),主要用於Python

安裝方式很簡單,Windows的使用者可至Pycharm官網下載exe檔安裝,Ubuntu的使用者至Ubuntu Softwar安裝即可使用。

然而我今日試著在Ubuntu上使用時卻無法執行程式碼,這是沒有選擇直譯器(interpreter)的關係

以下圖片如果太小看不清楚,點選可放大

要解決此問題,首先到編輯程式碼的視窗右上角點選齒輪圖示,然後選擇Settings


 





接著在Python Interpreter的最右方點選齒輪圖示,選Add



 

 

 

其中有四種選擇,Conda與Pipenv並無內建,另外兩個安裝Pycharm時也會預設一起安裝,這裡我選擇最簡易的System Interpreter,然後按OK





 

之後可執行Pycharm建立Project時自動輸入的Hi, PyCharm程式碼,看到以下訊息就代表成功執行程式碼