打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用华大HC32替换STM32,这些细节一定要看!
使用华大半导体替代ST体验
HC32F460KETA替代STM32F407ZGT

芯片持续缺货涨价,让我所在的初创小公司真的是处于生死的边缘,各种芯片一直在告急,没有供货商,我们公司产品也生产不出来,32的芯片价格还在一直飙升,让我们不得不退步选择国产的芯片HC32F460KETA。

本人是今年刚毕业的大学生,如有写的或者表达不周的地方,希望大家指出!

在大学时候,一直选用的32单片机,觉得用的很顺,或许也是听从网上一些流言蜚语,说国产单片机不行,让我对国产的单片机产生一种俱畏的心里,不让尝试取用,今年毕业之后,来到这公司,没办法,领导要求,也得硬着头皮上。

网上说完美替代,但我觉得还是不靠谱,所以把我用的经历写在这。

华大HC32F460和ST STM32F407ZGT6对比如下:

▲Stm32F07ZGT6

▲HC32F460KETA

由对比图可见,相比于Stm32F407ZGT6,华大单片机HC32F460的主频有了提升,最大为200M。

两者都是Cortex-M4内核,供电的话因为都属于ARM系列,都是适用于3.3V。

Flash容量有点少于逊色于32的容量,其实这个看是看自己代码空间的大小,太多了也是浪费并且价格也高,毕竟公司是要求成本的,两者的RAM大小是一样的。

但很大劣势就是华大的引脚有点少,一共64pin,32是114,所以要求控制引脚比较多的产品还是要好好考虑一下引脚的分配问题。但华大给我一个很惊艳的地方,就是它的引脚功能有一个分组表,这样更改功能非常方便,如下图所示:



几乎所有的引脚可以任意映射,这实在是太方便了,对于PCB拉线来说,不用到处转弯拉线了。

外设功能的话,都差不多,但肯定华大这款板子的资源不如st的F407。下面,记录一下使用过程。

1、画了一块HC32F460的核心板,大概一个周左右板子才回来。

2、我用的是华大的官方库,当初移植了部分原stm32的程序,但是有冲突,所以感觉网上说直接替换是不太现实的,但函数的命名方式都是标准的,可以不用看底层直接用。

3、焊接完板子之后,满怀期待插上下载器,然而心凉了半截。

这里能找到下载器(我用的是J-link,ST-Link也是可以的),但找不到芯片,我慌了,开始翻找数据手册。一般来说,找不到芯片可能是晶振起振的问题(以我的经验来说,希望大家来补充),然后看了晶振部分的电容要求。

要求晶振电容大小为2pf到25pf,板子和引脚间的寄生电容估算为10pf,我选择的是10pf的电容,也是没有问题的,那有没有可能是电容的实际容值不对,我拿万用表凉了下也是符合标准的。然后怀疑是不是下载电路那边有问题。为了防止拔插烧录引脚的脉冲,在两个下载引脚分别加了3.3V的TVS管。

我试着将下载频率降低,奇迹竟然发生了,能找到芯片了,但是只能在1M以下才能找得到,也就是说低频可以,高频不可以,让我想到是电容容性的问题,果然是这样。


我将TVS管放到了100欧姆电阻的后面,然而TVS管是有寄生电容的,用万用表晾了一下差不多有3nf之大,这样跟电阻就组成了一个低通滤波器,根据公式fc = 1/2pi*R*c


算出频率是800Kz左右,符合1M以下能找到的原因,在multisim做了个仿真电路。


在1Mhz的方波频率下,最上面那个电路的输出波形已经不是方波了,接近于正弦波了,这也就是下载器找不到新片的原因了,下面两个电路均正常工作,方波都能通过去。

但我有个疑问,中间那个电路,如果电容足够大的时候,按道理他的波形也会发生变形或者产生相位差,但是仿真模拟中却没有发生,不知道是为啥,请大佬们指点一下。

我去掉了两个TVS管,在50MHz的情况下也能正常找到芯片了,完美。然后下载了一个标准历程,下载成功。

决定先完善下开发环境,并且看看官网有没有例程,跑个简单的试一试。

首先,这款单片机的资料还是蛮多的,开发也确实跟32差不多,所以用过32的同学上手很快。

华大官网:https://www.hdsc.com.cn


然后找例程,一般我们下载最新的就可以。


找到产品分类:


点开之后,选择通用MCU。


找到F460的相关芯片,点击我们的芯片F460KETA,会给你展示产品特点、技术文档、来发工具、应用方案等,做的很人性化。


驱动库及样例选择最新的Rev1.3.0。

资料还是非常详细的:


还有应用笔记,感觉非常棒!


我用的是MDK5,这个版本:


打开例程库在这个文件夹下面:


点开驱动库和样例:


找到gpio这个文件,并打开它。


这个是GPIO管脚的定义和初始化,很熟悉的感觉,跟32差不多。




主循环里面是反转LED灯。

修改成我们定义的管脚,其余的地方,不做修改,编译一下,直接下载,ok!

编译,下载。

注意芯片类型,不要选错了。


注意:下载时要把reset and run勾选上,不然不会自动运行。


用了一个LED闪烁来演示,LED等能够正常的闪烁,程序现在能够初步跑起来,开心。

小结:

1、第一个就是要对下载电路熟悉一点,掌握相应的模电知识,高通滤波器、低通滤波器等。

2、stm32的库我没有尝试,还是使用华大官方的库,用的还比较顺心,但是华大单片机的DMA发送有的小小的不尽人意,32单片机可以直接使能DMA通道就可以完成发送,而华大的DMA发送用AOS触发一直不成功,哪位大佬有成功麻烦教教我,跪谢!

现在用的DMA 发送是用串口发送完一个字节之后产生DMA发送中断来实现的,也是可以的,至少现在没有遇到什么问题。

3、单纯这个测试,两者差别不大,应该说可以相互替代。选择替代芯片时,官网有个选型手册,参考一下,根据自己的需求来,也可以尝试联系一下技术寻求帮助,听说华大的技术还是蛮热心的,我还没有求助过。

最后,希望国产芯片越做越好!

作者:woai32lala
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
数码管的静态显示与动态显示
什么是单片机MCU?
【绝对干货】华大单片机HC32L13X软件设计注意事项 – 芯虎论坛
Keil中的Code,RO,RW,ZI分别表示什么?
缺货涨价潮下,使用GD32替代STM32的体验
stm32直接控制mos的极高效率的电源设计|电源/充电器
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服