华大半导体 HC32F4A0 系列开发笔记

选用芯片

由于芯片涨价严重,stm32f4系列价格对比国产芯片高不少,所以使用国产华大半导体的HC32F4系列开发。曾经考虑过stm32f460作为开发,但是f460系列的缺陷就是外设通道特别少,而且不支持VBAT,比方说我想用8个串口做产品,但是f460只支持4串口,并不符合理想。所以使用了HC32F4A0,共提供了10个USART,6个SPI,6个I2C,2个CAN,2个USB,以及提供了一个ETH MAC。但是确实F460比较便宜。
综上,选择了HC32F4A0PGTB开发,flash有1MB的容量,516KB的SRAM。共100脚。在这里插入图片描述

对比STM32的优势

其中最亮眼的一点,就是大部分io口都支持任意配置为某个串口或者spi ,i2c,can。不过也有一些功能是固定某个引脚的,比如说烧录用的jtag和sw,或者说ETH和USB。具体是哪个引脚就参考数据手册的引脚分配图吧。在这里插入图片描述在这里插入图片描述

但是io引脚会分为3个功能组,FG1,FG2,FG3(FunctionGroup),比方说,FG1只能配置为USART1,2,3,4中的其中一个,不能配置为USART8,9,10。同理FG3就可以配置为USART3,8,9,10,但是不能配置为1,2,4。所以在画原理图的时候,必须先看数据手册,把需要的功能尽量在同一个FG上,方便配置。
反观stm32f4,最多就支持端口重映射,所以它规定是哪个脚,你就必须用哪个脚。
而我用HC32F4A0,我哪个io想用spi就用spi,想用USART用USART,哪怕后面后悔了,哪个io不想用spi了,也可以通过配置寄存器来修改他的功能。这就非常的方便。

当然HC32有他本身的缺陷,下面会提到。

踩过的坑和一些总结:

1——串口空中断bug

,现象为不能触发空中断,后来发现在官方勘误中有注明需要将发送和发送空中断同时使能,通过寄存器位或解决。
在这里插入图片描述

2——标志位的寄存器

这款芯片很多标志位的寄存器不能直接写入,只能通过硬件清零,这就导致了一些特殊情况失去了最好的解决办法,比如说串口空中断触发两次等等。(最后写了判断,但是避免不了执行两次)
在这里插入图片描述

3——写IAP遇到的问题

我写IAP升级工程的时候,发现写入flash有bug,只能写到0x400后停止了,后来经过分析发现,是hc32本身有一些配置数据放在了0x400后面一小段空间,而且这段空间不能被修改,导致写flash出了问题,解决办法为,在app工程中屏蔽掉hc_ll_icg.h文件,这样app程序就避免了在0x400这个位置写入配置数据,且boot工程拥有这段配置数据。
在这里插入图片描述

4——CPU主频配置

配置CPU频率时,我的外部晶振是8MHZ,进入cpu时会先经过一个120倍频为PPLN,然后再通过四分之一分频给PPLP,PPLP作为CPU主频,240MHZ。接着再给内部其他时钟分频,比如说PCLK1,我是二分之一分频为120MHZ,PCLK3则是四分之一分频为60MHZ。
在这里插入图片描述
在这里插入图片描述

5——RTC时钟

在配置RTC时钟时,要注意将时钟源改为外部时钟源,否则会引起时间出现巨大偏差。由于我的外部时钟晶振频偏为20ppm,最后测试的结果也为一天偏差1秒,在误差范围内。
在这里插入图片描述

6——移入操作系统后的DDL_DealyMS函数

在移入操作系统后,HC32的库延时函数会失去精度,比方说原本DDL_DealyMS(1000);结果可能会变成延迟了1.3秒,而操作系统的时间片一般为1000hz,所以最好还是使用操作系统内置的延迟函数,比如vTackdelay。

7——IO口的一些区别

HC32的io口几乎都没有内部下拉(除去一些特殊功能外),且只有在io口配置的输入的时候可以启用内部上拉,需要下拉的时候应该考虑外部接入下拉电阻。 HC32的io口同样没有配置io口频率的寄存器,而是替换成了高中低驱动模式,其中这三种模式就对应了不同的频率,这点在手册中的io口驱动能力数据可以看到。
在这里插入图片描述

8——ETH

提供给ETH外设的时钟至少需要在60MHZ以上才可以工作正常(在我使用PHY芯片LAN8720的情况下),而ETH的时钟由PCLK1提供。

9——CPU主频与IO口读写周期

需要注意,配置IO时需要根据主频率来配置读写插入周期寄存器,否则可能出现问题。
在这里插入图片描述

10——HC官方库的解锁

需要注意,使用keil工程开发时,很多库函数并不是可以直接使用,需要在工程中的某个配置文件的define里面进行解锁。

11——配置寄存器需要解锁保护寄存器

很多寄存器不可以直接进行配置,需要先解锁保护寄存器,才可以配置。
在这里插入图片描述

12——SRAM3的读问题

使用SRAM3如果出现了问题,则可能需要将SRAM123的读周期寄存器设置为1(也就是两个读写周期)。
在这里插入图片描述

  • 15
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
HC32F4A0华大控股(HOLTEK)推出的一款低功耗高性能32位微控制器系列产品。该系列产品采用ARM Cortex-M4F内核,工作频率高达200MHz,具有强大的计算和运算能力。它采用了低功耗设计,支持多种低功耗模式,可在满足高性能要求的同时降低功耗,延长系统的工作时间。 HC32F4A0数据手册是针对该系列产品的详细说明书。数据手册提供了丰富的技术参数、引脚功能、寄存器配置和功能描述等信息,使得用户能够全面了解该系列产品的特性和应用。数据手册还提供了丰富的应用示例和代码,帮助用户快速上手和开发基于HC32F4A0的应用。 在HC32F4A0数据手册中,用户可以找到芯片的各个模块功能和工作原理的详细说明,例如中央处理器、内部存储器、时钟管理、模拟/数字转换等。通过阅读数据手册,用户能够深入了解芯片的性能和特性,并按需配置芯片的功能模块,以实现自己的设计要求。 此外,数据手册还提供了芯片的电气特性、工作条件、封装和焊接规范等重要信息。这些信息对于正确使用和布局芯片是非常重要的,能够减少故障和不正确使用产生的风险。 总之,HC32F4A0数据手册是用户了解和使用HC32F4A0系列产品的重要参考资料。通过阅读数据手册,用户可以全面了解该系列产品的特性、技术参数和应用示例,从而更好地应用和开发基于HC32F4A0的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值