硬汉嵌入式论坛

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

[ADC] STM32H750内置ADC部分参数实测(仅供参考)

  [复制链接]

14

主题

110

回帖

152

积分

初级会员

积分
152
发表于 2022-2-15 10:52:41 | 显示全部楼层 |阅读模式
昨天晚上实测了一下H750内置ADC,得到了大量数据(采样率1M连续实时采集统计了几分钟,后面看了统计几十分钟数据比例差不多)。所以想计算一下ADC的其中两个参数。无噪声分辨率和有效分辨率(网上找的资料不一定正确)。计算资料来源如下:

无噪声分辨率:
有效分辨率:
标准差:
根据以上资料得到两个计算式
无噪声分辨率=log2(2^N/跳动噪声值)  比如我们这是16位ADC同时跳动噪声值是28所以=log2(65536/28)=11.19264508
有效分辨率=N-log2(标准差)
实测数据如下:(无噪声分辨率:11.19264508   有效分辨率:14.99631787(这么高感觉有错,各位坛友帮忙看看))

H750内置ADC测试数据.jpg

直方图数据.xls (31.5 KB, 下载次数: 36)
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118335
QQ
发表于 2022-2-15 11:50:29 | 显示全部楼层
这个官方有个文档的,到了H7的16bit分辨率,封装的影响比较大。
dm00628458-getting-started-with-the-stm32h7-series-mcu-16bit-adc-stmicroelectronics.pdf


QQ截图20220215114907.png

QQ截图20220215115001.png


回复

使用道具 举报

14

主题

110

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2022-2-17 14:54:12 | 显示全部楼层
eric2013 发表于 2022-2-15 11:50
这个官方有个文档的,到了H7的16bit分辨率,封装的影响比较大。
dm00628458-getting-started-with-the-stm ...

谢谢提供,之前还特意搜了一下没搜到。
同时基本确认上面计算方法无误,因为在ADI的一个ADC芯片手册上有写计算公式,虽然形式有点区别但是是等价的。同时在昨天观看了ADI的均方根噪声转换为峰峰值噪声视频后
https://www.analog.com/cn/educat ... s/908557031001.html,觉的无噪声分辨率可能会有争议,应该从大量样本的均方根噪声计算出来更为恰当。
回复

使用道具 举报

14

主题

110

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2022-2-17 15:01:54 | 显示全部楼层
至于ENOB计算下来为14.7位的样子,和手册数据相比略高,原因猜测是,1、手册上测试的是2M速率采样而我是用的1M   2、芯片个例    3、手册可能经过大量芯片测试,写出来数据比较保守。  综上所述手册上的数据还是非常可靠可信赖的。
回复

使用道具 举报

10

主题

255

回帖

290

积分

高级会员

积分
290
发表于 2022-2-17 16:01:34 | 显示全部楼层
咱们推算的无跳动位数差不多,都是11bit左右。
不过想想一片16bit/2M的ADC,价钱三倍于涨价前的750VB,好像也不是不行?
回复

使用道具 举报

14

主题

110

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2022-2-18 09:49:37 | 显示全部楼层
fengxin32 发表于 2022-2-17 16:01
咱们推算的无跳动位数差不多,都是11bit左右。
不过想想一片16bit/2M的ADC,价钱三倍于涨价前的750VB,好 ...

是的,刚开始仿真看最大最小值得出的结论偏高漏掉太多数据了。我觉的H7的ADC还可以的,比F407强,一般应用足够了。目前我遇到的问题就是不同温度下断电重启一置性问题,不断电复位一致性还是挺好。暂时不研究这个了,年前做了几个外置ADC的板子,先测测这些ADC。
回复

使用道具 举报

10

主题

255

回帖

290

积分

高级会员

积分
290
发表于 2022-2-18 17:33:10 | 显示全部楼层
我一次采集4096个点,5次一组,100KHz和1MHz,跳动都是14。
可能是差分的原因,刚好减一半。
回复

使用道具 举报

14

主题

110

回帖

152

积分

初级会员

积分
152
 楼主| 发表于 2022-2-18 18:35:06 | 显示全部楼层
fengxin32 发表于 2022-2-18 17:33
我一次采集4096个点,5次一组,100KHz和1MHz,跳动都是14。
可能是差分的原因,刚好减一半。

我就是用的差分,要大量数据试试看,少量数据就跟我仿真看的结果差不多也是10-16之间跳动。如果大量数据也能做到这样那就提高1位了,有没有出现断电重启一致性问题?
回复

使用道具 举报

356

主题

2187

回帖

3260

积分

版主

Rank: 7Rank: 7Rank: 7

积分
3260
发表于 2022-2-21 09:21:35 | 显示全部楼层
以前的F103的ADC每次启动都要执行一次校准函数。 不知道为什么后来的芯片就不用这个步骤了。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2023-12-29 13:59:27 | 显示全部楼层
您好,方便分享一下配置STM32的ADC进行1M采集的代码吗?另外怎么统计的采样率呢,我只会用轮询的方式采集,定义一个变量,每采集依次加一次,算下来最多也才到100K左右。
感谢!!!
回复

使用道具 举报

5

主题

25

回帖

40

积分

新手上路

积分
40
发表于 2025-7-20 11:45:48 | 显示全部楼层
这个附件咋下载不来了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118335
QQ
发表于 2025-7-21 08:47:56 | 显示全部楼层
sofia 发表于 2025-7-20 11:45
这个附件咋下载不来了

论坛bug
回复

使用道具 举报

5

主题

25

回帖

40

积分

新手上路

积分
40
发表于 2025-7-21 14:08:11 | 显示全部楼层

硬汉大哥那这个如何下载  我也想对比测试下
回复

使用道具 举报

11

主题

126

回帖

159

积分

初级会员

积分
159
发表于 4 天前 | 显示全部楼层
大神和eric版主能不能帮忙看看eric贴出 ST文档中的这个数据,有效为是13bit,SNR=86dB, 但动态范围怎么可能有106dB?  按照动态范围跟量化位数关系,DR=6.02N+1.76dB(N为量化位数), 16bit 理论计算DR=98dB,怎么也不可能达到106dB呀?
H7-ADC-ST.png
回复

使用道具 举报

11

主题

126

回帖

159

积分

初级会员

积分
159
发表于 4 天前 | 显示全部楼层
大神们能不能帮忙看看? 我怀疑ST这张图上的数据有错
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118335
QQ
发表于 4 天前 | 显示全部楼层
szjdb 发表于 2025-9-22 15:12
大神们能不能帮忙看看? 我怀疑ST这张图上的数据有错

AI回复

关键点:

SFDR定义为信号幅度与最显著杂散幅度之比(通常以dBc表示,即相对于载波的分贝值)。

在ADC测试中,SFDR通常由频谱中的最大杂散(可能是谐波或非谐波)决定。

您提供的THD(总谐波失真)为-105.709 dBc,但SFDR(106.588 dBc)比THD更大(绝对值),这暗示最大杂散可能不是谐波,而是其他杂散(例如时钟泄漏、互调产物等)。

分析:

THD = -105.709 dBc(所有谐波的总功率,但通常谐波中最大的是二次或三次谐波)。

SFDR = 106.588 dBc(比THD大约0.88 dB),说明最显著杂散略低于THD的总和(即最大杂散功率略低于谐波总和)。这是合理的,因为THD是多个谐波之和,而单个最大杂散可能比THD总和略低(或略高,但这里SFDR > |THD|,说明最大杂散比谐波总和更小)。

因此,SFDR可能由非谐波杂散(如时钟或电源相关)引起,而不是谐波。

结论:
您的SFDR值(106.588 dBc)是合理的,因为它与THD(-105.709 dBc)一致,且略优于THD(说明最大杂散略低于谐波总和)。这常见于实际ADC测试中,其中最大杂散不一定是谐波。

其他参数验证:

SNR(84.344 dBc)和SINAD(84.312 dBc)非常接近,说明失真很小(THD很小),与高SFDR一致。

ENOB = (SINAD - 1.76) / 6.02 ≈ (84.312 - 1.76) / 6.02 ≈ 13.713,正确。
回复

使用道具 举报

11

主题

126

回帖

159

积分

初级会员

积分
159
发表于 4 天前 | 显示全部楼层
本帖最后由 szjdb 于 2025-9-22 17:51 编辑

多谢老大,我是觉得SFDR=106不合理也不可能,DR=6.02N+1.76dB(N为量化位数), 16bit 理论计算DR=98dB,实际是不可能达到这么98高的, 更不可能达到106.  SFDR是考虑了杂散的最大值,本身应该会比DR要小。但是ST的图就这么奇怪,从图中读出的动态范围就是有那么高。我严重怀疑这里的SFDR数据有错, 反倒是SNR数据86比较接近DR计算值。
我实际试了下,1.5M采样频率,14B,回来的数据动态范围才70dB左右,跟ST的差了30dB, 两个bit不可能差那么多吧。 按照有效位计算,数据倒是合理的。不知道真相是哪个?
还望多多指教
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
118335
QQ
发表于 4 天前 | 显示全部楼层
szjdb 发表于 2025-9-22 17:02
多谢老大,我是觉得SFDR=106不合理也不可能,DR=6.02N+1.76dB(N为量化位数), 16bit 理论计算DR=98dB,实 ...

不排除确实有问题,有必要问下ST了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-9-26 19:34 , Processed in 0.053871 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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