如何用 Python 打造專屬的 PCB 走線寬度計算器
3 分鐘
- 需考慮的參數
- Python 走線寬度計算器的功能
- 如何在線上 Python 編譯器中執行走線計算器
- Python 程式碼:
- 總結:
我們都知道 PCB 走線的重要性,但設計完美走線是否有固定規則?當然,所有規則都在 IPC 指南中列出。讓我們深入探討走線,包括其長度、寬度、載流能力以及 PCB 設計中存在的寄生類型。我們都知道 PCB 走線由銅製成,整體厚度為 1 或 2 盎司的薄層。由銅製成並不代表沒有電阻。電阻的基本規則是:走線越厚越寬,電阻越低;若走線細且長,則電阻較高。誰會希望因走線而損失訊號功率?
讓我們以一個例子開始:如果我正在設計一塊電源 PCB,走線長 10 mm,流經電流為 5 A,那麼厚度應該是多少?我們需要查閱 IPC 來計算,但在電腦時代,手算已不再必要!是的,您可以使用線上計算器,但為何要依賴它們?我們將設計獨立的程式碼
回到核心問題——我的銅走線應該多寬?答案取決於多個因素,如所需承載的電流、可接受的溫升、銅厚度,以及走線位於內層或外層。為簡化流程,我基於IPC-2152 指南開發了 Python 走線寬度計算器。本文將介紹設計流程、考慮參數與工具功能,並說明如何在任何線上 Python 編譯器中執行。
需考慮的參數
設計此計算器時,我納入了影響走線寬度的關鍵參數:
1. 電流容量 (A) – 走線需安全承載的電流量。
2. 溫升 (°C) – 允許走線溫度高於環境溫度的幅度。
3. 層別類型 – 外層走線比內層更易散熱,因此公式不同。
4. 銅重量 (oz/ft²) – 常見為 1 oz 或 2 oz 銅,影響厚度與電阻。
5. 走線長度 (mm) – 用於計算電阻與電壓降。
6. 走線寬度 (mm) – 用於從給定尺寸計算最大電流。
Python 走線寬度計算器的功能
程式碼非常輕量,沒有 UI,因此可在任何線上 Python 編譯器中執行。我的計算器功能如下:
兩種模式:
1) 依電流求寬度 – 輸入電流,獲得所需走線寬度。
2) 依寬度求電流 – 輸入寬度,獲得最大支援電流。
額外計算:
- 走線電阻 (Ω)
- 給定負載下的電壓降 (V)
- 走線功率損耗 (W)
如何在線上 Python 編譯器中執行走線計算器
您無需本地 Python 環境即可使用此工具。複製下方程式碼並依下列指南執行:
1. 造訪任何線上 Python 編譯器並貼上程式碼。範例使用 Programiz,您可選擇其他本地編譯器。
2. 點擊執行。
3. 依終端機提示輸入參數。
首先,系統會要求選擇兩種模式之一:依電流求寬度或依寬度求電流。對應的輸出與提示如下:
依電流求寬度:
依寬度求電流:
如此即可在任何裝置上執行計算器,無需安裝 Python。
Python 程式碼:
import math
def calculate_trace_width(current, temp_rise=10, is_external=True):
# IPC-2152 constants
if is_external:
k = 0.048
b = 0.44
c = 0.725
else:
k = 0.024
b = 0.44
c = 0.725
width_mils = (current / (k * (temp_rise ** b))) ** (1 / c)
width_mm = width_mils * 0.0254
return width_mm
def calculate_trace_properties(width_mm, length_mm, copper_oz):
# Constants
copper_thickness_mm = {1: 0.035, 2: 0.07} # in mm
resistivity = 1.68e-8 # Ohm-meter for copper
# Get thickness
thickness_mm = copper_thickness_mm.get(copper_oz, 0.035)
cross_section_mm2 = width_mm * thickness_mm
# Convert to meters
length_m = length_mm / 1000
area_m2 = cross_section_mm2 * 1e-6
# Resistance
resistance = resistivity * length_m / area_m2
return resistance
# --- Main Program ---
mode = input("Choose mode (1 = Width from Current, 2 = Current from Width): ")
if mode == '1':
current = float(input("Enter current (A): "))
temp_rise = float(input("Enter temperature rise (°C, default 10): ") or 10)
layer = input("Is it external layer? (y/n): ").lower() == 'y'
length_mm = float(input("Enter trace length (mm): "))
copper_oz = int(input("Copper weight (1 or 2 oz): "))
width_mm = calculate_trace_width(current, temp_rise, layer)
resistance = calculate_trace_properties(width_mm, length_mm, copper_oz)
voltage_drop = current * resistance
power_loss = current ** 2 * resistance
print(f"\n--- Results ---")
print(f"Required trace width: {width_mm:.3f} mm")
print(f"Trace resistance: {resistance:.4f} Ω")
print(f"Voltage drop: {voltage_drop:.4f} V")
print(f"Power loss: {power_loss*1000:.2f} mW")
elif mode == '2':
width_mm = float(input("Enter trace width (mm): "))
temp_rise = float(input("Enter temperature rise (°C, default 10): ") or 10)
layer = input("Is it external layer? (y/n): ").lower() == 'y'
length_mm = float(input("Enter trace length (mm): "))
copper_oz = int(input("Copper weight (1 or 2 oz): "))
width_mils = width_mm / 0.0254
if layer:
k = 0.048
else:
k = 0.024
b = 0.44
c = 0.725
current = k * (temp_rise ** b) * (width_mils ** c)
resistance = calculate_trace_properties(width_mm, length_mm, copper_oz)
voltage_drop = current * resistance
power_loss = current ** 2 * resistance
print(f"\n--- Results ---")
print(f"Maximum supported current: {current:.2f} A")
print(f"Trace resistance: {resistance:.4f} Ω")
print(f"Voltage drop: {voltage_drop:.4f} V")
print(f"Power loss: {power_loss*1000:.2f} mW")
else:
print("Invalid option.")總結:
這是一個非常基礎的編程練習,但要使其有效,設計師需具備正確的參數資訊並遵循 IPC 指南。結果可能與線上計算器不同,因為部分計算器使用舊版程式碼。這是一個可部署到任何線上 Python 編譯器的簡單專案。若您有安裝完整套件的本地 Python 環境,可延伸此程式碼部署 GUI。分享程式碼並標記JLCPCB,我們一定會考慮推薦!
持續學習
軟性 PCB 設計技巧與訣竅
柔性印刷電路板(Flex PCB)是一種由聚醯亞胺等柔性材料製成的印刷電路板。FPCB 廣泛應用於消費性電子、醫療設備與汽車電子等領域。 來自 jlcpcb 的 flex PCB 設計 FPCB 充滿挑戰,因為必須考量許多獨特因素。本文將介紹一些最重要的軟板設計技巧與訣竅。 軟板外框指的是電路板的最終形狀。設計外框時,請注意以下幾點: 外框層必須獨立,通常以 GM1 或 GKO 表示。 非金屬孔環或槽孔框架也應放置於外框層。 外框層不可出現雜線。 軟板外框不得有內部直角或尖角,且必須封閉,不可開口。 外框設計範例 1 外框設計範例 2 外框設計範例 3 外框設計範例 4 外框設計範例 5 軟板接地銅設計 接地銅設計是 flex PCB 的另一項重要考量。設計時應避免大面積銅箔,否則會降低板材柔性;建議採用網格銅,線寬 0.2 mm,間距 0.2 mm。 接地銅設計範例 1 問題:壓合時產生氣泡 原因:大面積接地銅搭配過少防焊開口,容易困住空氣,壓合時與銅面反應形成氧化斑。 解決方案:增加防焊開口或改為網格銅設計。 接地銅設計範例 2 問題:柔性下降 原因:大面積接地銅會降低板材柔性。 解決方案:採......
多層 PCB 設計:完整指南
什麼是多層 PCB? 多層 PCB 是一種具有兩層以上、由三層或更多導電銅箔層組成的印刷電路板。多層 PCB 是標準的電子電路板;其頂層與底層類似雙面板,但在核心兩側還有額外層。多層雙面電路板經過層壓,並以耐熱絕緣層黏合在一起。主動與被動元件放置在多層 PCB 的頂層與底層,而內部堆疊層則用於走線。內層包含導通孔,如電鍍通孔、盲孔與埋孔,以及所有層間的電氣連接。 這些內部堆疊層的排列方式,使得通孔(THT)電子元件與表面黏著元件(SMD)均可焊接於此類 PCB 的任一側。此技術的應用可產生各種複雜度與尺寸的 PCB。多層 PCB 最多可達 40 層。 為何多層 PCB 如此廣泛使用? 多層印刷電路板的需求持續上升。電子產品朝向更小、更快、更強大的趨勢,使多層 PCB 更受歡迎。多層板的能力開啟了無限可能,讓工程師能夠打造更高密度的電路板,實現微型化。由於多層 PCB 可容納更多電子元件,因此廣泛應用於現代電子設備,層數從 4 層到 40 層不等。 典型的四層疊構中,為提升電磁相容(EMI)效能,信號層應緊鄰接地平面。信號走線與接地平面之間的緊密耦合可降低平面阻抗、共模輻射與走線間串擾。隨著層數增加......
部分翻轉拼板教學
在 PCB 設計的佈局工程階段,經常會使用拼板技術。拼板,本質上是將單獨的電路板組裝成一塊更大的板子,並預留 V-Cut、製程邊、基準點、定位孔及其他製程間距。 在 PCB 打樣時,通常會先在 Altium 裡把小板拼成一大塊,再進行製造與組裝,這樣效率更高。 部分翻轉拼板法 今天,我們來深入探討部分翻轉拼板法,專門用於 PCB 打樣。其核心概念是將繪製好的 PCB 的 TOP 層與 BOTTOM 層互換後再進行拼板。 整體步驟如下: 1. 新建一個 PCB 檔案,將已完成的 PCB 設計複製到這個新檔案中。 2. 執行特殊貼上。 3. 複製整塊 PCB,選取後翻轉,再順時針旋轉 180 度。 執行步驟: 1. 選取整個檔案(快捷鍵:S+A)。 2. 複製檔案後,執行「特殊貼上」。請務必勾選中間兩個選項,如下圖所示。選完後,不要再重新鋪銅。 3. 複製後,檔案應位於適當位置。此時使用移動指令拖曳,拖曳過程中會跳出對話框,請選擇「YES」。拖曳後即可用滑鼠移動檔案。按鍵盤「M」鍵,出現對話框時選擇「Flip Selection」。如下右圖所示,檔案將被翻轉,可能需要調整方向。再次選取檔案,使用「Mo......
不規則 PCB 形狀如何改變產品美學
在 PCB 設計領域,不規則 PCB 外形常被功能性與效能掩蓋而遭忽視。然而,將不規則 PCB 外形融入設計,能在維持技術完整性的同時,徹底革新電子產品的視覺吸引力。不規則 PCB 外形提供了跳脫傳統矩形或方形框架的獨特機會,讓設計師盡情發揮創意,打造出令人驚豔且獨一無二的產品。 探索設計自由:擁抱不規則 PCB 外形 不規則 PCB 外形賦予設計師前所未有的設計自由,使其能跳脫傳統板框限制。擁抱這種外形,能將電子產品化為藝術品。想像一下:智慧家庭中控器採用客製化外形的 PCB,與現代設計無縫融合,以流暢曲線或動態輪廓營造視覺焦點。不規則外形成為產品整體美學不可或缺的一部分,提升視覺吸引力並創造獨特的使用者體驗。 迷人的視覺吸引力:提升產品美學 不規則 PCB 外形的主要優勢之一,就是能立即提升電子產品的美感。舉例來說,無人機遙控器採用貼合手型的不規則外形,這種人體工學設計不僅握感舒適,更為控制器外觀增添精緻感。不規則 PCB 與控制器整體設計無縫整合,在維持最佳功能的同時,大幅提升視覺吸引力。 無縫整合:客製化完美貼合 不規則 PCB 外形能讓電子元件無縫融入產品設計,確保完美貼合與人體工學舒適......
深入了解 PCB 佈局軟體:完整指南
設計印刷電路板(PCB)是電子領域中連接電路設計與實際製作的基本流程。此流程高度依賴 PCB 佈局軟體,讓工程師能將電路圖轉換為實體板佈局。本文將探討 PCB 佈局軟體的價值、其主要功能,以及如何依需求選擇合適的軟體。 什麼是 PCB 佈局軟體? PCB 佈局軟體用於設計 PCB 的實體佈局。它讓工程師在板子上擺放與連接電子元件,確保電氣連接正確,使電路板如預期運作。此軟體協助完成完整設計,包括元件位置、走線佈線、電源與接地層規劃。 PCB 佈局軟體的主要功能 · 設計規則檢查(DRC): 設計規則檢查(DRC)內建於 PCB 佈局軟體,確保設計符合製造與電氣規範。在送製前,DRC 可找出元件重疊、線寬違規、間距錯誤等問題。 · 元件擺放: 有效的元件擺放對製造與功能皆極為重要。PCB 佈局工具提供最佳化擺放功能,影響訊號完整性、熱管理與整體板性能。 · 走線佈線: 走線佈線是將元件電氣連接的過程。佈局軟體提供自動與手動佈線選項,協助建立可靠且高效的連接。 · 層面管理: 現代 PCB 常需多層以實現複雜設計。PCB 佈局軟體支援多層板,讓工程師定義接地、電源與訊號層,並管理其互動。 · 模擬與分......
免費 PCB 設計:通往創新的入口
在當今快節奏的電子世界中,PCB 選擇既快速又實惠。免費的 PCB 設計服務讓從業餘愛好者到工程師的任何人都能將想法轉化為可運作的實體,徹底改變了整個產業。像 JLCPCB 這樣的平台,擁有超過 17 年的 PCB 製造經驗,並開發了 EasyEDA PCB 設計工具,讓使用者能輕鬆地從概念走向量產,大幅縮短上市時間。 與製造整合 免費 PCB 設計服務最大的優勢之一,就是與工業製程的整合。像 JLCPCB 這樣的平台提供一站式服務,將 PCB 佈局設計、製造、組裝、零件採購,甚至 3D 列印與 CNC 加工等進階服務全部串聯起來。這種整合方式讓使用者能簡化流程,避免同時管理多家供應商與製程所帶來的麻煩。 專業且複雜的設計能力 免費 PCB 設計服務適用於各種專案,從簡單到複雜,包括高頻、高速、軟性印刷電路板(FPC)與高功率需求。使用者還可獲得專業的阻抗計算、PCB 疊構配置與可製造性設計(DFM)檢查等工程諮詢,確保即使是最複雜的設計也能符合業界標準,並在預期應用中可靠運作。 更快的交期 在電子產品開發中,時間至關重要,而免費 PCB 設計服務能大幅加快設計流程。透過使用經過驗證的設計模組,使......