意法半导体STM32C5微控制器的重要功能

描述

‍‍‍‍‍‍‍Milan Pidrman

意法半导体STM32 MCU应用工程师

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

内核运行主频144MHz,算力表现强劲,集成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/100Mbps,入门级微控制器很少标配以太网。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输出状态。上拉和下拉电阻是阻值约40kΩ的弱电阻,适用于驱动高阻抗输入电路。芯片进入待机模式后,立即对IO状态进行采样;待机唤醒后,上拉和下拉电阻将持续作用,直至软件将PWR_IORETR寄存器中的IORETEN位清零为止。这一特性赋予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通信速率。

微控制器

用户数据闪存

闪存采用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模拟与磨损均衡算法,适配高频数据存储场景。

微控制器

工程师必须注意,当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项目开发。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分