“RP2040、ESP32、AVR、CH32V003、STM32...?各種各樣的 MCU 挑花了眼,到底該如何選擇?”
細(xì)心的讀者可能注意到,我有時(shí)會(huì)調(diào)侃那些在可以用更簡(jiǎn)單、更便宜的控制方案的情況下,卻選擇了單板計(jì)算機(jī)(SBCs)用于項(xiàng)目的愛好者。
焊接中的微控制器
我不是一個(gè)純粹主義者;硬件和軟件的選擇沒有最終結(jié)果重要。但某些決策實(shí)屬自討苦吃:若僅需控制幾個(gè) I/O 端口,樹莓派搭載的完整 Linux 系統(tǒng)不僅帶來延遲和調(diào)度抖動(dòng),還潛藏諸多隱患(如失控的后臺(tái)服務(wù)數(shù)月間用臨時(shí)文件或日志塞滿SD卡)。 本文將超越調(diào)侃范疇,讓我們快速了解一下您在嵌入式控制方面擁有的選擇,將可編程芯片的應(yīng)用場(chǎng)景劃分為三大類進(jìn)行解析。 場(chǎng)景一:流程控制
到目前為止,業(yè)余項(xiàng)目中最常見的需求是簡(jiǎn)單的自動(dòng)化:即采集傳感器或輸入界面數(shù)據(jù),按既定邏輯控制電機(jī)、小型顯示屏或繼電器。若滿足以下條件,則適用本場(chǎng)景:
算法足夠簡(jiǎn)單,對(duì)于可變變量或調(diào)用棧所需的 RAM 不超過 16 kB
每秒運(yùn)算量不超過約 5 萬次浮點(diǎn)運(yùn)算或 3.2 萬次 32 位乘除
I/O 操作頻率低于10MHz
長(zhǎng)期以來,這類任務(wù)由 8 位微控制器主導(dǎo)。早期產(chǎn)品源自 1970 年代 CPU 架構(gòu),后逐漸被Atmel開發(fā)(現(xiàn)由Microchip維護(hù))的 AVR 系列等現(xiàn)代設(shè)計(jì)取代。該系列不僅包含經(jīng)典 ATmega 芯片,還有性能更強(qiáng)、成本更低的 AVR Dx 系列,但相對(duì)來說,AVR Dx系列在愛好者群體中的知名度并不高。
現(xiàn)代 8 位 MCU 性能較早期 8位微機(jī)提升了數(shù)個(gè)量級(jí),但更注重易用性而非極致速度。此類芯片具備寬電壓輸入范圍,集成豐富外設(shè)(ADC、DAC、運(yùn)放、核心獨(dú)立可配置邏輯等),并擁有超低功耗休眠模式。最關(guān)鍵的是其架構(gòu)簡(jiǎn)潔,執(zhí)行速度穩(wěn)定可預(yù)測(cè),無需擔(dān)憂總線競(jìng)爭(zhēng)、分支預(yù)測(cè)、緩存未命中或內(nèi)存等待狀態(tài)等問題。
近年來涌現(xiàn)出大量用途相似但簡(jiǎn)化的、低端的 32 位芯片(如意法半導(dǎo)體 STM32L0 系列、國(guó)產(chǎn) CH32V003)。這些產(chǎn)品多基于 50 MHz 以下的 ARM Cortex-M0 或 RISC-V 內(nèi)核,配備不足 32KB SRAM。盡管 32 位聽起來在技術(shù)上更先進(jìn)、更現(xiàn)代,但在這個(gè)特定的細(xì)分領(lǐng)域,32 位技術(shù)并沒有帶來真正的優(yōu)勢(shì),反而存在一些隱藏的權(quán)衡:例如 CH32V003 缺失整數(shù)乘法電路。此類芯片存在的根本原因是,對(duì)于那些不是Microchip公司且沒有內(nèi)部8位芯片設(shè)計(jì)團(tuán)隊(duì)的公司來說,制造這類32位芯片的成本更低。
場(chǎng)景二:高性能計(jì)算 當(dāng)涉及海量數(shù)據(jù)處理時(shí),低成本平臺(tái)的局限暴露無遺。典型場(chǎng)景包括攝像頭信號(hào)流中的物體檢測(cè)、視頻流解壓縮,或者運(yùn)行《毀滅戰(zhàn)士》游戲。 計(jì)算類芯片是高端芯片的領(lǐng)域,具備浮點(diǎn)運(yùn)算單元、直接內(nèi)存訪問(DMA)控制器、幾百K的快速內(nèi)置RAM,以及最高可達(dá)約 500MHz 的時(shí)鐘頻率。旗艦產(chǎn)品多基于ARM Cortex-M7架構(gòu)(部分廠商選擇集成多個(gè)低端核心如 Cortex-M3)。這類 IC 可能集成高速 USB 或以太網(wǎng)專用電路,以及硬件加速的媒體編解碼器或加密例程。 業(yè)務(wù)愛好者常用選項(xiàng)包括意法半導(dǎo)體 STM32H7 系列、Microchip SAM S70/PIC32CZ 系列。恩智浦、英飛凌、瑞薩等廠商雖提供同類產(chǎn)品,但因文檔質(zhì)量欠佳及參考代碼稀缺,應(yīng)用門檻較高。最后但同樣重要的是依托樹莓派生態(tài)的 RP2040/RP2350 系列,雖因無內(nèi)置閃存略顯不便(最新 RP2354 已改進(jìn)),仍屬優(yōu)秀芯片。 高端 32 位芯片雖比 8 位產(chǎn)品更為復(fù)雜,但學(xué)習(xí)曲線并非想象中陡峭。以 Cortex-M7 芯片 ATSAMS70J21 的 "Hello World" 配置為例,其開發(fā)流程與 AVR MCU 類似。針對(duì)此類器件已形成成熟開源工具鏈,盡管需要整合多個(gè)獨(dú)立組件。
場(chǎng)景三:網(wǎng)絡(luò)互聯(lián)
當(dāng)獨(dú)立微控制器無法勝任時(shí),通常并非算力不足,而是需滿足以下需求:高速無線連接、強(qiáng)勁的3D圖形協(xié)處理器、數(shù)GB高速內(nèi)存。簡(jiǎn)言之,即承載雅虎網(wǎng)站全量追蹤器與廣告所需的配置規(guī)格。
單板計(jì)算機(jī)(SBC)是比較適合處理這類任務(wù)。它們通常配備 ARM Cortex-A 處理器,并運(yùn)行完整的操作系統(tǒng)。正如之前提到的,SBC 的輸入 / 輸出延遲往往較高且難以預(yù)測(cè),其價(jià)格通常是自微控制器(MCU)的數(shù)倍;而且,SBC 的能效通常也很差。不過,它在某些情況下可能是完成任務(wù)的最佳選擇。此外,還有一個(gè)好處就是熟悉度:它就是一個(gè)可以通過 SSH 登錄的 Linux 系統(tǒng)。 最受業(yè)余愛好者歡迎的單板計(jì)算機(jī)(SBC)是樹莓派系列,但市場(chǎng)上仍存在大量競(jìng)品與克隆產(chǎn)品可供選擇。SBC 核心參數(shù)與傳統(tǒng) PC 無異:處理器性能、內(nèi)存大小以及圖形處理單元(GPU)。 撇開Linux系統(tǒng)不談,還存在一個(gè)處于中間狀態(tài)、比較特殊的射頻微控制器子類別,它們支持Wi-Fi功能。由于 Wi-Fi 協(xié)議復(fù)雜度高且運(yùn)算密集,傳統(tǒng)方案多采用獨(dú)立模塊處理。但部分模塊廠商發(fā)現(xiàn),通過適度分配算力,可讓用戶在 Wi-Fi 芯片上直接運(yùn)行代碼。最具代表性的案例是樂鑫 ESP32 系列;其性價(jià)比難以超越,因而成為連接手機(jī)應(yīng)用的簡(jiǎn)易物聯(lián)網(wǎng)產(chǎn)品首選方案。若拆解「智能」咖啡機(jī)或智能貓砂盆,大概率會(huì)發(fā)現(xiàn)內(nèi)置的樂鑫芯片。
成本權(quán)衡
人們很容易被市場(chǎng)上最便宜的微控制器所吸引,然而,人們也應(yīng)該意識(shí)到,自己的時(shí)間是有價(jià)值的,不能僅僅因?yàn)閮r(jià)格而忽略其他因素。如果是在大規(guī)模生產(chǎn)廉價(jià)小飾品(trinkets),比如生產(chǎn)成千上萬個(gè)產(chǎn)品,那么更換為比原來使用的芯片便宜0.10美元的微控制器可能是明智的。然而對(duì)于愛好者的項(xiàng)目或者小規(guī)模的產(chǎn)品生產(chǎn),這種微小的成本節(jié)約可能不值得付出額外的精力和麻煩。 當(dāng)你在考慮一個(gè)新的硬件平臺(tái)時(shí),你需要思考一個(gè)問題,那就是學(xué)習(xí)這個(gè)平臺(tái)的架構(gòu)是否會(huì)在未來為你打開更多的機(jī)會(huì)之門。如果你選擇像ESP32或RP2040這樣的平臺(tái),那么你在未來的選擇會(huì)比較有限。如果你選擇ST Microelectronics 或 Microchip 這樣的平臺(tái),你將獲得一個(gè)廣泛的芯片選擇。這些芯片具有不同的功能、不同的價(jià)格點(diǎn),并且它們都使用一個(gè)通用的工具鏈和一組相似的API(應(yīng)用程序編程接口)。這意味著,無論你選擇哪種芯片,你都可以使用相同的開發(fā)工具和編程接口來進(jìn)行開發(fā)。這為你提供了更大的靈活性和擴(kuò)展性,因?yàn)槟憧梢栽诓煌捻?xiàng)目中選擇最適合的芯片,而不需要重新學(xué)習(xí)新的開發(fā)環(huán)境。另一方面,如果你需要非常便宜的 Wi-Fi 功能,那么即使有成百上千種沒有內(nèi)置連接功能的產(chǎn)品,對(duì)你來說也是沒有用的。
原文轉(zhuǎn)載自:https://lcamtuf.substack.com/p/choosing-a-microcontroller,經(jīng)過翻譯及校驗(yàn)
注意:如果想第一時(shí)間收到 KiCad 內(nèi)容推送,請(qǐng)點(diǎn)擊下方的名片,按關(guān)注,再設(shè)為星標(biāo)。
常用合集匯總:
和 Dr Peter 一起學(xué) KiCad
KiCad 8 探秘合集
KiCad 使用經(jīng)驗(yàn)分享
KiCad 設(shè)計(jì)項(xiàng)目(Made with KiCad)
常見問題與解決方法
KiCad 開發(fā)筆記
插件應(yīng)用
發(fā)布記錄
審核編輯 黃宇
-
微控制器
+關(guān)注
關(guān)注
48文章
7846瀏覽量
153419 -
mcu
+關(guān)注
關(guān)注
146文章
17734瀏覽量
358573 -
cpu
+關(guān)注
關(guān)注
68文章
11013瀏覽量
215301
發(fā)布評(píng)論請(qǐng)先 登錄

工程機(jī)械控制器如何選型?控制器選型指南 #控制器 #車載控制器 #整車控制器 #控制器選型
芯科科技全新MCU選型指南

電機(jī)控制器選型指南
S32K3xx微控制器的硬件設(shè)計(jì)指南
MSP430微控制器串行編程適配器用戶指南

C2000?實(shí)時(shí)控制微控制器(MCU)使用入門

ESP32 微控制器系列指南

C2000實(shí)時(shí)控制微控制器(MCU)使用入門
使用C2000?實(shí)時(shí)微控制器的基本開發(fā)指南

評(píng)論