自定義STM32板從零開始
這是一個(gè)完全定制的基于stm32的PCB(印刷電路板)。完全自定義,它比商業(yè)devkit有一個(gè)優(yōu)勢(shì),你可以自定義它的形狀和應(yīng)用。(除了能夠任何額外的傳感器,功能等)
在本文中,我將向您展示開始為自己設(shè)計(jì)這些很酷的定制板所需的一切,而不是典型的項(xiàng)目,從而為您自己的許多新的令人興奮的項(xiàng)目提供動(dòng)力。我還將向您展示STM32何時(shí)是其他mcu(微控制器單元)(如ESP32或Arduino)的好選擇,以便您很好地了解它們之間的利弊。
如果你對(duì)設(shè)計(jì)自定義ESP32板感興趣,我在這里寫了一個(gè)完整的單獨(dú)教程。
在這個(gè)項(xiàng)目中,我將構(gòu)建STM32H573,因?yàn)樗哂懈咝阅?、大容量?jī)?nèi)存、緊湊的尺寸和具有競(jìng)爭(zhēng)力的價(jià)格點(diǎn)。這是一個(gè)很棒的萬(wàn)能芯片!
該板將包括:
?緊湊的35x35mm尺寸
?RGB,電源和閃爍led
?USB-C供電和上傳
?SWD調(diào)試引腳
?BOOT和RST(復(fù)位)按鈕
?電源、GND和最好用的gpio都?jí)牧?
?HSE和LSE外部振蕩器
?防靜電保護(hù)
讓我們開始吧!
為什么STM32 ?
根據(jù)我的經(jīng)驗(yàn),stm32優(yōu)于典型的微控制器有兩個(gè)主要因素:
?Volume
?Support
通過體積,我指的是有字面上成千上萬(wàn)的不同類型和變種的stm32。在Digikey上簡(jiǎn)單搜索一下就能證實(shí)這一點(diǎn)。
這很重要,因?yàn)檫@意味著幾乎總是會(huì)有一個(gè)STM32完全符合您想要?jiǎng)?chuàng)建的項(xiàng)目的確切要求和規(guī)格。這也很有幫助,因?yàn)檫@意味著如果你想要構(gòu)建一個(gè)產(chǎn)品投入生產(chǎn),你就不會(huì)在你不需要的其他外圍設(shè)備等上花費(fèi)更多。(稍后我將介紹STM32的類型以及如何選擇它們。)
我前面提到的第二個(gè)主要因素(環(huán)境)是指專業(yè)開發(fā)或其他方式開發(fā)的STM32項(xiàng)目的絕對(duì)數(shù)量。這在選擇理想的MCU(微控制器單元)時(shí)尤其重要,因?yàn)檫@意味著意法半導(dǎo)體(STM32背后的公司)有關(guān)于他們的產(chǎn)品和開發(fā)工具的大量文檔。
也許最好的例子是他們的STM32CubeIDE開發(fā)環(huán)境。我已經(jīng)使用ESP-IDF (ESP32版本)有一段時(shí)間了,在嘗試CubeIDE時(shí)給我留下了深刻的印象,因?yàn)樗鼈兪褂昧艘粋€(gè)用戶界面來配置引腳和外設(shè),可以自動(dòng)生成必要的代碼,而不必自己編寫。這使得基本設(shè)置(配置I2C等)變得非常簡(jiǎn)單。CubeIDE還可以運(yùn)行許多不同的操作系統(tǒng),比如我最喜歡的FreeRTOS(基于線程的操作系統(tǒng)),它也非??帷?
我在我的主頁(yè)上使用的RGB LED演示示例代碼可以在這里找到。
但是學(xué)習(xí)使用CubeIDE應(yīng)該有自己的教程(稍后再查看)。我們現(xiàn)在繼續(xù)前進(jìn)吧!
很快地,我還想宣布RoboticWorx正式推出了一款產(chǎn)品!這是PolyCast5多工具遙控器。如果你感興趣,可以在這里查看!
為什么不是STM32?
STM32非常棒,但它確實(shí)不是每個(gè)項(xiàng)目的理想選擇。目前,我的兩個(gè)首選微控制器是STM32和ESP32,我還沒有遇到一個(gè)項(xiàng)目,其中一個(gè)不能擅長(zhǎng)。以下是我如何在它們之間做出選擇:
STM32+NRF是指STM32與專用收發(fā)IC(如NRF系列芯片)配對(duì)。
當(dāng)然,情況并非總是如此,但這是我如何選擇的一個(gè)很好的大綱,并且大多數(shù)時(shí)候都是正確的。ESP32具有強(qiáng)大的功能,但非常耗電。等效的STM32比ESP32貴一點(diǎn),但具有更好的功耗特性,并且可以提供更多特定的功能??倳?huì)有一些讓步和讓步。
這是一個(gè)ESP32模塊,里面有一個(gè)較小的ESP32 SoC(片上系統(tǒng)),如果需要,您可以直接使用。這也不是按比例的!
我已經(jīng)對(duì)ESP32和STM32給予了很多關(guān)注,但是你的Arduino (ATmega)用戶呢?事情是這樣的:
Arduino是介紹嵌入式系統(tǒng)(設(shè)計(jì)和制作電路板)的絕佳方式,但它是初學(xué)者的設(shè)備,與上述設(shè)備相比,它的優(yōu)勢(shì)很大。
這不是一個(gè)完美的圖表(許多選項(xiàng)用于GPIO重新配置,外部ram等),但它是一個(gè)基本的通用大綱。
Arduino R4是UNO的可靠升級(jí),但仍然無(wú)法與大多數(shù)stm32或esp32的功能相匹配。而且arduino的類型也不多,這嚴(yán)重?fù)p害了您在構(gòu)建項(xiàng)目時(shí)的選擇。
但是,即使說了這么多,如果你以前沒有做過這樣的項(xiàng)目,我強(qiáng)烈建議你先用Arduino做一些。一頭扎進(jìn)去可能會(huì)讓人不知所措,只會(huì)導(dǎo)致困惑和沮喪。Arduino有一個(gè)很好的項(xiàng)目社區(qū),可以幫助你,我強(qiáng)烈建議在開始定制pcb之前先學(xué)習(xí)Arduino項(xiàng)目。(這篇文章還會(huì)在這里?。?
選擇STM32
正如我之前提到的,有很多STM32的選擇!這是一個(gè)很好的問題,但是知道哪一個(gè)最適合您的項(xiàng)目可能會(huì)令人困惑。以下是一般指導(dǎo)原則:
我可能會(huì)選擇ESP32而不是任何無(wú)線版本(盡管我確信它們會(huì)工作得很好),所以我跳過這些。
為了擴(kuò)展這張圖片,選擇stm32的一個(gè)重要部分沒有被提及的是它是什么時(shí)候發(fā)布的,以及如何使用它來節(jié)省資金和獲得性能。
例如,STM32F446的價(jià)格為8.85美元,包括180MHz的最大時(shí)鐘速度和512KB的閃存。這些都是不錯(cuò)的統(tǒng)計(jì)數(shù)據(jù),但我可以便宜45美分買一臺(tái)STM32H573,它的最大時(shí)鐘速度是250MHz,內(nèi)存是2MB。它的內(nèi)存幾乎是原來的4倍,處理速度更快,而且更便宜!
好吧,發(fā)生了什么?
這是因?yàn)镕446是在2016年2月發(fā)布的,H573是在2023年3月發(fā)布的。但現(xiàn)在新芯片更便宜,這似乎沒有多大意義。這是有效的,因?yàn)樾聳|西并不一定意味著它的成本更高。新技術(shù)使制造更難的東西(比如更多的閃存)變得更容易,這有助于降低價(jià)格。此外,作為一種更新的芯片,較低的價(jià)格將吸引人們開發(fā)具有更好技術(shù)的新產(chǎn)品,以幫助淘汰舊版本(F4),為新版本(H5)騰出空間。
我說這一切的目的是讓你選擇更新的stm32 !您將節(jié)省資金并獲得更好的性能。解決了這個(gè)問題,我們可以回到圖表上。
?對(duì)于低功耗可穿戴設(shè)備/應(yīng)用,STM32U系列是非常好的。
?這些有許多口味,例如高性能超低功耗STM32的STM32U5或更小但也更便宜的STM32U0。
?STM32L系列也可以,但比U系列老,所以要相應(yīng)挑選!
?對(duì)于通用材料(基本應(yīng)用),STM32C系列是一個(gè)可靠的選擇。
?它將于2023年1月發(fā)布,這是一款全新的游戲(在撰寫本文時(shí)),并提供了一些不錯(cuò)的特性。
?它也是一種非常便宜的集成電路,可以成為開發(fā)大規(guī)模產(chǎn)品的絕佳選擇。
?對(duì)于高性能(我最喜歡的之一),STM32H5真是太棒了!
?這是一個(gè)非常新的系列,于2023年3月發(fā)布,提供了一些非??岬墓δ芎透呒?jí)安全選項(xiàng),如TrustZone。
?對(duì)于真正的高性能(圖像處理等),STM32H7占主導(dǎo)地位。
?它可以提供550MHz左右的最大時(shí)鐘速度,這是相當(dāng)瘋狂的。
?它比其他的老一點(diǎn),但你要為它的性能付出代價(jià)。
當(dāng)然,這些并不是嚴(yán)格的指導(dǎo)方針,建議您查看各種不同的stm32,以選擇最適合您的應(yīng)用程序的stm32。它們也可能不是未來的最新/最佳選擇,所以一定要查看ST的官方頁(yè)面和推薦。這里還有一個(gè)很好的維基百科頁(yè)面,上面有一些發(fā)布日期和信息。
現(xiàn)在讓我們繼續(xù)構(gòu)建實(shí)際的STM32H573!
這些項(xiàng)目需要一段時(shí)間才能推出。如果您想支持我創(chuàng)建這些免費(fèi)教程的工作,請(qǐng)考慮成為免費(fèi)或Plus訂閱者!
示意圖
在選擇STM32之后(在我的例子中是STM32H573),我總是首先打開數(shù)據(jù)表。這也是一個(gè)確保你的選擇滿足你的項(xiàng)目需求的好地方,因?yàn)槟阃ǔ?梢栽谑醉?yè)和“描述”部分找到一些總結(jié)的細(xì)節(jié)。
在那之后,你會(huì)得到大量的信息。但是我們不一定需要知道所有這些才能開始使用MCU和構(gòu)建PCB。
最基本的第一步,需要完成讓這個(gè)壞男孩運(yùn)行是確保足夠的電力供應(yīng)。為此,請(qǐng)轉(zhuǎn)到數(shù)據(jù)表中的“電氣特性”部分并滾動(dòng)到電源方案。
您可能會(huì)注意到有兩種不同的方案,一種用于SMPS(開關(guān)模式電源),一種用于LDO(低差穩(wěn)壓器)。對(duì)于本例,為了簡(jiǎn)單起見,我將選擇LDO,但是要知道,如果您想要更高的效率,SMPS也是一個(gè)不錯(cuò)的選擇。
這看起來像很多東西,但它真的不是那么復(fù)雜?;旧?,所有這些都是在向我們展示去耦電容器需要放在哪里才能穩(wěn)定運(yùn)行。所以我將把這些建議復(fù)制到我的KiCad項(xiàng)目中。KiCad是一個(gè)免費(fèi)的,超級(jí)棒的軟件,用于開發(fā)pcb。你可以在這里查看)。
我還想指出,ST有很多應(yīng)用筆記,如果你需要額外的資源,你可以查看額外的建議和指導(dǎo)方針。
太棒了!接下來我們可以看看晶體振蕩器。
如果你已經(jīng)安裝了KiCad,但不知道我如何把STM32H573符號(hào)放在那里,我從超級(jí)圖書管理員下載了它。Ultra Librarian和SnapEDA是導(dǎo)入默認(rèn)KiCad庫(kù)中未包含的外部PCB符號(hào)和足跡的重要資源。
要查找晶體振蕩器信息,請(qǐng)轉(zhuǎn)到標(biāo)題為“具有8MHz晶體的典型應(yīng)用”的部分。
8MHz晶體通常是大多數(shù)stm32的默認(rèn)使用,盡管從技術(shù)上講,您可以選擇4-50MHz的晶體?,F(xiàn)在,你可能想知道這是什么或者為什么需要它。所有這些都為STM32提供了一個(gè)參考信號(hào)(以設(shè)定的頻率進(jìn)行周期性的高到低振蕩),以基于其內(nèi)部操作。大多數(shù)stm32也帶有一個(gè)可以使用的內(nèi)部振蕩器,但它不像外部振蕩器那么精確,基本上更糟。例如,某些外設(shè)(如USB)需要非常特定的時(shí)鐘頻率來滿足協(xié)議規(guī)范,而內(nèi)部振蕩器無(wú)法輕松完成。
對(duì)于這個(gè)項(xiàng)目,我只是選擇了ECS-80-18-23B-JTN-TR作為晶體,因?yàn)樗谙喈?dāng)緊湊的尺寸下具有體面的公差(±20ppm),額定頻率為8MHz。
另外需要知道的是,晶體通常需要負(fù)載電容器來確保穩(wěn)定、可靠的振蕩。它們的值可由下式計(jì)算:
其中C_load為晶體的額定負(fù)載電容,C_stray為PCB走線和引腳的雜散電容。有時(shí)STM32數(shù)據(jù)表中有提到的雜散電容,但在這種情況下,我沒有看到STM32H573。然而,檢查一下總是最好的。
如果你愿意,你也可以添加一個(gè)LSE(低速外部時(shí)鐘),它通常是32.768kHz,用于RTC(實(shí)時(shí)時(shí)鐘)和低功耗操作的精確計(jì)時(shí)。你可以用同樣的方法計(jì)算負(fù)載電容,如果你選擇添加它。
在為STM32打破任何引腳之前,確定您實(shí)際需要的項(xiàng)目引腳是有用的。與esp32不同,esp32有一個(gè)GPIO矩陣,允許任何GPIO用于任何特定功能(給定它們沒有內(nèi)部映射),STM32引腳更具體。例如,如果您需要使用SPI,則需要斷開具有SPI功能的引腳。對(duì)于這個(gè)項(xiàng)目,因?yàn)闆]有什么特別需要的,我只是啟用了一堆隨機(jī)的外設(shè),然后把它們拆開,這樣PCB就可以靈活了。
這就是說,然而,stm32仍然有些靈活,因?yàn)槎鄠€(gè)引腳可以用于相同的目的。這方面的一個(gè)例子是,在這個(gè)芯片系列上,PA5和PB3可以用作SPI1_SCK等。在CubeIDE上,如果您感興趣,可以按住CTRL然后單擊給定的引腳來查看。如果您不想弄亂CubeIDE(這也很好),您也可以通過數(shù)據(jù)表上的引腳來確定哪個(gè)做哪個(gè)。
雖然我們?cè)谝_的主題上,我還想指出STM32調(diào)試。這與您可能在USB上使用ESP32不同,因?yàn)槟枰褂锰囟ǖ恼{(diào)試引腳(以及調(diào)試器,但稍后會(huì)詳細(xì)介紹)。我個(gè)人最喜歡的調(diào)試方法是SWD(串行線調(diào)試)與“跟蹤異步Sw”。啟用此功能后,您將獲得SWO(串行線輸出)引腳,該引腳允許打印到終端(通過printf),這對(duì)于記錄事物的內(nèi)部狀態(tài)非常有用。當(dāng)我第一次開始使用stm32時(shí),我花了很長(zhǎng)時(shí)間才弄清楚這一點(diǎn),但它非常有用;強(qiáng)烈推薦!我希望您可以享受我擴(kuò)展的故障排除的成果。
因此,總的來說,要進(jìn)行調(diào)試,您將擁有SWO, SWDIO和SWCLK,引腳和可選的NRST引腳,以及電源和GND。然后,當(dāng)時(shí)間到來時(shí),您將這些引腳連接到您選擇的調(diào)試器,然后通過它使用的任何電纜連接到您的計(jì)算機(jī)。
?SWCLK -串行線時(shí)鐘
?串行線數(shù)據(jù)輸入/輸出
?SWO -串行線輸出
最后,我們可以簡(jiǎn)單地連接BOOT0和NRST引腳。在大多數(shù)stm32上,當(dāng)BOOT0引腳高時(shí),啟動(dòng)模式(“僅上傳代碼”模式)被激活,因此添加一個(gè)下拉電阻以確保默認(rèn)情況下它是低的,以便閃存程序可以運(yùn)行。對(duì)于NRST引腳則相反,其中STM32在引腳低時(shí)被禁用(復(fù)位),因此需要一個(gè)上拉電阻來代替默認(rèn)的高狀態(tài)。我們也可以將這些引腳連接到PCB上的觸覺開關(guān)(按鈕),這樣我們就可以在需要時(shí)激活任何一個(gè)。
添加一個(gè)小電容來平滑任何按鈕彈跳也是一個(gè)好主意,因?yàn)檎缒梢韵胂蟮哪菢?,每次按下都快速重?啟動(dòng)STM32是不理想的。
另一個(gè)我從自己的項(xiàng)目中學(xué)到的技巧是在原型制作時(shí)添加一個(gè)“閃爍”LED。這個(gè)LED的唯一工作就是閃爍(你用代碼告訴它),這聽起來沒什么用,但實(shí)際上非常有用。當(dāng)它閃爍時(shí),您知道代碼實(shí)際上正在運(yùn)行(沒有卡在任何地方,這實(shí)際上經(jīng)常發(fā)生),以及STM32實(shí)際上在聽您的聲音。這消除了設(shè)置中的任何潛在問題,其中可能代碼沒有正確編譯/配置錯(cuò)誤并導(dǎo)致奇怪的行為。
有了這個(gè),你可以添加一個(gè)標(biāo)準(zhǔn)的USB連接器和電壓規(guī)則,并完成!當(dāng)然,如果需要,您也可以添加額外的組件,如電池充電器,傳感器等,但在這里我只關(guān)注基本的STM32。
此處還增加了ESD保護(hù),建議使用USBLC6。
如上所述,在原型制作時(shí)強(qiáng)烈建議使用電源LED,以便您知道PCB是否通電。這對(duì)于識(shí)別短路也很有用,這在第一次給電路板通電時(shí)非常有用。(在短路的情況下,沒有電流流過LED,它將關(guān)閉。只要插上電源就很容易知道。)以下是完整的示意圖供您參考:
布局
在開始之前,我還想指出,ST通常會(huì)提供大量的應(yīng)用筆記,其中包含使用其產(chǎn)品開發(fā)的額外指導(dǎo)方針和建議。我建議在處理新事物時(shí)經(jīng)常檢查它們。這是該板上的STM32H573 MCU的一個(gè)。
現(xiàn)在我們已經(jīng)完成了原理圖,我們可以移動(dòng)到PCB布局,這就是實(shí)際PCB的設(shè)計(jì)方式。首先,我們應(yīng)該打開PCB板編輯器并導(dǎo)入設(shè)計(jì)。
之后,我們應(yīng)該轉(zhuǎn)到File > Board Setup > Physical stack,并選擇4個(gè)銅層。如今pcb相當(dāng)便宜,做兩層pcb真的沒有多大意義,因?yàn)槟銜?huì)以最低的成本錯(cuò)過免費(fèi)的接地和電源平面。
在設(shè)置的時(shí)候,我也喜歡去編輯>文本和圖形屬性,然后格式化所有的參考指示器為0.8的高度和寬度和0.15的厚度。這是大多數(shù)PCB制造商無(wú)需支付額外費(fèi)用的典型最低要求。為了清理布局,我通常還會(huì)隱藏組件值,因?yàn)椴季植⒉徽嬲枰鼈儭?
更好的!我們也可以創(chuàng)建一些預(yù)定義的大小,現(xiàn)在在文件>板設(shè)置>預(yù)定義的大小。這樣,我們就可以在路由時(shí)選擇一些默認(rèn)的大小。我通常盡量不要低于我在這里所擁有的,因?yàn)樽呔€/通孔越小,PCB的制造成本就越高。在空間允許的情況下,您在這里看到的較大的走線用于路由電源等。
從那里我們可以繼續(xù)并創(chuàng)建一個(gè)輪廓板(選擇“邊緣切割”層)。如果有機(jī)械約束,請(qǐng)確保PCB尺寸合適。由于這對(duì)我來說只是一個(gè)通用的電路板,我將根據(jù)組件數(shù)量做一個(gè)合理尺寸的粗略hack, 35x35mm。
現(xiàn)在您可以開始放置較大的組件,以查看所有組件如何能夠組合在一起。在這個(gè)階段,我的設(shè)計(jì)看起來是這樣的,幾個(gè)主要組件大致放置在后面進(jìn)行調(diào)整。
這也可以給你一個(gè)想法,如果一切都將能夠?qū)嶋H適合PCB??雌饋砦覒?yīng)該可以,所以我知道我可以繼續(xù)。
現(xiàn)在我們可以開始放剩下的了。最好從其他主要元件及其各自的電容開始,因?yàn)殡娙莸奈恢么_實(shí)很重要,因?yàn)橐粋€(gè)引腳的給定電容應(yīng)該盡可能靠近該引腳以進(jìn)行去耦。你應(yīng)該在原理圖之間來回切換,看看哪個(gè)電容器去哪里,然后盡你最大的努力把它放在盡可能靠近它所連接的任何地方。這樣做了一段時(shí)間后,您的PCB可能看起來像這樣,只有主組件和電容器放置。
我還應(yīng)該指出,晶體振蕩器應(yīng)該盡可能靠近它們各自的引腳,因?yàn)槟阆雵L試減少雜散電容。
如果你找到一個(gè)更理想的方法,你也可以隨意移動(dòng)?xùn)|西。你可能會(huì)注意到,我把電源的東西,如USB→穩(wěn)壓器彼此靠近。這是一個(gè)好主意,因?yàn)樗鼈冎苯釉谠韴D上相互饋送(來自USB的5V被調(diào)節(jié)到3.3V),這使得連接更容易,并給PCB一些流量。只要有可能,您就應(yīng)該嘗試這樣做,以幫助自己獲得路由和良好的設(shè)計(jì)實(shí)踐。
一旦關(guān)鍵組件(電容器,主流等)的位置看起來不錯(cuò),我們就可以轉(zhuǎn)移到電阻和其他東西。這些問題不那么重要,但它仍然是一個(gè)很好的做法,將它們盡可能靠近它們連接的任何東西,因?yàn)樗鼘⑹孤酚筛菀祝?dāng)我們做下一步(連接所有的痕跡)。
太棒了!現(xiàn)在我們可以進(jìn)入下一步,即路由所有不同的連接。
路由
這里的一個(gè)關(guān)鍵元素是銅層。有很多不同的方法可以做到這一點(diǎn),但我通常會(huì)使用這個(gè)堆棧:
?頂層-信號(hào)走線
?In1層-接地面
?第2層-帶填充物的電源走線
?底層-信號(hào)走線
這意味著我所有的信號(hào)走線(各種連接)將位于頂層和底層(但主要是頂層),并且在第2層上將有一個(gè)堅(jiān)實(shí)的接地平面,以便所有組件能夠訪問,并且在第3層上將有3.3V用于類似目的。接地平面還可以很好地隔離主信號(hào)層和電路板的其余部分,這一點(diǎn)很重要,因?yàn)樗矠樗行盘?hào)提供了一些耦合。我還喜歡在信號(hào)層上填充任何開放區(qū)域,作為一個(gè)很好的設(shè)計(jì)實(shí)踐,因?yàn)樗兄诜乐乖谥圃爝^程中由于銅不平衡而產(chǎn)生翹曲。所以讓我們繼續(xù)創(chuàng)建這些平面!(“添加填充區(qū)域”)
注意:為了方便起見,我在第3層使用了一個(gè)3.3V的平面,但是你通常只在第3層上做電源走線,然后在第3層的其余部分填上地線!
如果你現(xiàn)在按下“B”,區(qū)域就會(huì)被填滿,如果你想要查看的話,這很好。完成后可以按CTRL+B取消填充。看起來頂部,In1和底層現(xiàn)在都變成了地平面,但是當(dāng)我們完成路由時(shí),頂部和底部的地面傾倒量將顯著減少。
開始,我喜歡做最重要的痕跡。這通常是USB D+/-差分對(duì)和晶體振蕩器。在那之后,我喜歡連接電容器,然后電源與gpio最后。因此,由于USB走線是差分對(duì),它們需要一起布線,這樣它們就可以抵消emi方面的噪聲。也許是這樣的:
這也很有可能你最終移動(dòng)了很多痕跡,因?yàn)楦嗟穆酚?,所以不要?dān)心太多,使任何一個(gè)痕跡完美。我現(xiàn)在可以為晶體振蕩器走線做同樣的事情(盡管它們不是微分對(duì))。
您可能會(huì)注意到,我使用了較粗的走線來連接負(fù)載電容器,這是一個(gè)很好的設(shè)計(jì)實(shí)踐,因?yàn)檩^粗的走線可以減少電阻。差別不是很大,所以沒關(guān)系,但如果你能的話,那就太好了。你可能還注意到我的底部LSE晶體有點(diǎn)拉伸。如果在設(shè)計(jì)之后,您注意到這種增加的雜散電容導(dǎo)致問題,那么您可以隨時(shí)調(diào)整我們之前計(jì)算的負(fù)載電容的大小。
連接電容器時(shí),最好將其直接連接到電源平面的任何引腳上,而不是簡(jiǎn)單地連接到電源平面上。這些電容器專門用于斷開它們所連接的引腳的耦合,并且應(yīng)該這樣布線。下面是一個(gè)例子:
這是一個(gè)理想的電容器連接應(yīng)該看起來像。你會(huì)注意到我使用了一個(gè)更厚的痕跡,我可以直接從平面(via)連接到電容,到引腳。你應(yīng)該在任何可能的地方這樣做。
如果你想提前考慮,你也可以在任何需要接地的地方打開接地孔。像電源平面一樣,這個(gè)通孔將把給定的pad直接連接到平面上,以獲得干凈的連接。這不需要在任何地方都這樣做,因?yàn)殂~填充物會(huì)使大多數(shù)東西接地,但這是一個(gè)很好的設(shè)計(jì)實(shí)踐,因?yàn)槿魏蔚胤蕉加幸粋€(gè)通孔,到平面的接地路徑會(huì)更短,從而產(chǎn)生更好的接地連接。這對(duì)集成電路接地引腳尤其重要。
我還想指出,尋找一些可能不那么明顯的明智的路由技巧。例如,穩(wěn)壓器用其3.3V輸出為所有組件供電,對(duì)嗎?因此,當(dāng)將3.3V進(jìn)入電源平面時(shí),使用幾個(gè)過孔而不是一個(gè)過孔是很好的做法,這樣電阻就會(huì)降低,輸出更容易進(jìn)入電源平面,并在所有這些方向上被拉到所有電容器等。另一個(gè)很好的例子是盡可能分散走線(減少串?dāng)_),并增加攜帶最大功率的走線的寬度,因?yàn)殡娮鑼?duì)這些走線最重要(它們連接到所有東西),并且它們可能會(huì)發(fā)熱(取決于負(fù)載)。這樣做的時(shí)候,仔細(xì)思考一下是很有用的,這樣你就可以問自己:“有沒有更好的方法來做這件事?”
重復(fù)一點(diǎn)后,你的PCB可能看起來像這樣。
完成關(guān)鍵走線后,您現(xiàn)在可以切換到較小的走線寬度(0.2/0.25mm)并布線其余部分。(不過如果可以的話,厚一點(diǎn)更好。)這將是gpio,各種電阻器等。一段時(shí)間后,您可能會(huì)得到如下所示的內(nèi)容。
太酷了!在此之后,你應(yīng)該四處走動(dòng),在有銅填充的地方添加額外的接地孔。這在各層之間創(chuàng)造了更好的耦合,并在電路板周圍提供了額外的接地路徑。(這樣可以更好地接地。)
作為一個(gè)有用的提示,你可以通過點(diǎn)擊Tools > Add Teardrops > OK來做一些清理,以及Tools > Remove Unused Pads > Scope: Vias > Action: Remove Unused layers淚滴通過產(chǎn)生銅來減少阻力,從而可以輕松進(jìn)出現(xiàn)有的痕跡、襯墊等。然后去除未使用的過孔,使接平面在現(xiàn)有過孔之間的空間中生長(zhǎng),以便更好地接地。
幾乎完成了!最后的檢查是運(yùn)行DRC(設(shè)計(jì)規(guī)則檢查)來檢查問題。您可能會(huì)得到很多“錯(cuò)誤”,但并非所有錯(cuò)誤都是問題。例如,也許你會(huì)得到一個(gè)熱釋放錯(cuò)誤,但這是對(duì)于一個(gè)小的電容器或者不需要好的熱釋放的東西。在這種情況下,你可以忽略它們,但重要的是要檢查所有的錯(cuò)誤,以確保沒有破壞你的設(shè)計(jì)或可制造性(例如< 0.2mm間隙)。
當(dāng)一切順利的時(shí)候,你就可以在黑板上寫上版本或者日期了。如果它是你正在開發(fā)的需要多次修改的大型項(xiàng)目的一部分,這將很有幫助。
這樣,您就可以繼續(xù)導(dǎo)出制造文件了。文件>制作輸出> Gerbers。然后單擊“Plot > Generate Drill File > Generate Map File”。
然后,打開文件管理器或類似的工具,選擇剛剛生成的所有文件,并將它們壓縮成a.p zip文件。我們現(xiàn)在可以把它們寄給我們選擇的制造商!
電路板
完成后,我們就可以制造電路板了!
可以在這里找到該板的Gerber/制造文件。
可編輯的STEP和KiCad PCB文件可在這里添加用戶。想成為付費(fèi)用戶嗎?只要5美元,我將非常感謝您的支持!
帶有標(biāo)識(shí)的零件清單(BOM)可以在這里找到,如果需要,可以在這里找到CPL。像往常一樣,我知道訂購(gòu)零件看起來很痛苦,但實(shí)際上并沒有那么糟糕,因?yàn)槟鷱囊粋€(gè)項(xiàng)目訂購(gòu)的幾乎所有零件都可以重復(fù)使用。想想你會(huì)從一些實(shí)踐經(jīng)驗(yàn)中學(xué)到多少東西!
像往常一樣,我知道訂購(gòu)零件看起來很痛苦,但實(shí)際上并沒有那么糟糕,因?yàn)槟鷱囊粋€(gè)項(xiàng)目訂購(gòu)的幾乎所有零件都可以重復(fù)使用。想想你會(huì)從一些實(shí)踐經(jīng)驗(yàn)中學(xué)到多少東西!
如果您有興趣了解更多關(guān)于嵌入式系統(tǒng)(PCB設(shè)計(jì)/開發(fā)),請(qǐng)查看YouTube上的Robert Feranec和Phil 's Lab。他們是很棒的設(shè)計(jì)師,我從他們身上學(xué)到了很多東西。
要實(shí)際生產(chǎn)PCB,我們需要通過制造商。為此,我使用了PCBWay!
我從來沒有質(zhì)疑過他們的質(zhì)量,他們還提供許多其他服務(wù),如CNC加工,3d打印和PCB組裝。它們還具有九種不同的阻焊顏色可供選擇和三種不同的絲印,這非常適合定制。(我甚至相信他們現(xiàn)在有多色阻焊板?。┪疫x擇我的是藍(lán)色的,因?yàn)槲蚁矚g這個(gè)顏色,它提供了一個(gè)纖細(xì)的阻焊間隙,但你可以自由地選擇你的是任何你喜歡的顏色!
因?yàn)槲沂怯肒iCad設(shè)計(jì)的,我甚至不需要離開我的設(shè)計(jì)軟件去檢查,這要感謝他們方便的插件!如果沒有,你可以去PCBWay.com,點(diǎn)擊快速訂購(gòu)PCB,并上傳電路板的Gerber文件?;蛘撸阋部梢匀ミ@里,我保存在我的收藏夾欄里。我建議在結(jié)帳時(shí)點(diǎn)擊模板選項(xiàng),使手工組裝更容易!
其他所有內(nèi)容都可以保留為默認(rèn)值,除非您想要進(jìn)行任何特定的調(diào)整。(無(wú)鉛表面處理,去除產(chǎn)品編號(hào)等)
大約一個(gè)星期后,當(dāng)我拿到板子時(shí),它們看起來棒極了!
現(xiàn)在我們可以把它們組裝起來。第一步是把木板貼在一個(gè)平面上,把模板貼在上面,然后在上面涂上一些錫膏。這可以說是最重要的一步,所以請(qǐng)隨意嘗試幾次以確保正確。當(dāng)你完成后,漿糊應(yīng)該足夠好,這樣漿糊層幾乎完美地覆蓋在每個(gè)墊上,所以很難分辨漿糊是否在那里。
之后,我們可以拿出參考表(BOM上的標(biāo)識(shí))并開始放置組件。我知道指示器有點(diǎn)緊,可能看不清楚,所以我也做了一個(gè)指示器表,標(biāo)記得更清楚,供您參考,可以在這里找到。只需下載PDF,然后放大,看到清楚標(biāo)記的電阻和電容器。
一旦一切都已放置,小心地把它放在一個(gè)熱板(或類似的)熔化焊料和固化組件。
然后,小心地把它取下來,這樣就不會(huì)滑到任何地方,讓它冷卻下來。之后,你可以做一個(gè)快速的目視檢查,以確保沒有引腳橋接在一起,而焊料融化。這種情況通常發(fā)生在這樣的封裝中,其中引腳彼此非常接近。如果你注意到了,不要擔(dān)心。你可以用一些拆焊芯來拆橋。
由于您需要訪問SWD引腳進(jìn)行代碼上傳和調(diào)試,因此我還建議焊接一些引腳頭。
這是它!
物料清單
這是定制的STM32物料清單!
我將把您需要的所有內(nèi)容放在這里,這樣您就不必到處滾動(dòng)尋找我在文章中散布的鏈接。
包括Gerber文件,零件列表等在內(nèi)的所有內(nèi)容都可以在我的GitHub上找到。
PCB STEP文件和可編輯的KiCad PCB文件可在這里添加訂閱者。非常感謝您的支持!
?如果你還沒有:
?迷你烙鐵(我用的,但任何都會(huì)做)
?防靜電IC存儲(chǔ)容器
?錫膏
?焊料(我的選擇)
?熱板
?可調(diào)實(shí)驗(yàn)室工作臺(tái)電源
?3D打印線材(我的首選)
?熱風(fēng)返工槍(非常適合修復(fù)破損或錯(cuò)位的ic)!
?一些螺母和螺栓
?基本的螺絲刀套件(眾多選擇之一)
本文編譯自hackster.io





