受疫情及其它多种因素的影响,导致世界各大MCU厂家芯片价格不断上涨,特别是STM32部分型号的价格已经翻几倍了。 然后,有很多公司开始了寻找其他厂家MCU代替STM32的方案,在国内最有效替代STM32的非GD32莫属了。 想要最有效替代,就需要了解他们之间的差异,下面简单描述一下STM32F1 和 GD32F1系列芯片的一些差异。 1 GD32简介 在描述差异之前,我们简单介绍一下GD32,以及这家公司相关的内容。 GD32属于北京兆易创新科技股份有限公司(简称兆易创新)开发的一款(系列)MCU。 兆易创新成立于2005,在2013年正式推出了第一款Cortex-M内核的MUC(GD32F1)。 据说开发的人员是来自ST公司的,GD32也是以STM32为模板做出来的。所以GD32和STM32有很多地方都是一样的,有些型号MCU可以做到无缝替换。 不过GD32毕竟是不同的产品,不可能所有东西都沿用STM32,有些自主开发的东西还是有区别的。相同的地方我们就不说了,下面我给大家讲一下STM32F1和 GD32F1系列芯片不同的地方。 2 内核区别 GD32采用二代的M3内核,STM32主要采用一代M3内核,下图是ARM公司的M3内核勘误表,GD使用的内核只有752419这一个BUG。
3 主频区别 使用HSE(高速外部时钟):GD32的主频最大108M,STM32的主频最大72M。 使用HSI(高速内部时钟):GD32的主频最大108M,STM32的主频最大64M 主频大意味着单片机代码运行的速度会更快,项目中如果需要进行刷屏,各种开方运算,电机控制等操作,GD32是一个不错的选择。 4 供电区别 外部供电:GD32外部供电范围是2.6 ~ 3.6V,STM32外部供电范围是2 ~ 3.6V,GD的供电范围比STM32相对要窄一点。 内核电压:GD32内核电压是1.2V,STM32内核电压是1.8V。GD的内核电压比STM32的内核电压要低,所以GD的芯片在运行的时候运行功耗更低。 5 供电区别 GD32的Flash是自主研发的,和STM32的不一样。 GD Flash执行速度:GD32 Flash中程序执行为0等待周期。 STM32 Flash执行速度:ST系统频率不访问flash等待时间关系:0等待周期,当0<SYSCLK<24MHz,1等待周期,当24MHz<SYSCLK≤48MHz,2等待周期,当48MHz<SYSCLK≤72MHz。 Flash擦除时间:GD擦除的时间要久一点,官方给出的数据是这样的:GD32F103/101系列Flash 128KB 及以下的型号, Page Erase 典型值100ms, 实际测量60ms 左右。对应的ST 产品Page Erase 典型值20~40ms。 6 功耗区别 从下面的表可以看出GD的产品在相同主频情况下,GD的运行功耗比STM32小,但是在相同的设置下GD的停机模式、待机模式、睡眠模式比STM32还是要高的。
7 串口区别 GD在连续发送数据的时候每两个字节之间会有一个Bit的Idle,而STM32没有,如下图:
8 ADC区别 GD的输入阻抗和采样时间的设置和ST有一定差异,相同配置GD采样的输入阻抗相对来说要小。具体情况见下表这是跑在72M的主频下,ADC的采样时钟为14M的输入阻抗和采样周期的关系:
9 FSMC区别 STM32只有100Pin以上的大容量(256K及以上)才有FSMC,GD32所有的100Pin或100Pin以上的都有FSMC。
10 RAM&FLASH大小FSMC区别 GD103系列和ST103系列的ram和flash对比如下图:
11 105&107系列区别 GD的105/107的选择比ST的多很多,具体见下表:
还有很多差异,可能有些工程师在实际应用过程中都发现了,欢迎大家留言补充。由于篇幅有限,本文就不再过多介绍了
|