「必看干貨」淺談GD32與STM32之間的區(qū)別
一.硬件設(shè)計(jì)
以我們常用的STM32與gd32單片機(jī)為例,做一下對(duì)比。
比較GD32E230C8(M0),GD32F103C8(M3),GD32F303CG(M4),STM32F103C8(M3),STM32F303C8T6(M4)硬件管腳的區(qū)別。
從上圖中可以看出:
GD32E230C8(M0)與STM32G030C8(M0)管腳不兼容;
GD32F103C8(M3)與STM32F103C8(M3)管腳兼容;
GD32F303CG(M4)與STM32F303C8T6(M4)管腳兼容。
GD32E230C8(M0),GD32F103C8(M3),GD32F303CG(M4)有兩個(gè)引腳(35腳和36腳)硬件電氣不兼容,可以加電阻,用于切換,實(shí)現(xiàn)PCB板兼容。
下表是GD32E230C8單片機(jī)35和36管腳定義:
下表是GD32F103C8(M3)單片機(jī)35和36管腳定義:
*可以看出這兩個(gè)管腳不兼容,若想實(shí)現(xiàn)PCB管腳兼容,可以加電阻。
下圖是GD32E230C8單片機(jī)原理圖:
從上圖可以看出,在35和36腳加了3個(gè)電阻,2個(gè)上拉電阻和1個(gè)下拉電阻。
當(dāng)使用GD32E230C8T6單片機(jī)時(shí),35腳和36腳默認(rèn)是普通IO口,可以按照上圖所示連接電阻。
當(dāng)使用GD32F103C8單片機(jī)時(shí),35腳和36腳是電源口,此時(shí)可以把R6換成0歐姆的電阻,R7不焊接,R8焊接0歐姆的電阻。
二.設(shè)計(jì)中的不同點(diǎn)
1.工作電壓不同:STM32的工作電壓在2.0~ 3.6V或1.65~3.6V,GD32F的工作電壓在 2.6~3.6V,工作范圍相對(duì)要窄。
電壓范圍不同: GD32F: 2.6-3.6V STM32F: 2.0-3.6V(外部電壓) GD32F: 1.2V(內(nèi)核電壓)STM32F: 1.8V(內(nèi)核電壓)
GD32的內(nèi)核電壓比STM32的內(nèi)核電壓要低,所以GD32的芯片在運(yùn)行的時(shí)候運(yùn)行功耗更低。
2.GD32F303/F103主頻比STM32F103主頻要高,GD32F10 系列主頻: 108MHZ , STM32F10 系列主頻 :72MHZ 。
3.啟動(dòng)時(shí)間:GD32 啟動(dòng)時(shí)間相同,由于 GD32 運(yùn)行稍快,需要延長(zhǎng)上電時(shí)間 ,配置(2ms) 。
4.GD32提高了相同工作頻率下的代碼執(zhí)行速度,所以GD32的_NOP()時(shí)間比STM32更加短,所以不使用定時(shí)器做延時(shí)時(shí)要注意修改。
5.GD32的flash擦除時(shí)間要比STM32更長(zhǎng)。
Flash 擦除時(shí)間: GD32 是 60ms/page,STM32 30ms/page
6.功耗上GD32的靜態(tài)功耗要相對(duì)高一點(diǎn)
功耗區(qū)別(以128k以下容量的作為參考)
a: 睡眠模式 Sleep:GD32F: 12.4mA STM32F10X: 7.5mA
b:深度睡眠模式 Deep Sleep: GD32F: 1.4mA STM32F10X: 24uA
c:待機(jī)模式 Stand By: GD32F: 10.5uA STM32F10X: 3.4uA
d:運(yùn)行功耗: GD32F: 32.4mA/72M STM32F10X: 52mA/72M
7.GD32的BOOT0必須接10K下拉或接GND,ST可懸空。
BOOT0 管腳: Flash 程序運(yùn)行時(shí),BOOT0 在 STM32 上可懸空,GD32 必須外部下拉(從 Flash 運(yùn)行,BOOT0 必須下拉地)。
8.RC復(fù)位電路必須要有,否則MCU可能不能正常工作,STM32有時(shí)候可以不要。
9.GD32的SWD接口驅(qū)動(dòng)能力比STM32弱,可以有如下幾種方式解決:
a:線盡可能短一些;
b:降低SWD通訊速率;
c: SWDIO接10k上拉,SWCLK接10k下拉。
10.GD32對(duì)時(shí)序要求嚴(yán)格,配置外設(shè)需要先打開時(shí)鐘,否則可能導(dǎo)致外設(shè)無(wú)法配置成功;STM32的可以先配置再開時(shí)鐘。
11.修改外部晶振起振超時(shí)時(shí)間,不用外部晶振可跳過(guò)這步。
原因:GD32與STM32的啟動(dòng)時(shí)間存在差異,為了讓GD32 MCU更準(zhǔn)確復(fù)位(不修改可能無(wú)法復(fù)位)。
12.串口通信不同點(diǎn): GD32在連續(xù)發(fā)送數(shù)據(jù)的時(shí)候每?jī)蓚€(gè)字節(jié)之間會(huì)有一個(gè)Bit的Idle,而STM32沒(méi)有。
GD32的串口在發(fā)送的時(shí)候停止位只有1/2兩種停止位模式。STM32有0.5/1/1.5/2四種停止位模式。
13.ADC不同點(diǎn): GD32的輸入阻抗和采樣時(shí)間的設(shè)置和STM32有一定差異,相同配置GD32采樣的輸入阻抗相對(duì)來(lái)說(shuō)要小。
14.FSMC不同點(diǎn): STM32只有100Pin以上的大容量(256K及以上)才有FSMC,GD32所有的100Pin或100Pin以上的都有FSMC。
理論不及實(shí)踐,推薦一個(gè)平臺(tái),大家可以DIY智能硬件
一.硬件設(shè)計(jì)
以我們常用的STM32與gd32單片機(jī)為例,做一下對(duì)比。
比較GD32E230C8(M0),GD32F103C8(M3),GD32F303CG(M4),STM32F103C8(M3),STM32F303C8T6(M4)硬件管腳的區(qū)別。
從上圖中可以看出:
GD32E230C8(M0)與STM32G030C8(M0)管腳不兼容;
GD32F103C8(M3)與STM32F103C8(M3)管腳兼容;
GD32F303CG(M4)與STM32F303C8T6(M4)管腳兼容。
GD32E230C8(M0),GD32F103C8(M3),GD32F303CG(M4)有兩個(gè)引腳(35腳和36腳)硬件電氣不兼容,可以加電阻,用于切換,實(shí)現(xiàn)PCB板兼容。
下表是GD32E230C8單片機(jī)35和36管腳定義:
下表是GD32F103C8(M3)單片機(jī)35和36管腳定義:
*可以看出這兩個(gè)管腳不兼容,若想實(shí)現(xiàn)PCB管腳兼容,可以加電阻。
下圖是GD32E230C8單片機(jī)原理圖:
從上圖可以看出,在35和36腳加了3個(gè)電阻,2個(gè)上拉電阻和1個(gè)下拉電阻。
當(dāng)使用GD32E230C8T6單片機(jī)時(shí),35腳和36腳默認(rèn)是普通IO口,可以按照上圖所示連接電阻。
當(dāng)使用GD32F103C8單片機(jī)時(shí),35腳和36腳是電源口,此時(shí)可以把R6換成0歐姆的電阻,R7不焊接,R8焊接0歐姆的電阻。
二.設(shè)計(jì)中的不同點(diǎn)
1.工作電壓不同:STM32的工作電壓在2.0~ 3.6V或1.65~3.6V,GD32F的工作電壓在 2.6~3.6V,工作范圍相對(duì)要窄。
電壓范圍不同: GD32F: 2.6-3.6V STM32F: 2.0-3.6V(外部電壓) GD32F: 1.2V(內(nèi)核電壓)STM32F: 1.8V(內(nèi)核電壓)
GD32的內(nèi)核電壓比STM32的內(nèi)核電壓要低,所以GD32的芯片在運(yùn)行的時(shí)候運(yùn)行功耗更低。
2.GD32F303/F103主頻比STM32F103主頻要高,GD32F10 系列主頻: 108MHZ , STM32F10 系列主頻 :72MHZ 。
3.啟動(dòng)時(shí)間:GD32 啟動(dòng)時(shí)間相同,由于 GD32 運(yùn)行稍快,需要延長(zhǎng)上電時(shí)間 ,配置(2ms) 。
4.GD32提高了相同工作頻率下的代碼執(zhí)行速度,所以GD32的_NOP()時(shí)間比STM32更加短,所以不使用定時(shí)器做延時(shí)時(shí)要注意修改。
5.GD32的flash擦除時(shí)間要比STM32更長(zhǎng)。
Flash 擦除時(shí)間: GD32 是 60ms/page,STM32 30ms/page
6.功耗上GD32的靜態(tài)功耗要相對(duì)高一點(diǎn)
功耗區(qū)別(以128k以下容量的作為參考)
a: 睡眠模式 Sleep:GD32F: 12.4mA STM32F10X: 7.5mA
b:深度睡眠模式 Deep Sleep: GD32F: 1.4mA STM32F10X: 24uA
c:待機(jī)模式 Stand By: GD32F: 10.5uA STM32F10X: 3.4uA
d:運(yùn)行功耗: GD32F: 32.4mA/72M STM32F10X: 52mA/72M
7.GD32的BOOT0必須接10K下拉或接GND,ST可懸空。
BOOT0 管腳: Flash 程序運(yùn)行時(shí),BOOT0 在 STM32 上可懸空,GD32 必須外部下拉(從 Flash 運(yùn)行,BOOT0 必須下拉地)。
8.RC復(fù)位電路必須要有,否則MCU可能不能正常工作,STM32有時(shí)候可以不要。
9.GD32的SWD接口驅(qū)動(dòng)能力比STM32弱,可以有如下幾種方式解決:
a:線盡可能短一些;
b:降低SWD通訊速率;
c: SWDIO接10k上拉,SWCLK接10k下拉。
10.GD32對(duì)時(shí)序要求嚴(yán)格,配置外設(shè)需要先打開時(shí)鐘,否則可能導(dǎo)致外設(shè)無(wú)法配置成功;STM32的可以先配置再開時(shí)鐘。
11.修改外部晶振起振超時(shí)時(shí)間,不用外部晶振可跳過(guò)這步。
原因:GD32與STM32的啟動(dòng)時(shí)間存在差異,為了讓GD32 MCU更準(zhǔn)確復(fù)位(不修改可能無(wú)法復(fù)位)。
12.串口通信不同點(diǎn): GD32在連續(xù)發(fā)送數(shù)據(jù)的時(shí)候每?jī)蓚€(gè)字節(jié)之間會(huì)有一個(gè)Bit的Idle,而STM32沒(méi)有。
GD32的串口在發(fā)送的時(shí)候停止位只有1/2兩種停止位模式。STM32有0.5/1/1.5/2四種停止位模式。
13.ADC不同點(diǎn): GD32的輸入阻抗和采樣時(shí)間的設(shè)置和STM32有一定差異,相同配置GD32采樣的輸入阻抗相對(duì)來(lái)說(shuō)要小。
14.FSMC不同點(diǎn): STM32只有100Pin以上的大容量(256K及以上)才有FSMC,GD32所有的100Pin或100Pin以上的都有FSMC。
理論不及實(shí)踐,推薦一個(gè)平臺(tái),大家可以DIY智能硬件
https://auth.tuya.com/?_source=7c8653b7bd61bf9239a1a6c12e52124d
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。