当前位置:首页 > 公众号精选 > 嵌入式ARM
[导读]上周三(2020.10.28)的时候,我登陆立创商城,搜索stm32f103c8t6,单价15左右,100片的话,价格不到13。 今天(2020.11.5)再次登陆,搜索stm32f103c8t6,价格疯长到了20+……疯了啊! 真的要考虑单片机型号的国产化了!


上周三(2020.10.28)的时候,我登陆立创商城,搜索stm32f103c8t6,单价15左右,100片的话,价格不到13。

今天(2020.11.5)再次登陆,搜索stm32f103c8t6,价格疯长到了20+


疯了啊!

真的要考虑单片机型号的国产化了!

以下文章转自网络:

说起MCU,ST(意法半导体)的STM32单片机十几年来已经销售了几十亿颗,在国内几乎占有50%的市场,会使用STM32单片机也基本成为电子工程师的标配职业技能,然而2018年下半年的供货紧张,以及中兴事件,给我们硬件工程师敲了敲警钟,假如有一天我们必须替换下STM32单片机,国产芯有哪些是可以替代的呢?


北京兆易创新-GD32系列

GD32作为中国32位通用MCU领域的主流之选,以累计超过2亿颗的出货数量、超过1万的用户数量、20个系列300余款产品型号选择的广阔应用覆盖率稳居市场前列。GD32使用的是Cortex-M3内核,型号做到了与STM32相同型号的全兼容,方便替换,主频频率更高。


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



一、相同点


1)外围引脚PIN TO PIN兼容,每个引脚上的复用功能也完全相同。
2)芯片内部寄存器、外部IP寄存器地址和逻辑地址完全相同,但是有些寄存器默认值不同,有些外设模块的设计时序上和STM32有差异,这点差异主要体现在软件上修改,详情见下文。
3)编译工具:完全相同例如:KEIL 、IAR
4)型号命名方式完全相同,所以替代只需找尾缀相同的型号即可,例如:STM32F103C8T6 与 GD32E103C8T6。
5)仿真工具:JLINK GDLINK


二、外围硬件区别


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




从上面的介绍中,我们可以看出,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已生效,修改如下:

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


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时间上有差异,修改如下:




6)需求flash大于256K注意,小于256K可以忽略这项。


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


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


上海灵动微电子-MM32系列

MM32系列基于ARM Cortex-M0及Cortex-M3 内核,产品包括:针对通用高性能市场的MM32F系列,针对超低功耗及安全应用的MM32L系列,具有多种无线连接功能的MM32W系列,电机驱动及控制专用的MM32SPIN系列,以及OTP型的MM32P系列等,同样的管脚、型号等与ST全兼容,替换成本非常低。


华大半导体-HC32系列

有国企背景的HC32系列基于ARM Cortex-M0+及Cortex-M4内核,产品包括超低功耗应用的HC32L系列和针对电机应用市场的HC32M系列,针对通用市场的高性价比HC32F系列,与ST同型号产品管脚兼容,可以直接替换。


中科芯(CETC)

                   

   


中科芯的32位MCU产品可批量替换STM32的F103、F030、F031和F051等系列。基于ARM架构覆盖Cortex-M0、M3、M4内核八大系列产品,硬件引脚与STM32 P2P兼容,软件采用寄存器级兼容设计,对于已经使用ST系列MCU开发完成的程序,HEX文件可直接烧录到中科芯对应型号的MCU中即可运行,无需过多改动。


雅特力(Artery)

           



雅特力的AT32F403A/F407/ F413/ F415/F421系列,可批量替换STM32的F030、F303、F103、F107、F072、F401和F411等系列,其产品硬件引脚与STM32 P2P兼容,软件高度兼容,由于内核、SRAM、外设等性能相比STM32大幅度提升,AT32可一颗取代多颗STM32,另外还独有安全性&二次开发功能: security Lib,更宽的工作温度:-40~105度。


中微股份(CMSemicon)


                        

           


中微股份的高性能低功耗高集成全领域的MCU,可批量替换STM32F030/031系列、STM32G030/031系列和STM32L031/051系列。


航顺(Hangshun)

                     


航顺已量产基于ARM Cortex-M0及Cortex-M3 内核的MCU产品包括:通用高性能市场的HK32F103家族,HK32F030/031/03X家族,存储器EEPROM家族。2019年即将推出的超低功耗7nA及安全应用的HK32L家族以及具有多种无线连接功能的HK32W/B家族,以满足客户多元化需求。

国产 芯任重道远

国产芯片在国内MCU市场的占有率在2%左右,市场非常低,还有很大的进步空间。以GD32为代表的国内芯片厂商的崛起势必冲击ST,但是我们也必须看到与ST之间的差距,产品线不完整,产品性能以及稳定性还不能完全与其匹敌,未来5年能抢下多少份额,我们拭目以待。

END

链接:http://blog.csdn.net/qq_23852045/article/details/109802955

链接:http://baijiahao.baidu.com/s?id=1632676931357810668&wfr=spider&for=pc

链接:http://mp.weixin.qq.com/s/xeFz-7mI_TUq3I8cjMtB2Q


版权归原作者所有,如有侵权,请联系删除。

推荐阅读

成功为华为“续命:中国芯片之父张汝京

一个工程师的“噩梦”:刚分清CPU和GPU,却发现还有……

这位“华为天才少年”,竟然要我用“充电宝”打《只狼》



免责声明:本文内容由21ic获得授权后发布,版权归原作者所有,本平台仅提供信息存储服务。文章仅代表作者个人观点,不代表本平台立场,如有问题,请联系我们,谢谢!

换一批

延伸阅读

[玩转嵌入式] STM32单片机外部晶振无效?那是因为配置不对?

1.问题的提出 新项目用到STM32单片机,用到了500k波特率的CAN通讯,因此没有使用内部晶振,而是用到了12M的外部晶振。该项目的程序员在调试的时候发现,STM32的时钟频率不对,于是...

关键字: STM32 单片机 晶振

[玩转嵌入式] C语言编程建议和技巧,同样适用于单片机的学习

1、排版问题 指针也需要合理的符号。np 仅仅只是作为指针 nodepointer 的助记符。如果一贯都遵从命名规范,那么很容易就能推断出 np 表示“节...

关键字: 编程 C语言 单片机

[玩转嵌入式] 怎样才能学好单片机?懂方法、有规划,才能快速进阶

很多想学单片机的人问我的第一句话就是:怎样才能学好单片机? 对于这个问题我今天就我自己是如何开始学单片机,如何开始上手,如何开始熟练这个过程给大家讲讲。 先说说单片机,在学校时单片机入门用的比...

关键字: 单片机

[嵌入式ARM] STM32中C语言知识点:初学者必看,老鸟复习(长文总结)

说在前面的话 一位初学单片机的小伙伴让我推荐C语言书籍,因为C语言基础比较差,想把C语言重新学一遍,再去学单片机,我以前刚学单片机的时候也有这样子的想法。 其实C语言是可以边学单...

关键字: C语言 STM32 单片机

[嵌入式ARM] 什么?单片机还在裸奔?ESP8266纯串口透传,助力设备上云端

项目有些久远,前年的机器人上需要的功能,当时是需要将STM32上的数据上传到服务器,比如机器人的速度,行驶距离,是否在拍照等等。便于管理者在PC或者手机上了解机器人的工作状态,同时可以远程下发指令给机器人,控制其完成相应动作。...

关键字: ESP8266 单片机

技术子站

关闭