[信息] STM32H5系列上新: 256/512 KB闪存新产品兼具高性能和成本优势

[复制链接]
39430|33
电子烂人 发表于 2025-2-5 15:35 | 显示全部楼层
H533算是在H503和H563中间填补空缺,对一些用不到超多接口,但是又需要高速的MIPI-I3C、USB 2.0的产品更友好。
开发踩到的坑:就拿H5的开发说,H563的DMA在配置好"GPDMA"之后还要在LINKlist里联系起来,不然会无法正常传输数据,从F4转换到H5最大的不同就是DMA多了个linklist,希望ST可以简化一下这部分DMA的初始化。
zhengshuai888 发表于 2025-3-6 08:40 来自手机 | 显示全部楼层
要是集成双以太网控制器就巴士了
gejigeji521 发表于 2025-10-22 10:41 | 显示全部楼层
希望性价比好
玛尼玛尼哄 发表于 2025-10-27 09:49 | 显示全部楼层
眼花缭乱,太多啦
wanduzi 发表于 2025-10-28 09:19 | 显示全部楼层
多推广些性价比高的板子
tpgf 发表于 2025-11-13 10:16 | 显示全部楼层
STM32H5系列是意法半导体推出的基于ARM® Cortex®-M33内核的高性能微控制器,兼具灵活性、安全性与高性价比
EPTmachine 发表于 2025-11-14 07:29 来自手机 | 显示全部楼层
h5系列的高性能,提供更多选择
EPTmachine 发表于 2025-12-2 10:26 | 显示全部楼层
这里应该没有这个活动吧,只是转发而已
EPTmachine 发表于 2026-1-11 09:42 | 显示全部楼层
H5应该是F4系列的继承
jiekou001 发表于 2026-2-8 09:41 | 显示全部楼层
这款256/512KB闪存新品特别适合对成本更敏感、不需要额外内存但仍需要128 KB以上闪存(如STM32H503所配备的)的应用场景。
tpgf 发表于 2026-2-14 10:33 | 显示全部楼层
基于Arm Cortex-M33内核,主频高达250 MHz,CoreMark跑分达到1023,性能显著超越前代STM32F4系列,同时内置CORDIC和FMAC加速器,可高效处理复杂运算任务,满足中端高性能需求
annlee 发表于 2026-2-15 01:23 | 显示全部楼层
STM32H5系列 默认支持 USBX ,  但没有 USBD_library, 不清楚为什么这样设计, 如果可以兼容 USBD , 我想可能会更好使用
LiuDW091 发表于 2026-3-12 10:15 | 显示全部楼层
H5性能还是很强悍的
开发中遇到的坑就是关于电源选择的,也不算的坑吧,是由于第一次使用,按以前的老思路来了,没有阅读手册,
导致开发板锁死了,最后通过boot脚来回复芯片的
Ketose 发表于 2026-4-4 22:20 | 显示全部楼层
分享一个案例:
一家知名的智能电表制造商,为了提升新一代电表的数据处理能力和通信速率,采用了搭载ARM Cortex-M7内核的高性能MCU(如STM32H7系列)。这款MCU的主频高达400MHz以上,为了充分发挥其计算能力,工程师们默认启用了强大的L1数据缓存(D-Cache)。
系统设计:
电表的核心功能之一是周期性地采集电压、电流传感器的数据。这些数据通过一个高精度ADC采样,并由DMA(直接存储器存取)控制器自动搬运到一块名为adc_data_buffer的内存区域中。主CPU核心则负责从这个缓冲区读取数据,进行FFT(快速傅里叶变换)等复杂的数字信号处理算法,以精确计算电量、功率和谐波等关键参数。
平静的开始:
在初期的功能测试和小批量试产中,一切运行良好。电表能够准确计量,数据上传服务器也无异常。团队为项目的顺利进展感到高兴。
“幽灵”现身:
然而,当产品大规模部署到现场后,问题开始暴露。运营部门陆续收到投诉:某些电表的读数会出现随机性的、无法解释的大幅波动,有时甚至显示负功率。这些“幽灵读数”毫无规律,难以复现,给排查带来了巨大困难。
疯狂的排查:
硬件工程师反复检查电路板,确认电源干净、传感器信号稳定。软件工程师审查了ADC配置、DMA配置和FFT算法的逻辑,代码看起来天衣无缝。他们尝试在不同的环境和负载条件下测试,问题时隐时现,像幽灵一样难以捉摸。
真相大白:
直到一位经验丰富的系统架构师介入。他敏锐地注意到了Cortex-M7的D-Cache。他提出了一个假设:DMA正在将最新的ADC数据写入adc_data_buffer,但CPU在读取这个缓冲区时,可能命中了D-Cache中早已过时的、甚至是空的缓存行(Cache Line)。
具体过程如下:

    DMA写入: DMA控制器持续将最新的ADC采样值(例如,一串代表平稳信号的数值0x1234)直接写入物理内存adc_data_buffer。
    缓存缺失与填充: CPU首次访问adc_data_buffer时,会发生缓存缺失(Cache Miss),D-Cache会从物理内存中加载一个完整的缓存行(通常是32或64字节)到缓存中。
    DMA再次更新: 在CPU下一次读取之前,DMA又将新的一批数据(例如,代表一个脉冲信号的值0xABCD)写入了同一个内存地址。
    缓存不一致: 当CPU再次读取adc_data_buffer中的那个地址时,它命中了D-Cache中仍然保存着旧值0x1234的缓存行。CPU读取到了过时的数据,而物理内存中已经是正确的0xABCD。
    错误计算: CPU基于这些错误的旧数据进行FFT计算,导致得出完全错误的功率和谐波分析结果,最终表现为仪表盘上的“幽灵读数”。

解决方案:
找到根本原因后,解决方案变得清晰明了。在每次DMA传输完成(通常通过中断通知CPU)之后,以及在CPU开始处理adc_data_buffer数据之前,必须执行一个关键操作:使D-Cache中对应adc_data_buffer区域的缓存行失效(Invalidate D-Cache)。
这个操作会强制CPU在下次读取该区域时,丢弃缓存中的内容,直接从物理内存中重新加载最新的数据。通过添加这几行简单的缓存维护代码,困扰已久的问题迎刃而解,“幽灵读数”从此消失。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0