如何用 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 設計中銅箔走線的創新應用
銅導線是印刷電路板(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」功能,可針對不同區域或物件設定最小間距,避免元件過於靠近而......
選擇合適的 PCB 形狀
為 PCB 選擇合適的外形是至關重要的決策,會大幅影響電子裝置的整體效能、可製造性與美觀。雖然矩形 PCB 最常見且用途廣泛,但還有各種其他形狀能在特定應用中提供獨特優勢。在這份全面指南中,我們將探討不同的 PCB 形狀,為每種形狀提供範例,並展示它們如何優化設計與功能。透過了解 PCB 外形的重要性並參考具體範例,您就能做出明智決策,提升電子系統的表現。 矩形 PCB:經典之選 矩形 PCB 是歷經考驗的可靠選擇,廣泛應用於各行各業。其矩形外形簡單、易於製造,且與標準製程相容。這種形狀可讓元件高效擺放、訊號走線簡單,並能與標準外殼整合。例如,高階筆電通常採用矩形 PCB,以最大化內部空間利用率。矩形設計讓處理器、記憶體、儲存裝置及其他元件得以緊湊排列,造就輕巧而強大的運算裝置。 圓形 PCB:緊湊設計的最佳解 圓形 PCB 在空間有限或追求獨特外觀的應用中特別有利。圓形無尖角,可減少應力集中點,提升機械可靠性。智慧手錶、健身追蹤器與小型醫療裝置常見圓形 PCB。舉例來說,採用圓形外觀的健身追蹤器 PCB,能在手腕上最佳化空間利用,同時提供吸引人且符合人體工學的造型。圓形設計讓感測器、電池與顯示模......
提升您的電路設計技巧:改善效能的提示與技術
電路設計是現代電子學的關鍵環節,直接影響電子裝置的功能、效能與可靠度。因此,電子工程師與設計人員必須掌握最優秀的電路設計軟體工具。本文將介紹 2023 年最受歡迎的電路設計軟體,並提供專家建議與最佳實務,助您完成高品質的電路設計。 為何電路設計如此重要? 電路設計涵蓋從簡單電路到複雜整合系統的創建過程。電路由 電子元件(如電阻、電容、電晶體)依特定方式排列,以產生所需的電氣輸出。設計好壞將決定功能、效能與可靠度,是工程師與設計人員不可忽視的核心課題。 1. 功能性 電路設計的首要任務,是確保裝置能完成預定功能。設計必須符合電壓、電流、頻率等規格,並在印刷電路板(PCB)的尺寸與形狀限制下完成佈局。優秀的設計能讓裝置如預期運作,滿足終端使用者需求。 2. 可靠度 電路設計直接關係到產品壽命。設計不良可能導致失效或異常,例如電源電路不穩,使電壓波動並損壞其他元件。穩健的設計可提升可靠度,降低故障率。 3. 效能 電路設計決定裝置能否在最低功耗下達到最高效率。設計時需抑制雜訊與干擾,並確保裝置在溫濕度等容許範圍內穩定運作。 4. 成本 設計階段就決定後續生產成本。不良設計會增加製造與測試時間,推高整體費......
空白 PCB 與零件:在空板上的建構之旅
空白 PCB 指的是尚未放置任何元件的未組裝電路板。它由覆銅基板製成,經過鑽孔、阻焊與表面處理,是工程師進行原型、實驗與 DIY 專案的畫布。這類單純的 PCB 不含元件。讓我們深入探討產業採用的標準與技術。 通用空白板 vs 預佈線原型板 通用空白板為覆銅板與通用洞洞板,屬於覆蓋銅箔的絕緣基板,可自行蝕刻或手動配線,適合客製形狀與一次性實驗,常用於實驗室、小量蝕刻或手動設計走線。 預佈線原型板則為洞洞板與 SMD 網格板,已預製孔陣列或 SMD 焊盤,方便由麵包板過渡到 PCB,適合 DIY 專案,優勢在於快速而非客製走線。兩者各有定位:通用空白板重客製,預佈線原型板重速度。 覆銅類型:單面 vs 雙面 vs 多層 單面 (1 層): 僅在電路板一側覆銅,成本低、機械穩定性佳,適合不需複雜走線且可接受跳線的專案。 雙面 (2 層): 雙面覆銅並有鍍通孔與導通孔,可在兩面走線,最常見。通常一面為地平面,另一面為訊號走線,是複雜度較低 PCB 的經濟選擇。 多層 (4 層以上): 針對高密度與複雜設計,需多層與適當疊構,以控制阻抗或高雜訊/高速電路。高速設計時須兼顧訊號與電源完整性。 空白 PCB ......