发新帖本帖赏金 30.00元(功能说明)我要提问
返回列表

[技术问答] 华大HC32F460与STM32F407对比

[复制链接]
1427|9
手机看帖
扫描二维码
随时随地手机跟帖
woai32lala|  楼主 | 2021-11-23 22:45 | 显示全部楼层 |阅读模式
本帖最后由 woai32lala 于 2021-11-24 09:27 编辑

#有奖活动# #技术资源# #申请原创#@21小跑堂
使用华大半导体替代ST体验
(HC32F460KETA替代STM32F407ZGT)

芯片持续缺货涨价,让我所在的初创小公司真的是处于生死的边缘,各种芯片一直在告急,没有供货商,我们公司产品也生产不出来,32的芯片价格还在一直飙升,让我们不得不退步选择国产的芯片HC32F460KETA。
本人是今年刚毕业的大学生,有写的或者表达不周的地方希望大家指出。
在大学时候,一直选用的32单片机,觉得用的很顺,或许也是听从网上一些流言蜚语,说国产单片机不行,让我对国产的单片机产生一种俱畏的心里,不让尝试取用,今年毕业之后,来到这公司,没办法,领导要求,也得硬着头皮上。

网上说完美替代,但我觉得还是不靠谱,所以把我用的经历写在这。
华大HC32F460和ST STM32F407ZGT6对比
                                                                                    14119619cfce73a19c.png         Stm32F07ZGT6   
                                                                                        97236619cfd080561e.png           HC32F460KETA   


由对比图看见,相比于Stm32F407ZGT6,华大单片机HC32F460的主频有了提升,最大为200M。
两者都是Cortex-M4内核,供电的话因为都属于ARM系列,都是适用于3.3V。
Flash容量有点少于逊色于32的容量,其实这个看是看自己代码空间的大小,太多了也是浪费并且价格也高,毕竟公司是要求成本的,两者的RAM大小是一样的。
但很大劣势就是华大的引脚有点少,一共64pin,32是114,所以要求控制引脚比较多的产品还是要好好考虑一下引脚的分配问题,但是华大给我一个很惊艳的地方是他的引脚功能有一个分组表,这样更改功能非常方便,如下图:
21763619cfd3706fa5.png

10095619cfd42a16a4.png

几乎所有的引脚可以任意映射,这实在是太方便了,对于PCB拉线来说,不用到处转弯拉线了。
外设功能的话,都差不多,但肯定华大这款板子的资源不如st的F407.


下面记录下一下使用的过程。
1、  画了一块HC32F460的核心板,大概一个周左右板子才回来。
2、  我用的是华大的官方库,当初移植了部分原stm32的程序,但是有冲突,所以感觉网上说直接替换是不太现实的,但函数的命名方式都是标准的,可以不用看底层直接用。
3、  焊接完板子之后,满怀期待插上下载器,然而心凉了半截。
明天插图

这里能找到下载器(我用的是J-link,ST-Link也是可以的),但找不到芯片,我慌了,开始翻找数据手册,一般来说找不到芯片可能是晶振起振的问题(以我的经验来说,希望大家来补充),然后看了晶振部分的电容要求
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image010.jpg
要求晶振电容大小为2pf到25pf,板子和引脚间的寄生电容估算为10pf,我选择的是10pf的电容,也是没有问题的,那有没有可能是电容的实际容值不对,我拿万用表凉了下也是符合标准的。然后怀疑是不是下载电路那边有问题。为了防止拔插烧录引脚的脉冲,在两个下载引脚分别加了3.3V的TVS管。
我试着将下载频率降低,奇迹竟然发生了,能找到芯片了,但是只能在1M以下才能找得到,也就是说低频可以,高频不可以,让我想到是电容容性的问题,果然是这样。
6740619d09a873ac1.png
我将TVS管放到了100欧姆电阻的后面,然而TVS管是有寄生电容的,用万用表晾了一下差不多有3nf之大,这样跟电阻就组成了一个低通滤波器,根据公式fc = 1/2pi*R*c
62524619cff1964823.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image012.jpg
算出频率是800Kz左右,符合1M以下能找到的原因。
在multisim做了个仿真电路
46819619cff250f5cd.png

file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image014.jpg
在1Mhz的方波频率下,最上面那个电路的输出波形已经不是方波了,接近于正弦波了,这也就是下载器找不到新片的原因了,下面两个电路均正常工作,方波都能通过去。
但我有个疑问的是,中间那个电路,如果电容足够大的时候,按道理他的波形也会发生变形或者产生相位差,但是仿真模拟中却没有发生,不知道是为啥,请大佬们指点一下。
我去掉了两个TVS管,在50MHz的情况下也能正常找到芯片了,完美。然后下载了一个标准历程,下载成功。

决定先完善下开发环境并且看看官网有没有例程,跑个简单的试一试。
3.1这款单片机的资料还是蛮多的,开发也确实跟32差不多,所以用过32的同学上手很快。

华大官网
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image016.jpg
https://www.hdsc.com.cn/
35583619cff2f64d30.png
然后找例程,一般我们下载最新的就可以
7956619cff3c62b1e.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image018.jpg
找到产品分类
87958619cff45d841b.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image020.jpg
点开之后选择通用MCU
18033619cff519ed47.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image022.jpg
找到F460的相关芯片,点击我们的芯片F460KETA,会给你展示产品特点、技术文档、来发工具、应用方案等,做的很人性化。
81276619cff623192d.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image024.jpg

驱动库及样例选择最新的Rev1.3.0
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image026.jpg
资料还是非常详细的
10226619cff73a9a1c.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image028.jpg
还有应用笔记,感觉非常棒。
93136619cff7ec0527.png
11891619cff95656d6.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image030.jpg
3.2 IDE问题

我用的是MDK5,这个版本
59693619cffa08418c.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image032.jpg

打开例程库
在这个文件夹下面
23802619cffab4d95f.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image034.jpg
点开驱动库和样例
36872619cffb3e5eb0.png

file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image036.jpg

找到gpio这个文件
90192619cffbbc3a2f.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image038.jpg
找到这个打开。
这个是GPIO管脚的定义和初始化,很熟悉的感觉,跟32差不多。
54079619cffd36a41a.png
10243619cffc6eb455.png
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image040.jpg
file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image042.jpg

file:///C:/Users/ADMINI~1/AppData/Local/Temp/msohtmlclip1/01/clip_image044.jpg
主循环里面是反转LED灯。
88253619cffe7b5637.png
修改成我们定义的管脚,其余的地方,不做修改,编译一下,直接下载,ok。
编译,下载。
注意芯片类型,不要选错了
34625619d01bd53afe.png
注意下载时候要把reset and run,勾选上,不然不会自动运行
58333619d0162a8845.png
用了一个LED闪烁来演示,LED等能够正常的闪烁,程序现在能够初步跑起来,开心。

小结:
1、第一个就是要对下载电路熟悉一点,掌握相应的模电知识,高通滤波器、低通滤波器等。
2、stm32的库我没有尝试,还是使用华大官方的库,用的还比较顺心,但是华大单片机的DMA发送有的小小的不尽人意,32单片机可以直接使能DMA通道就可以完成发送,而华大的DMA发送用AOS触发一直不成功,哪位大佬有成功麻烦教教我,跪谢。现在用的DMA 发送是用串口发送完一个字节之后产生DMA发送中断来实现的,也是可以的,至少现在没有遇到什么问题。
3、单纯这个测试,两者差别不大,应该说可以相互替代。选择替代芯片时,官网有个选型手册,参考一下,根据自己的需求来,也可以尝试联系一下技术寻求帮助,听说华大的技术还是蛮热心的,我还没有求助过。
最后希望国产芯片越做越好!
第一篇原创,完成,撒花。

   

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 30.00 元 2021-11-26
理由:恭喜通过原创文章审核!请多多加油哦!

watermellon| | 2021-11-23 23:56 | 显示全部楼层
写的很详细,不错!

使用特权

评论回复
SingleYork2021| | 2021-11-24 10:13 | 显示全部楼层
偷偷的告诉你一声,华大的F460也有100脚的

使用特权

评论回复

评论

SingleYork2021 2021-11-26 16:58 回复TA
@woai32lala :你拿一个64脚封装的跟人家144脚封装的MCU对对比IO数量多少,你觉得合适么,emm…… 
woai32lala 2021-11-24 10:30 回复TA
哈哈哈,看到了,我们用的这款是64的 
l4157| | 2021-11-24 12:46 | 显示全部楼层
不要用TVS,我一般是用BAT54S

使用特权

评论回复
全四郎| | 2021-11-25 15:08 | 显示全部楼层
现在华大的货也很难买啊,价格不是搞了一点点

使用特权

评论回复
华大单片机| | 2021-11-25 16:00 | 显示全部楼层
全四郎 发表于 2021-11-25 15:08
现在华大的货也很难买啊,价格不是搞了一点点

还好啊,需要460哪个封装

使用特权

评论回复
tianqi911| | 2021-11-29 10:31 | 显示全部楼层
赞一个,谢谢分享实际经验。但这个最好别当成是所谓的"替代",就当成新项目去搞就好了。想想所谓的“st替代”就是噩梦。

使用特权

评论回复
sylar^z| | 2021-12-3 15:47 | 显示全部楼层
外设还是一点差异,替代还是要做点工作的。

使用特权

评论回复
返回列表 发新帖 本帖赏金 30.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则