STM32C5重新定义入门级微控制器的性能

STM32C5重新定义入门级微控制器的性能

作者:Milan Pidrman, 意法半导体STM32 MCU应用工程师

来源:意法半导体

意法半导体新入门级微控制器STM32C5 于 2026 年 3 月正式推出,搭载 Arm® Cortex®-M33处理器内核,采用 40 纳米制造工艺,配备双区闪存,存储容量 128KB 至 1MB,可耐受1万次擦写,基础扇区容量 8KB;专用闪存区的扇区可降至2KB,使存储分区管理更精细化。STM32C5 主打使用简单,架构精简,例如,没有采用可信执行环境(TrustZone),并简化了内部时钟系统。它也是意法半导体高性价比入门级 STM32 系列中首款集成浮点运算单元(FPU)的微控制器。

内核运行主频144 MHz,算力表现强劲,集成 DSP 指令集和除法运算硬件,CoreMark 跑分 593 分,每兆赫兹性能为 4.12 分,远超市面上主流的入门级CortexM0+微控制器,这也是入门级 MCU 首次达到如此高的性能水准,而且在125℃(结温最高 140℃)以下的宽温环境下,全程保持高性能,无需降频。STM32C5的时钟源只用一个内部高速RC振荡器(HSI);该振荡器出厂已完成校准,在 - 20℃ ~ +105℃环境温度范围内,计时精度达±1%。

STM32C5封装选型覆盖20 引脚(TSSOP/UFQFPN)至144 引脚(LQFP),引脚定义兼容 STM32H5 系列微控制器,可在PCB板上直接替换相同封装的 STM32H5,但需注意的是,STM32C5将部分专用功能引脚改为了通用 GPIO,例如,BOOT0与GPIO共用一个引脚(新增1路GPIO),取消 VBAT 引脚(增加1 个 GPIO),减少 1 个 VCAP 引脚(增加 1 个GPIO),取消 VDDUSB 引脚(增加 1 个 GPIO)。因此,相同封装的 STM32C5 比 STM32H5 多出4 路通用 GPIO;LQFP100和LQFP144 大封装STM32C5 最多腾出6个GPIO引脚。

STM32C5 配备了STM32全系列通用的标准外设(含 CAN FD接口),同时集成了多数入门级 MCU 中不常见的外设资源。例如,该芯片搭载丰富的模拟外设,包括12 位 ADC、DAC、运放和比较器,这样的配置可有效精简物料清单,缩减 PCB面积,降低整体成本。以太网数据传输速率达到10/100 Mbps,入门级微控制器很少标配以太网。STM32C5具有 MII、RMII 接口,可以搭建局域网;64 引脚及以上封装提供以太网接口。此外,STM32C5 还支持 USB 2.0 全速主机(Host)和设备(Device)双模式。

通过意法半导体中间件库,STM32C5 可将终端应用变为标准类设备、HID 人机接口或其他类型 USB 产品。I3C 总线数据传输速率比常用的 I²C 总线更高,在控制器和传感器数据采集应用场景,I3C 总线正在快速普及应用。为了顺应这一发展趋势,STM32C5内置 I3C外设。STM32C5搭载 XSPI(SPI扩展接口)可连接八线 / 四线 SPI 外部存储器,通过 XSPI 四线模式,STM32C5可以拓展连接外部OSPI存储器和QSPI 显示屏。针对加密类应用,STM32C5 集成SHA、AES、真随机数发生器(TRNG)和抗侧信道攻击的公钥加密加速器(PKA)功能。硬件唯一密钥(HUK)通过为全新出厂MCU植入专属密钥,解决了预置密钥这一长期存在的的安全加密难题;搭配 ST 加密算法库,开发人员的安全设计无需从零开始,大幅加快应用开发。

下面深入讨论一些重要功能:

IO状态保持功能

IO 状态保持功能用于在微控制器待机模式期间锁定 GPIO 输出状态。在微控制器进入待机模式后,GPIO引脚处于浮空状态,此时,功耗降至最低。IO 状态保持功能是通过片上 GPIO 上拉和下拉电阻锁定IO输出状态。上拉和下拉电阻是阻值约 40 kΩ的弱电阻,适用于驱动高阻抗输入电路。芯片进入待机模式后,立即对 IO 状态进行采样;待机唤醒后,上拉和下拉电阻将持续作用,直至软件将 PWR_IORETR 寄存器中的 IORETEN 位清零为止。这一特性赋予 STM32C5 更强的功能,适于各类看重低功耗需求的应用场景。

STM32C5重新定义入门级微控制器的性能

SPI数据采样延时功能

数据采样延时是STM32C5标配 SPI 外设的一项新功能。STM32C5的SPI 主机模式通信频率达到72MHz。电气隔离器等会造成数据信号延时,当使用这类电路时,即便频率再低,通信也可能出现异常问题。假设 SPI_SCK 时钟为 50MHz,时钟周期 T_sck 为 20ns,数据采样发生在MISO 输入引脚的数据位中间位置。如果电气隔离器的传输延时达到 10ns 甚至更高,采样时刻会落在数据跳变沿上或有效采样区间之外,SPI 将无法正常工作。该延时无法通过外部手段解决,因为它与 SPI 内部采样机制直接相关。在通过设置 SPI 寄存器中的DRDS 位来启用数据采样延时功能后,SPI 会将采样时间延后半个时钟周期(T_sck/2)(在本例中即为 10ns),可精准抵消电气隔离器造成的传输延时,让设计人员实现更高的 SPI 通信速率。

STM32C5重新定义入门级微控制器的性能

用户数据闪存

闪存采用 8KB 页结构,同时部分闪存区域提供更精细的存储粒度,这个区域称为闪存数据区,默认地址范围为0x0840 0000 ~ 0x0840 FFFF,在存储映射中,数据区偏离代码区4MB。数据区是64KB固定容量,而且可以从这里执行代码。在默认模式下,闪存数据区与常规用户代码区的唯一区别是,数据区页容量缩小为 2KB。9 位校验码(ECC)和 128 位(四字)写入数据保持不变。不过,当选项字节中的EDATA_EN控制位启用后,闪存数据区和代码区就会出现很大的不同。数据区将切换为精细化数据闪存模式:支持最小16 位的写入操作;每6 个连续半字就有自己的 6 位校验码(ECC),因为存储纠错码占用更多存储空间,每页容量变为1.5KB,有效可用空间缩减为 48KB(双分区结构,每区 24KB)。模式切换后,闪存数据区映射地址变更为0x0900 0000 ~ 0x0900 BFFF,且该区域禁止代码执行。该硬件特性能够更好地实现片内闪存的EEPROM 模拟与磨损均衡算法,适配高频数据存储场景。

STM32C5重新定义入门级微控制器的性能

工程师必须注意,当 EDATA_EN = 1(启用精细化数据闪存模式)时,每个 16 位数据(半字)对应 6 位 ECC校验码的设计隐藏着一个副作用。在默认配置下,128 位闪存行对应 9 位 ECC校验码保护,闪存擦除后的内容对应正确的 ECC 值(128 位数据为全 1 即0xffff...ff,9 位 ECC 为全 1即 0x1ff)。但是,在 6 位 ECC 和半字的模式下,情况就完全不同了,在数据被擦除后,闪存 的16 位数据是 0xffff,其对应的ECC 值是 0xff;但 0xffff 对应的正确的 6 位 ECC 校验值应该是0xa1,结果,在 EDATA_EN=1 模式下读取已擦除的数据闪存时,会触发 ECC 双位错误检测,并产生不可屏蔽中断(NMI)。

通过使用意法半导体 STM32 系列开发工具,开发者能够便捷地上手了解 STM32C5 的各项功能,配套工具包含 STM32C5 Nucleo开发板,以及全面升级的 STM32Cube 生态系统。该生态涵盖全新的 CubeMX2、新一代 HAL2 驱动(适配 STM32C5 的原生驱动)和VS Code 版 STM32CubeIDE。这个开发环境经过市场验证,支持 CMake 项目开发。