[APM32F1] 国产APM32F103ZET6替换STM32F103ZET6经验分享

[复制链接]
 楼主| CCCfe 发表于 2022-6-7 19:32 | 显示全部楼层 |阅读模式
本帖最后由 CCCfe 于 2022-6-7 19:31 编辑

国产APM32F103ZET6替换STM32F103ZET6经验分享(一)


  随着大变局时代的开启,美国对中国科技的打压,对中国芯片的锁脖,ST芯片价格的一再高涨,直接推动了国产芯片的发展。国内很多厂家也开始推出高性能、低价格的对标ST产品。由于价格问题,我也不得不考虑更换芯片,看了一些测评,有人推荐这一款APM32的单片机,价格比ST同型号的便宜,果断下单,以下是我使用APM32F103ZET6替换STM32F103ZET6的一些分享,参考了网上各路大神的资料后作的总结。#申请原创#

1 从手册中分析资源,基础信息一模一样
1.1 引脚定义
由下图可以看出相同封装的引脚分布完全一致。
1.jpg

2.jpg
1.2 结构框图
(1)都是M3内核,总体与STM32F103ZET6架构一致
外设上做了部分增加,APM32F103相较于STM32F103增加了I2C3和I2C4模块,还增加了动态存储控制器DMC,可外接SDRAM。

(2)多了EMMC
APM32F103有一个特别的功能,它有EMMC(外部存储器控制器),因此可以外接SDRAM,这使它可以存储大量临时数据,提升读取速度。如果不想外接也有SDRAM,APM32F103也有合封型号——APM32F103VCTxS。

(3)多了个FPU
如果在处理一些浮点数据的数**算时,比如sin运算,使用FPU可以加快运算速度;STM32F103ZET6是没有的,因此在替换过程中,如果使用FPU,且使用了APM32F103ZET6官方提供的浮点运算库,注意算法中数据处理的效率是有很大提升的。

但是APM32F103ZET6的FPU有些不好的地方是,只对库中的数**算有明显(提升至少5倍)加速效果,其它的运算无明显加速效果。

(4)多了个USB
STM32F103ZET6的CAN和USB共用一段SRAM,因此使用USB时可以使用CAN。
3.jpg
4.jpg

1.3 存储地址映射
经过对比下面两图可以得出,基本外设地址都是一致的,对于多出的功能都占用了ST原来的保留地址,这说明APM32F103是可以完全兼容STM32F103的。
5.jpg
6.jpg

1.4 时钟树
在某些应用场景需要超频使用(官方是不保证的),当系统时钟为96MHz、120MHz下,STM32F103ZET6的USB无法配置到48MHz,因此无法使用USB。但是APM32F103ZET6通过配置分频系数,当系统时钟为96MHz、120MHz时,依然可以使用USB.
1.5 最小系统电路
电源、时钟、复位、烧录接口、Boot电路一致。


2 用STM32F103xE的Keil工程、代码烧录到APM32F103xE中,实现基本烧录功能
在调试过程中使用的板子是APM32F103ZET6的mini板,使用的Keil工程是野火的例程。
2.1 编译工具
与ST完全相同,都可以使用keil和IAR。
2.2 烧录器
兼容ST,可以使用ST-LINK,还可以使用J-LINK和APEX-LINK。
2.3 烧录接口
支持JTAG和SWD。
2.4 编译下载
随便找一个野火的STM32F103的代码例程,验证一下不修改任何配置和ST的代码是否可以直接烧录使用
7.png
打开工程后点击魔术棒,板子还是选择STM32F103VE
8.png
接下来选择自己使用的烧录器,这里我用的是J-LINK
9.png
进入setting,设置flash download,还是添加对应型号的ST芯片
10.png
以上就配置结束了,然后再将例程里LED的引脚PB0和PB1修改成APM32103的LED引脚PE6和PE5
11.png
12.png
全部修改完成了,编译下载后,两个LED交替闪烁,说明验证成功,不用修改其他配置,选择好烧录器,直接烧录ST代码是可以使用的。
2.5 脱机编程器
市场上买的量产烧录器品牌(可以百度、淘宝搜索)有:周立功、希尔特、轩微、芯园、野火等,有些烧录器添加了AMP32F103ZET6的型号,有些没有。

本人只有芯园的烧录器,选择STM32F103ZET6的型号是可以烧录APM32F103ZET6。

至于其它的烧录器能否选择STM32F103ZET6的型号烧录APM32F103ZET6呢,由于没有烧录器,因此暂时无结论,后续有机会使用时再补充。

不过AMP32F103ZET6有官方的脱机编程器。

2.6 JTAG ID不同
具体差异如下:
(1)APM32F103ZET6的信息如下:
13.png
(2)STM32F103ZET6的信息如下:
14.png
如果代码中有使用JTAG ID作为判断信息的话,在替换过程中会出问题。


内容未完结,后续将继续发布《国产APM32F103ZET6替换STM32F103ZET6经验分享(二)》,谢谢支持!
daichaodai 发表于 2022-6-8 07:42 来自手机 | 显示全部楼层
相似度还是挺高
内政奇才 发表于 2022-6-9 10:56 来自手机 | 显示全部楼层
差别应该不会很大,哈哈
zjh20070904 发表于 2022-6-13 19:32 | 显示全部楼层
直接用ST的SDK、ST的工程烧录,省了好多移植代码事
jimmhu 发表于 2022-11-3 22:04 | 显示全部楼层
是不是可以通过stm32cubemx开发APM32F103ZET6?
AloneKaven 发表于 2022-11-4 21:20 | 显示全部楼层
差别不会很大
maqianqu 发表于 2022-11-5 10:18 | 显示全部楼层
感觉代码都不需要替换,直接下载程序的。
lzbf 发表于 2022-11-5 10:42 | 显示全部楼层
APM32F103ZET6是PIN2PIN兼容stm32的。
ingramward 发表于 2022-11-5 11:15 | 显示全部楼层
STM32F103ZET6现在的价格太贵了,APM32F103ZET6不知道怎么样
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

3

主题

3

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部