計(jì):從電源架構(gòu)到AD09 PCB布局實(shí)戰(zhàn))
STM32H743VIT6這顆料這兩年做高性能嵌入式項(xiàng)目的朋友應(yīng)該都不陌生。480MHz的Cortex-M7內(nèi)核、1MB SRAM、2MB Flash、雙精度浮點(diǎn)單元拿來做運(yùn)動(dòng)控制、音頻處理、邊緣計(jì)算網(wǎng)關(guān)都綽綽有余。但很多人拿到芯片之后卡在了第一步——怎么把它跑起來。市面上現(xiàn)成的開發(fā)板要么太貴要么外設(shè)布局不符合自己的項(xiàng)目需求于是自己畫一塊最小系統(tǒng)核心板就成了最務(wù)實(shí)的方案。這篇文章面向的是有基本電路基礎(chǔ)、想自己動(dòng)手做一塊STM32H743VIT6核心板的嵌入式工程師或電子愛好者。我會(huì)從芯片選型理由開始一步步拆解電源架構(gòu)、時(shí)鐘樹設(shè)計(jì)、復(fù)位與啟動(dòng)電路、調(diào)試接口再到AD09里的原理圖繪制和PCB布局布線把整個(gè)流程中容易踩的坑和關(guān)鍵決策點(diǎn)都講清楚。AD09雖然版本不算新但在國內(nèi)中小企業(yè)和個(gè)人開發(fā)者中保有量依然很大用它來完成這套設(shè)計(jì)完全夠用。1. 為什么選H743VIT6以及最小系統(tǒng)到底包含什么1.1 這顆芯片的定位與選型邏輯STM32H743VIT6屬于ST的H7系列LQFP100封裝100個(gè)引腳在手工焊接和PCB布局之間取到了一個(gè)不錯(cuò)的平衡點(diǎn)。相比BGA封裝的型號(hào)LQFP100的引腳間距0.5mm用常規(guī)的烙鐵加助焊劑就能完成焊接返修也方便。這一點(diǎn)對(duì)于個(gè)人開發(fā)者和小批量試產(chǎn)來說非常關(guān)鍵——你不需要為了一塊板子去開鋼網(wǎng)、找貼片廠。從資源角度看H743VIT6的核心競(jìng)爭(zhēng)力在于480MHz主頻下CoreMark跑分超過2000分內(nèi)置的AXI總線矩陣讓CPU、DMA、外設(shè)之間可以并行訪問不同的SRAM區(qū)域做實(shí)時(shí)信號(hào)處理時(shí)不會(huì)因?yàn)榭偩€爭(zhēng)搶導(dǎo)致抖動(dòng)。另外它帶了FMC靈活存儲(chǔ)控制器、DCMI攝像頭接口、SAI音頻接口、以太網(wǎng)MAC等外設(shè)最小系統(tǒng)板只要把這些關(guān)鍵引腳引出來后續(xù)做擴(kuò)展就非常靈活。選它而不是選F103或F407的原因很簡(jiǎn)單如果你的項(xiàng)目涉及浮點(diǎn)運(yùn)算密集的算法比如FOC電機(jī)控制里的Park/Clarke變換、音頻FFT、圖像預(yù)處理H7的雙精度FPU和更高的主頻能讓你省掉很多優(yōu)化時(shí)間。當(dāng)然代價(jià)是電源設(shè)計(jì)更復(fù)雜、PCB布局要求更高這也是后面要重點(diǎn)展開的內(nèi)容。1.2 最小系統(tǒng)的邊界定義很多人對(duì)最小系統(tǒng)的理解有偏差。嚴(yán)格來說一個(gè)MCU的最小系統(tǒng)只需要保證芯片能正常上電、復(fù)位、運(yùn)行程序這三件事。但實(shí)際做核心板的時(shí)候我會(huì)把以下內(nèi)容都納入最小系統(tǒng)的范疇電源系統(tǒng)3.3V主供電、1.2V內(nèi)核供電H743需要獨(dú)立的VCORE、模擬部分供電VDDA/VREF時(shí)鐘系統(tǒng)外部高速晶振HSE、外部低速晶振LSERTC用、內(nèi)部時(shí)鐘備選復(fù)位系統(tǒng)上電復(fù)位、手動(dòng)復(fù)位按鍵、復(fù)位濾波電容啟動(dòng)配置BOOT0引腳的下拉電阻和跳線調(diào)試接口SWD接口SWDIO/SWCLK最好預(yù)留SWO去耦網(wǎng)絡(luò)每個(gè)電源引腳附近的去耦電容用戶指示至少一個(gè)電源指示燈和一個(gè)用戶LED擴(kuò)展排針把未使用的GPIO按端口引出這樣定義的好處是核心板做出來之后可以直接當(dāng)模塊用插到你的底板或者洞洞板上就能開始開發(fā)不用每次都在面包板上折騰電源和晶振。1.3 整體設(shè)計(jì)流程概覽在AD09里完成這塊板子的設(shè)計(jì)大致流程是這樣的先建工程和原理圖庫把H743VIT6的符號(hào)畫出來100個(gè)引腳手動(dòng)畫確實(shí)費(fèi)時(shí)間但網(wǎng)上能找到現(xiàn)成的庫文件后面會(huì)講怎么處理然后分模塊繪制原理圖包括電源、時(shí)鐘、復(fù)位、調(diào)試、LED、排針原理圖完成后進(jìn)行ERC檢查確認(rèn)沒有遺漏的連接接著生成網(wǎng)絡(luò)表導(dǎo)入PCB做板框、布局、布線、鋪銅最后輸出Gerber文件和BOM。整個(gè)流程中最耗時(shí)的不是畫圖本身而是布局階段的反復(fù)調(diào)整和布線時(shí)的電源處理。下面我會(huì)按這個(gè)順序把每個(gè)環(huán)節(jié)的關(guān)鍵點(diǎn)和經(jīng)驗(yàn)教訓(xùn)都展開講。2. 電源架構(gòu)設(shè)計(jì)H743的供電不是3.3V那么簡(jiǎn)單2.1 H743的電源域拆解STM32H743的電源引腳比F103復(fù)雜得多如果只按VDD接3.3V、VSS接地的思路來畫板子大概率跑不起來。先看它有哪些電源相關(guān)引腳引腳類別引腳名電壓作用數(shù)字主供電VDD (多引腳)1.62V~3.6VIO和數(shù)字外設(shè)供電內(nèi)核供電VCORE1.2V左右由內(nèi)部LDO或外部SMPS提供模擬供電VDDA1.62V~3.6VADC/DAC/模擬部分參考電壓VREF1.62V~VDDAADC參考電壓備份域VBAT1.2V~3.6VRTC和備份寄存器內(nèi)部穩(wěn)壓VLXSMPS/VSSSMPS—SMPS電感連接點(diǎn)USB供電VDD33USB3.0V~3.6VUSB收發(fā)器關(guān)鍵點(diǎn)在于VCORE。H743內(nèi)部集成了一個(gè)LDO穩(wěn)壓器可以從VDD降壓產(chǎn)生1.2V給內(nèi)核用。你只需要在VCORE引腳接一個(gè)2.2uF的電容到地就行不需要外部提供1.2V。但如果你想用SMPS模式效率更高、發(fā)熱更小就需要外接電感和電容配置寄存器切換。對(duì)于最小系統(tǒng)板我建議直接用內(nèi)部LDO模式簡(jiǎn)單可靠480MHz全速運(yùn)行時(shí)LDO的發(fā)熱在可接受范圍內(nèi)。2.2 去耦電容的布置原則去耦電容不是隨便放幾個(gè)0.1uF就完事。H743的VDD引腳有十幾組每組都需要就近放置去耦電容。我的做法是每個(gè)VDD/VSS引腳對(duì)放置一個(gè)100nF的0402或0603電容盡量靠近引腳每4~5個(gè)VDD引腳額外放置一個(gè)4.7uF的電容VDDA單獨(dú)用磁珠或0歐電阻從3.3V隔離配1uF10nF組合VREF如果不用外部基準(zhǔn)通過0歐電阻接VDDA配1uF100nFVCORE引腳配2.2uF電容位置緊貼引腳在AD09里畫原理圖的時(shí)候我習(xí)慣把去耦電容單獨(dú)畫在一頁上用端口連接的方式和主電路關(guān)聯(lián)。這樣PCB布局時(shí)可以集中處理不會(huì)遺漏。有個(gè)小技巧在原理圖里給每個(gè)去耦電容標(biāo)注對(duì)應(yīng)的引腳號(hào)比如C1_VDD1、C2_VDD2布局時(shí)對(duì)照著放效率高很多。2.3 電源指示與保護(hù)最小系統(tǒng)板上至少需要一個(gè)電源指示燈。我用的是3.3V經(jīng)1K電阻驅(qū)動(dòng)一個(gè)0805的綠色LED電流大約2mA亮度足夠又不刺眼。如果想更省電可以用2K電阻電流降到1mA左右。保護(hù)方面建議在電源輸入端加一個(gè)自恢復(fù)保險(xiǎn)絲比如0805封裝的0.5A PPTC和一個(gè)TVS二極管SMAJ5.0A防止電源接反或浪涌。雖然多花幾毛錢但能避免調(diào)試過程中因?yàn)殡娫磫栴}燒芯片。我見過太多人因?yàn)殡娫唇渝e(cuò)把幾百塊的芯片燒掉的案例。另外如果你打算用USB供電需要在VBUS和3.3V之間加一個(gè)LDO比如AMS1117-3.3或者更好的SPX3819。注意AMS1117的壓差比較大輸入5V輸出3.3V時(shí)發(fā)熱明顯如果電流超過200mA建議換用DC-DC方案。對(duì)于最小系統(tǒng)板如果只給MCU和幾個(gè)LED供電AMS1117夠用但要在PCB上留足夠的銅皮散熱。3. 時(shí)鐘樹與復(fù)位電路讓芯片穩(wěn)定跑起來的關(guān)鍵3.1 外部晶振的選擇與匹配電容計(jì)算H743的HSE支持4~48MHz的晶體我一般選25MHz。為什么選25MHz而不是8MHz因?yàn)镠743的PLL配置靈活25MHz經(jīng)過PLL倍頻后更容易得到480MHz25MHz / 5 * 96 480MHz而且25MHz的晶振在市場(chǎng)上供貨充足、價(jià)格便宜。匹配電容的計(jì)算不是拍腦袋定的。晶體的負(fù)載電容CL通常在規(guī)格書里給出比如8pF或10pF。匹配電容C1和C2的公式是C1 C2 2 * (CL - Cstray)其中Cstray是PCB走線的寄生電容一般估算為3~5pF。如果CL10pFCstray取4pF那么C1C212pF。實(shí)際選用12pF或15pF的電容然后通過示波器觀察起振情況微調(diào)。在AD09原理圖里晶振電路要畫得清楚晶體兩端各接一個(gè)匹配電容到地同時(shí)并聯(lián)一個(gè)1M歐的反饋電阻有些晶體不需要但加上更保險(xiǎn)。晶振的走線在PCB上要盡量短包地處理遠(yuǎn)離高頻信號(hào)線。LSE晶振用32.768kHz匹配電容一般選12.5pF因?yàn)镃L通常是6pF加上寄生電容后算出來約12.5pF。LSE的走線要更加小心因?yàn)轭l率低、驅(qū)動(dòng)能力弱容易被干擾。我通常把LSE的走線走在板子邊緣周圍用GND包圍不走任何其他信號(hào)。3.2 PLL配置與時(shí)鐘樹規(guī)劃H743的時(shí)鐘樹比F1系列復(fù)雜得多。簡(jiǎn)單梳理一下HSE或HSI作為PLL的輸入經(jīng)過PLL1倍頻后產(chǎn)生SYSCLKSYSCLK再分頻給AHB、APB1、APB2、APB3、APB4。PLL1的配置涉及M、N、P、Q四個(gè)參數(shù)M是預(yù)分頻器把HSE分頻到1~2MHz的參考頻率N是倍頻器把參考頻率倍頻到VCO頻率192~960MHzP是系統(tǒng)時(shí)鐘分頻輸出SYSCLKQ是USB/SPI等外設(shè)的分頻輸出以25MHz HSE為例M5得到5MHz參考N96VCO480MHzP1SYSCLK480MHz。這個(gè)配置在CubeMX里可以直接生成但你要理解每個(gè)參數(shù)的含義才能在出問題時(shí)快速定位。在原理圖階段時(shí)鐘部分不需要畫PLL的內(nèi)部結(jié)構(gòu)但要在晶振旁邊標(biāo)注清楚頻率和匹配電容值方便PCB布局時(shí)對(duì)照。3.3 復(fù)位電路的細(xì)節(jié)處理H743的NRST引腳是低電平復(fù)位內(nèi)部有上拉電阻但阻值較大約40K歐容易受干擾。我的做法是外部加一個(gè)10K歐的上拉電阻到3.3V再并一個(gè)100nF的電容到地構(gòu)成RC復(fù)位電路。復(fù)位按鍵用輕觸開關(guān)一端接NRST另一端接地。這里有個(gè)容易忽略的點(diǎn)復(fù)位按鍵到NRST的走線要盡量短電容要靠近NRST引腳。如果走線太長(zhǎng)按鍵按下時(shí)產(chǎn)生的振鈴可能導(dǎo)致多次復(fù)位。我在早期項(xiàng)目中遇到過這個(gè)問題后來把電容從100nF改成1uF同時(shí)縮短走線問題就解決了。另外如果你要用調(diào)試器復(fù)位芯片SWD接口的NRST信號(hào)也要連上。有些調(diào)試器比如ST-Link通過NRST引腳控制復(fù)位如果不接調(diào)試時(shí)可能無法正常連接。4. 啟動(dòng)配置與調(diào)試接口別讓BOOT0坑了你4.1 BOOT0和BOOT1的配置邏輯H743的啟動(dòng)模式由BOOT0引腳和選項(xiàng)字節(jié)共同決定。默認(rèn)情況下BOOT00時(shí)從Flash啟動(dòng)BOOT01時(shí)從系統(tǒng)存儲(chǔ)器啟動(dòng)用于串口下載。BOOT1在H743上對(duì)應(yīng)的是PB2引腳需要配置選項(xiàng)字節(jié)使能一般不用。我的做法是BOOT0通過一個(gè)10K歐電阻下拉到地同時(shí)預(yù)留一個(gè)跳線帽或者2.54mm排針需要時(shí)短接到3.3V。這樣正常運(yùn)行時(shí)從Flash啟動(dòng)需要串口下載時(shí)手動(dòng)短接一下。注意BOOT0的走線不要和其他信號(hào)并行太長(zhǎng)避免耦合干擾導(dǎo)致誤觸發(fā)。有個(gè)細(xì)節(jié)BOOT0引腳在復(fù)位釋放的那一刻被采樣所以跳線帽要在上電前就設(shè)置好。我見過有人在運(yùn)行時(shí)插拔跳線帽結(jié)果芯片進(jìn)入了系統(tǒng)存儲(chǔ)器模式程序不跑了排查了半天。4.2 SWD接口的引腳分配與保護(hù)SWD接口只需要兩根信號(hào)線SWDIO和SWCLK加上GND和3.3V參考電壓。我通常用標(biāo)準(zhǔn)的2x5 1.27mm排針或者2x5 2.54mm排針引腳定義按照ARM標(biāo)準(zhǔn)引腳信號(hào)說明1VCC3.3V參考2SWDIO數(shù)據(jù)線3GND地4SWCLK時(shí)鐘線5GND地6SWO可選用于trace輸出7KEY防反插8NC不接9GND地10NRST復(fù)位SWDIO和SWCLK的走線要盡量短如果超過10cm建議加串聯(lián)電阻22~33歐做阻抗匹配。另外SWDIO內(nèi)部有上拉但外部再加一個(gè)10K歐上拉更保險(xiǎn)。4.3 調(diào)試接口的PCB布局要點(diǎn)調(diào)試接口在PCB上的位置要考慮實(shí)際使用時(shí)的便利性。我一般把它放在板子邊緣排針朝向板外這樣調(diào)試器插上去不會(huì)擋住其他元件。如果板子空間緊張可以用1.27mm的貼片排針但要注意調(diào)試器的接口是否匹配。SWD信號(hào)線不要和晶振、電源開關(guān)等噪聲源走在一起。如果實(shí)在避不開中間用地線隔離。我在一塊板子上把SWD走線和DC-DC的電感走線平行了2cm結(jié)果調(diào)試器經(jīng)常掉線后來把SWD線改到另一層問題消失。5. AD09原理圖繪制從建庫到ERC檢查5.1 元件庫的獲取與整理AD09自帶的庫里面沒有STM32H743VIT6需要自己建或者從網(wǎng)上下載。我的建議是優(yōu)先從ST官網(wǎng)下載或者用CubeMX生成引腳定義然后導(dǎo)入到AD09里。具體做法是在CubeMX里選好芯片型號(hào)導(dǎo)出引腳列表CSV格式然后在AD09的SchLib里用腳本或者手動(dòng)創(chuàng)建元件符號(hào)。手動(dòng)創(chuàng)建100個(gè)引腳的符號(hào)確實(shí)費(fèi)時(shí)間但有個(gè)技巧把引腳按功能分組比如電源引腳放一起、GPIO按端口分組、外設(shè)引腳單獨(dú)一組。這樣畫出來的符號(hào)邏輯清晰原理圖也更易讀。我一般把符號(hào)畫成矩形左邊放電源和時(shí)鐘右邊放GPIO和外設(shè)上邊放調(diào)試接口下邊放啟動(dòng)配置。5.2 分模塊繪制原理圖的實(shí)踐原理圖不要畫在一張圖上按功能分頁。我的分頁方案是Page 1MCU主體包含所有電源引腳、VCORE、去耦電容Page 2時(shí)鐘電路HSE和LSEPage 3復(fù)位與啟動(dòng)配置Page 4調(diào)試接口Page 5LED指示與用戶按鍵Page 6擴(kuò)展排針每頁之間用端口Port連接比如VDD_3V3、GND、NRST等。這樣PCB布局時(shí)可以按頁對(duì)照不容易遺漏。在AD09里畫原理圖有個(gè)設(shè)置要注意柵格Grid設(shè)成100mil或者50mil這樣引腳對(duì)齊方便。走線用Wire而不是Line否則ERC會(huì)報(bào)錯(cuò)。網(wǎng)絡(luò)標(biāo)簽Net Label要放在走線上不要懸空。5.3 ERC檢查與常見錯(cuò)誤處理原理圖畫完之后必須做ERC電氣規(guī)則檢查。AD09的ERC會(huì)檢查未連接的引腳、重復(fù)的網(wǎng)絡(luò)標(biāo)簽、電源和地是否短路等問題。常見的ERC錯(cuò)誤有未連接的輸入引腳比如某些配置引腳沒接需要根據(jù)數(shù)據(jù)手冊(cè)確認(rèn)是否可以懸空不行的要加上拉或下拉重復(fù)的網(wǎng)絡(luò)標(biāo)簽同一個(gè)網(wǎng)絡(luò)標(biāo)簽放在不同的網(wǎng)絡(luò)上會(huì)導(dǎo)致短路電源引腳未連接檢查每個(gè)VDD和VSS是否都連上了輸出引腳短接兩個(gè)輸出引腳連在一起會(huì)報(bào)錯(cuò)處理完ERC錯(cuò)誤后生成網(wǎng)絡(luò)表Netlist導(dǎo)入到PCB。導(dǎo)入之前確認(rèn)封裝都正確特別是LQFP100的封裝引腳編號(hào)要和原理圖符號(hào)一致。6. PCB布局布線H743核心板的實(shí)戰(zhàn)要點(diǎn)6.1 板框設(shè)計(jì)與層疊規(guī)劃最小系統(tǒng)核心板的尺寸我一般控制在50mm x 50mm以內(nèi)四層板結(jié)構(gòu)頂層信號(hào)、內(nèi)層1地平面、內(nèi)層2電源平面、底層信號(hào)。四層板的好處是電源和地都有完整的平面信號(hào)回流路徑短EMI性能好。如果成本敏感兩層板也能做但布線和電源處理會(huì)麻煩很多。板框在AD09里用Keep-Out Layer畫四個(gè)角做R2mm的圓角。安裝孔用M3的孔徑3.2mm周圍留出5mm的禁布區(qū)。如果板子要固定在金屬外殼上安裝孔周圍要加絕緣墊或者用尼龍螺絲。6.2 關(guān)鍵元件的布局順序布局的順序很重要我的習(xí)慣是先放MCU位置在板子中心偏上方便四周走線放晶振緊貼MCU的HSE引腳走線長(zhǎng)度不超過10mm放去耦電容每個(gè)VDD引腳旁邊放一個(gè)優(yōu)先放在底層放電源電路包括LDO、濾波電容、指示燈放調(diào)試接口放在板子邊緣放排針按端口順序排列最后放LED和按鍵布局的時(shí)候要注意晶振下面不要走任何信號(hào)線去耦電容的接地端要就近打過孔到地平面。MCU底部的散熱焊盤如果有要打多個(gè)過孔到地平面幫助散熱。6.3 電源和地的處理技巧H743的電源引腳多布線時(shí)要保證每個(gè)引腳都有足夠的銅皮。我的做法是在內(nèi)層2電源層做一個(gè)3.3V的平面通過過孔連接到每個(gè)VDD引腳。VCORE的2.2uF電容要單獨(dú)走線到VCORE引腳不要和其他電源混在一起。地平面的處理更關(guān)鍵。內(nèi)層1做完整的地平面不要分割。所有去耦電容的接地端、晶振的接地端、復(fù)位電路的接地端都就近打過孔到地平面。過孔的數(shù)量要足夠每個(gè)電容至少一個(gè)過孔大電流路徑多打幾個(gè)。模擬部分VDDA、VREF的接地要和數(shù)字地分開最后在一點(diǎn)連接。在AD09里可以用Net Tie或者0歐電阻實(shí)現(xiàn)單點(diǎn)接地。6.4 布線的優(yōu)先級(jí)與規(guī)則設(shè)置布線的優(yōu)先級(jí)是電源線 晶振線 調(diào)試線 普通信號(hào)線。電源線寬至少20mil如果電流大比如給多個(gè)外設(shè)供電要加到30mil以上。晶振線盡量短包地處理線寬10mil左右。調(diào)試線10mil普通信號(hào)線8mil。AD09的布線規(guī)則設(shè)置在Design - Rules里可以設(shè)置不同網(wǎng)絡(luò)的線寬、間距、過孔尺寸。我一般設(shè)置默認(rèn)線寬8mil電源網(wǎng)絡(luò)20mil間距6mil。過孔用0.3mm孔徑、0.6mm外徑。布線完成后要做DRC檢查確認(rèn)沒有間距違規(guī)、短路、開路等問題。特別注意MCU引腳之間的間距LQFP100的引腳間距0.5mm走線時(shí)不要超出焊盤范圍。7. 打樣與焊接從文件到實(shí)物的最后一公里7.1 Gerber文件輸出與檢查在AD09里輸出Gerber文件的步驟是File - Fabrication Outputs - Gerber Files。需要輸出的層包括頂層信號(hào)、底層信號(hào)、頂層阻焊、底層阻焊、頂層絲印、底層絲印、鉆孔文件、板框。輸出格式選RS-274X單位選英寸或毫米和板廠確認(rèn)。輸出之后用CAM350或者免費(fèi)的Gerber查看器檢查一遍確認(rèn)沒有遺漏的層、沒有異常的走線。特別檢查阻焊層確保焊盤都開窗了否則焊接時(shí)上不了錫。7.2 BOM整理與物料采購BOM表要包含元件位號(hào)、型號(hào)、封裝、數(shù)量、備注。H743VIT6在立創(chuàng)商城或者DigiKey上都能買到注意區(qū)分批次和封裝。晶振選25MHz的無源晶振負(fù)載電容10pF封裝3225。去耦電容用0402或0603的X7R或X5R材質(zhì)耐壓6.3V以上。采購的時(shí)候多買幾顆MCU備用LQFP100焊接時(shí)容易連錫特別是引腳密集的地方。另外買一些助焊劑和吸錫帶返修時(shí)用得上。7.3 手工焊接LQFP100的經(jīng)驗(yàn)焊接LQFP100的步驟先在焊盤上涂一層薄薄的助焊劑把芯片對(duì)準(zhǔn)位置放好注意1腳的位置。然后用烙鐵加少量焊錫固定對(duì)角兩個(gè)引腳確認(rèn)位置正確后用刀頭烙鐵加焊錫拖焊四邊。拖焊時(shí)烙鐵溫度設(shè)在350度左右焊錫要適量多了用吸錫帶吸掉。焊接完成后用放大鏡檢查引腳之間是否有連錫用萬用表測(cè)電源和地是否短路。確認(rèn)無誤后上電測(cè)3.3V和1.2V是否正常。如果VCORE電壓不對(duì)檢查2.2uF電容是否焊好。7.4 上電測(cè)試與程序下載上電后先測(cè)電源指示燈是否亮然后測(cè)NRST引腳電壓是否在3.3V左右。用ST-Link連接SWD接口在STM32CubeProgrammer里看能否識(shí)別到芯片。如果能識(shí)別說明最小系統(tǒng)基本正常。然后寫一個(gè)簡(jiǎn)單的LED閃爍程序驗(yàn)證GPIO和時(shí)鐘配置是否正確。如果識(shí)別不到芯片檢查以下幾點(diǎn)BOOT0是否為低電平、NRST是否正常、SWD線是否接對(duì)、電源電壓是否正常。我遇到過因?yàn)閂CORE電容虛焊導(dǎo)致芯片不工作的情況補(bǔ)焊后就好了。8. 幾個(gè)容易翻車的細(xì)節(jié)與個(gè)人經(jīng)驗(yàn)8.1 VCORE電容的位置比容量更重要很多人知道VCORE要接2.2uF電容但把它放在離引腳很遠(yuǎn)的地方。這個(gè)電容的作用是給內(nèi)核穩(wěn)壓器提供瞬態(tài)響應(yīng)走線電感會(huì)嚴(yán)重影響效果。我的做法是把電容放在VCORE引腳的背面通過過孔直接連接走線長(zhǎng)度不超過3mm。如果放在同一層也要緊貼引腳不要繞路。8.2 晶振的起振問題排查晶振不起振是最常見的故障之一。排查順序是先測(cè)晶振引腳是否有電壓正常應(yīng)該在1V左右然后用示波器看是否有波形。如果沒有波形檢查匹配電容是否焊錯(cuò)、晶振是否損壞、MCU的HSE配置是否正確。有時(shí)候晶振的負(fù)載電容選大了會(huì)導(dǎo)致起振困難可以試著減小到10pF。8.3 AD09里鋪銅的注意事項(xiàng)鋪銅的時(shí)候要注意銅皮和走線之間的間距要符合規(guī)則不要出現(xiàn)尖角。銅皮要連接到地網(wǎng)絡(luò)不要懸空。如果板子上有多個(gè)地網(wǎng)絡(luò)數(shù)字地和模擬地鋪銅時(shí)要分開鋪?zhàn)詈髥吸c(diǎn)連接。AD09的鋪銅操作是Place - Polygon Pour畫完形狀后雙擊設(shè)置網(wǎng)絡(luò)和間距。8.4 排針的排列邏輯擴(kuò)展排針不要隨便排按端口順序排列最實(shí)用。比如PA0~PA15排在一起PB0~PB15排在一起。這樣插到面包板上時(shí)找引腳方便接線也不容易亂。電源和地的排針要多留幾個(gè)方便給外部模塊供電。8.5 調(diào)試接口的防反插設(shè)計(jì)SWD排針如果沒有防反插設(shè)計(jì)插反了可能燒調(diào)試器。我的做法是在排針的KEY引腳位置不放針調(diào)試器的接口上對(duì)應(yīng)位置是堵住的插反了插不進(jìn)去。另外在絲印上標(biāo)注清楚1腳的位置用方形焊盤或者白色圓點(diǎn)標(biāo)記。這塊板子我從第一次畫到現(xiàn)在前后改了五版。最大的體會(huì)是H743的性能確實(shí)強(qiáng)但電源和時(shí)鐘的設(shè)計(jì)不能偷懶。把電源處理好、晶振走線短、地去耦到位芯片就能穩(wěn)定跑在480MHz。PCB布局時(shí)多花一個(gè)小時(shí)調(diào)整元件位置布線時(shí)能省三個(gè)小時(shí)。AD09雖然老但功能夠用關(guān)鍵是規(guī)則設(shè)置要提前做好不然布線到一半發(fā)現(xiàn)線寬不對(duì)返工很痛苦。