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