0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

GD32如何替換STM32?

jf_pJlTbmA9 ? 來源:jf_pJlTbmA9 ? 作者:jf_pJlTbmA9 ? 2023-09-18 10:58 ? 次閱讀

wKgaomUD6zaAZ87aAADiuLXSDns811.png

GD32F103是GD早期的產(chǎn)品,GD32E103和GD32F303是對GD32F103的升級和優(yōu)化,所以4者是兼容的,雖然內(nèi)核不同,但是通用外設(shè)幾乎很少涉及到內(nèi)核部分,在時間急迫的情況下可以使用ST的庫開發(fā)。

一、相同點

1)外圍引腳PIN TO PIN兼容,每個引腳上的復(fù)用功能也完全相同。

2)芯片內(nèi)部寄存器、外部IP寄存器地址和邏輯地址完全相同,但是有些寄存器默認(rèn)值不同,有些外設(shè)模塊的設(shè)計時序上和STM32有差異,這點差異主要體現(xiàn)在軟件上修改,詳情見下文。

3)編譯工具:完全相同例如:KEIL 、IAR

4)型號命名方式完全相同,所以替代只需找尾綴相同的型號即可,例如:STM32F103C8T6 與 GD32E103C8T6。

5)仿真工具:JLINK GDLINK

二、外圍硬件區(qū)別

wKgaomUD6zeAHIjAAAHk_oAV0cg459.png

三、硬件替換需要注意的地方

從上面的介紹中,我們可以看出,GD32F30/E103系列和STM32F103系列是兼容的,但也需要一些注意的地方。

1)BOOT0必須接10K下拉或接GND,ST可懸空,這點很重要。

2)RC復(fù)位電路必須要有,否則MCU可能不能正常工作,ST的有時候可以不要。

3)有時候發(fā)現(xiàn)用仿真器連接不上。因為GD的swd接口驅(qū)動能力比ST弱,可以有如下幾種方式解決:

a、線盡可能短一些;

b、降低SWD通訊速率;

c、SWDIO接10k上拉,SWCLK接10k下拉。

4)使用電池供電等,注意GD的工作電壓,例如跌落到2.0V~2.6V區(qū)間,ST還能工作,GD可能無法啟動或工作異常。

四、使用ST標(biāo)準(zhǔn)庫開發(fā)需要修改的地方

1)GD對時序要求嚴(yán)格,配置外設(shè)需要先打開時鐘,在進行外設(shè)配置,否則可能導(dǎo)致外設(shè)無法配置成功;ST的可以先配置在開時鐘。

2)修改外部晶振起振超時時間,不用外部晶振可跳過這步。

原因:GD與ST的啟動時間存在差異,為了讓GD MCU更準(zhǔn)確復(fù)位。

修改:

將宏定義:

#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)

修改為:

#define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF)

3)GD32F10X flash取值零等待,而ST需要2個等待周期,因此,一些精確延時或者模擬IIC或SPI的代碼可能需要修改。

原因:GD32采用專利技術(shù)提高了相同工作頻率下的代碼執(zhí)行速度。

修改:如果使用for或while循環(huán)做精確定時的,定時會由于代碼執(zhí)行速度加快而使循環(huán)的時間變短,因此需要仿真重新計算設(shè)計延時。使用Timer定時器無影響。

4)在代碼中設(shè)置讀保護,如果使用外部工具讀保護比如JFLASH或脫機燒錄器設(shè)置,可跳過此步驟。
在寫完KEY序列后,需要讀該位確認(rèn)key已生效,修改如下:

wKgZomUD6zqASPP_AAAuWkOnwZ0800.png

總共需要修改如下四個函數(shù):

FLASH_Status FLASH_EraseOptionBytes(void);
FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data);
uint32_t FLASH_GetWriteProtectionOptionByte(void);
FlagStatus FLASH_GetReadOutProtectionStatus(void);

5)GD與ST在flash的Erase和Program時間上有差異,修改如下:

wKgZomUD6zuAIBoqAABJOKKvhfg340.png

6)需求flash大于256K注意,小于256K可以忽略這項。

與ST不同,GD的flash存在分區(qū)的概念,前256K,CPU執(zhí)行指令零等待,稱code區(qū),此范圍外稱為dataZ區(qū)。兩者在擦寫操作上沒有區(qū)別,但在讀操作時間上存在較大差別,code區(qū)代碼取值零等待,data區(qū)執(zhí)行代碼有較大延遲,代碼執(zhí)行效率比code區(qū)慢一個數(shù)量級,因此data區(qū)通常不建議運行對實時性要求高的代碼,為解決這個問題,可以使用分散加載的方法,比如把初始化代碼,圖片代碼等放到data區(qū)。

總結(jié):至此,經(jīng)過以上修改,在不使用USB網(wǎng)絡(luò)能復(fù)雜協(xié)議的代碼,就可以使用ST的代碼操作了。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119814
  • usb
    usb
    +關(guān)注

    關(guān)注

    60

    文章

    7876

    瀏覽量

    263692
  • STM32
    +關(guān)注

    關(guān)注

    2264

    文章

    10854

    瀏覽量

    354288
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    403

    瀏覽量

    24106
收藏 人收藏

    評論

    相關(guān)推薦

    GD32替換STM32需注意的10大要點(上)@硬聲小助手

    單片機GD32靈動微行業(yè)芯事芯片驗證板經(jīng)驗分享
    MKOO
    發(fā)布于 :2021年07月27日 13:58:13

    GD32替換STM32需注意的10大要點(下)@硬聲小助手

    單片機GD32靈動微行業(yè)芯事芯片驗證板經(jīng)驗分享
    MKOO
    發(fā)布于 :2021年07月27日 13:58:36

    STM32/GD32/MM32配置接近替換型號列表分享

    STM32/GD32/MM32配置接近替換型號列表
    發(fā)表于 12-30 06:25

    GD32可以替換STM32

    什么是GD32GD32STM32的區(qū)別在哪?GD32可以替換STM32嗎?
    發(fā)表于 10-20 07:03

    GD32F103和STM32F103的區(qū)別進行介紹

    GD32STM32的區(qū)別2.1. 內(nèi)核2.2. 主頻2.3. 供電2.4. FLASH差異2.5. 功耗2.6. 串口2.7. ADC差異2.8. FSMC2.9. 103系列RAM&FLASH大小差別2.10. 抗干擾能力GD32
    發(fā)表于 02-11 06:28

    GD32替換STM32有哪些注意事項

    關(guān)注、星標(biāo)公眾號,直達精彩內(nèi)容來源:網(wǎng)絡(luò)素材GD32是國內(nèi)開發(fā)的一款單片機,據(jù)說開發(fā)的人員是來自ST公司的,GD32也是以STM32作為模板做出來的。所以GD32
    發(fā)表于 02-21 07:02

    GD32替換STM32?這些坑你別踩...

    一、前言什么是GD32?GD32是國內(nèi)兆易創(chuàng)新公司開發(fā)的一款單片機。GD32STM32有很多地方都是相似的,不過GD32畢竟是不同的產(chǎn)品,
    發(fā)表于 03-31 10:51

    GD32如何替換STM32

    關(guān)注、星標(biāo)公眾號,直達精彩內(nèi)容來源:網(wǎng)絡(luò)素材GD32F103是GD早期的產(chǎn)品,GD32E103和GD32F303是對GD32F103的升級和
    發(fā)表于 12-02 15:06 ?9次下載
    <b class='flag-5'>GD32</b>如何<b class='flag-5'>替換</b><b class='flag-5'>STM32</b>?

    GD32替換STM32,這些細(xì)節(jié)一定要知道。

    今日份視頻號視頻----正文----一、 GD32STM32 異同1.相同點1)外圍引腳定義:相同型號的管腳定義相同2) Cortex M3 內(nèi)核:STM32F103 內(nèi)核 R1...
    發(fā)表于 12-02 15:21 ?11次下載
    <b class='flag-5'>GD32</b><b class='flag-5'>替換</b><b class='flag-5'>STM32</b>,這些細(xì)節(jié)一定要知道。

    GD32F103與STM32F103的區(qū)別 2021.6.2

    GD32STM32的區(qū)別 2.1. 內(nèi)核 2.2. 主頻 2.3. 供電 2.4. FLASH差異 2.5. 功耗 2.6. 串口 2.7. ADC差異 2.8. FSMC 2.9. 103系列RAM&FLASH大小差別 2.10. 抗干擾能力
    發(fā)表于 12-08 11:06 ?82次下載
    <b class='flag-5'>GD</b>32F103與<b class='flag-5'>STM32</b>F103的區(qū)別 2021.6.2

    想用GD32替換STM32? 這些細(xì)節(jié)一定要知道

    關(guān)注、星標(biāo)公眾號,直達精彩內(nèi)容來源:網(wǎng)絡(luò)素材GD32是國內(nèi)開發(fā)的一款單片機,據(jù)說開發(fā)的人員是來自ST公司的,GD32也是以STM32作為模板做出來的。所以GD32
    發(fā)表于 12-24 19:15 ?36次下載
    想用<b class='flag-5'>GD32</b><b class='flag-5'>替換</b><b class='flag-5'>STM32</b>? 這些細(xì)節(jié)一定要知道

    GD32如何替換STM32?

    關(guān)注、星標(biāo)公眾號,直達精彩內(nèi)容來源:網(wǎng)絡(luò)素材GD32F103是GD早期的產(chǎn)品,GD32E103和GD32F303是對GD32F103的升級和
    發(fā)表于 12-27 18:42 ?25次下載
    <b class='flag-5'>GD32</b>如何<b class='flag-5'>替換</b><b class='flag-5'>STM32</b>?

    GD32STM32兼容嗎?

    GD32STM32兼容嗎? GD32STM32是兩個不同的微控制器系列,是由兩個不同的公司設(shè)計和生產(chǎn)的。GD32系列是由國內(nèi)的長沙國芯微
    的頭像 發(fā)表于 08-16 11:32 ?2805次閱讀

    GD32STM32有何區(qū)別?GD32如何替換STM32呢?

    GD32STM32有何區(qū)別?GD32如何替換STM32呢? GD32
    的頭像 發(fā)表于 11-22 18:18 ?5256次閱讀

    GD32如何替換STM32

    GD32替換Stm32注意事項
    發(fā)表于 08-23 11:31 ?3次下載