硬汉嵌入式论坛

 找回密码
 立即注册
查看: 389|回复: 7
收起左侧

[STM32H7] H750-记录一个遇到的离谱现象

[复制链接]

3

主题

15

回帖

24

积分

新手上路

积分
24
发表于 2026-3-5 18:28:07 | 显示全部楼层 |阅读模式

产品的主要功能是给电池做充放电测试的,CAN通讯收发数据,充放电控制流程为:定时每50us执行一次采集-读取内部ADC数值-PID计算-更改PWM占空比。使用片内+片外flash的形式,STM32H750VBT6 + 恒烁的片外flash ZB25VQ16C,通过片内的bootloader跳转到片外执行。问题现象是不涉及控制流程的程序修改,比如加个无关的函数,修改后会导致某些设备输出的电流值比修改前上升或者下降几十mA,而有的设备电流输出值没变。大批量生产定标的产品,升级程序之后有的产品精度不准了,再修改程序,不会变化的产品还是不会变化,会变化的产品仍然会现象不同的变化。
也找过芯片代理的技术支持和ST原厂,查出来代码有些不规范的地方,修改完也没解决这个问题。之后再详细写写排查的过程,查了好几个月,实在是没什么思路找问题了。
应用:QSPI的BANK2读写片外flash、ADC1采集4路的电流值、ADC2采集7路的电压值、HRTIM的定时器ABCD各自输出一对PWM、I2C软件读写eeprom、TIM6基本定时器50us定时、CAN1配置为CAN模式通讯、一部分代码拷贝到ITCM里运行。
不会变化的产品.png
会变化的产品.png
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
121537
QQ
发表于 2026-3-6 00:36:22 | 显示全部楼层
有一个地方可以排查,H750现在都是有2MBN容量的,直接程序全部在内部Flash运行看看。省事些,仅需仅芯片型号选择为H743就可以方便使用2MB容量。

这个仅仅用于排查是不是程序运行外部Flash导致的诡异现象。

ps:实际上这种添加些无关程序就可以会导致诡异现象的情况,说明确实触发了程序的一些异常情况
回复

使用道具 举报

3

主题

15

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 2026-3-6 09:12:27 | 显示全部楼层
eric2013 发表于 2026-3-6 00:36
有一个地方可以排查,H750现在都是有2MBN容量的,直接程序全部在内部Flash运行看看。省事些,仅需仅芯片型 ...

好的硬汉哥,我试试。
原先程序在片内时没有这个问题,搬移到片外之后函数执行速度慢了,所以把运行慢的函数搬运到了ITCM里运行,然后发现ADC1和ADC2同时发起转换时,ADC2采集的数跳动度比之前大了两倍(电压采集的平均值跳动从±0.2mV变成±0.5mV),然后在定时中断里将ADC1和ADC2的转换调用分开,ADC2的转换时间结束之后再转换ADC1,这时候看着都正常了。结果程序一改,有些产品的输出电流值就变了。查了一下ADC1采集的基准输入没变,启动PWM之后反馈调节得到的电流值却变了。
回复

使用道具 举报

3

主题

87

回帖

96

积分

初级会员

积分
96
发表于 2026-3-6 12:17:25 | 显示全部楼层
是pwm触发adc采集?
回复

使用道具 举报

3

主题

15

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 3 天前 | 显示全部楼层
gjeoi 发表于 2026-3-6 12:17
是pwm触发adc采集?

不是,是在50us的定时中断里使用HAL_ADC_Start_DMA触发转换
回复

使用道具 举报

3

主题

15

回帖

24

积分

新手上路

积分
24
 楼主| 发表于 3 天前 | 显示全部楼层
写一下目前排查的进度,把之前的定标版程序和修改后的程序从片外改到片内,定标版的精度依旧都合格,修改后的程序还是不合格的依旧不合格。又取消了把函数搬运到RAM里运行,现象还是一样的。现在在一点一点的把定标版程序改到修改后的程序,看哪里的改动影响最大,或者还是增加一个函数就有变化。还有就是发现使用的HAL库不是最新版,我替换成最新版V1.12.1的再对比一下。
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
121537
QQ
发表于 前天 08:10 | 显示全部楼层
lpc980408 发表于 2026-3-11 11:10
写一下目前排查的进度,把之前的定标版程序和修改后的程序从片外改到片内,定标版的精度依旧都合格,修改后 ...

现在最新版1.13.0, 可以试试
回复

使用道具 举报

2

主题

11

回帖

17

积分

新手上路

积分
17
发表于 前天 08:48 | 显示全部楼层
我说个更奇葩的,批量程序在某单个设备上会随机性HardFault,然后也是在代码中添加无用代码,甚至只是写一行nop都能解决
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-3-14 08:46 , Processed in 0.397644 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表