OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9338|回复: 42

adc如何保证采集到同一时刻的瞬时电压和电流

[复制链接]

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
发表于 2014-10-12 10:18:36 | 显示全部楼层 |阅读模式
5金钱
交流市电采集,需要得到有功功率,一个周期采集100次。必须知道每一个时刻的瞬时电压和电流。相乘,再求平均才能得到。

问题:怎样保证采集到的电压电流都是同一时刻的呢?

补充:如采集到的Vt23(某个周期的第23次采集)和It23,要确保为同一时刻的V和I,怎样采集?是不是得用双adc才能实现?

有表述不清的地方,请提出来,谢谢。

最佳答案

查看完整内容[请看2#楼]

1.同一个ADC没法同时采样电压和电流,一个是分压一个是分流,外围电路都不一样。 2.两个ADC采用同一个触发源可以保证同时
小小蜗牛
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-10-12 10:18:37 | 显示全部楼层
1.同一个ADC没法同时采样电压和电流,一个是分压一个是分流,外围电路都不一样。
2.两个ADC采用同一个触发源可以保证同时
回复

使用道具 举报

13

主题

67

帖子

0

精华

初级会员

Rank: 2

积分
139
金钱
139
注册时间
2014-2-15
在线时间
0 小时
发表于 2014-10-12 12:16:11 | 显示全部楼层
同一个mcu上不大好搞!如果知道信号是周期性的,可以这个周期的这个时刻采样电压值,下个周期采样电流值!不过这也有误差的
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-10-12 14:20:15 | 显示全部楼层
回复【2楼】羽神落:
---------------------------------
这么难搞啊。。。。。
小小蜗牛
回复

使用道具 举报

65

主题

440

帖子

0

精华

高级会员

Rank: 4

积分
782
金钱
782
注册时间
2012-8-29
在线时间
17 小时
发表于 2014-10-13 09:00:06 | 显示全部楼层
用外接ADC可以实现,内部ADC理论上时刻肯定不能同步,因为是每个通道轮流工作
人生永远追逐着幻光,但谁把幻光看作幻光,谁便沉入无边的苦海
回复

使用道具 举报

65

主题

440

帖子

0

精华

高级会员

Rank: 4

积分
782
金钱
782
注册时间
2012-8-29
在线时间
17 小时
发表于 2014-10-13 10:06:33 | 显示全部楼层
又看了下手册,STM32提供ADC1和ADC2的同步触发,
人生永远追逐着幻光,但谁把幻光看作幻光,谁便沉入无边的苦海
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-10-13 10:37:27 | 显示全部楼层
回复【5楼】ricefat:
---------------------------------
双adc可以实现吗?需要用中断来触发采样吗?
小小蜗牛
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-10-13 10:38:49 | 显示全部楼层
回复【6楼】sun_shine:
---------------------------------
你是和4楼说的一个意思不?有思路没。
小小蜗牛
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-10-13 11:10:03 | 显示全部楼层
回复【7楼】jiutianshenjian:
---------------------------------
可以双ADC
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-10-13 11:30:35 | 显示全部楼层
回复【9楼】ricefat:
---------------------------------
噢,先谢了。目前还没具体思路。
小小蜗牛
回复

使用道具 举报

22

主题

2254

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4486
金钱
4486
注册时间
2013-4-22
在线时间
337 小时
发表于 2014-10-14 11:36:54 | 显示全部楼层
电压乘以电流不准确
回复

使用道具 举报

22

主题

2254

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4486
金钱
4486
注册时间
2013-4-22
在线时间
337 小时
发表于 2014-10-14 11:38:10 | 显示全部楼层
用计量芯片吧,用了计量芯片,也得校准
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-11-22 12:55:56 | 显示全部楼层
回复【12楼】三叶草:
---------------------------------
这个还不太懂,只能先乘了。
小小蜗牛
回复

使用道具 举报

8

主题

39

帖子

0

精华

初级会员

Rank: 2

积分
91
金钱
91
注册时间
2014-11-1
在线时间
0 小时
发表于 2014-11-22 16:35:37 | 显示全部楼层
弄个采样保持电路吧,需要进行AD转换前发出一个控制信号,电路同时对电压电流进行采样,然后切断输入,保持采样数据,然后用AD依次转换
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手上路

积分
40
金钱
40
注册时间
2014-11-21
在线时间
6 小时
发表于 2014-11-22 16:54:23 | 显示全部楼层
建议外接AD,可以用AD7865。
对实时性要求不是很高的话,就用计量芯片。电压电流、瞬时功率、电能增量什么的都自动给你算好了,直接操作寄存器就行。
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-8 16:58:58 | 显示全部楼层
回复【15楼】hsingwei:
---------------------------------
请问测直流电压和电流要怎么测呢
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11559
金钱
11559
注册时间
2014-4-1
在线时间
1318 小时
发表于 2014-12-8 17:18:46 | 显示全部楼层
回复【6楼】sun_shine:
---------------------------------

信息如果确切,就可以解决问题了。
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-11 11:25:25 | 显示全部楼层
回复【17楼】xuande:
---------------------------------
 请问采集两路,用两个ADC不同通道独立模式,可以做到同时采集吗?谢谢!
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11559
金钱
11559
注册时间
2014-4-1
在线时间
1318 小时
发表于 2014-12-11 12:40:25 | 显示全部楼层
回复【18楼】zzj:
---------------------------------
5L信息比较可信,ST设计者应当考虑到这问题。

不论消息是否可靠,只要是两个ADC,都应当没有问题。

每个ADC都有触发信号,大不了,外围 IO 口连接一下,一个信号触发两个ADC,相信可以实现。
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-11 13:35:52 | 显示全部楼层
回复【19楼】xuande:
---------------------------------
是采用双ADC同步规则模式吗?那DMA是不是只能读取ADC1的值呢?
回复

使用道具 举报

58

主题

6294

帖子

1

精华

资深版主

Rank: 8Rank: 8

积分
11559
金钱
11559
注册时间
2014-4-1
在线时间
1318 小时
发表于 2014-12-11 16:37:03 | 显示全部楼层
回复【20楼】zzj:
---------------------------------
DMA,这是个新要求,我不知道了,

DMA有双缓冲器模式,好像和这个沾点边。
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-12-11 16:53:34 | 显示全部楼层
回复【20楼】zzj:
---------------------------------
你看看参考手册,ADC1的DR里面高16位放的ADC2的值,低16位ADC1的值。取出来就行了。
小小蜗牛
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-11 17:43:52 | 显示全部楼层
回复【22楼】jiutianshenjian:
---------------------------------
好的,下午看到了。另外,请问您是如何处理数据的?是不是把ADC设为连续转换模式,DMA为循环模式?
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-12-11 17:48:15 | 显示全部楼层
回复【23楼】zzj:
---------------------------------
我定时器触发的,adc单次扫描。dma得循环。dma完成中断取数据。
小小蜗牛
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-11 19:05:11 | 显示全部楼层
回复【24楼】jiutianshenjian:
---------------------------------
单次扫描可以做到同步吗?为什么要用定时器触发呢?
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-12-11 19:07:49 | 显示全部楼层
回复【25楼】zzj:
---------------------------------
同步和单次没有关系。软件触发也可以。
定时器是为了控制时间。多久采集一次。
小小蜗牛
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-11 19:38:54 | 显示全部楼层
回复【26楼】jiutianshenjian:
---------------------------------
了解了,单次是两个通道单次。还有,DMA循环模式时数据传输结束会自动从头开始,那这时中断判断有什么用呢?假如这时定时未触发那dma的数据不是还是上次的数据吗?
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-12-11 19:44:11 | 显示全部楼层
回复【27楼】zzj:
---------------------------------
完成会有中断产生啊。你在中断后处理,不然你什么时候处理数据?你不处理下次来就覆盖了。
此时定时未触发,dma的数据?dma是搬运工。把DR里面的搬到了你设置的数组或者说内存里。缓冲区大小等于数组大小。搬一半产生过半中断,完成有完成中断。我两个都用了。如果你需要的话。
小小蜗牛
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-11 19:58:12 | 显示全部楼层
回复【28楼】jiutianshenjian:
---------------------------------
你的意思是说定时器还没触发adc采集数据时,dma是不会进行搬运工作的罗?
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-11 21:24:17 | 显示全部楼层
回复【28楼】jiutianshenjian:
---------------------------------
我的意思是:是不是adc一采集数据dma才马上搬运数据,还是说不管这时定时的时间未到,adc还没开始下一次采集,dma也会搬运数据?如果是第二种情况的话,那dma读取ADC1_DR寄存器的数据就还是上次保留的数据吧。
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-12-12 08:36:07 | 显示全部楼层
回复【30楼】zzj:
---------------------------------
参考手册163页:
只有在规则通道的转换结束时才产生DMA请求,并将转换的数据从ADC_DR寄存器传输到用户指定的目的地址。
小小蜗牛
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-12 09:23:53 | 显示全部楼层
回复【31楼】jiutianshenjian:
---------------------------------
好的,謝謝啊!还是你比较仔细啊!
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-12-12 09:28:43 | 显示全部楼层
回复【32楼】zzj:
---------------------------------
多捣鼓。。。
小小蜗牛
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-12 10:23:10 | 显示全部楼层
回复【31楼】jiutianshenjian:
---------------------------------
不过我感觉你这样就是定时到,adc采集一次,dma传输一次,一次一次来。那如果我不要定时器触发,用软件启动,用定时器定时时间到就读取ad值这样不是也一样吗?
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-12-12 11:02:41 | 显示全部楼层
回复【34楼】zzj:
---------------------------------
这个主要是,我用双adc规则模式时,用软件启动没捣鼓出来。
小小蜗牛
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-12 11:31:46 | 显示全部楼层
回复【35楼】jiutianshenjian:
---------------------------------
哦,这样子。请问一下,用定时器触发是不是要用PWM上升沿触发啊?
回复

使用道具 举报

81

主题

1002

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1876
金钱
1876
注册时间
2014-9-10
在线时间
208 小时
 楼主| 发表于 2014-12-12 13:02:06 | 显示全部楼层
回复【36楼】zzj:
---------------------------------
溢出就行了。
小小蜗牛
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-12 13:04:10 | 显示全部楼层
回复【37楼】jiutianshenjian:
---------------------------------
好的,谢谢。我再学习学习
回复

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2014-12-12 13:43:35 | 显示全部楼层
作为电力仪表研发人员告诉你,楼主想多了,算法也有问题~要求不高求电流相位角即可~作为仪表类设备就需要傅里叶变换了~
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-12 14:38:22 | 显示全部楼层
回复【39楼】tian123chi:
---------------------------------
我采集直流就不用吧,应该是仪表蓄电池的电流电压,要计算平均值,功率这些
回复

使用道具 举报

96

主题

762

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1228
金钱
1228
注册时间
2012-10-19
在线时间
15 小时
发表于 2014-12-15 13:39:34 | 显示全部楼层
回复【40楼】zzj:
---------------------------------
恩,是的哦。直流的直接按初中公式就可以了
回复

使用道具 举报

1

主题

215

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
254
金钱
254
注册时间
2013-9-23
在线时间
4 小时
发表于 2014-12-15 14:48:24 | 显示全部楼层
回复【41楼】tian123chi:
---------------------------------
好的,謝謝!
回复

使用道具 举报

6

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2014-4-12
在线时间
0 小时
发表于 2015-1-17 22:16:01 | 显示全部楼层
可以用同一个ADC的不同通道采集,相位校准即可
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-26 20:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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