硬汉嵌入式论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: eric2013
收起左侧

[ADC] STM32H7的ADC过采样功能立竿见影,效果的确不错

  [复制链接]

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2022-2-28 00:51:09 | 显示全部楼层
硬汉兄,请教两个问题,谢谢了
1:就是H750使用DMA过采样测电压,我主频只设为144Mhz,这时候,我不配置MPU,不开启Cache,这样程序会有问题嘛
2:我要10K的采集频率,如果使用32倍的过采样,相当于320K,64.5+8.5的采样周期,就相当于需要23.36M的ADC的时钟频率,之前听网上说,ADC配置大于14M以上,就不准了,那我这样是不是有问题了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2022-2-28 05:11:44 | 显示全部楼层
梦幻的帅帅 发表于 2022-2-28 00:51
硬汉兄,请教两个问题,谢谢了
1:就是H750使用DMA过采样测电压,我主频只设为144Mhz,这时候,我不配置MP ...

1、直接配置关闭读写Cache是最好的。
使用STM32H7的AXI SRAM,SRAM1到SRAM4对应的Cache最高性能和最低性能配置
https://www.armbbs.cn/forum.php?mod=viewthread&tid=99322

2、没问题。
回复

使用道具 举报

59

主题

282

回帖

459

积分

高级会员

积分
459
发表于 2022-3-3 17:25:30 | 显示全部楼层
16倍过采样,ad转换出来的数据需要取16个做平均吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2022-3-4 00:44:26 | 显示全部楼层
tangqianfeng 发表于 2022-3-3 17:25
16倍过采样,ad转换出来的数据需要取16个做平均吗?

不需要,是已经平均好的。
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2022-3-8 12:28:35 | 显示全部楼层
eric2013 发表于 2022-3-4 00:44
不需要,是已经平均好的。

硬汉兄,再请教一个问题,我用H750 DMA实现ADC多通道采样,发现一个问题,就是刚采集低电压时,采集值比实际值大一点,然后随着实际电压值的升高,采集值比实际值大的越来越多,电压再升高时,到了一个死区,实际电压值加大,采集出来的值不变,慢慢的采集值就比实际电压值小了,随着实际电压值的继续增大,采集值比实际值小的越来越多,然后又到了一个死区,电压值增大,采集值先是不变,然后就直接跳到和实际电压值相同的值,然后死区过了,采集值又慢慢的比实际值大了,然后就不停地循环刚才的过程
这是因为MCU内部校准的缘故嘛
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2022-3-9 03:33:00 | 显示全部楼层
梦幻的帅帅 发表于 2022-3-8 12:28
硬汉兄,再请教一个问题,我用H750 DMA实现ADC多通道采样,发现一个问题,就是刚采集低电压时,采集值比 ...

你现在的ADC稳压基准是用的外置的吗,看下这个稳压基准的波形是否有问题。感觉有可能是这个有问题,如果这里没有问题的话,估计就是软件配置问题了。
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2022-3-9 12:03:17 | 显示全部楼层
eric2013 发表于 2022-3-9 03:33
你现在的ADC稳压基准是用的外置的吗,看下这个稳压基准的波形是否有问题。感觉有可能是这个有问题,如果 ...

用的电源基准芯片,ADC误差大的时候也基本是在1%的精度以内,但是就是不知道什么原因导致的,我用的是STM32 CUBEMX配置的
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2022-3-9 15:28:10 | 显示全部楼层
梦幻的帅帅 发表于 2022-3-9 12:03
用的电源基准芯片,ADC误差大的时候也基本是在1%的精度以内,但是就是不知道什么原因导致的,我用的是STM ...

这是我的STM32CUBE配置图,程序里没有使能CACHE,没配置mpu
%_0Y_[Q`N9A6IBDHFQON33N.png
{V~~F6@%D]8OJRK(]GK)B~L.png
1YNIWGEZWW(2O_@37NG`530.png
YO`9J%IQ1G0FC3EB{T1BUXN.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2022-3-10 00:48:24 | 显示全部楼层
梦幻的帅帅 发表于 2022-3-9 15:28
这是我的STM32CUBE配置图,程序里没有使能CACHE,没配置mpu

方便的话,分享下你的工程到百度云网盘,我看下。
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2022-3-10 16:17:27 | 显示全部楼层
eric2013 发表于 2022-3-10 00:48
方便的话,分享下你的工程到百度云网盘,我看下。

链接:https://pan.baidu.com/s/1v50kfBPKPyTyvONFR6lqCw
提取码:1234
--来自百度网盘超级会员V3的分享
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2022-3-11 09:34:05 | 显示全部楼层
梦幻的帅帅 发表于 2022-3-10 16:17
链接:https://pan.baidu.com/s/1v50kfBPKPyTyvONFR6lqCw
提取码:1234
--来自百度网盘超级会员V3的 ...

1、降低下ADC的时钟速度。
2、这里仅勾选下面这个:
image.png

3、读取ADC数据前,调用下这个函数:
SCB_CleanInvalidateDCache
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2022-3-11 20:00:01 | 显示全部楼层
eric2013 发表于 2022-3-11 09:34
1、降低下ADC的时钟速度。
2、这里仅勾选下面这个:

都试过了,还是不行,我测了一下,死区大概是0.4mv,意思就是ADC输入有0.4mV的电压变化ADC没测出来,每隔固定的一段电压值就会出现一次,我需要测200mV-50V电压,2.5V的基准,(0.4/2500)*50000=8mV,相当于换算过来这边就有个8mV的误差了,测低压的时候已经影响测量精度了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2022-3-12 10:46:26 | 显示全部楼层
梦幻的帅帅 发表于 2022-3-11 20:00
都试过了,还是不行,我测了一下,死区大概是0.4mv,意思就是ADC输入有0.4mV的电压变化ADC没测出来,每隔 ...

难道硬件有问题,硬件问题排查过没。
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2022-3-13 00:10:42 | 显示全部楼层
eric2013 发表于 2022-3-12 10:46
难道硬件有问题,硬件问题排查过没。

硬件没问题,我用表测过的,实际运放输出是有0.4mv的变化的,但是ADC就是测不出来,现在CH7 HC8 CH19我换了ADC2测了,现在没有这个问题了,我现在准备用例程的自适应滤波,看到了有“原始波形由任意波形+ 高斯分布白噪声 + 均匀分布白噪声组成,滤除高斯分布白噪声 + 均匀分布白噪声” ,还有“原始波形200Hz + 50Hz正弦波,滤除200Hz正弦波”,我想“原始波形由任意波形或者恒压+ 50Hz工频干扰+ 高斯分布白噪声 + 均匀分布白噪声组成,滤除高斯分布白噪声 + 均匀分布白噪声+ 50Hz工频干扰” ,硬汉兄,这样可行嘛
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2022-3-13 12:42:50 | 显示全部楼层
梦幻的帅帅 发表于 2022-3-13 00:10
硬件没问题,我用表测过的,实际运放输出是有0.4mv的变化的,但是ADC就是测不出来,现在CH7 HC8 CH19我换 ...

只要你有想要滤除实现的参考波形效果就可以。
回复

使用道具 举报

0

主题

19

回帖

19

积分

新手上路

积分
19
发表于 2022-3-13 22:39:33 | 显示全部楼层
eric2013 发表于 2022-3-13 12:42
只要你有想要滤除实现的参考波形效果就可以。

关键就是没有参考波,我是电流转为电压值测量,正常情况是恒流,但是有时候会出现1Khz的尖峰电流,也需要测出来,现在测量受到50hz工频和均分分布噪声干扰,想滤除掉
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2022-3-14 11:00:10 | 显示全部楼层
梦幻的帅帅 发表于 2022-3-13 22:39
关键就是没有参考波,我是电流转为电压值测量,正常情况是恒流,但是有时候会出现1Khz的尖峰电流,也需要 ...

有参考波形才方便。
回复

使用道具 举报

1

主题

7

回帖

10

积分

新手上路

积分
10
发表于 2022-5-14 16:27:16 | 显示全部楼层
硬总,请问这个26位是怎么算的,最大不是只有65535吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2022-5-15 14:06:25 | 显示全部楼层
tiuhui 发表于 2022-5-14 16:27
硬总,请问这个26位是怎么算的,最大不是只有65535吗

过采样,本质上就是求平均。
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2023-7-19 16:26:41 | 显示全部楼层
这里有个问题,哥,过采样不是用于提高信号分辨率的吗,为什么信号的精度(稳定性)也会被提高呢,我的理解就是过采样技术可以提高位数,增加分辨率,去分辨更微弱的信号
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2023-7-20 11:23:50 | 显示全部楼层
c610 发表于 2023-7-19 16:26
这里有个问题,哥,过采样不是用于提高信号分辨率的吗,为什么信号的精度(稳定性)也会被提高呢,我的理解 ...

ST这个过采样实现本质就是做了个平均,比如1024倍过采样,就是1024个采样率求平均。
回复

使用道具 举报

13

主题

89

回帖

128

积分

初级会员

积分
128
发表于 2023-8-9 08:54:13 | 显示全部楼层
学到了,这就开启过采样
回复

使用道具 举报

0

主题

4

回帖

4

积分

新手上路

积分
4
发表于 2023-9-19 02:11:39 | 显示全部楼层
eric2013 发表于 2020-6-28 14:03
我的意思是:让你测试一波,走起。

你好, 我也是用H7系列做多通道ADC+DMA採集, 反復檢查設置應該沒錯, 但是就是BUFFER輸出都是0, 那是什麼原因? 怎麼破?謝謝
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 15:22 , Processed in 0.258106 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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