都是32位MCU,ESP32、GD32、STM32有什么區別
前言
本文引用地址:http://dyxdggzs.com/article/202308/449900.htmSTM32:意法半導體在 2007 年 6 月 11 日發(fā)布的產(chǎn)品,32位單片機。
GD32:兆易創(chuàng )新 2013 年發(fā)布的產(chǎn)品,在芯片開(kāi)發(fā)、配置、命名上基本模仿 STM32,甚至 GPIO 和 STM32 都是 pin to pin 的,封裝不改焊上去直接用。有時(shí)候 STM32 的源碼不修改,重新編譯燒寫(xiě)到 GD32 上就可以跑。當然也有很多不同,比如串口驅動(dòng)、USB 、庫文件等。
ESP32:樂(lè )鑫公司 2017 年開(kāi)發(fā)的產(chǎn)品,和 STM32、GD32 不同,ESP32 主要面向物聯(lián)網(wǎng)領(lǐng)域,支持功能很多,但引出 GPIO pin 腳很少,因此大多數 GPIO 都有很多復用功能。出廠(chǎng)就集成藍牙、WiFi 等物聯(lián)網(wǎng)必備功能,板子也很小,適合物聯(lián)網(wǎng)。
GD32 和 STM32 的區別
GD32 是國產(chǎn)單片機, 和 STM32 有很多地方都是一樣的,不過(guò) GD32 畢竟是不同的產(chǎn)品,不可能所有東西都沿用 STM32,有些自主開(kāi)發(fā)的東西還是有區別的。不同的地方如下:
1、內核
GD32 采用二代的 M3 內核,STM32 主要采用一代 M3 內核,下圖是 ARM 公司的 M3 內核勘誤表,GD 使用的內核只有 752419 這一個(gè) BUG。
2、主頻
使用HSE(高速外部時(shí)鐘):GD32的主頻最大108M,STM32的主頻最大72M
使用HSI(高速內部時(shí)鐘):GD32的主頻最大108M,STM32的主頻最大64M
主頻大意味著(zhù)單片機代碼運行的速度會(huì )更快,項目中如果需要進(jìn)行刷屏,開(kāi)方運算,電機控制等操作,GD 是一個(gè)不錯的選擇。
3、供電
外部供電:GD32 外部供電范圍是 2.6~3.6V,STM32 外部供電范圍是2.0~ 3.6V或1.65~ 3.6V。GD 的供電范圍比 STM32 相對要窄一點(diǎn)。
內核電壓:GD32 內核電壓是 1.2V,STM32 內核電壓是 1.8V。GD 的內核電壓比 STM32 的內核電壓要低,所以 GD 的芯片在運行的時(shí)候運行功耗更低。
4、Flash差異
GD32 的 Flash 是自主研發(fā)的,和 STM32 的不一樣。
GD Flash 執行速度:GD32 Flash 中程序執行為 0 等待周期。
STM32 Flash 執行速度:ST 系統頻率不訪(fǎng)問(wèn) flash 等待時(shí)間關(guān)系:0 等待周期,當 0<sysclk<24mhz,1 等待周期,當="" 24mhz<sysclk≤48mhz,2="" 48mhz<sysclk≤72mhz。<="" p=""></sysclk≤72mhz。<="">
Flash 擦除時(shí)間:GD 擦除的時(shí)間要久一點(diǎn),官方給出的數據是這樣的:GD32F103/101 系列 Flash 128KB 及以下的型號, Page Erase 典型值 100ms, 實(shí)際測量 60ms 左右。對應的 ST 產(chǎn)品 Page Erase 典型值 20~40ms。
5、功耗
從下面的表可以看出 GD 的產(chǎn)品在相同主頻情況下,GD 的運行功耗比 STM32小,但是在相同的設置下 GD 的停機模式、待機模式、睡眠模式比 STM32 還是要高的。
6、串口
GD 在連續發(fā)送數據的時(shí)候每?jì)蓚€(gè)字節之間會(huì )有一個(gè) Bit 的 Idle,而 STM32 沒(méi)有,如下圖:
GD 的串口在發(fā)送的時(shí)候停止位只有 1/2 兩種停止位模式。STM32 有 0.5/1/1.5/2 四種停止位模式。
GD 和 STM32 USART 的這兩個(gè)差異對通信基本沒(méi)有影響,只是 GD 的通信時(shí)間會(huì )加長(cháng)一點(diǎn)。
7、ADC 差異
GD 的輸入阻抗和采樣時(shí)間的設置和 ST 有一定差異,相同配置 GD 采樣的輸入阻抗相對來(lái)說(shuō)要小。具體情況見(jiàn)下表這是跑在 72M 的主頻下,ADC 的采樣時(shí)鐘為 14M 的輸入阻抗和采樣周期的關(guān)系:
8、FSMC
STM32 只有 100Pin 以上的大容量(256K及以上)才有 FSMC,GD32 所有的 100Pin 或 100Pin 以上的都有 FSMC。
9、103 系列 RAM&FLASH 大小差別
GD103 系列和 ST103 系列的 ram 和 flash 對比如下圖:
10、105&107系列STM32和GD的差別
GD的105/107的選擇比ST的多很多,具體見(jiàn)下表:
11、抗干擾能力
GD 的抗干擾能力不如 STM32,還需要一定打磨。
ESP32 和 STM32
ESP32 是樂(lè )鑫公司推出的一款采用兩個(gè)哈佛結構 Xtensa LX6 CPU 構成的擁有雙核系統的芯片。所有的片上存儲器、片外存儲器以及外設都分布在兩個(gè) CPU 的數據總線(xiàn)和/或指令總線(xiàn)上。
相比于 STM32 的一個(gè)大家族,ESP32 雖然也代表一個(gè)系列,但目前來(lái)說(shuō),這個(gè)系列的成員還是比較少的,我們看下:
資源如下:
功能框圖如下:
模塊(非芯片)的引腳分布如下:
ESP32 這個(gè)模塊的 IO 并不多,估計也就 30 個(gè)左右(芯片有34個(gè),但是模塊中外接 FLASH 用掉了一些)。但是你會(huì )發(fā)現它有幾個(gè)特點(diǎn):
· 集成了非常多的外設接口,SPI、IIC、IIS、AD、DA、PWM、IR、UART、CAN等等。IO 數量有限,所以基本上每個(gè) IO 都有多個(gè)功能。
· 片內f(wàn)lash和ram很大,flash有448KB,ram有520KB。而模塊上直接掛了一個(gè)4MB的flash。
· 速度快!雖然外接晶體的頻率只有40MHZ,但通過(guò)內部主頻可以支持80MHZ、160MHZ、240MHZ,運算能力高達600MIPS。
· 有wifi和藍牙!當前兩者不能同時(shí)使用。
STM32 和 ESP32 基本是有各自不同的定位。ESP32 偏向體積小巧、速度超快、功能強大,通過(guò) wifi 接入網(wǎng)絡(luò ),專(zhuān)門(mén)為物聯(lián)網(wǎng)而生;而 STM32 偏向管腳豐富、功能全面,雖然沒(méi)有 wifi 和藍牙,速度也沒(méi)有 ESP32 快,但是可以通過(guò)網(wǎng)口接入網(wǎng)絡(luò ),可以控制更多的外設,為消費電子和工業(yè)控制而生。
總結
STM32 和 GD32 是同質(zhì)化產(chǎn)品,區別一個(gè)是國外,一個(gè)是國產(chǎn),最近流行國產(chǎn)化替代,所以 GD32 還是很有發(fā)展前景的。物聯(lián)網(wǎng)是一個(gè)好方向,因此 ESP32 也是很有前景的。
評論