请选择 进入手机版 | 继续访问电脑版

你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F302使用ADC+DMA的方案,采集大数据出错

[复制链接]
swxxxw 提问时间:2018-9-21 17:10 /
我先列一下我的几组测试对比。现在手头有一块303的,一块302的.一、303的片子:基本参数 ,AD时钟36MHZ,采样时间7.5Cycles,定时器触发时间4.16us。采集大数据量波形不失真。

二、302的片子:基本参数, AD时钟36MHZ,采样时间7.5Cycles,定时器触发时间4.16us。1、DMA搬数132点,长时间工作波形正常;2、我想实现DMA搬数2112点,其他参数不变,只改变DMA的搬运点数,工作前5分钟波形一直比较稳定,接下来,随着时间的推移波形逐渐失真;3、奇怪的是,我不断电源,断开仿真器,重连仿真器,再运行,波形还是失真的厉害,必须要断开电源,波形才能恢复正常。

三、两块片子硬件上有差异,不排除硬件问题,想请大家先分析下软件上有什么可能出错的地方。
四、两块片子的程序,DMA+ADC的框架一致。
五、波形变化图:
1537520605(1).jpg 1537520633(1).jpg 1537520646(1).jpg
1537520672(1).jpg 1537520688(1).jpg 1537520703(1).jpg
六、一个星期了,没找到解决办法,尝试修改ADC时钟,采样时间,定时器触发时间,都没能解决302片子的异常问题,请给位大佬帮忙分析分析。
收藏 评论10 发布时间:2018-9-21 17:10

举报

10个回答
swxxxw 回答时间:2018-9-25 09:24:34
顶一下
AI++ 回答时间:2018-9-29 10:09:13
你有没有带系统? 用的什么库?

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

z258121131 回答时间:2018-9-29 15:23:19
顶一下。可以看下是没有收到数据还是数据错误

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

yygkqzh 回答时间:2018-9-29 20:04:11
你看看两者硬件上有没有什么区别

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

watershade 回答时间:2018-9-29 22:43:24
有个简单的方法可以看一下你的硬件有没有问题。你不是说开一段时间就波形失真吗?不妨插上电之前,一直按着复位键。等上一分钟,然后看波形是不是正常。如果不正常,可以确定是硬件问题。(或者软件加延时也成。)
但如果正常,也不能排除一定不是硬件问题。需要稍后再分析一下。最好用示波器从加电开始一直检测。

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

swxxxw 回答时间:2018-10-10 09:52:02
50031185 发表于 2018-9-29 10:09
你有没有带系统? 用的什么库?

你好,我没有使用操作系统。
库信息如下:
* @author  MCD Application Team
  * @version V1.2.3
  * @date    10-July-2015
swxxxw 回答时间:2018-10-10 09:54:33
watershade 发表于 2018-9-29 22:43
有个简单的方法可以看一下你的硬件有没有问题。你不是说开一段时间就波形失真吗?不妨插上电之前,一直按着 ...

你好目前板子上没有加复位电路,我可以尝试加一个复位电路,按照你的方法测试一下。另外一个情况我请教一下,就是我是在线仿真调试,波形失真至以上情况后,我不断电,软件复位波形还是失真,是否能排除软件问题呢?
swxxxw 回答时间:2018-10-10 09:57:39
yygkqzh 发表于 2018-9-29 20:04
你看看两者硬件上有没有什么区别

你好,硬件问题其他的工程师在排查,我很苦恼
swxxxw 回答时间:2018-10-10 10:00:14
z258121131 发表于 2018-9-29 15:23
顶一下。可以看下是没有收到数据还是数据错误

你好,目前问题锁定在:ADC转换和DMA从ADC搬数,这两个环节上。现在在考虑不使用DMA的方式,用CPU搬数,看看数据是否出错
watershade 回答时间:2018-10-13 12:45:28
本帖最后由 watershade 于 2018-10-13 12:52 编辑
swxxxw 发表于 2018-10-10 09:54
你好目前板子上没有加复位电路,我可以尝试加一个复位电路,按照你的方法测试一下。另外一个情况我请教一 ...

其实我有详细看了一下你的问题。你说搬运132个点正常,2112个点时间长就不正常。如果是我,我就再试一下。如果我搬运一半呐?会不会失真? 你说这个情况我之前有点怀疑硬件,但你这个132个点一直正常我就觉得应该又不是硬件。
再说在线仿真。正常我猜你先单步调试,然后全速运行。再失真之前你可以先暂停全速调试,单步调试一下,看看正常运行有没有什么逻辑问题。如果过你暂停的话,arm的内核应该是pause的状态,外设应该是按照之前的输出自动输出。然后你等待一段时间看还失真吗(这时是暂停状态)?如果失真,会不会是电磁干扰?就是你的电源stage和控制这部分设计的不太好。

说的有点乱,希望你了解我的大致想法。

另外从你的描述里302除了问题。但是你没有描述303的情况。所以我不知道303是不是正常。而且你程序基本一致。
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版