如何用 Python 打造專屬的 PCB 走線寬度計算器
3 分鐘
我們都知道 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 DFM 準則與分析如何確保製造轉換順暢
在為大眾市場設計產品時,最好在上市前徹底測試。因為產品的研發既昂貴又耗時。讓 PCB 在桌面上運作是一回事;一旦設計定案,PCB 必須毫無意外地反覆製造與組裝。此時,「PCB 可製造性設計(DFM)」默默地拯救了專案與工程師的聲譽。 許多 PCB 問題並非來自糟糕的線路圖或走線,而是設計在紙上正確,實際上卻無法生產。DFM 是設計意圖與製造現實之間的翻譯器。我們可以在原型階段嘗試不同硬體設計,但面對大眾市場時,公司只允許一個最終設計。PCB DFM 準則與分析確保從概念到生產的轉換順暢且具成本效益。本文將透過實例深入探討 DFM,有時只是幽默一場。 PCB 設計與製造之間的橋樑:DFM 基礎 定義 DFM 及其在開發週期中的位置 可製造性設計(DFM)是一套結構化規則與檢查,確保 PCB 能以高良率製造與組裝。簡單說,DFM 回答:「這塊板子真的能做出來而不讓製造商頭痛嗎?」DFM 無關創意,而是關乎可預測性。DFM 規則涵蓋製程公差、鑽孔精度、銅蝕刻極限、焊接行為與組裝限制。忽略 DFM 的設計可能電氣上可行,卻常導致: 製造良率低 意外生產延遲 單板成本更高 組裝失敗與重工 DFM 應在開發週......
PCB 接線端子:設計工程師可靠的線對板連接指南
PCB 端子台是線對板連接的無名英雄。它們可用於工業控制、電源與汽車系統等場景,無需重新加工 PCB 就能連接或更換導線。端子台可採用壓緊或螺絲鎖固,省去手工焊接的不確定性。然而,端子台也可能出問題:鬆動的線材會因震動而鬆脫、過重的元件可能導致焊點疲勞,爬電距離或電氣間隙不足則可能讓電弧在走線間跳火。螺絲未鎖緊會因震動而間歇失效,電氣間隙過小在潮濕天氣下可能拉弧。及早發現這些問題,可透過選擇合適的端子類型、遵守間距規範,並對重載安裝進行加固。良好的線對板方案可避免走線燒毀,省去徹夜除錯。 在工業、電源與控制專案中,線對板連接的關鍵角色 端子台在嚴苛應用中表現亮眼。它們專為大電流與惡劣環境設計,遠勝簡易排針或 IDC 線材。舉例來說,在控制盤與工業自動化設備中,PCB 端子台隨處可見:連接馬達驅動器、感測器、電源與接地匯流排。在重型機械與航太系統中,端子台馴服承載馬達電力或 48 VDC 電源線的大線徑線材。就連消費性電子的電源供應器,只要可靠性至上,也會見到它們的身影。 這些連接器讓工程師能安裝大線徑線材(相對於 PCB 連接器而言),並快速剝線與夾緊大導體。端子台提供極大彈性:可混用實心線與絞線......
PCB 卡緣連接器:設計要點、金手指優化與可靠整合的製造策略
PCB 金手指連接器是模組化電子產品中默默無聞的英雄。它們在電路板邊緣提供鍍金手指介面,讓主機板、擴充卡與記憶體模組之間能隨插即用。相較於焊接或線材連接,金手指接點可輕鬆更換與升級元件。你可以想像只要拔下一塊板子、再插上另一塊,就能更換顯示卡或 SSD。這種邊緣互連技術可在穩固的機械支撐下實現高速、高密度走線。本文將概述這些連接器的演進、主要類型與設計規範、金手指細節以及製造技巧。 金手指連接器在 PCB 系統中的獨特角色 金手指連接器最早出現在早期電腦與通訊設備中,用以取代繁瑣的線束。歷經演變,從舊式匯流排卡(ISA、EISA、AGP)發展到今日精巧的 PCI Express 與小型模組。在現代設計中,邊緣連接器可見於主機板、顯示卡、記憶體(DIMM/SODIMM)插槽,甚至智慧型手機。它們是板對板或板對插座之間的實體橋樑,兼具電氣與機械功能。 從舊式架構到現代模組化的演進 傳統上,板邊只是銅墊排;厚 PCB 滑入塑膠槽即可。我記得早期 PC 直接插上 62 pin ISA 插槽,50 pin SCSI 硬碟、66 pin AGP 顯示卡或 188 pin PCIe。我的筆電目前配有 PCIe ......
PCB 設計中銅箔走線的創新應用
銅導線是印刷電路板(PCB)中不可或缺的元件,為電流在整個電路板上提供傳導路徑。銅導線的表面處理對其功能性與可靠性有決定性影響。目前有多種表面處理可供選擇,每種都有其優勢,正確的選擇取決於銅導線的預期用途。本文將探討銅導線在 PCB 設計中的創新應用,以及可提升其功能的表面處理方式。 為 PCB 設計中的銅導線選擇合適的表面處理 銅導線的表面處理對其功能性與可靠性影響重大。常見的表面處理包括 ENIG、HASL、沉積銀、OSP 與沉積錫,每種都有其優點,需依銅導線的用途選擇。 ENIG 適用於需要高可靠性與抗腐蝕性的銅導線,常見於航太與工業電子。HASL 成本較低,導電性良好,但可靠性不如 ENIG 且較易腐蝕。沉積銀導電性佳、接觸電阻低,但長時間易氧化。OSP 價格低廉、焊錫性良好,但可靠性較低且易氧化。沉積錫表面均勻、焊錫性優異,但可靠性較低且易產生晶鬚導致短路。 銅導線作為電容與電感:實現高效 PCB 的設計技巧 銅導線可設計成電容或電感以儲存電能。透過特定形狀設計,可省去額外元件,縮小體積並降低成本。表面處理需依用途選擇:作為電容時,ENIG 提供優異抗腐蝕性與可靠性;作為電感時,HASL......
如何避免 PCB 設計中的陷阱
設計印刷電路板(PCB)時,必須仔細考量多項因素,才能確保製程順利並避免潛在陷阱。從孔徑與槽孔設計,到線寬與銅箔灌注,掌握這些要點對於打造可靠且功能正常的 PCB 至關重要。本文將探討 PCB 設計中的常見陷阱,並提供克服建議。 導通孔孔徑設計 在 PCB 製造中,0.3 mm 的孔被視為標準孔,小於 0.3 mm 則歸類為小孔。 小孔可能對生產造成多項負面影響: 電鍍困難:孔徑越小,越容易發生電鍍不良或無電鍍。針對小孔,JLCPCB 採用四線低阻製程以確保可靠度。 加工效率降低:小孔需降低鑽孔速度並使用更短鑽頭,導致一次可鑽板材數量減少。因此設計時建議優先採用 0.3 mm 以上孔徑,僅在空間受限時才考慮小孔。 JLCPCB 的最小製程能力: 單/雙面板:0.3 mm(內徑)/0.45 mm(外徑) 多層板:0.15 mm(內徑)/0.25 mm(外徑) 外徑應比內徑大 0.1 mm 以上,建議差距 ≥0.15 mm。 導通孔槽孔設計 PCB 鑽孔中的短槽:長度小於寬度兩倍的槽孔稱為短槽。短槽的最佳長寬比為長度/寬度 ≥2.5(極限值 ≥2)。 長槽選用噴錫處理:若槽孔需經噴錫,建議單邊最小寬度......
5 個常見的 PCB 設計新手錯誤(以及如何避免)
印刷電路板(PCB)是現代電子產品中不可或缺的元件,從智慧型手機、筆記型電腦到汽車與家電都能見到它的身影。PCB 提供了一種高效連接電子元件的方式,能以精簡且可靠的途徑傳輸訊號與電力。然而,設計 PCB 並非易事,尤其對初學者而言。 本文將探討初學者最常犯的 5 大 PCB 設計錯誤及其解決方法。這些錯誤可能導致訊號干擾、散熱問題、電源供應異常,甚至損壞元件。避開這些陷阱,才能確保你的 PCB 既穩定又可靠。 錯誤一:未使用接地層 接地層是 PCB 上大面積且連接到地的銅面,可作為屏蔽層,防止電磁干擾(EMI)影響板上的訊號。若未使用接地層,訊號容易夾雜雜訊,進而降低電路效能。 解決方法:在設計中加入接地層。大多數 PCB 設計軟體都內建快速添加接地層的功能,只需新增一層並將其連接到地網路,即可形成大面積銅面作為接地層。 錯誤二:未檢查間距規則 間距規則(DRC)指的是 PCB 上兩個導電物件(如兩條走線或走線與焊墊)之間的最小距離。忽略間距規則可能導致短路或訊號干擾。 解決方法:在PCB 設計軟體中設定間距規則。多數軟體提供「Rooms」功能,可針對不同區域或物件設定最小間距,避免元件過於靠近而......