如何用 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 線寬指的是蝕刻在 PCB 基板上、用於在元件間傳遞電信號的導電路徑之寬度。它決定了走線的載流能力、阻抗與熱特性,進而影響整塊 PCB 的性能與可靠度。 影響線寬的關鍵因素: 1. 載流能力: PCB 走線的首要功能就是將電流從一處傳輸至另一處。線寬直接決定走線在不超溫、不產生過大壓降的前提下能承載多少電流。 2. 阻抗控制: 在 RF(射頻)與高速數位電路等高頻應用中,維持受控阻抗對訊號完整性至關重要。線寬、線間距與介電特性共同影響傳輸線的特性阻抗。 3. 散熱能力: PCB 走線同時也是將元件或高電流產生的熱量導出的通道。足夠的線寬能有效分散熱量,避......
掌握 PCB 設計規則:全面指南,實現最佳成果
PCB 設計規則是確保印刷電路板功能、可靠性與可製造性的關鍵準則。遵循 PCB 設計規則,設計師能在製造過程與最終產品中實現最佳效能,並將潛在問題降至最低。本全面指南將深入探討 PCB 設計規則的世界,提供寶貴見解、實用技巧與真實案例,協助您打造成功的 PCB 佈局。 I. 理解 PCB 設計規則的重要性 訊號完整性與電磁相容性(EMC): 為維持訊號完整性並防止電磁干擾,設計師需考量平面與走線間距、阻抗控制及接地隔離等因素。適當的走線間距有助於降低串擾與雜訊,確保元件間通訊清晰。阻抗控制對高速設計至關重要,可維持 PCB 走線的訊號完整性。 簡化製造與組裝流程: 有效的元件擺放對於高效組裝與測試至關重要。遵循元件擺放與方向的設計規則,設計師可提升可及性、製造簡易性與未來維護性。間距、間隔與高度要求應審慎考量,以防止短路並確保散熱管理的適當氣流。 強化熱管理: 良好的熱管理對電子設備的壽命與可靠性至關重要。PCB 設計師必須考量散熱問題,包括散熱片、散熱墊與導熱孔的策略性擺放。優化熱緩解與銅箔灌注有助於調節溫度,防止元件與電路板本身過熱。 II. 關鍵 PCB 設計規則與最佳實踐 元件擺放與封裝設......
電源分配網路設計指南
我們在文章中經常談論訊號、阻抗與差動對。沒錯!訊號的傳播並不簡單,需要遵循許多準則。然而在這一切之中,人們往往忘了電源完整性;若沒有良好的電源完整性,訊號表現會大打折扣。沒有優秀的電源分配網路(PDN),你的訊號充其量只是銅箔上的塗鴉。 本文將從 PCB 的角度探討 PDN 設計準則,了解什麼才是真正良好的 PDN。讀完後你會發現,電源傳遞不只是「配管」,而是精密工程。 什麼是電源分配網路(PDN)? 電源分配網路(PDN)是由平面、走線、導通孔、去耦電容與穩壓器組成的系統,負責將電源從來源傳遞到 PCB 上的主要 IC。IC 的供電是 PDN 最關鍵的一環,若路徑出現壓降,IC 將無法獲得足夠電流,導致跨 IC 的電壓降增加,進而產生誤動作。 電源分配不僅是從源頭到穩壓器,也包含從穩壓器/PMIC 到主電路。去耦電容在 PDN 中也扮演重要角色。因此一條 PDN 鏈包含: 輸入連接器 > 穩壓器/PMIC > 去耦網路 > 電源平面 > 主要 IC > 地回歸路徑 > 去耦電容。 為何電源完整性如此重要 電源完整性(PI)是 PDN 在所有工作條件下,為所有 IC 提供乾淨、穩定、低雜訊電壓的能......
設計耐用的客製化鍵盤 PCB:量身打造的解決方案與專業製造
那麼,什麼是鍵盤 PCB?簡單來說,它就是任何鍵盤內部的印刷電路板,負責把按鍵開關連接到控制器,再由控制器與電腦溝通。按下按鍵時會在 PCB 上形成一個閉合電路,控制器記錄是哪一顆鍵,並把對應的鍵碼傳回主機裝置。機械鍵盤社群從小眾嗜好發展成機械鍵盤世界裡的成熟次文化,而 PCB 就是決定鍵盤能力的基礎:支援哪些軸體、能否熱插拔、能同時點亮多少 LED、可選擇的佈局,以及哪些功能由韌體實現。 PCB 把一堆開關與鍵帽變成流暢且完全可自訂的輸入板。機械鍵盤圈熱愛打造獨特 PCB 來展現創意風格。從緊湊的 40% 佈局到帶旋轉編碼器與 OLED 螢幕的全尺寸板子,PCB 設計決定了你實際能組出什麼。如今透過低價打樣服務,業餘玩家與獨立設計師都能負擔得起客製板,自製鍵盤的門檻比以往更低。 從基礎到玩家級可自訂設計的演進 早期鍵盤 PCB 相對簡單,只是將開關矩陣連到專用控制器 IC,客製化僅限於少數商業選項,且只相容特定軸體與固定配置。如今客製鍵盤 PCB 已大幅進化:現代板子具備熱插拔插座,免焊接即可換軸;每顆 LED 可獨立定址的 RGB 背光;搭載強大 ARM 架構微控制器,並使用 QMK、VIA ......
防焊層的基本設計
常見的雙面 PCB(印刷電路板)從基材表面向外共有三層:銅層、防焊層與絲印層。這些層透過鑽孔層中的電鍍通孔(PTH)相互連接,實現頂層與底層的電氣導通。 防焊層的目的 1. 防止濕氣及各種化學物質與電解質侵入,避免銅線氧化腐蝕,確保電氣性能。 2. 抵禦外部機械刮傷,維持銅線間絕緣,防止短路。 3. 避免焊接元件時發生非預期焊點連接,導致短路。 4. 減少非焊接區域的焊盤表面處理(如 ENIG、HASL)消耗。 5. 透過多種顏色提升板件外觀美感。 防焊層設計 顧名思義,防焊層並非「完全阻止焊接」。部分新手工程師誤以為在防焊層畫上圖案就會使該區域無法上錫,這種理解並不正確。防焊層指的是板上塗佈防焊油墨的區域;由於它是負片形式,防焊層上有圖案的位置反而不會被油墨覆蓋。為了便於理解,可用雪景類比: 想像涼亭(A)就是防焊層,大雪過後,涼亭下方地面(B)不會有雪(防焊油墨),而未被涼亭遮蔽的區域(C)則會被雪(防焊油墨)完全覆蓋。回到PCB 防焊設計: 1. 銅層上的圖案即為銅線。 2. 防焊層上的圖案會把油墨覆蓋去除。 3. 同一面中銅層與防焊層重疊的區域,即成為裸露銅面(上錫或鍍金)區域。 防焊層製......
從概念到量產:PCB DFM 準則與分析如何確保製造轉換順暢
在為大眾市場設計產品時,最好在上市前徹底測試。因為產品的研發既昂貴又耗時。讓 PCB 在桌面上運作是一回事;一旦設計定案,PCB 必須毫無意外地反覆製造與組裝。此時,「PCB 可製造性設計(DFM)」默默地拯救了專案與工程師的聲譽。 許多 PCB 問題並非來自糟糕的線路圖或走線,而是設計在紙上正確,實際上卻無法生產。DFM 是設計意圖與製造現實之間的翻譯器。我們可以在原型階段嘗試不同硬體設計,但面對大眾市場時,公司只允許一個最終設計。PCB DFM 準則與分析確保從概念到生產的轉換順暢且具成本效益。本文將透過實例深入探討 DFM,有時只是幽默一場。 PCB 設計與製造之間的橋樑:DFM 基礎 定義 DFM 及其在開發週期中的位置 可製造性設計(DFM)是一套結構化規則與檢查,確保 PCB 能以高良率製造與組裝。簡單說,DFM 回答:「這塊板子真的能做出來而不讓製造商頭痛嗎?」DFM 無關創意,而是關乎可預測性。DFM 規則涵蓋製程公差、鑽孔精度、銅蝕刻極限、焊接行為與組裝限制。忽略 DFM 的設計可能電氣上可行,卻常導致: 製造良率低 意外生產延遲 單板成本更高 組裝失敗與重工 DFM 應在開發週......