STM32應該是比較熟悉的一個系列的單片機,而ESP32相對陌生一些。但是從名字看,兩者應該都是32位單片機。那么兩者之間到底有什么關聯(lián),或者性能哪個好一些,哪個差一些呢?
STM32系列
意法半導體 (STMicroelectronics) 集團于1987年6月成立,是由意大利的SGS 微電子公司和法國Thomson 半導體公司合并而成。1998年5月,SGS-THOMSON Microelectronics 將公司名稱改為意法半導體有限公司,意法半導體是世界最大的半導體公司之一。
STM32系列專為要求高性能、低成本、低功耗的嵌入式應用設計的ARM Cortex?-M0,M0+,M3, M4和M7內(nèi)核(ST‘s product portfolio contains a comprehensive range of microcontrollers, from robust, low-cost 8-bit MCUs up to 32-bit ARM-based Cortex?-M0 and M0+, Cortex?-M3, Cortex?-M4 Flash microcontrollers with a great choice of peripherals. ST has also extended this range to include an ultra-low-power MCU platform) 。
按內(nèi)核架構分為不同產(chǎn)品:主流產(chǎn)品(STM32F0、STM32F1、STM32F3)、超低功耗產(chǎn)品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能產(chǎn)品(STM32F2、STM32F4、STM32F7、STM32H7)
今天,做為愛思考的單片機愛好者,簡單的分析一下。
首先說STM32,這個大家應該是比較熟悉了。意法半導體在2007年6月11日發(fā)布了全球首款STM32產(chǎn)品,也就是F1系列,基于ARM-CORTEX內(nèi)核。在其后的幾年,陸陸續(xù)續(xù)發(fā)布了不同定位、不同方向的多款產(chǎn)品。有面向低功耗的L系列,有高性能的F2和F4系列,有低價的F0系列,有高速的F7系列等等。我們可以通過下面的這個圖,有一個大致的了解:
所以,你會發(fā)現(xiàn),STM32不是一個具體的單片機型號,而是一個或者多個系列的,基于ARM內(nèi)核的單片機家族的統(tǒng)稱。
那么,ESP32是什么?
它是樂鑫公司推出的一款采用兩個哈佛結構 Xtensa LX6 CPU 構成的擁有雙核系統(tǒng)的芯片。所有的片上存儲器、片外存儲器以及外設都分布在兩個 CPU 的數(shù)據(jù)總線和/或指令總線上。
相比于STM32的一個大家族,ESP32雖然也代表一個系列,但目前來說,這個系列的成員還是比較少的,我們看下:
那么,兩者之間該如何對比?先看ESP32的硬件,我直接放官方數(shù)據(jù)手冊里的配置:
功能框圖如下:
模塊(非芯片)的引腳分布如下:
你會發(fā)現(xiàn),ESP32這個模塊的IO并不多,估計也就30個左右(芯片有34個,但是模塊中外接FLASH用掉了一些)。但是你會發(fā)現(xiàn)它有幾個特點:
1、集成了非常多的外設接口,SPI、IIC、IIS、AD、DA、PWM、IR、UART、CAN等等。IO數(shù)量有限,所以基本上每個IO都有多個功能。
2、片內(nèi)flash和ram很大,flash有448KB,ram有520KB。而模塊上直接掛了一個4MB的flash。大的不像話!
3、速度快!雖然外接晶體的頻率只有40MHZ,但通過內(nèi)部主頻可以支持80MHZ、160MHZ、240MHZ,運算能力高達600MIPS。
4、有wifi和藍牙!當前兩者不能同時使用。
那么,它如何跟STM32對比?或者說,我們用STM32的哪一款來和ESP32進行對比呢?
這里,我關注的因素是價格!也就是說,選擇和ESP32模塊價格接近的STM32芯片來對比!
為什么選ESP32模塊而不是芯片?因為國內(nèi)的廠家安信可對樂鑫公司的芯片做了一個比較成熟的模塊封裝,而國內(nèi)工程師更熟悉的都是模塊。
ESP32-S的模塊在安信可淘寶店的售價是18.9元(注意,模塊形式的ESP32有一片外掛的FLASH,大小是4MB),如下:
所以,這里我們找一個STM32系列里,價格在20元左右的芯片。這里,我選了STM32F407VET6,關于該芯片的配置,我直接放個圖,大家體驗一下(ps:這是一個100管腳的芯片)。
對比這兩者,你會發(fā)現(xiàn)STM32F407有以下幾個特點:
1、GPIO非常多,82個,UART、IIC、SPI、PWM、AD、DA等功能也很多,但不會出現(xiàn)ESP32那種GPIO不夠用的情況。
2、主頻168MHZ,比ESP32的240HMZ低了一些。運算能力210DMIPS,也低了一些。
3、flash和ram都相對小一些。
4、有線網(wǎng)口,不能無線上網(wǎng)。
經(jīng)過對比,你會發(fā)現(xiàn)兩者基本是有各自不同的定位。ESP32偏向體積小巧、速度超快、功能強大,通過wifi接入網(wǎng)絡,專門為物聯(lián)網(wǎng)而生;而STM32偏向管腳豐富、功能全面,雖然沒有wifi和藍牙,速度也沒有ESP32快,但是可以通過網(wǎng)口接入網(wǎng)絡,可以控制更多的外設,為消費電子和工業(yè)控制而生。
所以,兩者的定位并不相同,做為工程師的你,一定要根據(jù)自己的項目需求來進行芯片的選型。
ESP32對比ESP8266
在你的項目中使用ESP32或ESP8266嗎?ESP32和ESP8266有什么區(qū)別?在本文中,我們將通過比較ESP32和ESP8266來回答這些問題,并涵蓋每個板的優(yōu)缺點。
ESP32和ESP8266是性價比非常高的Wi-Fi模塊,非常適合物聯(lián)網(wǎng)(IoT)領域的DIY項目。
兩款芯片都屬于32位處理器。ESP32是雙核160MHz至240MHz CPU,而ESP8266是單核處理器,運行頻率為80MHz。
這些WiFi模塊都帶有GPIO,支持SPI,I2C,UART等各種協(xié)議。最好的部分是它們帶有無線網(wǎng)絡,這使得它們與Arduino等其他微控制器區(qū)別開來。這意味著你可以通過Wi-Fi或藍牙(ESP32)以極低的價格輕松地遠程控制和監(jiān)控設備。
規(guī)格:ESP32 vs ESP8266
該ESP32是ESP8266繼任者。它增加了額外的CPU內(nèi)核,更快的Wi-Fi,更多的GPIO,并支持藍牙4.2和藍牙低功耗。此外,ESP32配有觸摸感應針腳,可用于喚醒ESP32深度睡眠,內(nèi)置霍爾效應傳感器和內(nèi)置溫度傳感器。
兩塊板都非常便宜,但ESP32的成本略高。雖然ESP32的售價大約在6美元到12美元之間,但ESP8266的售價卻在4美元到6美元之間(但這取決于你獲得它們的位置)。
ESP32上有更多GPIO
該ESP32有更多的GPIO比ESP8266,你可以決定哪些引腳UART,I2C,SPI -你只需要設置的代碼。這是可能的,因為ESP32芯片的多路復用功能允許你為同一個引腳分配多個功能。
如果你沒有在代碼上設置它們,它們將位于默認定義的引腳上,如下圖所示(這是ESP32 DEVKIT V1 DOIT板的示例 - 引腳位置可能因制造商而異)。
PWM,ADC等
你可以在任何GPIO中設置PWM信號,并在代碼上設置可配置的頻率和占空比。
對于模擬引腳,這些是靜態(tài)的,但ESP32支持18個通道(模擬使能引腳)上的測量,而ESP8266只有一個10位ADC引腳。ESP32還支持兩個8位DAC通道。
此外,ESP32包含10個電容感應GPIO,可檢測觸摸并可用于觸發(fā)事件,或喚醒ESP32深度睡眠。
Arduino IDE - ESP32 vs ESP8266
ESP32和ESP8266板的編程方法有很多種。目前,可以使用Arduino IDE編程環(huán)境對兩個板進行編程。
這是一件好事,特別適合那些習慣Arduino編程并熟悉Arduino編程語言的人。
使用Arduino IDE開始使用ESP32或ESP8266并讓你的第一個項目運行非常簡單。網(wǎng)上有非常多的指南操作:比如在Arduino IDE中安裝ESP32板(Windows說明);在Arduino IDE中安裝ESP32板(Mac和Linux說明書);如何在Arduino IDE中安裝ESP8266板等。
雖然你可以使用Arduino IDE對兩個板進行編程,但它們可能與相同的庫和命令不兼容。有些庫只與其中一個板兼容。這意味著大多數(shù)時候你的ESP8266代碼與ESP32不兼容。但是,通常你只需要進行一些修改。
MicroPython Firwmare - ESP32 vs ESP8266
另一種對ESP32和ESP8266板進行編程的流行方法是使用MicroPython固件。
MicroPython是針對微控制器和嵌入式系統(tǒng)的Python 3的重新實現(xiàn)。MicroPython與常規(guī)Python非常相似。因此,如果你已經(jīng)知道如何使用Python編程,那么你也知道如何在MicroPython中編程。
在MicroPython中,大多數(shù)Python腳本都與兩個板兼容(與使用Arduino IDE時不同)。這意味著大多數(shù)時候你可以為ESP32和ESP8266使用相同的腳本。
所以,此時你應該問: 我應該買ESP8266還是ESP32?
這真的取決于你想做什么。兩塊板都有使用的價值,兩者都有利有弊。
ESP8266比ESP32便宜。雖然它沒有那么多的功能,但對大多數(shù)簡單的DIY物聯(lián)網(wǎng)項目來說效果都不錯。此外,由于它“較舊”,因此在軟件方面受到更多支持,你可能會更容易找到幫助。但是,它在GPIO映射方面有一些限制,它可能沒有足夠的引腳用于你打算執(zhí)行的操作。如果是這種情況,你應該使用ESP32。
ESP32比ESP8266 功能更強大,包含更多具有多種功能的GPIO,更快的Wi-Fi,并且還支持藍牙。很多人認為ESP32比ESP8266更難處理,因為它更復雜。在我們看來,ESP32編程與ESP8266一樣容易,特別是如果你打算用Arduino語言或MicroPython編程它。
另一方面,ESP32也有一些缺點。首先,它比ESP8266貴。因此,如果你正在制作一個簡單的物聯(lián)網(wǎng)項目,那么ESP8266可能會以更低的價格成功。此外,由于它比ESP8266更新,并非所有軟件都是為了充分利用ESP32功能而開發(fā)的,因此支持更少,錯誤更多。但從長遠來看,這些問題將得到解決,兩個開發(fā)板都將有各自應用的空間。
文章出處:【微信號:gh_dae0718828df,微信公眾號:單片機愛好者】歡迎添加關注!文章轉載請注明出處。
-
ARM
+關注
關注
134文章
9094瀏覽量
367539 -
嵌入式
+關注
關注
5082文章
19123瀏覽量
305143 -
STM32
+關注
關注
2270文章
10900瀏覽量
355980 -
ESP32
+關注
關注
18文章
971瀏覽量
17255
發(fā)布評論請先 登錄
相關推薦
評論