如何用 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,我們一定會考慮推薦!
持續學習
SPICE仿真不收斂:矩陣求解、收斂錯誤與優化方法
硬體開發進行電路模擬時,不少工程師都遇過仿真長時間停留在 99.9% 進度並報錯的狀況,常見提示包括 Singular Matrix(奇異矩陣)、Convergence Failed(收斂失敗)以及 Time Step Too Small(時間步長過小)。 現代 EDA 軟體的操作介面十分直觀,只要拖放元件並連接線路就能執行電路模擬,但這也容易讓設計者忽略仿真背後的數學運算邏輯。不論介面多便捷,SPICE 類工具的核心工作都是求解線性或非線性代數方程。原理圖會先轉換為網表,再由求解器透過離散模型近似真實電路的連續物理變化。若要有效排除不收斂問題,就需要理解矩陣建立、迭代與時間離散的基本機制。 一、網表背後的核心演算法:修正節點分析法 MNA 開始仿真後,軟體不會直接從圖形計算電流與電壓,而是先將電路拓撲與元件參數轉換為數值網表。主流 SPICE 求解器通常採用修正節點分析法(Modified Nodal Analysis,MNA),以基爾霍夫電流定律(KCL)為基礎,為獨立節點及部分支路電流建立方程。 線性電路的矩陣表示 對由電阻、獨立電流源與獨立電壓源等線性元件構成的電路,求解器可建立以下線性方......
掌握 PCB 封裝焊墊設計:最佳實務指南
重點摘要 PCB 封裝焊墊圖案(land pattern)會將元件資料表中的尺寸轉換成銅箔銲墊、防焊開窗、錫膏鋼板開孔、絲印及間距區域,確保銲接與組裝可靠。 銲墊尺寸、間距及各層設計應遵循 IPC-7351 標準與製造商的可製造性設計(DFM)規則,以減少錫橋、立碑及銲點裂紋等缺陷。 應依電氣需求、散熱表現、組裝方式及生產數量,在穿孔式(THT)與表面黏著(SMT)封裝焊墊之間作出選擇。 正確的銲墊尺寸、防焊橋(最小 0.1 mm)及錫膏鋼板開孔設計,可避免組裝缺陷並提高一次通過良率。 JLCPCB 提供一站式精密製造與組裝服務,具備嚴格的 ±0.1 mm 公差、經驗證的元件資料庫及免費 DFM 分析工具。 什麼是 PCB 封裝焊墊圖案?為什麼如此重要? PCB 封裝焊墊圖案又稱 land pattern,是將電子元件連接至印刷電路板的實體配置。它會把元件資料表中的機械尺寸轉換成銅箔銲墊、防焊開窗、錫膏鋼板開孔、絲印標記及間距區域,讓元件能夠可靠地銲接及組裝。 準確的 PCB 封裝焊墊圖案是電子產品成功製造的基礎。即使銲墊尺寸、間距或對位只有些微偏差,也可能造成錫橋、銲角不足、立碑等缺陷,或導致銲......
如何判定正確的 PCB 電壓間距,打造安全可靠的設計
重點摘要 Clearance 是空氣間隙;Creepage 是表面路徑——兩者對高電壓安全都至關重要。 間距應依峰值電壓設定,並遵循 IPC-2221 / IEC 60664-1 標準。 主要影響因素包括:電壓、污染等級、CTI、海拔高度與導體位置。 可使用隔離槽、護環與三防漆來最佳化間距。 量產前務必進行間距計算、DFM 檢查與 Hipot 耐壓測試。 為什麼兩條銅走線在 5V 下運作正常,到了 400V 卻突然電弧擊穿並燒毀?難道只是因為它們是銅,間距規則就變了嗎?如果 PCB 電壓間距不正確,這可能就是一片板子能穩定使用 10 年,或一上電就失效的差別。電壓間距是導體之間的距離,用來避免電流透過空氣擊穿,或沿著板面產生放電。隨著設計逐漸轉向更高電壓的馬達驅動器、LED 驅動器與電源供應器,這項距離要求變得更加重要。 這種隔離已不只是建議,而是強制性的安全問題。間隙不足會導致電弧、漏電痕跡與災難性失效。本指南將釐清 PCB 電壓間距的概念,說明影響它的因素與重要性,以及讓電路板保持安全的設計與製造技巧。讀完後,您將能使用間距計算器取得數值,並有信心地套用到設計中。 為什麼電壓間距在 PCB 設......
銅箔竊盜如何平衡您的 PCB 以獲得更好的製造結果
PCB 銅補償(Copper Thieving)指南 你是否曾在裸板 PCB 上看到空白區域有小圓點、方塊或網格設計?這就是銅補償(Copper Thieving)的作用,它是改善 PCB 製造均勻性最有效卻經常被忽略的技術之一。若沒有銅補償,板子可能出現鍍層不均、翹曲、蝕刻不均或阻抗問題,使得優秀設計在量產時成為惡夢。 隨著現代 PCB 越來越高密度,板上功能元件越來越多,但也會留下大面積空白層壓區,與密集銅區相鄰,形成銅分布不均問題。銅補償透過在空白區添加非功能性銅圖案來平衡整板的銅分布。 銅補償的重要性 隨著電路複雜度增加,PCB 層內的銅分布變得不均勻。例如一個角落可能有密集接地平面,而另一角落只有零星走線。這種不均衡正是銅補償發揮作用的地方。 銅補償的概念與工作原理 銅補償是在 PCB 層稀疏區域添加非功能性銅圖案(稱為 copper thieves),這些圖案不與任何電氣網路連接,僅用於平衡整板銅密度。在電鍍過程中,電流會偏向孤立銅區,造成鍍厚不均。加入銅補償後,電流分布更均勻,使鍍層厚度一致。 常見銅補償圖案 圓點圖案:小圓形焊盤網格,直徑通常 20–40 mil 方形圖案:規則方形......
ZIF 連接器以無需工具的可靠性簡化軟性電路板組裝
ZIF(零插入力)連接器簡介 曾經嘗試將柔性排線插入連接器時,感覺阻力很大,甚至擔心拉斷尾端或損壞連接器外殼嗎?這正是 ZIF 技術要解決的問題。零插入力(Zero Insertion Force, ZIF)連接器允許將柔性印刷線路(FPC)或扁平電纜(FFC)滑入插座,幾乎不需用力,然後用機械操作將電纜牢固固定。隨著裝置變薄、板面空間縮小以及組裝產線增長,ZIF 連接器已成為不可或缺的技術。 ZIF 連接器在柔性 PCB 設計中的需求 柔性與剛柔結合 PCB 已不再是小眾產品。智慧手機、筆電、穿戴裝置、醫療儀器與車載顯示器都需要可靠的柔性到剛性互連。錯位會造成間歇性接觸、訊號中斷及昂貴返工。ZIF 技術可解決這些問題。 ZIF 連接器的工作原理 ZIF 連接器是兩件式設計:FPC 或 FFC 插入時幾乎無電氣接觸,插入後使用翻轉式或滑動式機械桿(Actuator)施加壓力,使電纜接點與連接器端子可靠接觸。 工具免使用的重要性 ZIF 連接器無需特殊工具即可插拔。操作員只需用指尖或簡單塑膠工具即可打開操作桿、插入電纜並鎖定,生產效率可在 3 秒內完成,而傳統摩擦式連接可能耗時更久。 ZIF 連接器......
印刷電路板設計中的環形環:掌握可靠的導孔連接與精密製造
事實上,我有一個值得思考的問題:你上次實際計算 PCB 最壞情況下的環形圈尺寸,並納入所有製造公差是什麼時候?當你說沒有,或是最近沒有,你絕對不是唯一一個。我們通常只是將焊盤尺寸縮放至 EDA 預設值或我們已經用過的數值,而沒有進一步檢查這個數字是否符合實際的鑽孔偏移、層間對位誤差和蝕刻補償。鍍通孔孔壁與各層銅焊盤之間唯一的機械和電氣連接,就是圍繞在所有已鑽孔洞周圍的那一圈薄薄的銅環。 當它剛好足夠時,根本沒有人會注意到它。一旦它處於臨界狀態,你就會遇到間歇性故障,這些故障會持續存在,並在數月後困擾生產工程師。今天,我們將超越教科書的定義。我們將解構實際上決定你實際環形圈餘裕的公差累積,仔細審視 IPC-6012 等級要求(並給予它們應有的重視),同時也會探討在佈線密度與製造穩健性之間取得平衡的設計技巧。 超越基本公式:究竟是什麼決定了你的環寬 你可以自己計算:環形圈的寬度是焊盤直徑與鑽孔直徑差值的一半。因此,一個 0.7mm 的焊盤和 0.3mm 的鑽孔,在任何一側的環寬都是 0.2mm,或大約 8mil。問題在於,這樣一個小小的計算結果更像是個標稱數值,而非你經過整個製造鏈後會得到的數值。實際......
