如何用 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 佈局軟體:完整指南
設計印刷電路板(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 設計服務能大幅加快設計流程。透過使用經過驗證的設計模組,使......
PCB 佈局教學:使用 JLCPCB 下單的逐步指南
製作印刷電路板(PCB)既有趣又令人滿足,尤其是當你看到自己的想法成真時。本教學將帶你了解如何在 JLCPCB 訂購 PCB 設計,並根據我們的實際經驗提供實用建議。從選擇板子類型到完成下單,我們會涵蓋所有你需要的知識,讓你快速完成 PCB 製作。 步驟 1:定義你的 PCB 類型 在開始設計之前,先了解你需要哪一種 PCB 非常重要。JLCPCB 提供多種類型,每種都適用於不同用途: a. 普通板 · 特性: 設計中沒有盲孔或埋孔,所有孔都是通孔。適合不需要高頻訊號或高功率的電路。 · 應用: 一般基礎功能的電子產品。 b. 電源板 · 特性: 電源部分佔設計面積超過 30%。此類型不支援高頻訊號。 · 應用: 大型系統中的電源分配板。 c. 高速或高頻板 · 特性: 適用於頻率高於 1 GHz 的電路,需特別考慮輻射與電磁干擾(EMI)控制。 · 應用: RF 應用、高速資料處理設備與先進通訊系統。 d. HDI(高密度互連) · 特性: 採用內徑小於 6 mil(0.15 mm)的微盲孔,每平方英吋通常超過 130 支接腳與 170 英吋走線。 · 應用: 體積小、線路複雜且需高效能的系統。......
AI 如何革新 PCB 設計:完整指南
你最喜愛的機器學習、最佳化與生成式 AI 演算法,很快就會出現在你最常用的 PCB 設計軟體中。如今 ChatGPT 已成為家喻戶曉的名字,各家競爭對手也紛紛推出自己的 GPT 同級產品(Claude、LLaMa 等),EDA 新創公司正積極研究如何善用這些工具,讓 PCB 設計師與工程師更有效率。當各行各業都已被自動化與 AI 觸及,PCB 設計師擁有自己的 AI 工具只是時間問題。 人工智慧(AI)正在顛覆許多產業,印刷電路板(PCB)技術也不例外。從最佳化 PCB 佈局與設計,到改善表面黏著製程,AI 在效率與精準度上都帶來了前所未有的提升。 在製造流程中導入 AI,可望帶來更高的品質、更快的生產速度、更低的成本與更少的錯誤。若想知道 AI 究竟如何大幅改變電路板技術,請繼續閱讀。 AI 在 PCB 設計中的應用場景 PCB 設計 涵蓋了從電路設計、佈局到生產準備的眾多任務。截至 2023 年,尚無單一系統能包辦所有工程與 PCB 設計工作,但無論在設計或製造領域,可選方案都已令人驚豔。 元件選型或規格說明-準確度差異很大,但外掛程式在提供特定資訊或 datasheet 方面很有幫助(參見此......
基準點在 SMT 鋼網對位中的角色
許多從事量產 PCB 設計的電路板設計師,對基準點(fiducials)應該都不陌生。自動化影像設備利用基準點來量測板子的方向與角度偏移,協助精準地組裝與放置元件。雖然 PCB 上其他位置也能看到基準點,但它們的擺放位置至關重要。 PCB 是印刷電路板,設計目的就是透過取放設備與自動化鋼板印刷進行組裝。此外,基準點也能擺放在面板或鋼板上,兩者皆用於電腦視覺系統的旋轉對位。設計師通常應遵循眾所周知的 PCB 基準點規範,但面板與鋼板呢?我們將在準備電路板進入量產時,檢視它們的擺放方式。了解更多:如何運用雷射製造 PCB。 什麼是基準點標記,它如何運作? 基準點標記通常是一個圓形焊墊或其他裸露銅面,外圍環繞一圈淨空區。它作為自動化設備(包括取放機)的參考點,也用於 PCB 鋼板的對位,確保元件能精準地放置在板子上。 在組裝過程中,電腦視覺系統會尋找基準點標記並利用其位置來對齊 PCB 與元件。對表面黏著技術(SMT)元件而言,基準點標記特別有用。建議在細間距封裝(如 BGA、QFN、QFP)旁擺放標記。 基準點標記的類型: PCB 設計中常見的基準點標記有兩種: 全域基準點標記 局部基準點標記 全域基......
理解 PCB 電阻:關鍵因素、測試方法與設計最佳實務
電流流經電路板的難易程度取決於其電阻。雖然板上的每條走線與每個元件都會提供一定的電阻,但目標是將其降至最低。當電子所通過的材料阻擋或減緩其流動時,就會產生電阻。這種阻礙會導致能量損失,通常以熱的形式出現。在與功率相關的電路(如放大器單元)中,走線電阻是決定電路工作電流的關鍵因素。為確保電流順暢流動,印刷電路板(PCB)應具有低電阻的走線與通道。 另一方面,電阻器則是刻意加入電路中以調節電流。所有零件都必須通電並連接,電路才能正常運作。這些連接若受損,可能會阻礙電流而導致問題。影響電阻的因素包括走線寬度、厚度、長度、材料類型與環境溫度等。 PCB 電阻與阻抗的差異: PCB 電阻: PCB 電阻指的是元件與走線對直流(DC)流動的阻抗。它受走線寬度、厚度、長度、材質與溫度影響。頻率可能不會直接影響電阻,但若電壓或電流發生變化,電阻值也可能隨之改變。 PCB 阻抗: 阻抗可視為對交流(AC)流動的阻力。為何是 AC?因為阻抗的計算結合了電阻、電感與電容。走線寬度、介電材料與訊號行為都會影響此阻抗。隨著頻率變化,訊號阻抗會有明顯差異。它在 RF 與高速設計中對維持訊號完整性至關重要。 整體而言,阻抗著重......