自建指南:從符號(hào)封裝到集成庫(kù)復(fù)用)
簡(jiǎn)介面向使用 Altium Designer 進(jìn)行原理圖與 PCB 設(shè)計(jì)的電子工程師、硬件開發(fā)者及在校學(xué)生這份元件庫(kù)用于解決元器件符號(hào)和封裝分散、需逐個(gè)手工建庫(kù)的問題。壓縮包共 236 個(gè)文件約 2.9MB包含 92 個(gè)原理圖庫(kù)schlib、59 個(gè) PCB 封裝庫(kù)pcblib、8 個(gè)集成庫(kù)intlib以及 libpkg、zip、PDF 說明和工程結(jié)構(gòu)文件等schlib 負(fù)責(zé)原理圖符號(hào)pcblib 對(duì)應(yīng) PCB 焊盤與外形intlib 則把符號(hào)和封裝綁定便于直接放置調(diào)用。包內(nèi)覆蓋常用連接器、分立元件、IC 等類別并提供常用元件封裝與集成庫(kù)配合 HTML/PDF 文檔可快速核對(duì)封裝外形和引腳定義。已有 233 人學(xué)習(xí)下載適合希望統(tǒng)一元件庫(kù)規(guī)范、減少重復(fù)建庫(kù)工作的開發(fā)者和學(xué)生。整套庫(kù)結(jié)構(gòu)清晰、體量緊湊既能作為初學(xué)者入門時(shí)的現(xiàn)成元件來源也能為團(tuán)隊(duì)提供相對(duì)統(tǒng)一的庫(kù)基礎(chǔ)從而降低畫原理圖與布 PCB 時(shí)的匹配錯(cuò)誤提升設(shè)計(jì)效率。1. 元件庫(kù)不是裝完就完事Altium Designer元件庫(kù)的形態(tài)與價(jià)值如果你畫過一塊幾十顆料的小板子多半碰到過這個(gè)場(chǎng)景原理圖快畫完發(fā)現(xiàn)某個(gè)偏門芯片翻遍系統(tǒng)庫(kù)都沒有只能把幾十個(gè)引腳一個(gè)個(gè)手動(dòng)畫出來。Altium Designer元件庫(kù)這類資源存在的意義就是把這一步從“現(xiàn)場(chǎng)造輪子”變成“拿起來就用”。它至少包含原理圖符號(hào)、PCB封裝和3D模型三層信息組合方式不同項(xiàng)目管理的效率差很多。這篇筆記適合剛轉(zhuǎn)硬件設(shè)計(jì)、正被庫(kù)折磨的新手也適合庫(kù)越堆越亂、想徹底梳理一遍的熟手。讀完可以照著搭一套能長(zhǎng)期復(fù)用的元件庫(kù)工作流從建符號(hào)到做封裝再到避坑一路落到可執(zhí)行的細(xì)節(jié)。2. 原理圖符號(hào)、PCB封裝、集成庫(kù)元件庫(kù)的構(gòu)成與選型邏輯2.1 元件庫(kù)其實(shí)由三層信息組成很多剛接觸硬件的人以為元件庫(kù)就是某個(gè)文件其實(shí) AD 的庫(kù)是一套分工明確的文件體系。原理圖符號(hào)庫(kù).SchLib跑在原理圖端負(fù)責(zé)提供器件圖形與引腳邏輯關(guān)系PCB封裝庫(kù).PcbLib跑在版圖端負(fù)責(zé)提供焊盤、絲印和三維外形集成庫(kù).IntLib是把前兩者連同默認(rèn)參數(shù)編譯在一起的歸檔產(chǎn)物再有就是數(shù)據(jù)庫(kù)元件庫(kù).DbLib它不直接存放圖形而是通過外部數(shù)據(jù)表映射到符號(hào)庫(kù)和封裝庫(kù)。我早期吃過一個(gè)虧項(xiàng)目里同時(shí)用系統(tǒng)庫(kù)、官網(wǎng)下載庫(kù)和自己畫的符號(hào)結(jié)果同一顆 LDO 在三個(gè)庫(kù)里出現(xiàn)了三套引腳順序。原理圖里看著都是三個(gè)腳導(dǎo)入 PCB 后飛線亂成一團(tuán)。后來我才意識(shí)到庫(kù)文件之間是靠“引腳數(shù)字編號(hào)”和“焊盤數(shù)字編號(hào)”建立對(duì)應(yīng)關(guān)系的符號(hào)庫(kù)里的 Designator 與封裝庫(kù)里的 Pad Designator 一旦對(duì)不上連線就會(huì)張冠李戴。這個(gè)對(duì)應(yīng)關(guān)系是整套庫(kù)體系里最核心的紐帶。四種庫(kù)的定位不同混著用和分開用的差別很大庫(kù)類型文件后綴存放內(nèi)容使用方式典型適用原理圖符號(hào)庫(kù).SchLib符號(hào)、引腳原理圖放置快速畫圖PCB封裝庫(kù).PcbLib焊盤、絲印、3D布局時(shí)調(diào)用版圖設(shè)計(jì)集成庫(kù).IntLib符號(hào) 封裝 參數(shù)打包安裝單機(jī)、小團(tuán)隊(duì)數(shù)據(jù)庫(kù)元件庫(kù).DbLib映射關(guān)系 外部參數(shù)關(guān)聯(lián)數(shù)據(jù)表多人、量產(chǎn)團(tuán)隊(duì)這一段對(duì)應(yīng)關(guān)系很容易被忽略而它恰恰是后面所有自建庫(kù)工作流的前提。理解了這個(gè)結(jié)構(gòu)再去判斷系統(tǒng)自帶庫(kù)夠不夠用就有了判斷依據(jù)。2.2 系統(tǒng)自帶庫(kù)不夠用的三個(gè)現(xiàn)實(shí)問題系統(tǒng)自帶的庫(kù)體量不小但落到具體項(xiàng)目上往往會(huì)露出三塊短板。第一是覆蓋不全。冷門封裝、最近發(fā)布的傳感器、國(guó)內(nèi)供應(yīng)鏈更常見的替代料系統(tǒng)庫(kù)里經(jīng)常找不到。早些年我做一個(gè)某工業(yè)通信模塊需要一顆帶隔離的電源模塊翻了半天自帶庫(kù)只有引腳數(shù)量相似的普通電源符號(hào)硬著頭皮改引腳編號(hào)結(jié)果原理圖可讀性變得很差。第二是工藝參數(shù)和自己不匹配。自帶庫(kù)里的焊盤擴(kuò)張、阻焊開窗、絲印線寬都是通用工藝給的和自家PCB疊層、鋼網(wǎng)間距對(duì)不上。第三是多人協(xié)作時(shí)可維護(hù)性差。你改了我沒改同一顆料在不同項(xiàng)目里長(zhǎng)出兩套尺寸后續(xù)維護(hù)起來相當(dāng)頭疼。這三個(gè)問題單拎出來任何一個(gè)都不算致命組合在一起就是量產(chǎn)前最怕的連鎖返工。我自己經(jīng)歷過一次因?yàn)榉庋b里焊盤短了一截貼片后虛焊率莫名升高最后查到是某個(gè)官網(wǎng)庫(kù)里的老封裝根本沒按最新數(shù)據(jù)手冊(cè)更新。從那以后凡是進(jìn)我項(xiàng)目里的庫(kù)不管來源是哪都要過一遍自己的參數(shù)檢查流程。自建庫(kù)聽起來耗時(shí)實(shí)際一筆賬算下來并不虧。一顆常規(guī)芯片認(rèn)真畫符號(hào)加做封裝熟練后半小時(shí)內(nèi)能完成但一個(gè)項(xiàng)目里省下的排查時(shí)間往往是以天為單位的。磨刀不誤砍柴工在元件庫(kù)這件事上體現(xiàn)得特別明顯。2.3 集成庫(kù)與數(shù)據(jù)庫(kù)元件庫(kù)怎么選選集成庫(kù)還是數(shù)據(jù)庫(kù)元件庫(kù)我一般按人數(shù)和復(fù)雜度來決定。個(gè)人項(xiàng)目或三五人的整機(jī)項(xiàng)目用集成庫(kù)就夠了把符號(hào)、封裝、3D模型全部打進(jìn)一個(gè) .IntLib安裝一次就能全項(xiàng)目復(fù)用換機(jī)器也只需要帶一個(gè)文件。代價(jià)是每改一次庫(kù)就要重新編譯一次但個(gè)人項(xiàng)目迭代頻率不高這點(diǎn)成本完全可以接受。超過十個(gè)人的團(tuán)隊(duì)尤其是要對(duì)接采購(gòu)和產(chǎn)線的場(chǎng)景建議直接上數(shù)據(jù)庫(kù)元件庫(kù)。物料編號(hào)、精度等級(jí)、溫度范圍這些參數(shù)放在外部數(shù)據(jù)表里圖形層保持獨(dú)立換替代料時(shí)只需要更新表格不需要改動(dòng)原理圖庫(kù)。缺點(diǎn)是路徑和權(quán)限都要管住庫(kù)文件一旦移動(dòng)位置打開工程時(shí)大概率彈出找不到庫(kù)的提示。如果不知道怎么選就從集成庫(kù)起步這是風(fēng)險(xiǎn)最小的方案。等團(tuán)隊(duì)真到了需要統(tǒng)一物料編碼的階段再把集成庫(kù)平滑遷移到數(shù)據(jù)庫(kù)庫(kù)。要注意的是數(shù)據(jù)庫(kù)庫(kù)要求庫(kù)文件的路徑其實(shí)比集成庫(kù)更嚴(yán)格因?yàn)槌藞D形文件本身還有一個(gè)數(shù)據(jù)源連接信息缺了哪一個(gè)都會(huì)在放置器件的時(shí)候卡住。3. 自建原理圖符號(hào)庫(kù)引腳排布與引腳電氣類型是符號(hào)的靈魂3.1 新建原理圖庫(kù)后第一件事是定柵格與原點(diǎn)打開 AD 后File → New → Library → Schematic Library 新建一個(gè)原理圖庫(kù)真正動(dòng)手前先把柵格定好。我會(huì)把原理圖庫(kù)編輯器的柵格設(shè)成 0.1mm原點(diǎn)放在符號(hào)的幾何中心默認(rèn)引腳方向指向右側(cè)。原因很直接原理圖講究可讀性信號(hào)默認(rèn)從左進(jìn)右出電源引腳放在上方、地引腳放在下方整張圖流向才清楚。柵格設(shè)得太密畫出來的符號(hào)歪歪扭扭引腳對(duì)不齊網(wǎng)格后續(xù)連線時(shí)總覺得別扭設(shè)得太疏又放不下短引腳。0.1mm 對(duì)我來說是兩者之間的平衡點(diǎn)。放引腳前先把網(wǎng)格捕捉打開確保每個(gè)引腳端點(diǎn)都落在網(wǎng)格點(diǎn)上這是一個(gè)很瑣碎但很重要的習(xí)慣。引腳端點(diǎn)不落網(wǎng)格連線時(shí)導(dǎo)線拐角就會(huì)多出一些奇怪的小段嚴(yán)重時(shí)甚至影響 ERC 判斷。在新建庫(kù)的編輯界面里View → Grids 可以設(shè)置捕捉柵格和可視柵格我習(xí)慣把捕捉柵格設(shè)為 0.1mm可視柵格設(shè)為 1mm。這樣看起來是一個(gè)個(gè)小格實(shí)際放置時(shí)精度又夠用。設(shè)置這一步花一分鐘后面畫一個(gè)復(fù)雜芯片的符號(hào)時(shí)能省下不少調(diào)整坐標(biāo)的時(shí)間。3.2 放置引腳與參數(shù)填寫Designator、Name與Electrical Type放置引腳快捷鍵是 PP也就是 Place 菜單下的 Pin。放的時(shí)候按空格鍵旋轉(zhuǎn)方向確保電氣端點(diǎn)朝外也就是引腳連接導(dǎo)線的那一端朝外靠近符號(hào)體的一端留著。電氣端點(diǎn)方向放反是新手畫符號(hào)最常見的錯(cuò)誤看起來引腳還是在原來的位置實(shí)際連線時(shí)導(dǎo)線會(huì)接在符號(hào)體上而不是引腳上。雙擊引腳打開屬性面板有三項(xiàng)必須填對(duì)。第一項(xiàng)是 Designator這是引腳編號(hào)必須與封裝里的焊盤編號(hào)一一對(duì)應(yīng)第二項(xiàng)是 Display Name也就是引腳名VCC、GND、SDA 這些要從數(shù)據(jù)手冊(cè)抄準(zhǔn)確第三項(xiàng)是 Electrical Type決定了這個(gè)引腳在 ERC 網(wǎng)絡(luò)檢查里的身份。電氣類型里Input、Output、Bidirectional、Power、Passive 五類最常用。把類型標(biāo)錯(cuò)的后果很隱蔽一個(gè)實(shí)際是 Open Drain 的引腳標(biāo)成 OutputERC 時(shí)把它和另一個(gè) Output 直接連在一起卻不報(bào)錯(cuò)等到 PCB 階段才發(fā)現(xiàn)網(wǎng)絡(luò)拓?fù)洳粚?duì)。下面這張表是引腳屬性的關(guān)鍵參數(shù)用法屬性作用填錯(cuò)后的典型后果Designator對(duì)應(yīng)封裝焊盤編號(hào)網(wǎng)表錯(cuò)位、飛線亂Display Name原理圖上顯示的引腳名原理圖審查難發(fā)現(xiàn)Electrical TypeERC 判斷連接合法性漏報(bào)或誤報(bào)Hidden控制引腳是否顯示原理圖過于雜亂Net隱藏引腳連接的網(wǎng)絡(luò)電源引腳意外懸空引腳幾何位置重疊這個(gè)問題編譯不報(bào)錯(cuò)但實(shí)際存在。放完所有引腳后我會(huì)全選引腳在屬性面板里按坐標(biāo)排序檢查一遍確認(rèn)沒有任何兩個(gè)引腳落在同一坐標(biāo)上。引腳重疊在原理圖里看起來像一根“粗引腳”但導(dǎo)入 PCB 后網(wǎng)表會(huì)混亂。3.3 隱藏電源引腳與多引腳符號(hào)分區(qū)技巧很多引腳其實(shí)不想在符號(hào)上顯示尤其是電源和地。雙擊 VCC 引腳把 Hidden 打勾在 Net 里填 VCC 網(wǎng)絡(luò)名放置器件時(shí)這個(gè)引腳不顯示但連線時(shí)會(huì)自動(dòng)接到 VCC 網(wǎng)絡(luò)。這個(gè)技巧能大幅縮小符號(hào)尺寸讓原理圖更干凈。但這個(gè)技巧也埋著隱患如果同一張?jiān)韴D里有 VCC 和 VCCA 兩個(gè)網(wǎng)絡(luò)名隱藏引腳只會(huì)固定接到 Net 里填寫的那個(gè)名字。所以隱藏前一定要和原理圖里的網(wǎng)絡(luò)名對(duì)全填錯(cuò)一個(gè)字母整板電源網(wǎng)絡(luò)就悄悄接錯(cuò)。我在一個(gè)混合信號(hào)項(xiàng)目里就翻過車模擬電源和數(shù)字電源網(wǎng)絡(luò)名不同隱藏引腳填了 VCC結(jié)果模擬部分一半的供電都接到了數(shù)字電源上。引腳數(shù)量多的 IC可以把引腳按功能分區(qū)畫成多個(gè)符號(hào)塊。模擬輸入放在左側(cè)數(shù)字接口放右側(cè)電源與地集中到頂部每個(gè)符號(hào)塊用不同的邊框顏色區(qū)分。這樣做的好處不只美觀更在于畫原理圖時(shí)可以直接按功能擺放器件審查原理圖時(shí)也更容易發(fā)現(xiàn)引腳連接錯(cuò)誤。值得提醒的是同一個(gè)器件拆成多個(gè)符號(hào)塊后引腳編號(hào)仍然要全局唯一不能在每個(gè)塊里都從 1 開始編。3.4 編譯符號(hào)庫(kù)遇到報(bào)錯(cuò)先看這三類符號(hào)畫完先別急著做封裝先編譯一遍。在庫(kù)文件上右鍵 Compile Schematic Library重點(diǎn)看三類錯(cuò)誤。第一類是 Duplicate Pin編號(hào)重復(fù)對(duì)應(yīng)封裝時(shí)必然出問題。第二類是 Unconnected Pin往往是把引腳類型標(biāo)成了 Input 卻沒有真正連上網(wǎng)絡(luò)ERC 階段會(huì)一直報(bào)警。第三類是 Mismatched Pin Name數(shù)據(jù)手冊(cè)里的引腳名和符號(hào)里的名稱不一致帶后綴編號(hào)的芯片尤其容易踩。編譯不過并不是大問題怕的是編譯通過但引腳幾何位置重疊這在原理圖里看不到等導(dǎo)入 PCB 布局時(shí)才暴露。所以編譯過后我會(huì)順手把所有引腳選中看一眼屬性面板里有沒有重疊坐標(biāo)。還有一個(gè)容易被忽略的細(xì)節(jié)原理圖符號(hào)庫(kù)文件本身也應(yīng)該參與項(xiàng)目管理不要讓它在硬盤上孤立存在把 .SchLib 與對(duì)應(yīng)的 .PcbLib 放在同一個(gè)庫(kù)項(xiàng)目里后續(xù)編譯集成庫(kù)時(shí)才不會(huì)滿世界找文件。4. 自建PCB封裝庫(kù)IPC封裝向?qū)c焊盤參數(shù)不是隨手填的4.1 用IPC封裝向?qū)煞庋b骨架畫封裝最穩(wěn)妥的起點(diǎn)是 Tools → IPC Compliant Footprint Wizard。這個(gè)向?qū)О雌骷愋蜕沙叽鐓?shù)化的封裝骨架不需要手動(dòng)放置每一個(gè)焊盤。選擇封裝系列時(shí)SOIC、QFP、BGA 各有不同的輸入項(xiàng)按數(shù)據(jù)手冊(cè)把尺寸填進(jìn)去先別急著點(diǎn) Finish在預(yù)覽界面里重新檢查一遍數(shù)值。以最常見的 SOIC-8 為例向?qū)Ю锿ǔP枰P(guān)注這幾個(gè)關(guān)鍵參量參數(shù)含義常規(guī)參考值e相鄰引腳中心距1.27 mmb引腳寬度0.35~0.45 mmE1封裝體寬度4.0 mmE含引腳的總寬度6.0 mmL引腳外露長(zhǎng)度0.5~0.7 mm注意這些數(shù)值是通用參考值實(shí)際項(xiàng)目以采購(gòu)料號(hào)對(duì)應(yīng)的數(shù)據(jù)手冊(cè) PDF 為準(zhǔn)。向?qū)е皇菐湍愦詈霉羌懿皇潜?zhǔn)圖紙。填尺寸時(shí)最常見的錯(cuò)誤是把“封裝體寬度”和“含引腳總寬度”搞混這兩個(gè)值差了將近 2mm填錯(cuò)后生成的封裝整體偏大或偏小。生成后進(jìn)入封裝編輯界面先看一眼整體外形確認(rèn)焊盤數(shù)量與符號(hào)引腳數(shù)量一致。向?qū)可傻姆庋b焊盤編號(hào)通常從 1 到 n順序按逆時(shí)針排列這一點(diǎn)要和原理圖符號(hào)的引腳方向匹配。如果符號(hào)里引腳是按功能排列而不是按物理位置排列封裝方向就要在放置時(shí)結(jié)合旋轉(zhuǎn)角度綜合考慮。4.2 焊盤參數(shù)編號(hào)、層、尺寸與阻焊擴(kuò)張焊盤的核心參數(shù)不是只有尺寸。打開 Pad 屬性Layer 要區(qū)分 SMD 與插件貼片焊盤放在 Top Layer過孔插件焊盤放在 Multi-Layer。放錯(cuò)層的后果很直接雙面板做出來只有頂層有焊盤底層全部缺失貼片后器件直接掉下來。X-Size 和 Y-Size 決定可焊面積我一般在數(shù)據(jù)手冊(cè)推薦值基礎(chǔ)上把焊盤寬度收窄 0.05~0.1 mm給鋼網(wǎng)和貼片工藝留出余量。焊盤太寬會(huì)擠占相鄰焊盤間隙太窄又會(huì)造成虛焊。Shape 選 Round、Rectangle 還是 Oblong取決于引腳形狀和間距引腳細(xì)長(zhǎng)的選 Rectangle 更貼合實(shí)際錫膏形狀電源類引腳選 Round 更耐熱沖擊。熱風(fēng)焊盤也是焊盤參數(shù)里容易忽略的部分。在多層板電源平面上通過過孔連接的插件焊盤需要設(shè)置 thermal relief否則焊盤與整層銅皮直連回流焊時(shí)散熱太快焊點(diǎn)容易出現(xiàn)冷焊。設(shè)置路徑在 Pad 屬性里的 Power Plane Connect一般選擇 Relief Connect開口寬度按電流大小調(diào)整。SMD 焊盤不需要 thermal relief這個(gè)參數(shù)只影響插件焊盤與內(nèi)電層的連接。阻焊擴(kuò)張 Solder Mask Expansion 通常默認(rèn) 0.1 mm這個(gè)值要結(jié)合板廠開窗能力調(diào)整。后面避坑章節(jié)我會(huì)詳細(xì)說這里只提醒一句阻焊開窗不是越大越好開太大等于沒有阻焊橋。4.3 3D模型導(dǎo)入與原點(diǎn)校準(zhǔn)焊盤和絲印都完成后Place → 3D Body → Generic STEP Model 導(dǎo)入模型文件。AD 支持 STEP 格式帶進(jìn)真實(shí)的裝配外形后后續(xù)結(jié)構(gòu)干涉檢查才有意義。很多封裝庫(kù)只畫了焊盤和絲印沒有 3D 模型短時(shí)間看不出問題一旦需要做結(jié)構(gòu)裝配驗(yàn)證就會(huì)卡住。導(dǎo)入后第一件事是把模型原點(diǎn)與封裝原點(diǎn)對(duì)齊。常見做法是在建模軟件里把原點(diǎn)定位到底面幾何中心或者 1 腳位置再進(jìn) AD 微調(diào)。如果導(dǎo)入后模型在空中亂跑多半是 STEP 文件的原點(diǎn)離封裝太遠(yuǎn)在機(jī)械軟件里重新設(shè)置基準(zhǔn)點(diǎn)比在 AD 里硬調(diào)快得多。旋轉(zhuǎn)方向以裝配層朝上為基準(zhǔn)。導(dǎo)入后先試轉(zhuǎn) 180 度觀察絲印朝向和模型標(biāo)識(shí)方向是否一致。需要提醒的是3D Body 屬性面板里 X、Y、Z 三個(gè)軸的偏移量是獨(dú)立生效的調(diào)的時(shí)候一次只動(dòng)一個(gè)軸穩(wěn)定后再動(dòng)下一個(gè)軸。三個(gè)軸同時(shí)大范圍調(diào)整很容易越調(diào)越玄學(xué)最后自己都忘了基準(zhǔn)在哪。4.4 絲印、裝配標(biāo)記與基準(zhǔn)原點(diǎn)原點(diǎn)與裝配方向要在封裝里直接固化下來。用 Edit → Set Reference → Pin 1 把參考點(diǎn)定在 1 腳貼片機(jī)坐標(biāo)就以這里為準(zhǔn)。如果封裝原點(diǎn)留在坐標(biāo) 0,0而 1 腳離原點(diǎn)很遠(yuǎn)貼片時(shí)每一顆料都要額外計(jì)算偏移容易出系統(tǒng)誤差。絲印層上要有外框與 1 腳圓點(diǎn)。線寬常用 0.2 mm字體高度 1 mm 左右1 腳指示是裝配和焊接時(shí)最直觀的參照。還有一個(gè)容易被忽略的地方是絲印與元件本體的位置關(guān)系絲印畫到器件本體內(nèi)部貼片后會(huì)被遮住看不清畫太外又會(huì)擠占走線空間。我的習(xí)慣是絲印外框比實(shí)際封裝體四周各外擴(kuò) 0.2 mm既不遮擋焊盤也不和走線打架。完成這些后在封裝庫(kù)里跑一遍 Check Footprint確認(rèn)沒有懸空焊盤和重復(fù)編號(hào)再進(jìn)集成庫(kù)。這個(gè)檢查工具會(huì)列出所有焊盤的編號(hào)列表順便核查是否有焊盤間距過近的警告比肉眼靠譜得多。封裝庫(kù)的正規(guī)程度直接決定后面集成庫(kù)編譯順不順利。5. 原理圖到PCB元件庫(kù)高頻踩坑匯總與問題排查5.1 現(xiàn)象原理圖不報(bào)錯(cuò)布局時(shí)飛線卻全亂這是最隱蔽的一類問題。原理圖編譯和 ERC 全部通過進(jìn)入 PCB 布局后某顆 IC 的飛線像是喝了假酒該靠近的引腳不靠近不該連接的網(wǎng)絡(luò)卻纏在一起。原因出在符號(hào)里的引腳編號(hào)和封裝里的焊盤編號(hào)不是同一個(gè)數(shù)字集合。常見于從一個(gè)舊庫(kù)復(fù)制后改過引腳符號(hào)編號(hào)改成了 1 到 16封裝焊盤卻還是 P1 到 P16或者封裝復(fù)制過來時(shí)焊盤編號(hào)被系統(tǒng)重新編過。數(shù)字集合對(duì)不上網(wǎng)表映射自然錯(cuò)位。解決方式是把兩邊的編號(hào)統(tǒng)一成純數(shù)字再用第 6 章里的腳本做差集校驗(yàn)。也可以直接在原理圖里打開 Footprint Manager逐項(xiàng)核對(duì)符號(hào)引腳與封裝焊盤的映射列表改完任意一側(cè)后重新編譯集成庫(kù)。這個(gè)檢查應(yīng)該放在每次新增器件之后不要等到 PCB 布局到一半才想起來。5.2 現(xiàn)象編譯集成庫(kù)時(shí)一片報(bào)錯(cuò)編譯集成庫(kù)時(shí)彈出一排錯(cuò)誤信息里常見到 Could not find declaration 或者 Footprint not found。這個(gè)問題出現(xiàn)的頻率非常高尤其是從別人那里拷貝來的庫(kù)工程。原因通常有兩種一是原理圖庫(kù)和封裝庫(kù)沒有放在同一工程目錄編譯時(shí)找不到目標(biāo)文件二是封裝庫(kù)里殘留了重名的廢棄封裝AD 選中了不能匹配的那一個(gè)。如果庫(kù)工程里同時(shí)存在兩個(gè)名字完全相同的封裝編譯集成庫(kù)時(shí) AD 很可能選中舊的。解決方式是先把 SchLib 和 PcbLib 挪到同一個(gè) Library 文件夾在封裝庫(kù)里把冗余的舊封裝刪除然后先單獨(dú)編譯兩個(gè)源庫(kù)確認(rèn)各自無誤后再編譯 IntLib。這樣報(bào)錯(cuò)范圍會(huì)瞬間縮小因?yàn)樵磶?kù)編譯的錯(cuò)誤信息比集成庫(kù)編譯更具體直接指向某個(gè)引腳或某個(gè)焊盤。5.3 現(xiàn)象3D模型導(dǎo)入后怎么都擺不正導(dǎo)入 STEP 模型后器件本體明顯偏離焊盤旋轉(zhuǎn)后還是歪的這是硬件設(shè)計(jì)里出了名的玄學(xué)問題之一。原因只有一個(gè)3D 模型坐標(biāo)系原點(diǎn)在建模軟件里距離器件本體太遠(yuǎn)。AD 側(cè)幫你做的位移是按模型原點(diǎn)來計(jì)算的模型源點(diǎn)不同偏移自然不對(duì)。一個(gè)模型文件里如果有多個(gè)實(shí)體原點(diǎn)可能在裝配體的角上而這個(gè)角距離器件本體好幾毫米導(dǎo)入后自然亂跑。解決方式是在機(jī)械工具里把模型原點(diǎn)調(diào)整到底面中心或 1 腳位置再另存 STEP 重新導(dǎo)入。如果只是旋轉(zhuǎn)偏差在 3D Body 屬性里分別按 X、Y、Z 軸旋轉(zhuǎn) 180 度逐軸觀察裝配方向。經(jīng)驗(yàn)是千萬別同時(shí)在三個(gè)軸上都放大角度一次只調(diào)一個(gè)軸看著穩(wěn)定了再動(dòng)下一個(gè)。5.4 現(xiàn)象CAM里焊盤開窗連成一片在 CAM 軟件里預(yù)覽 Gerber發(fā)現(xiàn)相鄰焊盤之間的阻焊橋只剩一絲甚至看起來完全連成一片。這種現(xiàn)象在小間距器件周圍最容易出現(xiàn)。原因是 Solder Mask Expansion 設(shè)得太大。對(duì)于 0.5 mm 甚至更小間距的器件阻焊開窗面積疊加后幾乎覆蓋了整個(gè)焊盤間隙。默認(rèn)的 0.1 mm 在很多常規(guī)工藝下夠用但遇到引腳密集的封裝就會(huì)出問題。解決方式是把對(duì)應(yīng)焊盤的阻焊擴(kuò)張從默認(rèn) 0.1 mm 調(diào)到 0.05 mm 左右并在 DRC 里新增 Solder Mask Expansion 規(guī)則把最小間隔約束起來。改完重出 Gerber在 CAM 里放大看中間那道阻焊橋是否清晰。順帶提一句鋼網(wǎng)開孔尺寸是另一套參數(shù)改阻焊不會(huì)影響鋼網(wǎng)別用開窗去反推鋼網(wǎng)。5.5 現(xiàn)象項(xiàng)目換臺(tái)電腦就找不到庫(kù)工程文件拷貝到另一臺(tái)電腦或發(fā)給下家后器件全部變成 Unknown或提示找不到庫(kù)文件。這個(gè)問題在多人協(xié)作時(shí)特別常見。原因是 Libraries 面板里登記的是絕對(duì)路徑比如 D:\MyLib...到了別人的電腦上盤符和目錄都不存在。集成庫(kù)文件雖然自帶符號(hào)和封裝但安裝路徑仍然是絕對(duì)的。解決方式是把庫(kù)文件全部收進(jìn)工程目錄下的 Libraries 子文件夾在 Project → Project Options → Options 里勾選 Store relative paths重新裝載庫(kù)后保存工程。這樣整個(gè)工程連同庫(kù)一起打包換機(jī)器基本不用再清理路徑。這也是我每次整理完項(xiàng)目后強(qiáng)制走一遍的步驟省掉了很多交付階段的來回扯皮。6. 批量校驗(yàn)?zāi)_本與庫(kù)模板化把元件庫(kù)沉淀成可復(fù)用資產(chǎn)6.1 用Python腳本快速比對(duì)引腳與焊盤編號(hào)到了批量維護(hù)階段靠肉眼核對(duì)上百個(gè)引腳的編號(hào)并不現(xiàn)實(shí)。比較可靠的方式是把兩邊的編號(hào)導(dǎo)成 CSV 后做集合比對(duì)。在 AD 里選中原理圖庫(kù)文件用導(dǎo)出功能把引腳編號(hào)與名稱導(dǎo)出為 symbol_pins.csv列名為 pin 和 name封裝庫(kù)同樣導(dǎo)出 footprint_pads.csv列名為 pad。兩個(gè) CSV 放在腳本同目錄下首次運(yùn)行前先確認(rèn)表頭沒有被本地化設(shè)置改成中文列名。下面這段 Python 腳本做差集比對(duì)邏輯很直接import csv def read_numbers(path, field): values set() with open(path, newline, encodingutf-8) as f: for row in csv.DictReader(f): values.add(row[field].strip()) return values symbol_pins read_numbers(symbol_pins.csv, pin) footprint_pads read_numbers(footprint_pads.csv, pad) only_symbol symbol_pins - footprint_pads only_footprint footprint_pads - symbol_pins if only_symbol: print(符號(hào)庫(kù)有、封裝庫(kù)沒有的編號(hào):, sorted(only_symbol)) if only_footprint: print(封裝庫(kù)有、符號(hào)庫(kù)沒有的編號(hào):, sorted(only_footprint)) if not only_symbol and not only_footprint: print(編號(hào)集合一致可以繼續(xù))腳本的核心邏輯是把兩邊的編號(hào)讀成集合再做差集。只要差集為空說明符號(hào)與封裝在編號(hào)這一層對(duì)齊了。有差集時(shí)輸出里會(huì)直接列出是符號(hào)多還是封裝多照著提示進(jìn)庫(kù)編輯器改就行。參數(shù)方面symbol_pins.csv 的字段名固定為 pinfootprint_pads.csv 的字段名固定為 pad字段不對(duì)就把表頭改掉再跑。腳本只處理編號(hào)匹配不校驗(yàn)幾何尺寸封裝本身的尺寸還是依賴數(shù)據(jù)手冊(cè)和人眼復(fù)核。這段腳本幫我解決過好幾次批量換料的問題。一次是某個(gè)通信模塊項(xiàng)目里二十多顆電容電阻同時(shí)換封裝靠腳本一次性查出了三顆物料編號(hào)錯(cuò)位省下了大半天人工核對(duì)時(shí)間。6.2 把建好的庫(kù)做成模板并固化歸檔流程腳本之外我把整套庫(kù)維護(hù)流程本身做成了模板。電腦里保留一份 Libraries 模板目錄每加一顆料就新建一個(gè)子目錄目錄下放符號(hào)庫(kù)、封裝庫(kù)、3D 模型和一份該料數(shù)據(jù)手冊(cè)的關(guān)鍵頁(yè)截圖。新項(xiàng)目開工時(shí)直接把模板目錄整體復(fù)制到工程里再在 Libraries 面板里添加進(jìn)項(xiàng)目不用每次從零開始找文件。版本更新時(shí)按固定順序走先改符號(hào)或封裝圖形再重新編譯對(duì)應(yīng)源庫(kù)接著跑一次腳本確認(rèn)編號(hào)一致最后編譯集成庫(kù)并存到 Released 文件夾。這個(gè)順序看著簡(jiǎn)單但順序一旦打亂比如先編譯集成庫(kù)再改封裝就會(huì)把舊封裝編進(jìn)去等于白干。有一次我臨時(shí)趕進(jìn)度跳過了編號(hào)比對(duì)這一步結(jié)果一塊四層板在制板前才發(fā)現(xiàn)有一排引腳錯(cuò)位只能重新改庫(kù)重新出 Gerber交期硬生生拖了三天。從那以后每加一顆料我都強(qiáng)制走一遍完整流程查數(shù)據(jù)手冊(cè)畫符號(hào)開 IPC 向?qū)煞庋b把 3D 模型對(duì)齊到原點(diǎn)跑一次編號(hào)校驗(yàn)?zāi)_本最后編譯集成庫(kù)歸檔。這套流程固定下來之后再?zèng)]因?yàn)閹?kù)的問題在制板前翻過車。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取