11553|6

77

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于用stm32进行交流采样算有效值的一个奇怪的问题。 [复制链接]

我想测量6路电压信号,信号是DC bias + AC signal. 测量思路如下:

   假定电压周期固定为20ms,定时器1ms中断一次,在定时器中断的ISR中软件触发AD采样。则在20ms内采样20次来算有效值于是AD配置成单次scan模式,采样结果用DMA来搬运到一个缓冲区中,缓冲区应能存放 20 *6 =120个数据。我把DMA配置成循环模式,并且把缓冲区大小设置成240 (两倍于120),并开启传输一半中断和传输完成中断,这样就可以实现AD采样的双缓冲结构。可是计算有效值一会是正常电压值,一会是一个很大的值,不过错误值也是稳定的。真不知问题出在哪?以下是代码片断,请大虾帮看看有什么问题:
adc.jpg
dma.jpg
nvic.jpg
timer.jpg
tm_isr.jpg
dma_isr.jpg




tm_isr.jpg (36 KB)

tm_isr.jpg

此帖出自stm32/stm8论坛

最新回复

谢谢,我用的是TIM_OC触发,ADC_SampleTime_239Cycles5, 直流采样没问题,就是交流采样还是不行,还是存在同样问题。  详情 回复 发表于 2016-1-9 20:46
点赞 关注
 

回复
举报

87

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 开始怀疑信号有问题,用示波器看了下发现信号正常。估计是什么影响了AD采样值,造成了测量值时对时错。 这个AC采样方法我用在以前的一个项目上的,主控芯片是freescale的,效果还不错,现在用同样的方法用在了stm32上就出现了问题,这是第一次用stm32做项目,对stm32不熟悉再所难免,请各位大大看下我配置代码有什么问题。再此感谢。。。
此帖出自stm32/stm8论坛
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
                                 也许你可以考虑用Timer的OC触发ADC自动采样?
此帖出自stm32/stm8论坛
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

4
 
第一,采样时间 加长。
第二,采用程序滤波处理。
就能解决这具问题了。
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

5
 
你好,碰到和你描述的问题完全一样,请问是什么问题导致的,您是怎么处理的,非常感谢
此帖出自stm32/stm8论坛

点评

你试着把单次采样周期改长一点试试啊。  详情 回复 发表于 2016-1-6 10:52
 
 
 

回复

466

帖子

0

TA的资源

版主

6
 
xqf123 发表于 2016-1-5 23:35
你好,碰到和你描述的问题完全一样,请问是什么问题导致的,您是怎么处理的,非常感谢

你试着把单次采样周期改长一点试试啊。
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

7
 
谢谢,我用的是TIM_OC触发,ADC_SampleTime_239Cycles5,
直流采样没问题,就是交流采样还是不行,还是存在同样问题。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表