Gavin3389 发表于 2021-8-30 10:50

国产芯片替代ST很容易:记航顺HK32F103RET6替代STM32F103RET6

#申请原创#@21小跑堂 国产芯片替代ST很容易记航顺HK32F103RET6替代STM32F103RET6
序:手里有几个STM32F103RET6应用的板子,整天被采购问询是否能用国产替代,成本快搂不住了。这次又拿了HK的样片,作为替代,尝试一下。开始没做任何修改,程序下载了就跑起来,让我还抱怨了一番,感觉是不是拿错片子了。后面静下心来,详细测试了使用的各功能模块,还是有点小问题的,不过非常好修改,作为应急替代使用,应该问题不大。所以补写个序,告知下本次替代容易至极,如果有同样需求,放心大胆的干吧!随之而来的悲催就是这几天的工作就大部分的成了拍照,留念,技术内容并不是很多,有ST使用的底子,基本上不需要强制查阅手册之类的文档,完全无压力。
本来准备好的替代步骤,技术攻坚,变成了如下的“旅游回忆录”。
1、先把芯片换了再说换之前,先留个ST的影像,一会就换了它。
换好了,拿回办公位,我的焊工还算可以吧,只是酒精干了,杂质没有清理干净,引脚有些发白。
准备就绪,后面怎么办?网上说的那么的神,直接烧ST的程序,行不行?
2、直接原ST程序直接烧写我无语,直接烧写原ST的程序,不做任何修改,居然能跑起来?那我还玩什么?都准备好一顿操作了,结果,给我直接憋在了开始~~~~红色电源指示蓝色闪烁程序运行指示

是我出现幻觉了么?这是第一次接触航顺啊,怎么可能这么的顺利。打开MDK,来确认下眼神,确实把ST的程序,烧到了HK的片子里,直接就跑起来。本来是打算挑挑毛病的呢。。。好吧,既然事实已经如此,那么回过头来,看看当初STM32里到底使用了哪些资源。
整个程序基于HAL库硬件初始化部分
程序是同事开发的,我当前只是尝试验证是否满足芯片替代的条件,程序开发的过程中,兼容了一些产品,初始化的资源,比实际使用的多一点,下面验证下使用到的模块是否正常~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~GOIO:PC13DMA1: 后来程序测试的过程中,发现并没有使用DMAADC1: ADC_CHANNEL_9 , ADC_CHANNEL_10,ADC_CHANNEL_11USART: COM1 COM4Timer(PWM) : TIM3SPI2:这个实际没有用到,作为预留功能的。DAC: DAC_CHANNEL_1~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3、既然程序跑起来了,突然觉得没事干了,验证下当前使用的资源,工作是不是正常吧。3.1 IO输出(PC13)   直接看程序运行状态指示,闪烁频率正常。   还用到了其他IO,单纯的IO使用,问题不大。3.2串口   数据收发正常3.3 DAC输出检测   电压输出可控,正常。(开始着急了,这也正常?都正常我去哪找毛病?)   实测DAC输出正常,但是在HK的应用笔记中,找到如下注意事项, 我想,在应用中,还是参考下应用笔记吧。 3.4ADC检测开始没注意,一看ADC采样有数据,貌似正常,差点溜过去。但是,我用了9,10,11三个通道,那么,问题来了,我之前的采样顺序是10,9,11实际测试发现,通道顺序乱了,导致我的采样数据也乱了。哈哈,终于找到了毛病,可以发泄和吐槽~~~直到这里,才刚刚开始找HK的资源。先换HK的pack,编译尝试一下,设置和芯片选择如下选M3
至此,编译下载,问题没有解决,不是PACK包的事。
接着在在HK的应用笔记中,看到了对多通道ADC使用的过程中的一些描述。那么好,按照应用笔记试试,加延迟~结果,哎,不是我想要的结果啊,这下只能靠自己了~可别让我丢人啊~~还有哪里呢?既然是通道顺序乱了,那么ADC初始化里~至此,更改完之后,ADC几个通道采样值正常了!!缓口气,前面吹了半天,差点掉链子~但是讲真,我还没搞明白为什么,还特意的找个ST的板子验证了下,用ST的片子,我之前的设置没有问题,用HK的,要改一下,哪位大神,调试过ADC,还望指点~这个后面,再看看HK的手册,既然当前adc的值正常了,这里先跳过了。
3.5没耐性了,基本用到的模块也都简单验证了,直接装到整机里,看看效果。替换原设备位置,整机检验,工作2h,设备状态稳定~~~~暂且认为替代成功,后面的验证,交给质量部门。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~3.6忽悠忽悠同事,换到他的板子上试试。由于替代比想象的容易又扔给同事,把芯片换到他的板子上,反馈我的信息是: 程序直接下载就能用,串口,定时器没问题,有个i2c的器件,读不到数据(程序中使用了硬件i2c,这个应该不叫事,应用笔记中有提到,实在不行IO模拟也能解决。)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4、浏览航顺官网貌似都完事了,官网都没有打开,有点不合适。也禁不住那个懒惰的小精灵,在头上叫着“是不是可以用ST去开发,然后简单修改就好了?”但是,我要让那个勤劳的小精灵获胜,还是要回到官网去看看~~http://www.hsxp-hk.com/companyfile/23/在这里下载F103的PACK包,同时可以根据自己的需求,下载用户手册和数据手册。
航顺官网做的还是很工整的,资料很好找。选型表,这个很多人会问,不用的时候,啥用没有。想找一找的时候,又找不到。记得顺便存一下,或者联系技术支持聊聊天。后面应该会一点点的过度好航顺的库上去,毕竟用谁家的东西,就要用谁家的“灵魂”嘛。

5、小结或许是使用的资源有限,或许是运气好。替代过程,非常的容易,基本上没有过多的查看HK的手册和应用笔记。程序直接下载就能跑起来,功能模块详细测试时,发现adc多通道采集时,通道采集顺序与预期不符,也是简单修正初始化部分,就能正常。感觉如果产品已经定型,寻求芯片替代的话,真的可以考虑,硬件不用修改,软件测试下功能模块就好了,要求严格的话,测试下整机和环境适应性,应该问题不大。在测试过程中,选用ST和HK的pack进行编译,暂时没有发现不适应的状态,不过,我这里是初步测试,应急使用可以参照,后期替换的过程中,应该会慢慢的转到HK的库上来。
后面附上,我下载的HK的应用笔记,供参考。



我想看大海 发表于 2021-8-30 16:57

大佬,如果ST的MCU使用内部时钟,直接烧录能不能跑起来

LEDyyds 发表于 2021-8-30 17:00

我们用ST都是超频,顺航的这块,如果超频,能不能用,最高能超到多少,大佬有没有试过啊

药无尘 发表于 2021-8-30 17:02

原来顺航也可以pin to pin 了,这个感觉比GD的要好替代,几乎不用修改啥

Q419461871 发表于 2021-8-30 17:04

雅特力AT32F403ARGT7可以替代

黑心单片机 发表于 2021-8-30 17:04

过程很详细,看了顺航的手册,移植记录的也很清楚,感觉现在国产单片机真的要起来了啊

豆杀包 发表于 2021-8-30 17:08

热乎乎的200大洋的原创奖,好羡慕,不过大佬真强,我们目前也在寻求替代,可以试试我们的项目能不能换顺航,我们不用ADC和DAC,用串口和SPI,不知是否要修改啥,下次试试看

czh11000 发表于 2021-8-31 08:45

希望国产的产能跟上

Magnin 发表于 2021-8-31 10:56

时钟初始化需要注意一下,需要增加延时等待时钟稳定

Gavin3389 发表于 2021-8-31 11:59

关于时钟:
使用的外部8M晶体,配置到最高系统时钟,未尝试内部晶振,也未尝试过超频。
一般我们的使用中,会选取外部晶体,不会超频,对时钟要求高的话,会选择升级一档MCU.

应用笔记里有一些,替代时需要注意的点,可以参考,
我应该算是比较幸运的,只是ADC,稍微改了下。正常的话,应该是先用起来,然后,慢慢的把库文件都转过来。

单片小菜 发表于 2021-9-1 08:26

这个确实不错,我们也在往国产方面走。

crazybee 发表于 2021-9-1 08:47

全面抄袭,市场推广都省,来钱还真快。

hejun96 发表于 2021-9-1 09:36

本帖最后由 hejun96 于 2021-9-1 09:38 编辑

我也写了一个雅特力的pin to pin,欢迎围观 https://bbs.21ic.com/icview-3160422-1-1.html

勇敢的大白菜 发表于 2021-9-1 14:43

现在感觉国产的单片机的势头,还是挺强劲的。

gygp 发表于 2021-9-2 21:46

这个代码也是兼容的吗?   

chenci2013 发表于 2021-9-2 21:47

这个配置的时候有什么区别吗   

biechedan 发表于 2021-9-2 21:47

很多国产芯片都是奔着st去的      

wangdezhi 发表于 2021-9-2 21:47

总结的非常到位的。      

isseed 发表于 2021-9-2 21:47

STM32F103RET6什么价格了?   

xietingfeng 发表于 2021-9-2 21:47

HK32F103RET6供应量可行吗
页: [1] 2 3 4 5 6
查看完整版本: 国产芯片替代ST很容易:记航顺HK32F103RET6替代STM32F103RET6