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