硬汉嵌入式论坛

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

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

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
发表于 2019-2-15 01:40:10 | 显示全部楼层 |阅读模式
做了一个ADC3+DMA的多通道采样
通道1:PC0采集2.5V的稳压基准。
通道2:Vbat/4
通道3:VrefInt
通道4:温度
配套例子和教程在此贴:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=86980

不做任何处理效果:
image.png

16倍过采样效果:
image.png









回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-2-15 07:54:29 | 显示全部楼层
开启之后非常稳啊。
回复

使用道具 举报

3

主题

16

回帖

25

积分

新手上路

积分
25
发表于 2019-2-15 07:54:29 | 显示全部楼层
开启之后非常稳啊。
回复

使用道具 举报

36

主题

2039

回帖

2147

积分

至尊会员

积分
2147
发表于 2019-2-15 10:56:00 | 显示全部楼层
看来此功能还是非常实用的,晚上回去了试试
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2019-2-15 13:53:18 | 显示全部楼层
ycwjl728 发表于 2019-2-15 07:54
开启之后非常稳啊。

用在采用速度不是很快的场合,非常合适。
回复

使用道具 举报

32

主题

262

回帖

363

积分

高级会员

积分
363
发表于 2019-2-15 22:59:46 | 显示全部楼层
eric2013 发表于 2019-2-15 13:53
用在采用速度不是很快的场合,非常合适。

对于一些没有vref的芯片有什么好的方案吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2019-2-16 00:10:08 | 显示全部楼层
在水一方 发表于 2019-2-15 22:59
对于一些没有vref的芯片有什么好的方案吗?

如果支持多通道的话,用一个通道采集一个稳压基准,作为参照。
回复

使用道具 举报

8

主题

94

回帖

118

积分

初级会员

积分
118
发表于 2019-2-17 09:42:04 | 显示全部楼层
看起来这个过采样确实非常牛逼,比自己去实现方便多了。这种情况采样速度最高可以到多少呢?
回复

使用道具 举报

13

主题

223

回帖

262

积分

高级会员

积分
262
发表于 2019-2-17 10:04:30 | 显示全部楼层
eric2013 发表于 2019-2-15 13:53
用在采用速度不是很快的场合,非常合适。

10K的采样速率是否可用这个过采样?
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
发表于 2019-2-17 11:09:54 | 显示全部楼层
你好版主,最近也在H7上研究ADC和DMA采集电压的问题,但是一直没有搞成功。想看一下您的具体是怎么搞的可以吗?实在是谢谢了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2019-2-17 13:43:40 | 显示全部楼层
Paprika 发表于 2019-2-17 11:09
你好版主,最近也在H7上研究ADC和DMA采集电压的问题,但是一直没有搞成功。想看一下您的具体是怎么搞的可以 ...

就是这个:
QQ截图20190217134223.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2019-2-17 14:32:27 | 显示全部楼层
miaoqiongb 发表于 2019-2-17 10:04
10K的采样速率是否可用这个过采样?

没问题,实现16倍过采样就是10K * 16 = 160Ksps的实际采样率。
回复

使用道具 举报

32

主题

262

回帖

363

积分

高级会员

积分
363
发表于 2019-2-17 20:32:10 | 显示全部楼层
差分功能咋样?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2019-2-18 01:32:07 | 显示全部楼层

之前用NUCELO板子测试,跟单端的区别不大。
回复

使用道具 举报

4

主题

12

回帖

24

积分

新手上路

积分
24
发表于 2019-2-24 11:27:12 | 显示全部楼层

谢谢
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2019-2-25 08:20:46 | 显示全部楼层
非常感谢版主,这功能太好了。
回复

使用道具 举报

13

主题

156

回帖

215

积分

高级会员

积分
215
发表于 2019-5-23 15:52:36 | 显示全部楼层
老大,请教个问题。我有个信号是-1v到1v(其实到不了这个极限值,根据现有实验数据人体血液最大也就200mv左右),精度要0.01mv(领导要求,兼顾成本同时尽可能把精度做高一点)。考虑到成本,我想把-300mv到300mv精度做到0.01mv,超过这个范围,精度做低一点。不知道用h7内部ad可行不?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2019-5-23 16:16:06 | 显示全部楼层
本五心 发表于 2019-5-23 15:52
老大,请教个问题。我有个信号是-1v到1v(其实到不了这个极限值,根据现有实验数据人体血液最大也就200mv左 ...

2.5V基准时,那么就是2.5V/65535 = 0.038mV
回复

使用道具 举报

1

主题

49

回帖

52

积分

初级会员

积分
52
发表于 2019-5-24 13:13:04 | 显示全部楼层
老大,你这个测量基准电压为什么会跳动啊,基准电压不是很稳定的嘛,是单片机采样电压不准嘛,有几毫伏的波动呢
回复

使用道具 举报

2

主题

58

回帖

64

积分

初级会员

积分
64
发表于 2019-5-24 14:16:31 | 显示全部楼层
eric2013 发表于 2019-5-23 16:16
2.5V基准时,那么就是2.5V/65535 = 0.038mV

你这2.5V基准用的431?怎么能够这么精准!
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2019-5-27 17:32:02 | 显示全部楼层
365mcu 发表于 2019-5-24 14:16
你这2.5V基准用的431?怎么能够这么精准!

我们是LM285,这个是理论值,做不了这么准。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2019-5-27 17:32:56 | 显示全部楼层
iamarookie 发表于 2019-5-24 13:13
老大,你这个测量基准电压为什么会跳动啊,基准电压不是很稳定的嘛,是单片机采样电压不准嘛,有几毫伏的波 ...

这个范围是正常的,在开发板上面用已经足够
回复

使用道具 举报

0

主题

9

回帖

9

积分

新手上路

积分
9
发表于 2019-10-15 09:06:30 | 显示全部楼层

代码能否论坛也放一份,百度云下载超慢
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2019-10-15 12:37:59 | 显示全部楼层
devid8619 发表于 2019-10-15 09:06
代码能否论坛也放一份,百度云下载超慢

没问题,晚上我传到这个例子
回复

使用道具 举报

0

主题

9

回帖

9

积分

新手上路

积分
9
发表于 2019-10-15 16:40:11 | 显示全部楼层
eric2013 发表于 2019-10-15 12:37
没问题,晚上我传到这个例子

硬汉由于没权限给你发消息,只能接回帖说下。看完可以产出不发布
https://pan.baidu.com/share/init?surl=HBnohvi4fi8e9_a5N5xO1Q
回复

使用道具 举报

0

主题

9

回帖

9

积分

新手上路

积分
9
发表于 2019-10-15 16:41:13 | 显示全部楼层
eric2013 发表于 2019-10-15 12:37
没问题,晚上我传到这个例子

https://pan.baidu.com/share/init?surl=HBnohvi4fi8e9_a5N5xO1Q,类似配套的程序能否在论坛发一份,百度云真的很难下载,看完可以删除回帖,不用发布
回复

使用道具 举报

2

主题

20

回帖

26

积分

新手上路

积分
26
发表于 2019-10-18 14:34:51 | 显示全部楼层
楼主你好,我用例子V7-019_ADC定时器触发+DMA双缓冲实现 在我自己的板子上测试没问题,但是将里面的bsp_adc.c和bsp_adc.h移植到模板 V7-uCOS-III程序模板(含MDK和IAR)这里面就采集不到数据 ,DMA中断无法进入,个人感觉是哪个功能没有开启,这个移植之后还需要做其他操作吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2019-10-18 15:30:18 | 显示全部楼层
kdw042 发表于 2019-10-18 14:34
楼主你好,我用例子V7-019_ADC定时器触发+DMA双缓冲实现 在我自己的板子上测试没问题,但是将里面的bsp_adc ...

看此例子对应教程的移植说明,估计是你ADC所使用SRAM没有做MPU配置
回复

使用道具 举报

13

主题

223

回帖

262

积分

高级会员

积分
262
发表于 2020-2-11 22:03:41 | 显示全部楼层
eric2013 发表于 2019-2-17 14:32
没问题,实现16倍过采样就是10K * 16 = 160Ksps的实际采样率。

硬汉,我用16倍过采样,定时器触发方式,频率160K采样速率;通过DMA双缓冲方式读取数据,在DMA中断里面分别去读半传输中断数据和传输完成数据,并且在传输完成中断里面做了一个GPIO口的电平翻转动作用于测量定时器采样频率是否正确,目前我的疑问是,16倍过采样,160K的ADC采样速率,我在DMA中断里面读取到的数据是不是已经过采样平均后的数据,还是我读到ADC数据后需要16个数据累计后求平均?如果读到的是平均值,那么DMA的中断是不是对应的160K/16=10K的采样时间?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-2-12 00:55:28 | 显示全部楼层
miaoqiongb 发表于 2020-2-11 22:03
硬汉,我用16倍过采样,定时器触发方式,频率160K采样速率;通过DMA双缓冲方式读取数据,在DMA中断里面分 ...

DMA中记录的数据就是过采样后的。
回复

使用道具 举报

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2020-2-19 01:34:38
devid8619 发表于 2019-10-15 16:40
硬汉由于没权限给你发消息,只能接回帖说下。看完可以产出不发布
https://pan.baidu.com/share/init?sur ...

这个网盘的密码是多少,打不开呢

0

主题

3

回帖

3

积分

新手上路

积分
3
发表于 2020-2-19 01:52:06
本五心 发表于 2019-5-23 15:52
老大,请教个问题。我有个信号是-1v到1v(其实到不了这个极限值,根据现有实验数据人体血液最大也就200mv左 ...

层主这个需求搞定了吗?

0

主题

18

回帖

18

积分

新手上路

积分
18
发表于 2020-3-30 08:02:36 | 显示全部楼层
感谢楼主分享
回复

使用道具 举报

13

主题

223

回帖

262

积分

高级会员

积分
262
发表于 2020-6-28 13:06:33 | 显示全部楼层
这个16位过采样,用来采集振动信号和分析处理,不知道精度怎么样?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-6-28 13:18:03 | 显示全部楼层
miaoqiongb 发表于 2020-6-28 13:06
这个16位过采样,用来采集振动信号和分析处理,不知道精度怎么样?

测试一波,走起。
回复

使用道具 举报

13

主题

223

回帖

262

积分

高级会员

积分
262
发表于 2020-6-28 13:59:12 | 显示全部楼层
eric2013 发表于 2020-6-28 13:18
测试一波,走起。

什么也挡不住硬汉任性的脚步
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106685
QQ
 楼主| 发表于 2020-6-28 14:03:53 | 显示全部楼层
miaoqiongb 发表于 2020-6-28 13:59
什么也挡不住硬汉任性的脚步

我的意思是:让你测试一波,走起。
回复

使用道具 举报

13

主题

223

回帖

262

积分

高级会员

积分
262
发表于 2020-6-29 12:08:25 | 显示全部楼层
eric2013 发表于 2020-6-28 14:03
我的意思是:让你测试一波,走起。

没有硬件平台
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2020-7-21 21:25:48 | 显示全部楼层
参考学习学习
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2021-3-24 17:01:58 | 显示全部楼层
这个链接里的下载的DEMO没有ADC的啊?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 15:54 , Processed in 0.490866 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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