你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

GD32和STM32的区别

[复制链接]
gaosmile 发布时间:2021-2-18 23:10
一、前言
; Z! R! d* F! a' O- P7 F
GD32是国内开发的一款单片机,据说开发人员是来自ST公司的,GD32也是以STM32作为模板做出来的,所以GD32和STM32有很多地方都是一样的。9 h* p& J0 |, v9 r$ ]" r7 s
不过,GD32毕竟是不同的产品,不可能所有东西都沿用STM32,有些自主开发的东西还是有区别的。相同的地方本文就不介绍了,下面给大家讲一下两者的区别。
% k) n0 D- ]7 l) l9 \
二、区别
- S9 G- Q9 b" Z% Y+ }/ c
1、内核
; s% l( R% U0 H' k
GD32采用二代的M3内核,STM32主要采用一代M3内核,下图是ARM公司的M3内核勘误表,GD使用的内核只有752419这一个BUG。  U! p3 o2 l5 k% L* q6 A
微信图片_20210218230844.png
" n* U# K: z" J5 O9 u* o

+ q( ?% B& I# S; y, k! }2、主频, t+ s9 T! P9 p5 U9 }, N3 z1 y
使用HSE(高速外部时钟):GD32的主频最大108M,STM32的主频最大72M;
+ r( P& o8 a  j( _% _2 [使用HSI(高速内部时钟):GD32的主频最大108M,STM32的主频最大64M。
% f' _0 e8 C' z3 }0 a# h* }
主频大意味着单片机代码运行的速度会更快,项目中如果需要进行刷屏,开方运算,电机控制等操作,GD是一个不错的选择。
% F& ]" m9 h+ V. t2 g- X
3、供电& F# O8 b* g- Q, h
外部供电:GD32外部供电范围是2.63.6V,STM32外部供电范围是23.6V。GD的供电范围比STM32相对要窄一点。5 e. m) l0 k0 W/ b- F. U$ t% E
内核电压:GD32内核电压是1.2V,STM32内核电压是1.8V。GD的内核电压比STM32的内核电压要低,所以GD的芯片在运行的时候运行功耗更低。
  Y1 Z# x  Q, e! m$ e' ]
4、Flash差异& @4 C5 ^  M' o6 L* G
GD32的Flash是自主研发的,和STM32的不一样。
9 @  H  a0 L) X( K8 qGD Flash执行速度:GD32 Flash中程序执行为0等待周期。
6 _5 P6 I( e' e  _2 Z
STM32 Flash执行速度:ST系统频率不访问flash等待时间关系:0等待周期,当0<SYSCLK<24MHz,1等待周期,当24MHz<SYSCLK≤48MHz,2等待周期,当48MHz<SYSCLK≤72MHz。

2 c5 C$ U4 d! J# s" ^1 CFlash擦除时间:GD擦除的时间要久一点,官方给出的数据是这样的:GD32F103/101系列Flash 128KB 及以下的型号, Page Erase 典型值100ms, 实际测量60ms 左右。对应的ST 产品Page Erase 典型值 20~40ms。
. L# _3 I9 x' ]9 n
5、功耗
0 X' b: u* O% R8 k! @: T4 e
从下面的表可以看出GD的产品在相同主频情况下,GD的运行功耗比STM32小,但是在相同的设置下GD的停机模式、待机模式、睡眠模式比STM32还是要高的。  o9 x! B1 y  B( g. b( K/ ?' U  O
微信图片_20210218230848.png + q( _: e7 }$ z! Z# c, L1 B

/ d* s3 Y% ~- u/ s' b
8 G. Z' S" F% `/ ~+ n
6、串口; q, E3 Z) q$ F6 w1 R
GD在连续发送数据的时候每两个字节之间会有一个Bit的Idle,而STM32没有,如下图。7 q* P& x4 Y- l1 e- b' ^. w- ]
微信图片_20210218230852.png & F# V2 I, r) v3 e: ^/ n$ p
GD的串口在发送的时候停止位只有1/2两种停止位模式。STM32有0.5/1/1.5/2四种停止位模式。

1 U( a7 Q4 Z. UGD 和STM32 USART的这两个差异对通信基本没有影响,只是GD的通信时间会加长一点。
9 ~' J8 R0 G; Z  H0 {% h
7、ADC差异  l( B2 F0 O/ N4 }9 @: Y: l7 n
GD的输入阻抗和采样时间的设置和ST有一定差异,相同配置GD采样的输入阻抗相对来说要小。具体情况见下表这是跑在72M的主频下,ADC的采样时钟为14M的输入阻抗和采样周期的关系:
* |/ D7 D" q/ B+ N5 Q! g
微信图片_20210218230856.png
1 u$ L" z% s- M- u9 k$ S, }0 p
, ~  [) j0 p, u

1 B9 t6 B' a8 |# i, Y8 K8、FSMC0 f" E- y" u7 t6 @3 V/ K% S
STM32只有100Pin以上的大容量(256K及以上)才有FSMC,GD32所有的100Pin或100Pin以上的都有FSMC。' S, g! E3 b/ F6 P
9、103系列RAM&FLASH大小差别) I! F; K( ^# i
GD103系列和ST103系列的ram和flash对比如下图:; ]6 r3 a4 D8 _- e; n5 y5 M
微信图片_20210218230900.png
" N2 s+ a: j$ y0 z9 @3 {+ f  v# b. H: R2 {7 e
3 l% a2 W4 k- G/ L) K7 z( {# \
10、105&107系列STM32和GD的差别
% D( q  I# H+ q+ t# v" H7 S
GD的105/107的选择比ST的多很多,具体见下表:/ M' T+ x4 \  \+ B8 l
微信图片_20210218230904.png " d1 J# e& W- y

) t# M3 _: C, Y6 U

* w2 l/ ^% K/ v4 w11、抗干扰能力5 D1 y3 l% l- @: Z
关于这一点,官方没有给出,我也是在做项目的过程中偶然发现的。项目原本是用的是STM32F103C8T6,后来换成了GD F103C8T6,这两个芯片的引脚完全一致。单片机用了两个邻近的引脚作为SPI的时钟引脚和数据输出引脚,然后发现STM32的SPI能正常通讯,GD的不行,经过检查发现PCB板SPI的铜线背面有两根IIC的铜线经过,信号应该是受到影响了。  E6 {, ?+ O8 m( ?$ ~
用示波器看了一下引脚的电平,发现确实是,STM32和GD的数据引脚波形都不正常,但是STM32的波形要好很多,波形虽然差了点,但是SPI通讯依然正常。
( j5 d* \8 D& b1 Y0 {; S
而GD则不能正常通讯了。然后我又把SPI的通讯速率减慢,发现STM32的数据引脚很快就恢复正常波形了,而GD的依然差,直到速率降到很低才恢复正常。初步怀疑是STM32内部对引脚有做一些滤波的电路,而GD则没有。% G/ Y# a/ E/ [) \* L$ \& Y# V0 p0 M* R
虽然我用的这个电路板本身布线有些不合理,但是在同样恶劣的环境下,STM32依然保证了通讯的正常,而GD不行,这在一定程度上说明了GD的抗干扰能力不如STM32。
, z& j7 A) g0 \
# T. m2 \" f1 O5 p; q, N
赞 收藏 评论1 发布时间:2021-2-18 23:10

举报

1个回答
u18918373097 回答时间:2021-2-19 22:33:22
学习了
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版