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