計:從原理圖到PCB的硬件開發(fā)實戰(zhàn))
簡介本資源是一份基于STM32F407ZGT6芯片的完整核心板AD硬件設(shè)計資料面向嵌入式系統(tǒng)開發(fā)者、高校電子類專業(yè)學(xué)生及STM32初學(xué)者解決硬件入門設(shè)計參考缺失、原理圖復(fù)用困難、外設(shè)接口驗證無依據(jù)等實際問題。壓縮包共178個文件包含1個主原理圖SchDoc、1個PCB工程PrjPcb、1個封裝庫PcbLib、1個原理圖庫SchLib及多個ECO變更日志與DRC規(guī)則檢查報告輔以HTML預(yù)覽頁和大量LOG記錄清晰呈現(xiàn)從v1到v3的迭代優(yōu)化過程。資源大小僅1.31MB輕量易下載結(jié)構(gòu)規(guī)范便于快速定位關(guān)鍵模塊。已有4220人學(xué)習(xí)下載讀者可直接獲取USB_HOST、CAMERA18Pin、LCD、SD卡、雙IIC/SPI、三路USART等外設(shè)的標(biāo)準(zhǔn)電路實現(xiàn)方案并結(jié)合DRC報告與ECO日志理解設(shè)計約束與布線規(guī)范顯著提升硬件設(shè)計效率與可靠性驗證能力。1. 項目概述從零開始設(shè)計一塊STM32F407ZGT6核心板最近在整理自己的硬件項目庫發(fā)現(xiàn)很多基于STM32F407的項目都散落在不同的開發(fā)板上每次復(fù)用都要重新連線、調(diào)試電源和最小系統(tǒng)非常麻煩。于是萌生了一個想法設(shè)計一塊屬于自己的、高度集成的STM32F407ZGT6核心板。這塊板子的目標(biāo)很明確剝離所有外設(shè)接口只保留MCU運(yùn)行所必需的最小系統(tǒng)、豐富的IO引出以及穩(wěn)定的電源管理讓它成為一個可以像“樂高積木”一樣輕松嵌入到任何自定義底板中的核心模塊。這不僅能提升后續(xù)項目的開發(fā)效率也是對硬件設(shè)計基本功的一次系統(tǒng)性梳理和實戰(zhàn)。STM32F407ZGT6這顆芯片大家應(yīng)該不陌生基于Cortex-M4內(nèi)核主頻高達(dá)168MHz帶FPU內(nèi)存和Flash都足夠大外設(shè)資源從通信接口到定時器都非常豐富是很多中高端嵌入式項目的首選。但要把這顆芯片穩(wěn)定、可靠地跑起來并方便后續(xù)擴(kuò)展原理圖設(shè)計上就有不少門道。比如多路電源軌的時序和去耦如何安排高速時鐘電路怎么布局才不容易受干擾調(diào)試接口和啟動模式配置怎樣才算合理這些細(xì)節(jié)直接決定了核心板的穩(wěn)定性和可用性。這次的設(shè)計我選擇使用Altium Designer簡稱AD來完成硬件原理圖設(shè)計。AD是業(yè)界廣泛使用的EDA工具功能強(qiáng)大但學(xué)習(xí)曲線也陡。我會結(jié)合這個實際項目把從芯片選型、原理圖庫繪制、到模塊化電路設(shè)計、DRC檢查的完整流程走一遍過程中遇到的坑和總結(jié)的技巧也會一并分享。無論你是想自己做一塊核心板來玩還是想深入學(xué)習(xí)規(guī)范的硬件設(shè)計流程相信這篇內(nèi)容都能給你提供一份詳細(xì)的“地圖”。2. 核心板整體架構(gòu)與設(shè)計思路拆解2.1 需求定義與核心板定位在設(shè)計之初明確需求比盲目畫圖更重要。對于這塊STM32F407ZGT6核心板我給自己定了幾個核心目標(biāo)第一是“最小化與完整性”。最小化是指電路只包含MCU運(yùn)行必不可少的元件電源、復(fù)位、時鐘、調(diào)試接口和啟動配置。完整性則意味著這些必要部分必須設(shè)計得 robust能適應(yīng)各種惡劣環(huán)境。例如電源不僅要支持常見的5V或3.3V輸入還要考慮防反接、浪涌抑制和紋波過濾。第二是“IO資源最大化與可訪問性”。STM32F407ZGT6有144個引腳除去電源、地、時鐘和調(diào)試引腳還有超過100個GPIO。我的設(shè)計原則是除非有特殊沖突如調(diào)試引腳否則將所有GPIO通過排針或郵票孔引出。并且重要的功能引腳如USB、CAN、以太網(wǎng)等會成組排列方便連接。第三是“可調(diào)試與可生產(chǎn)性”。核心板上必須集成標(biāo)準(zhǔn)的SWD調(diào)試接口并預(yù)留UART轉(zhuǎn)USB芯片的位置可選焊方便單獨(dú)調(diào)試。所有元件的封裝都要選用常見的、易于采購的型號PCB尺寸和工藝也要考慮低成本打樣的可行性?;谶@些目標(biāo)核心板的整體架構(gòu)就清晰了以STM32F407ZGT6為中心向外輻射出電源管理模塊、時鐘模塊、復(fù)位與啟動模塊、調(diào)試接口模塊以及IO引出模塊。每個模塊相對獨(dú)立在原理圖上用“隔欄”或“標(biāo)注框”分開這樣不僅畫圖時思路清晰后期檢查和修改也方便。2.2 芯片數(shù)據(jù)手冊關(guān)鍵信息提取動手畫圖前必須把芯片的數(shù)據(jù)手冊Datasheet和參考手冊Reference Manual翻爛尤其是以下幾個章節(jié)引腳定義Pinout這是原理圖連接的依據(jù)。STM32F407ZGT6的引腳功能是復(fù)用的需要仔細(xì)查看引腳定義表區(qū)分默認(rèn)功能、復(fù)用功能和備用功能。我通常會創(chuàng)建一個Excel表格列出所有引腳編號、名稱、類型電源、地、IO等和計劃使用的功能避免后期沖突。電源架構(gòu)Power Supply Scheme這是設(shè)計的重中之重。F407的電源比較復(fù)雜有多個電源域VDD / VSS主數(shù)字電源范圍1.8V~3.6V通常接3.3V。需要為每一個VDD引腳就近放置去耦電容。VDDA / VSSA模擬電源為ADC、DAC等供電。必須從干凈的3.3V通過磁珠或電感隔離后引入并且需要額外的濾波電容。VBAT備份域電源用于RTC和備份寄存器。即使主電源斷開也要由紐扣電池或超級電容維持。 數(shù)據(jù)手冊會明確給出電源引腳的去耦電容推薦值和布局建議必須嚴(yán)格遵守。時鐘系統(tǒng)Clock TreeF407支持高速外部HSE、低速外部LSE、高速內(nèi)部HSI、低速內(nèi)部LSI四種時鐘源。核心板一般需要焊接HSE8MHz晶振和LSE32.768kHz晶振。數(shù)據(jù)手冊會給出晶振的負(fù)載電容計算公式和外部電阻的推薦值這部分參數(shù)計算必須準(zhǔn)確。啟動模式Boot Mode由BOOT0和BOOT1引腳的電平?jīng)Q定芯片從哪個存儲器啟動。核心板上需要通過跳線帽或焊盤至少提供從主Flash啟動和從系統(tǒng)存儲器啟動用于串口ISP下載兩種模式。把這些關(guān)鍵信息整理成設(shè)計約束文檔后續(xù)畫原理圖時隨時對照能極大減少低級錯誤。2.3 Altium Designer工程結(jié)構(gòu)與庫管理好的工程結(jié)構(gòu)是高效協(xié)作和設(shè)計可復(fù)用的基礎(chǔ)。在AD中我通常會這樣組織項目創(chuàng)建集成庫IntLib這是最佳實踐。我會為這個項目創(chuàng)建一個獨(dú)立的集成庫里面包含原理圖庫SchLib繪制STM32F407ZGT6以及其他所有用到的元件的符號。畫MCU符號時我習(xí)慣按功能模塊分部分Part繪制比如把所有的GPIO放在Part A所有的電源引腳放在Part B所有的通信接口放在Part C……這樣原理圖連線時非常清晰。PCB封裝庫PcbLib為每個元件創(chuàng)建或指定準(zhǔn)確的PCB封裝。對于STM32F407ZGT6它的封裝是LQFP144。我會從芯片官網(wǎng)下載或根據(jù)數(shù)據(jù)手冊尺寸精確繪制并特別注意焊盤尺寸和位置要符合PCB廠家的工藝能力。3D模型庫Step為關(guān)鍵元件如MCU、連接器關(guān)聯(lián)3D模型方便后期在PCB中進(jìn)行三維布局檢查和結(jié)構(gòu)協(xié)作。項目文件結(jié)構(gòu)STM32F407_CoreBoard.PrjPcb (項目文件) ├── Libraries/ │ ├── STM32F407_CoreBoard.IntLib │ └── (其他可能用到的廠商庫) ├── Source Documents/ │ ├── Schematic.SchDoc (主原理圖) │ ├── PCB.PcbDoc │ └── (輸出文件如Gerber、BOM等) └── Documentation/ ├── Datasheets/ └── Design_Notes.txt將所有相關(guān)文件放在一個項目文件夾下使用相對路徑這樣整個項目可以輕松打包遷移或分享。注意千萬不要在原理圖中直接使用“Place - Part”然后從臨時庫中找元件。一定要先在自己的集成庫中做好元件然后通過“Library”面板放置。這是保證設(shè)計一致性和可維護(hù)性的生命線。3. 核心電路模塊原理圖設(shè)計詳解3.1 電源管理電路設(shè)計電源是系統(tǒng)的基石不穩(wěn)定則萬事休。F407核心板的電源輸入我設(shè)計為寬壓5-12V通過兩級轉(zhuǎn)換得到系統(tǒng)所需的3.3V和1.2V內(nèi)核。第一級輸入保護(hù)與預(yù)穩(wěn)壓防反接在電源輸入端串聯(lián)一個肖特基二極管如SS34。雖然會有約0.3V的壓降但對于5V以上輸入可以接受能有效防止電源接反燒毀后續(xù)電路。TVS管并聯(lián)一個瞬態(tài)電壓抑制二極管TVS如SMBJ5.0A用于吸收電源線上的浪涌和靜電脈沖。預(yù)穩(wěn)壓可選如果輸入電壓較高或不穩(wěn)定可以先使用一顆LDO如AMS1117-5.0將電壓穩(wěn)到5V為第二級的DC-DC轉(zhuǎn)換器提供更干凈的輸入。第二級核心3.3V與1.2V生成3.3V生成這是數(shù)字和模擬部分的主電源。我選用了一顆同步降壓DC-DC轉(zhuǎn)換器如MP2359。相比LDO它的效率高尤其壓差大時發(fā)熱小。電路設(shè)計嚴(yán)格按照芯片數(shù)據(jù)手冊的典型應(yīng)用電路輸入輸出電容的容值和ESR要滿足要求。反饋電阻分壓網(wǎng)絡(luò)要精確計算通常使用1%精度的電阻。電感的選擇是關(guān)鍵額定電流要留有余量DCR要小。1.2V生成這是STM32F407內(nèi)核的電源V_CORE。我使用另一路DC-DC或一顆專用的LDO來產(chǎn)生。這里需要注意電源時序通常要求1.2V在3.3V之后或同時上電。簡單的實現(xiàn)方法是讓1.2V的使能引腳EN由3.3V上電復(fù)位電路控制。第三級電源分配與去耦磁珠隔離使用磁珠如BLM18PG121SN1將模擬電源VDDA與數(shù)字電源VDD隔離開磁珠后緊跟一個10uF的鉭電容和一個0.1uF的陶瓷電容組成π型濾波。去耦電容布局這是最容易出錯的地方。原則是“一個VDD引腳一個0.1uF電容”。在原理圖上每個VDD引腳旁邊都要放置一個0.1uF的陶瓷電容材質(zhì)推薦X7R或X5R并且網(wǎng)絡(luò)標(biāo)號要明確。在PCB布局時這個電容必須盡可能靠近芯片的引腳回流路徑最短。VBAT電路使用一個二極管如1N4148實現(xiàn)主電源和備份電池如CR1220的自動切換。二極管陽極分別接3.3V和電池正極陰極接VBAT引腳。VBAT引腳對地接一個0.1uF電容和一個10KΩ的負(fù)載電阻。3.2 時鐘與復(fù)位電路設(shè)計高速外部時鐘HSE晶振選型選擇8MHz負(fù)載電容為20pF的無源晶振。精度根據(jù)需求選擇普通應(yīng)用20ppm即可。負(fù)載電容計算這是關(guān)鍵。晶振數(shù)據(jù)手冊給出的負(fù)載電容CL如20pF是晶振要“看到”的總電容。這個總電容由電路板寄生電容Cstray通常估算為2-5pF和兩個外接的負(fù)載電容C1、C2組成。關(guān)系式為CL (C1 * C2) / (C1 C2) Cstray。通常令C1C2所以C1 C2 2 * (CL - Cstray)。假設(shè)Cstray3pF則C1 C2 2*(20-3) 34pF。選擇最接近的標(biāo)準(zhǔn)值33pF或39pF。我一般會預(yù)留兩個電容的位置方便調(diào)試。匹配電阻在晶振兩端有時需要串聯(lián)一個1MΩ的反饋電阻內(nèi)部已有可不加并在晶振輸入腳對地接一個1MΩ的電阻以提供直流偏置和增益控制。低速外部時鐘LSE用于RTC選擇32.768kHz晶振負(fù)載電容通常為12.5pF。計算和連接方式與HSE類似但負(fù)載電容值更小如6-10pF。LSE對走線更敏感布局時要更靠近芯片。復(fù)位電路采用經(jīng)典的RC復(fù)位電路。一個10KΩ電阻上拉到3.3V一個0.1uF電容接地中間點(diǎn)接到芯片的NRST引腳。這樣能產(chǎn)生約100ms的低電平復(fù)位脈沖。務(wù)必在NRST引腳附近放置一個0.1uF的電容到地以濾除高頻干擾。同時預(yù)留一個手動復(fù)位按鈕并聯(lián)在電容兩端按下時將NRST拉低。3.3 調(diào)試接口與啟動配置電路SWD調(diào)試接口F407支持JTAG和SWD兩種調(diào)試協(xié)議SWD占用引腳少SWDIO SWCLK是首選。我使用標(biāo)準(zhǔn)的4針或5針SWD接口VCC,SWDIO,SWCLK,GND, (NRST)。上拉/下拉電阻根據(jù)ST官方推薦在SWDIO和SWCLK線上分別連接一個10KΩ的上拉電阻到VDD和下拉電阻到地可以提高連接穩(wěn)定性尤其是在長線調(diào)試時。NRST引腳也需要一個10KΩ上拉電阻。保護(hù)與濾波在SWDIO和SWCLK線上串聯(lián)一個22Ω或33Ω的電阻可以抑制過沖和振鈴。對地接一個幾十皮法的電容可以濾除高頻噪聲。啟動模式配置通過BOOT0和BOOT1引腳設(shè)置。我設(shè)計了兩個跳線帽或焊盤來實現(xiàn)三種常用模式BOOT00, BOOT1X從主Flash啟動用戶程序。這是正常工作模式通過跳線將BOOT0連接到地。BOOT01, BOOT10從系統(tǒng)存儲器啟動內(nèi)置Bootloader。用于通過USART1進(jìn)行ISP下載。通過跳線將BOOT0連接到VDDBOOT1連接到地。BOOT01, BOOT11從內(nèi)置SRAM啟動。用于調(diào)試。較少使用。關(guān)鍵點(diǎn)BOOT0和BOOT1引腳必須通過10KΩ電阻上拉或下拉到固定電平絕對不能懸空懸空會導(dǎo)致啟動行為不可預(yù)測。我通常將BOOT1通過10KΩ電阻下拉到地BOOT0則通過跳線選擇連接地或VDD。3.4 GPIO引出與功能分組這是體現(xiàn)核心板易用性的地方。我的策略是全引腳引出使用雙排2.54mm間距的排針將除了電源、地、調(diào)試、晶振引腳外的所有GPIO全部引出。排針的排列順序盡量與芯片引腳物理順序一致方便對照數(shù)據(jù)手冊。功能分組標(biāo)注在原理圖上將具有相同外設(shè)功能的引腳分組放置并用網(wǎng)絡(luò)標(biāo)號清晰標(biāo)注。例如USART1_TX/PA9,USART1_RX/PA10I2C1_SCL/PB6,I2C1_SDA/PB7ETH_RMII_xxx/...以太網(wǎng)引腳較多單獨(dú)分組電源與地引腳在排針兩端和中間均勻分布多個GND和3.3V引腳方便底板為外設(shè)供電和提供良好的信號回流路徑。ADC參考電壓將VDDA和VSSA模擬地也單獨(dú)引出如果用戶需要高精度ADC可以在底板上提供更精密的基準(zhǔn)源。在原理圖繪制時我會為每一組IO創(chuàng)建一個“Harness Connector”線束連接器這是一個AD的高級功能可以把一組相關(guān)的信號打包成一個邏輯接口讓原理圖更加簡潔明了。4. Altium Designer高效繪圖實操與規(guī)范4.1 原理圖庫元件的規(guī)范創(chuàng)建創(chuàng)建STM32F407ZGT6的原理圖符號是個細(xì)致活做得好能事半功倍。分部分Multi-Part繪制在SchLib中新建元件命名為STM32F407ZGT6。使用“工具”-“新部件”來創(chuàng)建多個部分。我通常分為Power電源/地、Clock/Reset/Boot時鐘/復(fù)位/啟動、Debug調(diào)試、GPIO_A-F按端口分組、Analog模擬引腳、Special Function特殊功能如USB、以太網(wǎng)。繪制每個部分的符號體矩形即可放置引腳。放置引腳時最關(guān)鍵的是“電氣類型”和“引腳名”電源引腳類型選Power名字如VDD、VSS、VDDA。對于多個同名的電源引腳如多個VDD在名字后面加數(shù)字區(qū)分但設(shè)置其“屬性”中的“顯示名稱”為VDD并隱藏引腳編號外的名稱這樣在原理圖上它們會自動通過同名網(wǎng)絡(luò)連接。被動引腳如NRST類型選Passive。輸入/輸出引腳根據(jù)數(shù)據(jù)手冊設(shè)置如Input、Output、Bidirectional。為每個引腳添加正確的“標(biāo)識符”即引腳號必須與數(shù)據(jù)手冊和封裝一一對應(yīng)。添加關(guān)鍵參數(shù) 在元件屬性中添加重要的參數(shù)如Manufacturer、Manufacturer Part Number、Description、Value填芯片型號。更重要的是在Models區(qū)域鏈接之前做好的PCB封裝LQFP144和3D模型。實操心得畫完符號后強(qiáng)烈建議使用“報告”-“元件規(guī)則檢查”來檢查是否有引腳重復(fù)、缺少標(biāo)識符等錯誤。也可以先用這個符號畫一個簡單的原理圖然后更新到PCB檢查封裝引腳和原理圖引腳映射是否正確提前發(fā)現(xiàn)錯誤。4.2 模塊化原理圖繪制技巧一張龐大的原理圖會讓人眼花繚亂。AD支持多圖紙設(shè)計但對于核心板我更傾向于在單張圖紙中使用“隔欄”和“標(biāo)注”進(jìn)行模塊化布局。使用線束Harness和總線Bus對于一組相關(guān)的信號如SDIO_D0到SDIO_D3、SDIO_CMD、SDIO_CK可以先創(chuàng)建SDIO線束類型然后將這些信號放入線束。在原理圖上只需要畫一條線束線非常簡潔。對于地址/數(shù)據(jù)總線可以使用總線Bus進(jìn)行連接。但要注意總線是邏輯上的實際布線時還是要一根根走線。網(wǎng)絡(luò)標(biāo)號Net Label的規(guī)范使用網(wǎng)絡(luò)標(biāo)號是連接不同頁或不同模塊同名網(wǎng)絡(luò)的工具。命名要有意義如USB_DP、I2S_WS。電源網(wǎng)絡(luò)使用“電源端口”對于全局的電源網(wǎng)絡(luò)如3V3、GND使用“電源端口”符號如VCC、GND符號而不是網(wǎng)絡(luò)標(biāo)號。這樣AD會自動將其識別為全局電源網(wǎng)絡(luò)無需額外連接。注釋與說明文本在每個功能模塊旁邊用文本框添加簡要說明如“3.3V LDO最大輸出電流500mA”。對于關(guān)鍵參數(shù)如電阻電容值、晶振頻率直接在元件旁標(biāo)注。使用“參數(shù)集”或“文本幀”來記錄版本信息、設(shè)計者、日期等。原理圖圖紙設(shè)置設(shè)置合適的圖紙大小如A3柵格大小如10mil。在“參數(shù)”中設(shè)置Title、Revision等信息這些可以自動體現(xiàn)在標(biāo)題欄中。4.3 設(shè)計規(guī)則檢查DRC與錯誤排查畫完原理圖后必須進(jìn)行DRC檢查這是發(fā)現(xiàn)連接錯誤、未連接引腳等問題的關(guān)鍵步驟。設(shè)置電氣規(guī)則在“工程”-“工程選項”中進(jìn)入“Error Reporting”標(biāo)簽頁。這里可以設(shè)置各種情況的報告級別。對于新手可以先使用默認(rèn)設(shè)置。有幾個需要特別關(guān)注Nets with no driving source無驅(qū)動源的網(wǎng)絡(luò)對于輸入引腳如果沒有連接這里會報錯。但如果這個引腳在代碼中配置為輸出或者內(nèi)部有上拉可以忽略或改為警告。Duplicate Nets重復(fù)網(wǎng)絡(luò)名必須設(shè)為錯誤。Floating net labels懸浮網(wǎng)絡(luò)標(biāo)號必須設(shè)為錯誤。運(yùn)行DRC在原理圖界面點(diǎn)擊“工程”-“Validate PCB Project ...”。AD會在“Messages”面板中列出所有錯誤和警告。解讀和修復(fù)錯誤“Net XX contains floating input pins”這是最常見的錯誤意思是網(wǎng)絡(luò)XX上有懸空的輸入引腳。你需要檢查這個引腳是否應(yīng)該連接。如果確定不需要連接例如某些未用的ADC輸入可以在引腳上放置一個“No ERC”標(biāo)記快捷鍵X, N?!癕ultiple nets named XX”同一張圖紙上有重復(fù)的網(wǎng)絡(luò)標(biāo)號。檢查并修正?!癠nconnected wire segment”有一段線沒有連接到任何東西??赡苁钱嬀€時沒有準(zhǔn)確連接到引腳仔細(xì)檢查并連接好。“Duplicate sheet numbers”在多圖紙設(shè)計中圖紙編號重復(fù)。編譯與封裝同步DRC通過后編譯工程C, C。然后打開PCB文件使用“設(shè)計”-“Update PCB Document ...”將原理圖變更導(dǎo)入PCB。這個過程會檢查封裝匹配、網(wǎng)絡(luò)表生成等。務(wù)必仔細(xì)查看“工程變更訂單”確認(rèn)每一項修改都是你預(yù)期的。5. 從原理圖到PCB的銜接要點(diǎn)與生產(chǎn)準(zhǔn)備5.1 網(wǎng)絡(luò)表與封裝關(guān)聯(lián)性檢查在將原理圖更新到PCB之前封裝關(guān)聯(lián)的檢查至關(guān)重要否則會導(dǎo)致PCB上出現(xiàn)一堆綠色報錯代表封裝或網(wǎng)絡(luò)錯誤。封裝完整性檢查在原理圖界面使用“工具”-“封裝管理器”。這里會列出所有元件及其對應(yīng)的封裝。你需要逐一確認(rèn)每個元件都有封裝嗎封裝名稱是否正確例如電阻是0805還是R0805這需要和你的PCB庫中的名字完全一致。封裝的引腳數(shù)是否和原理圖符號匹配例如一個8pin的芯片符號不能關(guān)聯(lián)一個14pin的封裝。引腳映射檢查對于復(fù)雜的元件如MCU在PCB庫中編輯封裝時要確保焊盤的“標(biāo)識符”如1, 2, 3...與原理圖符號的引腳標(biāo)識符一一對應(yīng)。如果標(biāo)識符不匹配更新到PCB時網(wǎng)絡(luò)就無法正確連接到焊盤。執(zhí)行更新確認(rèn)無誤后在PCB界面執(zhí)行更新。更新后所有元件會以“Room”和一堆飛線的形式出現(xiàn)在PCB板外。首先檢查“Messages”面板有無嚴(yán)重錯誤。然后粗略查看幾個關(guān)鍵元件如MCU、連接器的飛線連接是否合理。如果MCU的VDD引腳沒有飛到電源網(wǎng)絡(luò)或者晶振引腳沒有相連那就說明前面的關(guān)聯(lián)或原理圖連接有問題需要回退檢查。5.2 關(guān)鍵信號與電源的PCB布局預(yù)規(guī)劃在真正開始擺放元件之前先在紙上或腦海里做好布局規(guī)劃能節(jié)省大量后期調(diào)整時間。電源路徑規(guī)劃主電源輸入-DC-DC芯片-濾波電容-MCU VDD這條路徑要盡可能短而粗。DC-DC芯片的輸入電容、電感、輸出電容應(yīng)緊靠芯片放置形成最小的電流環(huán)路。電源分區(qū)將數(shù)字電源VDD和模擬電源VDDA在物理上分開??梢允褂秒娫雌矫娣指罨蛘咄ㄟ^磁珠/0Ω電阻連接后的區(qū)域作為模擬電源區(qū)。去耦電容的位置每個VDD引腳的去耦電容0.1uF必須放在芯片對應(yīng)引腳的正背面或最近側(cè)。大容量的儲能電容如10uF可以稍遠(yuǎn)但也要在同一條電源通道上。時鐘信號規(guī)劃晶振布局HSE和LSE晶振必須盡可能靠近MCU的對應(yīng)引腳。晶振、負(fù)載電容和匹配電阻要集中在一起下方禁止走任何其他信號線最好在PCB所有層圍繞晶振區(qū)域鋪銅并打過孔屏蔽。走線時鐘信號線要短、直避免直角。在晶振和MCU之間走線不要繞遠(yuǎn)。高速信號與差分對對于USB、以太網(wǎng)等高速信號需要提前規(guī)劃為差分對走線。在AD中可以通過“差分對”規(guī)則來管理。走線要等長、平行、緊耦合并參考完整的GND平面。調(diào)試接口SWD雖然速度不高但為了可靠性走線也應(yīng)盡量短并遠(yuǎn)離晶振、電源等噪聲源。接地策略核心板建議采用完整的接地平面。在多層板中專門用一層作為GND層。在雙層板中也要在元件面和焊接面盡可能大面積鋪銅接地并通過大量過孔將兩面的地連接起來形成一個低阻抗的接地網(wǎng)絡(luò)。模擬地AGND與數(shù)字地DGND通常采用“單點(diǎn)連接”策略。在STM32上芯片內(nèi)部的模擬和數(shù)字地已經(jīng)連接。我們只需在外部將模擬部分的鋪銅如VDDA濾波電容的地通過一個磁珠或0Ω電阻連接到主數(shù)字地平面。這個連接點(diǎn)通常選擇在芯片VSSA引腳附近。5.3 生成生產(chǎn)文件Gerber與BOM的注意事項設(shè)計完成并經(jīng)過DRC、電氣規(guī)則檢查ERC后就需要輸出文件給PCB工廠和進(jìn)行元器件采購了。輸出Gerber文件層設(shè)置在AD中通過“文件”-“制造輸出”-“Gerber Files”打開設(shè)置。通用設(shè)置格式選2:5精度足夠單位選毫米或英寸與設(shè)計單位一致。層設(shè)置在“層”標(biāo)簽頁選擇“使用的層”-“所有使用的層”。然后在右側(cè)“繪制層”下拉菜單中務(wù)必手動勾選需要輸出的每一層包括所有信號層Top, Mid1, Bottom等、絲印層Top/Bottom Overlay、阻焊層Top/Bottom Solder Mask、錫膏層Top/Bottom Paste Mask如果要做鋼網(wǎng)、鉆孔層Drill Drawing、機(jī)械層Mechanical 1用于板框和尺寸標(biāo)注。千萬不要漏掉機(jī)械層和鉆孔層。鉆孔設(shè)置在“鉆孔圖層”標(biāo)簽頁確保勾選。光圈設(shè)置選擇“嵌入的孔徑RS274X”這是現(xiàn)代標(biāo)準(zhǔn)。高級設(shè)置在“高級”標(biāo)簽頁將“前導(dǎo)/尾隨零”設(shè)為Suppress leading zeroes抑制前導(dǎo)零這是國內(nèi)很多工廠的習(xí)慣。生成后務(wù)必用免費(fèi)的Gerber查看器如GC-Prevue、Gerbv打開檢查確認(rèn)每一層圖形正確沒有缺失孔位對齊。輸出鉆孔文件NC Drill通過“文件”-“制造輸出”-“NC Drill Files”輸出。設(shè)置與Gerber一致格式2:5抑制前導(dǎo)零。輸出后同樣用查看器檢查并與Gerber的鉆孔層對比。輸出物料清單BOM通過“報告”-“Bill of Materials”生成。關(guān)鍵是要包含足夠的信息供采購Comment元件值如10kΩ、Description描述、Designator位號、Footprint封裝、Manufacturer、Manufacturer Part Number廠商型號最重要、Quantity。在BOM中可以將電阻、電容等按值排序合并方便采購。但對于有源器件每個位號最好單獨(dú)一行因為即使型號相同也可能來自不同批次。輸出坐標(biāo)文件Pick and Place對于需要SMT貼片的工廠需要提供元件坐標(biāo)文件。通過“文件”-“裝配輸出”-“Generates pick and place files”生成。選擇正確的格式通常為CSV并確認(rèn)原點(diǎn)和單位。將這些文件Gerber、NC Drill、BOM、坐標(biāo)文件打包壓縮連同簡單的工藝要求如板厚、顏色、表面工藝——有無鉛噴錫、沉金等一起發(fā)給PCB制板廠和貼片廠一塊核心板的生產(chǎn)資料就齊備了。本文還有配套的精品資源點(diǎn)擊獲取