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

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

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

【GD32 MCU 移植教程】7、從 GD32F10x 移植到 GD32E103

聚沃科技 ? 2024-09-05 09:40 ? 次閱讀

1. 前言

本應(yīng)用筆記旨在幫助您快速將基于 GD32F10x 2.0 版本及以上固件庫開發(fā)的應(yīng)用程序從GD32F10x 系列微控制器移植到 GD32E103 系列微控制器。GD32E103 和 GD32F10x 系列相比,考慮軟硬件兼容性,從 Flash 和 SRAM 容量,包括外設(shè)模塊的增強(qiáng)性能上來看,E103 最接近 F105。

開始前您需要安裝 GD32E103 關(guān)于 KEIL 或 IAR 的插件,在工程選項(xiàng)的器件條目中選擇GD32E103 對應(yīng)型號,添加 GD32E103 的 Flash 下載算法。

為了更好的利用本應(yīng)用筆記中的信息,您需要對 GD32 系列微控制器有比較深刻的了解。您可在 GD32MCU 資料網(wǎng)站 下載 GD32 各系列微控制器資料,如 Datasheet、用戶手冊、官方例程及各種開發(fā)工具等。

2. 引腳兼容性

GD32F10x 與 GD32E103 在相同封裝下是 Pin To Pin 兼容的,需注意 E103 沒有 144Pin 封裝。但由于 GD32E103 較 GD32F10x 增加了內(nèi)部 48MHz RC 振蕩器USBFS 模塊提供固定頻率,為滿足精度要求,GD32E103 含有一個時(shí)鐘校準(zhǔn)控制器(CTC),所以兩者引腳定義有細(xì)微差別,如下表所示:

表 1 GD32F105 系列和 GD32E103 系列引腳區(qū)別

wKgaombZCseAYKCBAABT8v_eWyU178.png

3. 內(nèi)部資源兼容性

GD32E103 在資源上是和互聯(lián)型產(chǎn)品如 F105 接近。下表給出了 GD32F10x 與GD32E103 的資源對比總覽(以 GD32F105VB 和 GD32E103VB 對比為例):

表 2 GD32F10x 系列和 GD32E103 系列內(nèi)部資源對比總覽

wKgZombZCtiADTJkAACJcmsDTsM780.png

4. 程序移植

GD32E103 外設(shè)上和時(shí)鐘與 GD32F10x 互聯(lián)系列兼容,所以移植基于 GD32F10x 2.0版本及以上固件庫應(yīng)用程序到 E103 上需要做部分修改和調(diào)整。

4.1 IDE 設(shè)置

(1) 使用 MDK 環(huán)境時(shí),在工程選項(xiàng) C/C++選項(xiàng)卡中 Preprocessor Symbol Define 中加入GD32F10X_CL 的宏定義。

wKgZombZCvWAaCAVAAB7Rs8e5Ao532.png

圖 1 修改全局聲明

(2) 使用 IAR 環(huán)境時(shí),在工程選項(xiàng) C/C++ Compiler 項(xiàng)中 Preprocessor 選項(xiàng)卡下 DefineSymbol 中加入 GD32F10X_CL 的宏定義。

4.2 FMC 外設(shè)文件替換

GD32E103 采用了全新的 Flash 架構(gòu)。GD32E103 的 flash 編程上支持的是字、雙字編程;在 GD32F103 上可以半字編程,且有 bank0、bank1 的劃分,對于選項(xiàng)字節(jié)的操作也需要按字進(jìn)行編程。所以您可采用便捷的移植方法,將原工程中的 gd32f10x_fmc.c 和gd32f10x_fmc.h 中 的 代 碼替換為GD32E103 固件庫中 的 gd32e10x_fmc.c 和gd32e10x_fmc.h 內(nèi)的代碼,替換后需要在把#include "gd32e10x.h"更改為#include"gd32f10x.h"即可,如圖 1。GD32E103 固件庫可從官網(wǎng)或網(wǎng)盤中獲取。

wKgaombZCx6AZo6fAACVI2MIqZI728.png

4.3 系統(tǒng)時(shí)鐘配置

GD32F10x 互聯(lián)型系列和 E103 系列的時(shí)鐘配置過程相同,但 E103 上新增了 Flash等待周期,需要在時(shí)鐘配置前加入相應(yīng)的 Flash 等待周期,F(xiàn)lash 等待周期和主頻對應(yīng)關(guān)系如圖 1。

wKgZombZCzmALZigAABKRnzlKO0110.png

圖 2 WSCNT 與 AHB 時(shí)鐘頻率對應(yīng)關(guān)系

在 system_gd32f10x.c 文件中的時(shí)鐘配置函數(shù)里增加 Flash 等待周期的配置,如圖 3 所示:

wKgaombZC0eAAtubAACS6hQi9bM454.png

圖 3 時(shí)鐘配置函數(shù)中增加 flash 等待周期配置

5. 外設(shè)差異性

GD32F10x 與 GD32E103 在外設(shè)上大部分兼容的,GD32E103 較 GD32F10x 在很多外設(shè)上增加部分功能,用戶可根據(jù)以下羅列出的外設(shè)差異性選擇是否使用這些功能。若需升級應(yīng)用功能使用 E103 上增加的功能,建議將外設(shè)庫更換為 GD32E103 固件庫。

5.1 通用和備用輸入/輸出接口(GPIO 和 AFIO)

最大 50MHz),當(dāng) I/O 端口輸出速度大于 50MHz 時(shí),建議使用 I/O 補(bǔ)償單元對 I/O 端口進(jìn)行斜率控制,從而降低 I/O 端口噪聲對電源的影響。具體功能以及寄存器設(shè)置,請用戶參考GD32E103 用戶手冊。

5.2 模數(shù)轉(zhuǎn)換器 ADC

為減輕 CPU 的負(fù)擔(dān),GD32E103 較 GD32F10x 增加了片上硬件過采樣單元。它能夠處理多個轉(zhuǎn)換,并將多個轉(zhuǎn)換的結(jié)果取平均,得出一個 16 位寬的數(shù)據(jù)。片上硬件過采樣單元是以降低數(shù)據(jù)輸出率為代價(jià),換取較高的數(shù)據(jù)分辨率。具體功能以及寄存器設(shè)置,請用戶參考 GD32E103 用戶手冊。

5.3 通用同步異步收發(fā)器 USART

GD32E103 較 GD32F10x 在 USART 上增加了塊模式(GD32F10x 只支持字節(jié)模式)、數(shù)據(jù)極性設(shè)置、數(shù)據(jù)位反轉(zhuǎn)以及 TX、RX 引腳電平反轉(zhuǎn)、接收超時(shí)等功能,因此,GD32E103多了三個寄存器,分別為:USART_CTL3、USART_RT、USART_STAT1。具體功能以及寄存器設(shè)置,請用戶參考 GD32E103 用戶手冊。

5.4 內(nèi)部集成電路總線接口 I2C

GD32E103 和 GD32F10x 的 I2C 都支持標(biāo)速(最高 100KHz)和快速(最高 400KHz),同時(shí) GD32E103 可支持快速+模式(最高 1MHz),要使能快速+模式,需將 I2C_FMPCFG寄存器的 FMPEN 置 1。具體功能以及寄存器設(shè)置,請用戶參考 GD32E103 用戶手冊。

5.5 串行外設(shè)接口/片上音頻接口 SPI/I2S

GD32E103 和 GD32F10x 的 SPI/I2S 模塊差異性主要表現(xiàn)在 GD32E103 支持 SPI TI模式、SPI NSS 脈沖模式和 SPI 四線功能(只有 SPI0),其中 SPI 的四線模式是用于控制四線 SPI Flash 外設(shè),此模式下,數(shù)據(jù)傳輸速率是普通模式下的 4 倍。具體功能以及寄存器設(shè)置,請用戶參考 GD32E103 用戶手冊。

5.6 外部存儲器控制器(EXMC)

GD32E103 的 EXMC 相比 GD32F10x 系列少了NAND Flash/PC Card 控制器。

5.7 通用串行總線全速接口(USBFS)

GD32E103 和 GD32F105/107 的 USBFS 一致,較 GD32F105/107 相比多了 IRC48M的時(shí)鐘源可選擇。具體功能以及寄存器設(shè)置,請用戶參考 GD32E103 用戶手冊。

6. 移植注意事項(xiàng)

6.1 軟件延時(shí)調(diào)整

GD32F103 系列 flash 為零等待設(shè)計(jì),GD32E103 采用了新的 Flash 設(shè)計(jì)架構(gòu),F(xiàn)lash有等待周期,所以在同主頻下效率會略低于 GD32F103。如果用戶代碼有用到 for 循環(huán)或者是 while 循環(huán)語句來做延時(shí),延時(shí)時(shí)間在 GD32E103 系列上會變長,需要適當(dāng)?shù)臏p少延時(shí)參數(shù)或改用 Timer 來做延時(shí)函數(shù),使用 GPIO 模擬通信協(xié)議的應(yīng)用需特別注意。

6.2 Flash 編程

GD32E103 Flash 不支持 16 位半字編程,若需對 Flash 進(jìn)行編程,請采用 32 位全字編程或者雙 16 位半字編程,對于連續(xù)的大量數(shù)據(jù)編程也可使用 64 位雙字編程提升 Flash編程效率。此外在 flash 擦除和編程時(shí)間上 GD32E103 相比 GD32F103 縮短了非常多,如有需要可調(diào)整應(yīng)用。

6.3 啟動時(shí)間變快

GD32E103 上電啟動時(shí)間相比 GD32F103 有所提升,如果對上電時(shí)序有嚴(yán)格要求可進(jìn)行調(diào)整。

教程GD32 MCU方案商聚沃科技原創(chuàng)發(fā)布,了解更多GD32 MCU教程,關(guān)注聚沃科技官網(wǎng)

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

    關(guān)注

    6022

    文章

    44375

    瀏覽量

    628280
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    16662

    瀏覽量

    347724
  • 嵌入式
    +關(guān)注

    關(guān)注

    5045

    文章

    18813

    瀏覽量

    298429
  • STM32
    +關(guān)注

    關(guān)注

    2257

    文章

    10826

    瀏覽量

    352428
  • GD32
    +關(guān)注

    關(guān)注

    7

    文章

    400

    瀏覽量

    23971
收藏 人收藏

    評論

    相關(guān)推薦

    GD32 MCU 移植教程】1、 GD32F10x 移植 GD32F30x

    應(yīng)用程序移植新的微控制器。本應(yīng)用筆記旨在幫助您快速將應(yīng)用程序 GD32F10x 系列微控制器移植
    的頭像 發(fā)表于 08-30 09:52 ?1201次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】1、<b class='flag-5'>從</b> <b class='flag-5'>GD32F10x</b> <b class='flag-5'>移植</b><b class='flag-5'>到</b> <b class='flag-5'>GD32F30x</b>

    GD32E103/F303系列與STM32F103的相同點(diǎn)

    注:本文檔僅針對GD32E103/F303系列替代STM32F103系列說明:GD32E103/GD32F10x/
    發(fā)表于 08-04 08:51

    GD32F105移植RT-Thread-smart的過程

    工程,命名為gd32f105-eval。2、復(fù)制官方GD32F10x系列開發(fā)板下的GD32F10x_Firmware_Library文件夾下所有文件放到Libraries文件夾下。3、復(fù)制原G
    發(fā)表于 01-11 07:31

    GD32F10x系列軟件移植GD32F1x0操作說明

    本文介紹了GD32F10x系列到GD32F1x0系列軟件移植操作。
    發(fā)表于 08-28 15:57 ?18次下載

    STM32F10x系列移植GD32F10x系列電子版

    STM32F10x系列移植GD32F10x系列電子版
    發(fā)表于 05-31 09:22 ?0次下載

    STM32F10x系列移植GD32F10x系列指導(dǎo)文檔

    STM32F10x系列移植GD32F10x系列指導(dǎo)文檔
    發(fā)表于 12-03 16:29 ?6次下載

    AN011 GD32F10x系列移植GD32F30x系列

    AN011 GD32F10x系列移植GD32F30x系列
    發(fā)表于 02-23 18:59 ?2次下載
    AN011 <b class='flag-5'>GD32F10x</b>系列<b class='flag-5'>移植</b><b class='flag-5'>到</b><b class='flag-5'>GD32F30x</b>系列

    AN047 GD32E103&C103系列移植GD32F30x系列

    AN047 GD32E103&C103系列移植GD32F30x系列
    發(fā)表于 02-23 18:59 ?0次下載
    AN047 <b class='flag-5'>GD32E103</b>&C<b class='flag-5'>103</b>系列<b class='flag-5'>移植</b><b class='flag-5'>到</b><b class='flag-5'>GD32F30x</b>系列

    AN047 GD32E103&C103移植GD32F30x

    兆易創(chuàng)新AN047GD32E103&C103系列移植GD32F30x系列AN047GD32E103&C103系列
    發(fā)表于 10-19 17:26 ?3次下載

    AN011 GD32F10x系列移植GD32F30x系列

    兆易創(chuàng)新AN011GD32F10x系列移植GD32F30x系列AN011GD32F10x系列移植
    發(fā)表于 10-19 17:26 ?3次下載

    GD32 MCU 移植教程】2、 GD32F303 移植 GD32F503

    GD32E503 系列是 GD 推出的 Cortex_M33 系列產(chǎn)品,該系列資源上與 GD32F303 兼容度非常高,本應(yīng)用筆記旨在幫助您快速將應(yīng)用程序
    的頭像 發(fā)表于 08-31 09:36 ?1033次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】2、<b class='flag-5'>從</b> <b class='flag-5'>GD32F</b>303 <b class='flag-5'>移植</b><b class='flag-5'>到</b> <b class='flag-5'>GD32F</b>503

    GD32 MCU 移植教程】5、GD32E230 系列移植 GD32F330 系列

    移植 GD32F330 系列的需求,本文 檔專門針對既有的 GD32E230 代碼如何移植
    的頭像 發(fā)表于 09-03 10:05 ?401次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】5、<b class='flag-5'>GD32E</b>230 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> <b class='flag-5'>GD32F</b>330 系列

    GD32 MCU 移植教程】6、GD32F1x0和GD32F3x0移植GD32E230

    和低成本,所以在存量客戶 中可能會有越來越多的客戶會有 GD32F1x0 和 GD32F3x0 移植
    的頭像 發(fā)表于 09-04 09:38 ?141次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】6、<b class='flag-5'>從</b><b class='flag-5'>GD32F1x</b>0和<b class='flag-5'>GD32F3x</b>0<b class='flag-5'>移植</b><b class='flag-5'>到</b><b class='flag-5'>GD32E</b>230

    GD32 MCU 移植教程】9、 STM32F10x 系列移植 GD32F30x 系列

    對比、外設(shè)及性能對比以及 STM32F10x 移植 GD32F30x移植步驟,旨在讓開發(fā)
    的頭像 發(fā)表于 09-07 09:57 ?146次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】9、<b class='flag-5'>從</b> STM32<b class='flag-5'>F10x</b> 系列<b class='flag-5'>移植</b><b class='flag-5'>到</b> <b class='flag-5'>GD32F30x</b> 系列

    GD32 MCU 移植教程】10、STM32F030系列移植GD32E230系列

    GD32E230 對比 STM32F030 有著很好的兼容性和更高的性價(jià)比,內(nèi)核和外設(shè)都有所增強(qiáng)。本人曾做過產(chǎn)品的 MCU 替換,將基于 STM32F0xx 1.5.0 固件庫的應(yīng)用程
    的頭像 發(fā)表于 09-07 10:24 ?244次閱讀
    【<b class='flag-5'>GD32</b> <b class='flag-5'>MCU</b> <b class='flag-5'>移植</b>教程】<b class='flag-5'>10</b>、<b class='flag-5'>從</b>STM32<b class='flag-5'>F</b>030系列<b class='flag-5'>移植</b><b class='flag-5'>到</b><b class='flag-5'>GD32E</b>230系列