0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

GD32如何替换STM32?

jf_pJlTbmA9 来源:jf_pJlTbmA9 作者:jf_pJlTbmA9 2023-09-18 10:58 次阅读

wKgaomUD6zaAZ87aAADiuLXSDns811.png

GD32F103是GD早期的产品,GD32E103和GD32F303是对GD32F103的升级和优化,所以4者是兼容的,虽然内核不同,但是通用外设几乎很少涉及到内核部分,在时间急迫的情况下可以使用ST的库开发。

一、相同点

1)外围引脚PIN TO PIN兼容,每个引脚上的复用功能也完全相同。

2)芯片内部寄存器、外部IP寄存器地址和逻辑地址完全相同,但是有些寄存器默认值不同,有些外设模块的设计时序上和STM32有差异,这点差异主要体现在软件上修改,详情见下文。

3)编译工具:完全相同例如:KEIL 、IAR

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

5)仿真工具:JLINK GDLINK

二、外围硬件区别

wKgaomUD6zeAHIjAAAHk_oAV0cg459.png

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

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

1)BOOT0必须接10K下拉或接GND,ST可悬空,这点很重要。

2)RC复位电路必须要有,否则MCU可能不能正常工作,ST的有时候可以不要。

3)有时候发现用仿真器连接不上。因为GD的swd接口驱动能力比ST弱,可以有如下几种方式解决:

a、线尽可能短一些;

b、降低SWD通讯速率;

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

4)使用电池供电等,注意GD的工作电压,例如跌落到2.0V~2.6V区间,ST还能工作,GD可能无法启动或工作异常。

四、使用ST标准库开发需要修改的地方

1)GD对时序要求严格,配置外设需要先打开时钟,在进行外设配置,否则可能导致外设无法配置成功;ST的可以先配置在开时钟。

2)修改外部晶振起振超时时间,不用外部晶振可跳过这步。

原因:GD与ST的启动时间存在差异,为了让GD MCU更准确复位。

修改:

将宏定义:

#define HSE_STARTUP_TIMEOUT ((uint16_t)0x0500)

修改为:

#define HSE_STARTUP_TIMEOUT ((uint16_t)0xFFFF)

3)GD32F10X flash取值零等待,而ST需要2个等待周期,因此,一些精确延时或者模拟IIC或SPI的代码可能需要修改。

原因:GD32采用专利技术提高了相同工作频率下的代码执行速度。

修改:如果使用for或while循环做精确定时的,定时会由于代码执行速度加快而使循环的时间变短,因此需要仿真重新计算设计延时。使用Timer定时器无影响。

4)在代码中设置读保护,如果使用外部工具读保护比如JFLASH或脱机烧录器设置,可跳过此步骤。
在写完KEY序列后,需要读该位确认key已生效,修改如下:

wKgZomUD6zqASPP_AAAuWkOnwZ0800.png

总共需要修改如下四个函数:

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存在分区的概念,前256K,CPU执行指令零等待,称code区,此范围外称为dataZ区。两者在擦写操作上没有区别,但在读操作时间上存在较大差别,code区代码取值零等待,data区执行代码有较大延迟,代码执行效率比code区慢一个数量级,因此data区通常不建议运行对实时性要求高的代码,为解决这个问题,可以使用分散加载的方法,比如把初始化代码,图片代码等放到data区。

总结:至此,经过以上修改,在不使用USB网络能复杂协议的代码,就可以使用ST的代码操作了。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 寄存器
    +关注

    关注

    30

    文章

    5028

    浏览量

    117719
  • usb
    usb
    +关注

    关注

    59

    文章

    7432

    浏览量

    258136
  • STM32
    +关注

    关注

    2239

    文章

    10671

    浏览量

    348738
  • GD32
    +关注

    关注

    7

    文章

    333

    浏览量

    23740
收藏 人收藏

    评论

    相关推荐

    GD32替换STM32需注意的10大要点(上)@硬声小助手

    单片机GD32灵动微行业芯事芯片验证板经验分享
    MKOO
    发布于 :2021年07月27日 13:58:13

    GD32替换STM32需注意的10大要点(下)@硬声小助手

    单片机GD32灵动微行业芯事芯片验证板经验分享
    MKOO
    发布于 :2021年07月27日 13:58:36

    STM32/GD32/MM32配置接近替换型号列表分享

    STM32/GD32/MM32配置接近替换型号列表
    发表于 12-30 06:25

    GD32可以替换STM32

    什么是GD32GD32STM32的区别在哪?GD32可以替换STM32吗?
    发表于 10-20 07:03

    GD32F103和STM32F103的区别进行介绍

    GD32STM32的区别2.1. 内核2.2. 主频2.3. 供电2.4. FLASH差异2.5. 功耗2.6. 串口2.7. ADC差异2.8. FSMC2.9. 103系列RAM&FLASH大小差别2.10. 抗干扰能力GD32
    发表于 02-11 06:28

    GD32替换STM32有哪些注意事项

    关注、星标公众号,直达精彩内容来源:网络素材GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。所以GD32
    发表于 02-21 07:02

    GD32替换STM32?这些坑你别踩...

    一、前言什么是GD32GD32是国内兆易创新公司开发的一款单片机。GD32STM32有很多地方都是相似的,不过GD32毕竟是不同的产品,
    发表于 03-31 10:51

    GD32STM32的区别

    一、前言GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。所以GD32STM32
    发表于 11-18 20:51 46次下载
    <b class='flag-5'>GD32</b>和<b class='flag-5'>STM32</b>的区别

    GD32如何替换STM32

    关注、星标公众号,直达精彩内容来源:网络素材GD32F103是GD早期的产品,GD32E103和GD32F303是对GD32F103的升级和
    发表于 12-02 15:06 9次下载
    <b class='flag-5'>GD32</b>如何<b class='flag-5'>替换</b><b class='flag-5'>STM32</b>?

    GD32替换STM32,这些细节一定要知道。

    今日份视频号视频----正文----一、 GD32STM32 异同1.相同点1)外围引脚定义:相同型号的管脚定义相同2) Cortex M3 内核:STM32F103 内核 R1...
    发表于 12-02 15:21 11次下载
    <b class='flag-5'>GD32</b><b class='flag-5'>替换</b><b class='flag-5'>STM32</b>,这些细节一定要知道。

    GD32F103与STM32F103的区别 2021.6.2

    GD32STM32的区别 2.1. 内核 2.2. 主频 2.3. 供电 2.4. FLASH差异 2.5. 功耗 2.6. 串口 2.7. ADC差异 2.8. FSMC 2.9. 103系列RAM&FLASH大小差别 2.10. 抗干扰能力
    发表于 12-08 11:06 82次下载
    <b class='flag-5'>GD</b>32F103与<b class='flag-5'>STM32</b>F103的区别 2021.6.2

    想用GD32替换STM32? 这些细节一定要知道

    关注、星标公众号,直达精彩内容来源:网络素材GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。所以GD32
    发表于 12-24 19:15 35次下载
    想用<b class='flag-5'>GD32</b><b class='flag-5'>替换</b><b class='flag-5'>STM32</b>? 这些细节一定要知道

    GD32如何替换STM32

    关注、星标公众号,直达精彩内容来源:网络素材GD32F103是GD早期的产品,GD32E103和GD32F303是对GD32F103的升级和
    发表于 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是两个不同的微控制器系列,是由两个不同的公司设计和生产的。GD32系列是由国内的长沙国芯微
    的头像 发表于 08-16 11:32 2298次阅读

    GD32STM32有何区别?GD32如何替换STM32呢?

    GD32STM32有何区别?GD32如何替换STM32呢? GD32
    的头像 发表于 11-22 18:18 3311次阅读