缺料危机还在持续,MCU从国外ST替换到了国产杰发科,国产供应仍有缺口,不得已还得替换,于是又在考虑兆易创新,在选型的过程中,了解到一点区别,和大家分享一下,避免替换时遇到坑。
兆易创新GD32是国内开发的一款单片机,据说开发的人员是来自ST公司的,GD32也是以STM32作为模板做出来的。所以GD32和STM32有很多地方都是一样的。
不过GD32毕竟是不同的产品,不可能所有东西都沿用STM32,有些自主开发的东西还是有区别的。
相同的地方我们就不说了,下面列一下不同的地方。
使用HSE(高速外部时钟):GD32的主频最大108M,STM32的主频最大72M
使用HSI(高速内部时钟):GD32的主频最大108M,STM32的主频最大64M
主频大意味着单片机代码运行的速度会更快,项目中如果需要进行刷屏,开方运算,电机控制等操作,GD是一个不错的选择。
外部供电:GD32外部供电范围是2.6-3.6V,STM32外部供电范围是2-3.6V。GD的供电范围比STM32相对要窄一点。
内核电压:GD32内核电压是1.2V,STM32内核电压是1.8V。GD的内核电压比STM32的内核电压要低,所以GD的芯片在运行的时候运行功耗更低。
GD32的Flash是自主研发的,和STM32的不一样。
GD Flash执行速度:GD32 Flash中程序执行为0等待周期。
STM32 Flash执行速度:ST系统频率不访问flash等待时间关系,0等待周期,当0
Flash擦除时间:GD擦除的时间要久一点,官方给出的数据是这样的“GD32F103/101系列Flash 128KB及以下的型号,Page Erase典型值100ms, 实际测量60ms左右。”对应的ST 产品Page Erase典型值 20~40ms。
GD在连续发送数据的时候每两个字节之间会有一个Bit的Idle,而STM32没有,如下图。
GD的串口在发送的时候停止位只有1/2两种停止位模式。STM32有0.5/1/1.5/2四种停止位模式。
GD 和STM32 USART的这两个差异对通信基本没有影响,只是GD的通信时间会加长一点。
关于这一点,官方没有给出,笔者也是在做项目的时候偶然发现的。
项目原本是用STM32F103C8T6,后来换成GDF103C8T6。这两个芯片的引脚完全一致,单片机用了的两个邻近的引脚作为SPI的时钟引脚和数据输出引脚,然后发现STM32的SPI能正常通讯,GD的不行;经过检查发现PCB板SPI的铜线背面有两根IIC的铜线经过,信号应该是受到影响了。
用示波器看了一下引脚的电平,发现确实是,STM32和GD的数据引脚波形都不正常,但是STM32的波形要好很多,波形虽然差了点,但是SPI通讯依然正常。而GD则不能正常通讯了。
然后笔者又把SPI的通讯速率减慢,发现STM32的数据引脚很快就恢复正常波形了,而GD的依然差,直到速率降到很低才恢复正常。初步怀疑是STM32内部对引脚有做一些滤波的电路,而GD则没有。
虽然用的这个电路板本身布线有些不合理,但是在同样恶劣的环境下,STM32依然保证了通讯的正常,而GD不行,这在一定程度上说明了GD的抗干扰能力不如STM32。
1.《嵌入式实时操作系统 》教学课件上线了!
2.嵌入式开发|RTOS滴答Tick设置多少才合适?
3.确认过眼神,GD32F310就是你想要的超值型MCU!
4.一种嵌入式Linux本地和远程升级程序的方法!
5.什么是 0 欧姆电阻?
6.难倒C语言高手的枚举细节
免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。