由于要开发和学习使用低成本MCU,这里记录下小华半导体HC32F448的手册参数
芯片官网(HC32F448MCTI-LQFP80) 小华半导体有限公司 (xhsc.com.cn)
HC32F448 系列MCU是32位的ARM Cortex-M4微控制器。最高工作频率 200MHz,最大 256KB 的 Flash,最大 68KB 的 SRAM。
HC32F448 系列支持常用的外设接口,包括11 个串行通信接口(I2C/UART/ SPI), 1 个 QSPI 接口, 2 路 CAN, 1 个外部扩展总线控制器,包括 EXMC(支持 SMC)控制器, 3个ADC,2个DAC,2+3+4+1个定时器。
HC32F448 系列提供 80pin、 64pin、 48pin 的 LQFP 封装, 48pin、 32pin 的 QFN 封装,适用于高性能电机变频控制,智能硬件, IoT 连接模块等领域。
目录
功能表
功能框图
功能接口
复位方式
时钟源
时钟切换
时钟测量功能
初始化配置(ICG)
嵌入式 Flash(EFM)
内置 SRAM
串口通讯接口(UART/I2C/SPI/CAN)
GPIO
中断控制器(INTC)
自动运行系统(AOS)
存储保护单元(MPU)
键盘扫描控制模块(KEYSCAN)
DMA 控制器(DMA)
电压比较器(CMP)
ADC和DAC
定时器
功能表
功能框图
功能接口
复位方式
发生复位时,芯片根据复位方式将对应的复位标志位进行置位,复位标志位如表 3-2 所示。
时钟源
AHB、 APB 和 Cortex-M4 时钟都源自系统时钟。系统时钟的最大运行时钟频率可以达到 200MHz,有 6个可选择的时钟源:
1) 外部高速振荡器(XTAL)
2) 外部低速振荡器(XTAL32)
3) PLLH 时钟(PLLH)
4) 内部高速振荡器(HRC)
5) 内部中速振荡器(MRC)
6) 内部低速振荡器(LRC)
时钟切换
在系统复位后,默认系统时钟为 MRC - 内部中速振荡器。
通过设定寄存器 CMU_CKSW 切换时钟源,切换步骤参照时钟源切换( 参考手册 - 图 4-8 时钟源切换 和 图 4-9 时钟分频切换 )。
只有在目标时钟源已稳定的状态下,才可以从一个时钟源切换到另一个时钟源。
时钟切换时需要正确配置 Flash/ SRAM 的等待周期,防止系统时钟频率大于 Flash/ SRAM 的最大动作频率。参照【CPU 时钟和 Flash 读取时间之间的关系】、【内置 SRAM(SRAM) 】章节进行配置。
时钟测量功能
HC32时钟支持时钟测量功能。
使用基准时钟对测定对象的时钟进行监视测定。
初始化配置(ICG)
芯片复位解除后,硬件电路会读取 Flash 地址 0x0000 0400~0x0000 045F 把数据加载到初始化配置寄存器。
地址 0x0000 0408~0x0000 040B、 0x0000 0410~0x0000 041F、 0x0000 0438~0x0000045F 为保留地址,请写入全 1 保证芯片正常动作。
嵌入式 Flash(EFM)
HC32的Flash在手册上简称为EFM。
容量最大 256KBytes,由一块 256KBytes 的 Flash 构成,共 32 个扇区,每个扇区为 8KBytes。
128 位宽数据读取,读缓存 128 位宽缓冲,加速代码执行。
编程单位为 4Bytes,擦除单位为 8KBytes。
要正确读取 Flash 数据,用户需要根据 CPU 动作频率在 Flash 读模式寄存器(EFM_FRMC)中正确设定等待周期数(FLWT[3:0])。
内置 SRAM
产品带有 64KB 系统 SRAM(SRAMH/ SRAM0)和 4KB 掉电模式保持 SRAM(Ret SRAM)。
SRAM0 和 Ret SRAM 带有 ECC 校验(Error Checking and Correcting), ECC 校验为纠一检二码,即可以纠正一位错误,检查两位错误。 SRAMH 带有奇偶校验(Even-parity check),每字节数据带有一位校验位。
不同的系统时钟有不同的CPU访问周期:
串口通讯接口(UART/I2C/SPI/CAN)
USART支持6个串口。
I2C支持2个通道。
SPI支持3个通道。
CAN支持2个通道,并且支持CAN-11898-1:2015和CAN-FD。
特别的,HC32的 UART、I2C、SPI、CAN在IO配置上是可以重复配置的。
体现在IO配置上,可以看到手册中IO的复用功能中:
Func0~Func22为固定复用功能,Func23及以后的复用功能分成了两组(见表2-2)。在2组中,一对IO可以支持配置成UART/CAN/SPI/I2C 4中通通讯方式,灵活性非常高。
GPIO
基本都一样
这里贴一下IO端口配置的一张表。
中断控制器(INTC)
名字简称是INTC(ST是NVIC)
也基本都一样
自动运行系统(AOS)
比ST的DMA功能更强大!
用于在不借助 CPU 的情况下实现外设之间的联动。
利用外设产生的事件作为 AOS 源(AOS Source),如定时器的比较匹配、定时器的计数溢出、 RTC 的周期信号、通信模块的收发数据的各种状态(空闲,接收数据满,发送数据结束,发送数据空)、 ADC 的转换结束等事件,来触发其他外设动作。被触发的外设动作称为 AOS 目标(AOS Target)。
存储保护单元(MPU)
MPU提供对全部4G地址空间的访问权限控制
键盘扫描控制模块(KEYSCAN)
支持键盘扫描功能和按键识别功能。
当有键被按下时,键盘的行和列短接,行产生下降沿,从而产生 EIRQ 中断标志,通过比较中断标志位(EIFR.EIFR)和 SSR.INDEX[2:0]的值来定位当前被按下的键。
键盘扫描功能为:不断循环的给键盘阵列的列输出低电平,从而当有键被按下时,会产生对应的 IRQ 中断标志。
DMA 控制器(DMA)
HC32的DMA控制器还支持 ”连锁传输“ 和 ”不连续地址传输“ 。
当一个描述符的最后一次传输结束时, LLP 指定的下一个描述符将被从存储器中载入通道配置寄存器。等待下一次传输请求输入,开始新描述符的第一次传输。LLP 称为链指针(Linked-List Pointer),其中的值代表下一个描述符在存储器中的首地址。
使用不连续地址传输能够实现源地址和目标地址在传输完一定量的数据后按照一定的偏移量跳转。
电压比较器(CMP)
将两个模拟电压进行比较并且输出比较结果,共有两组共 4 个比较通道: CMP1/ CMP2、 CMP3/ CMP4。
ADC和DAC
搭载 3 个 ADC 单元,单元 1 支持 16个通道,单元 2 支持 8 个通道,单元 3 支持 12 个通道,可以转换来自外部引脚、以及芯片内部的模拟信号。模拟输入通道可以任意组合成一个序列,一个序列可以进行单次扫描转换,或连续扫描转换。支持对任意指定通道进行连续多次转换并对转换结果进行平均。
搭载了 1 个 12 位的数模转换器单元 DAC。 DAC 单元包含两个 D/A 转换通道,两个通道可以独
立转换也可以同步转换。每个转换通道配有输出放大器,可以在没有外部运放时直接驱动外部负载。
定时器
HC32提供了以下四种定时器:
【1】4个16bit通用定时器 TimerA
【2】1 个 32bit 通用 Timer0
【3】2个高级控制定时器 Timer6
【4】3个通用控制定时器 Timer4