本帖最后由 CCCfe 于 2022-6-7 19:31 编辑
国产APM32F103ZET6替换STM32F103ZET6经验分享(一)
随着大变局时代的开启,美国对中国科技的打压,对中国芯片的锁脖,ST芯片价格的一再高涨,直接推动了国产芯片的发展。国内很多厂家也开始推出高性能、低价格的对标ST产品。由于价格问题,我也不得不考虑更换芯片,看了一些测评,有人推荐这一款APM32的单片机,价格比ST同型号的便宜,果断下单,以下是我使用APM32F103ZET6替换STM32F103ZET6的一些分享,参考了网上各路大神的资料后作的总结。#申请原创#
1 从手册中分析资源,基础信息一模一样
1.1 引脚定义由下图可以看出相同封装的引脚分布完全一致。
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。
1.3 存储地址映射经过对比下面两图可以得出,基本外设地址都是一致的,对于多出的功能都占用了ST原来的保留地址,这说明APM32F103是可以完全兼容STM32F103的。
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的代码是否可以直接烧录使用 打开工程后点击魔术棒,板子还是选择STM32F103VE 接下来选择自己使用的烧录器,这里我用的是J-LINK 进入setting,设置flash download,还是添加对应型号的ST芯片 以上就配置结束了,然后再将例程里LED的引脚PB0和PB1修改成APM32103的LED引脚PE6和PE5 全部修改完成了,编译下载后,两个LED交替闪烁,说明验证成功,不用修改其他配置,选择好烧录器,直接烧录ST代码是可以使用的。 2.5 脱机编程器市场上买的量产烧录器品牌(可以百度、淘宝搜索)有:周立功、希尔特、轩微、芯园、野火等,有些烧录器添加了AMP32F103ZET6的型号,有些没有。
本人只有芯园的烧录器,选择STM32F103ZET6的型号是可以烧录APM32F103ZET6。
至于其它的烧录器能否选择STM32F103ZET6的型号烧录APM32F103ZET6呢,由于没有烧录器,因此暂时无结论,后续有机会使用时再补充。
不过AMP32F103ZET6有官方的脱机编程器。
2.6 JTAG ID不同具体差异如下: (1)APM32F103ZET6的信息如下: (2)STM32F103ZET6的信息如下: 如果代码中有使用JTAG ID作为判断信息的话,在替换过程中会出问题。
内容未完结,后续将继续发布《国产APM32F103ZET6替换STM32F103ZET6经验分享(二)》,谢谢支持! |