天天看點

icspec幹貨 | STM32、GD32、ESP32 的差別

作者:icspec官方賬号

前言

STM32:意法半導體在 2007 年 6 月 11 日釋出的産品,32位單片機。

GD32:兆易創新 2013 年釋出的産品,在晶片開發、配置、命名上基本模仿 STM32,甚至 GPIO 和 STM32 都是 pin to pin 的,封裝不改焊上去直接用。有時候 STM32 的源碼不修改,重新編譯燒寫到 GD32 上就可以跑。當然也有很多不同,比如序列槽驅動、USB 、庫檔案等。

ESP32:樂鑫公司 2017 年開發的産品,和 STM32、GD32 不同,ESP32 主要面向物聯網領域,支援功能很多,但引出 GPIO pin 腳很少,是以大多數 GPIO 都有很多複用功能。出廠就內建藍牙、WiFi 等物聯網必備功能,闆子也很小,适合物聯網。

01

GD32 和 STM32 的差別

GD32 是國産單片機,據說開發人員來自ST公司,GD32 也是以 STM32 作為模闆做出來的。是以 GD32 和 STM32 有很多地方都是一樣的,不過 GD32 畢竟是不同的産品,不可能所有東西都沿用 STM32,有些自主開發的東西還是有差別的。不同的地方如下:

1、核心

GD32 采用二代的 M3 核心,STM32 主要采用一代 M3 核心,下圖是 ARM 公司的 M3 核心勘誤表,GD 使用的核心隻有 752419 這一個 BUG。

icspec幹貨 | STM32、GD32、ESP32 的差別

2、主頻

使用HSE(高速外部時鐘):GD32的主頻最大108M,STM32的主頻最大72M

使用HSI(高速内部時鐘):GD32的主頻最大108M,STM32的主頻最大64M

主頻大意味着單片機代碼運作的速度會更快,項目中如果需要進行刷屏,開方運算,電機控制等操作,GD 是一個不錯的選擇。

3、供電

外部供電:GD32 外部供電範圍是 2.6~3.6V,STM32 外部供電範圍是2.0~ 3.6V或1.65~ 3.6V。GD 的供電範圍比 STM32 相對要窄一點。

核心電壓:GD32 核心電壓是 1.2V,STM32 核心電壓是 1.8V。GD 的核心電壓比 STM32 的核心電壓要低,是以 GD 的晶片在運作的時候運作功耗更低。

4、Flash差異

GD32 的 Flash 是自主研發的,和 STM32 的不一樣。

GD Flash 執行速度:GD32 Flash 中程式執行為 0 等待周期。

STM32 Flash 執行速度:ST 系統頻率不通路 flash 等待時間關系:0 等待周期,當 0<SYSCLK<24MHz,1 等待周期,當 24MHz<SYSCLK≤48MHz,2 等待周期,當 48MHz<SYSCLK≤72MHz。

Flash 擦除時間:GD 擦除的時間要久一點,官方給出的資料是這樣的:GD32F103/101 系列 Flash 128KB 及以下的型号, Page Erase 典型值 100ms, 實際測量 60ms 左右。對應的 ST 産品 Page Erase 典型值 20~40ms。

5、功耗

從下面的表可以看出 GD 的産品在相同主頻情況下,GD 的運作功耗比 STM32小,但是在相同的設定下 GD 的停機模式、待機模式、睡眠模式比 STM32 還是要高的。

icspec幹貨 | STM32、GD32、ESP32 的差別

6、序列槽

GD 在連續發送資料的時候每兩個位元組之間會有一個 Bit 的 Idle,而 STM32 沒有,如下圖:

icspec幹貨 | STM32、GD32、ESP32 的差別

GD 的序列槽在發送的時候停止位隻有 1/2 兩種停止位模式。STM32 有 0.5/1/1.5/2 四種停止位模式。

GD 和 STM32 USART 的這兩個差異對通信基本沒有影響,隻是 GD 的通信時間會加長一點。

7、ADC 差異

GD 的輸入阻抗和采樣時間的設定和 ST 有一定差異,相同配置 GD 采樣的輸入阻抗相對來說要小。具體情況見下表這是跑在 72M 的主頻下,ADC 的采樣時鐘為 14M 的輸入阻抗和采樣周期的關系:

icspec幹貨 | STM32、GD32、ESP32 的差別

8、FSMC

STM32 隻有 100Pin 以上的大容量(256K及以上)才有 FSMC,GD32 所有的 100Pin 或 100Pin 以上的都有 FSMC。

9、103 系列 RAM&FLASH 大小差别

GD103 系列和 ST103 系列的 ram 和 flash 對比如下圖:

icspec幹貨 | STM32、GD32、ESP32 的差別

10、105&107系列STM32和GD的差别

GD的105/107的選擇比ST的多很多,具體見下表:

icspec幹貨 | STM32、GD32、ESP32 的差別

11、抗幹擾能力

GD 的抗幹擾能力不如 STM32,還需要一定打磨。

02

ESP32 和 STM32

ESP32 是樂鑫公司推出的一款采用兩個哈佛結構 Xtensa LX6 CPU 構成的擁有雙核系統的晶片。所有的片上存儲器、片外存儲器以及外設都分布在兩個 CPU 的資料總線和/或指令總線上。

相比于 STM32 的一個大家族,ESP32 雖然也代表一個系列,但目前來說,這個系列的成員還是比較少的,我們看下:

icspec幹貨 | STM32、GD32、ESP32 的差別

資源如下:

icspec幹貨 | STM32、GD32、ESP32 的差別
icspec幹貨 | STM32、GD32、ESP32 的差別
icspec幹貨 | STM32、GD32、ESP32 的差別

功能框圖如下:

icspec幹貨 | STM32、GD32、ESP32 的差別

子產品(非晶片)的引腳分布如下:

icspec幹貨 | STM32、GD32、ESP32 的差別

ESP32 這個子產品的 IO 并不多,估計也就 30 個左右(晶片有34個,但是子產品中外接 FLASH 用掉了一些)。但是你會發現它有幾個特點:

1、內建了非常多的外設接口,SPI、IIC、IIS、AD、DA、PWM、IR、UART、CAN等等。IO 數量有限,是以基本上每個 IO 都有多個功能。

2、片内flash和ram很大,flash有448KB,ram有520KB。而子產品上直接挂了一個4MB的flash。

3、速度快!雖然外接晶體的頻率隻有40MHZ,但通過内部主頻可以支援80MHZ、160MHZ、240MHZ,運算能力高達600MIPS。

4、有wifi和藍牙!目前兩者不能同時使用。

STM32 和 ESP32 基本是有各自不同的定位。ESP32 偏向體積小巧、速度超快、功能強大,通過 wifi 接入網絡,專門為物聯網而生;而 STM32 偏向管腳豐富、功能全面,雖然沒有 wifi 和藍牙,速度也沒有 ESP32 快,但是可以通過網口接入網絡,可以控制更多的外設,為消費電子和工業控制而生。

03

總結

STM32 和 GD32 是同質化産品,差別一個是國外,一個是國産,最近流行國産化替代,是以 GD32 還是很有發展前景的。

物聯網也是一個好方向,是以 ESP32 也是很有前景的。

● icspec——規格書、ic需求

icspec幹貨 | STM32、GD32、ESP32 的差別
icspec幹貨 | STM32、GD32、ESP32 的差別

繼續閱讀