硬汉嵌入式论坛

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

AD7606B返回值错误的原因,急!在线等!

  [复制链接]

3

主题

12

回帖

21

积分

新手上路

积分
21
发表于 2021-6-24 16:10:47 | 显示全部楼层 |阅读模式
求助!!!采用安富莱的AD7606 FSMC例程,用STM32F407VET6搭建环境。采用NE1 采样地址是0x600000000.  发现采集直流和输入悬空的时候,都是正常的,采集交流信号,如8K 1V的正弦波,用串口打印通道一的1024个返回数据,有时候返回的值出现4.99987V 而且是连续一大片的出现,有时候又是正常的值。正常值和4.99987V无规律的成片交替出现。这是为啥呢?如何解决?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106588
QQ
发表于 2021-6-24 16:25:58 | 显示全部楼层
AD7606和AD7606B有点区别,我们的例子是基于AD7606的,你可以适当调节下FSMC时序参数看看
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2021-6-24 16:55:23 | 显示全部楼层
eric2013 发表于 2021-6-24 16:25
AD7606和AD7606B有点区别,我们的例子是基于AD7606的,你可以适当调节下FSMC时序参数看看

就是FSMC配置里面的 那个4 0 6 0 0 这几个参数吗
  1.   Timing.AddressSetupTime = 4;
  2.   Timing.AddressHoldTime = 0;
  3.   Timing.DataSetupTime = 6;
  4.   Timing.BusTurnAroundDuration = 0;
  5.   Timing.CLKDivision = 0;
  6.   Timing.DataLatency = 0;
  7.   Timing.AccessMode = FSMC_ACCESS_MODE_A;
复制代码
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106588
QQ
发表于 2021-6-24 17:05:21 | 显示全部楼层
SXSJBD 发表于 2021-6-24 16:55
就是FSMC配置里面的 那个4 0 6 0 0 这几个参数吗

对,就是这些参数。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2021-6-24 18:44:05 | 显示全部楼层
修改了这几个值 还是不行,从正常的数据到4.99987V 不是瞬间的 是慢慢升上去的 升上去之后就固定了。
  1. -0.826263,-0.614624,-0.247192,0.185699,0.577545,0.831909,0.885315,0.725403,0.391541,-0.033264,-0.443726,-0.742645,-0.854950,-0.742645,-0.443878,-0.030365,0.395966,0.729980,0.889435,0.834351,0.579071,0.186768,-0.244598,-0.608521,-0.817871,-0.824280,-0.610352,-0.242615,0.190887,0.583496,
  2. 0.838776,0.892334,0.732727,0.399017,-0.005951,-0.042419,0.150452,0.333252,0.936737,1.367340,1.635590,2.245941,2.343750,2.814484,3.372192,3.369751,3.942719,2.993622,2.183990,2.973328,3.906555,4.268799,4.383698,4.684601,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,
  3. 4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,
  4. 4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,4.999847,
复制代码
  要不你能帮我算下那两个参数用多少比较好么 谢谢咯
回复

使用道具 举报

1

主题

26

回帖

29

积分

新手上路

积分
29
发表于 2021-6-24 23:48:02 | 显示全部楼层
SXSJBD 发表于 2021-6-24 18:44
修改了这几个值 还是不行,从正常的数据到4.99987V 不是瞬间的 是慢慢升上去的 升上去之后就固定了。   要 ...

这恐怕是模拟电路上的问题吧,我们做TI的8588也遇到这问题。未解决
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106588
QQ
发表于 2021-6-25 08:39:22 | 显示全部楼层
SXSJBD 发表于 2021-6-24 18:44
修改了这几个值 还是不行,从正常的数据到4.99987V 不是瞬间的 是慢慢升上去的 升上去之后就固定了。   要 ...

这有必要查查硬件问题了。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2021-6-25 08:53:38 | 显示全部楼层
我是直接函数型号发生器输出的信号 送到AD的输入口 没有任何器件的。难道是7606B的哪个引脚没有弄好么?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106588
QQ
发表于 2021-6-25 10:01:46 | 显示全部楼层
SXSJBD 发表于 2021-6-25 08:53
我是直接函数型号发生器输出的信号 送到AD的输入口 没有任何器件的。难道是7606B的哪个引脚没有弄好么?

别的问题不太清楚了。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2021-6-25 19:02:07 | 显示全部楼层
遇到一个新情况,当采样频率是200K的时候,采集8K以上信号,越往上,电压越小,但是电压和实际值对不上,波形附图所示,波形是40K的,其他的频率差不多。如果频率低于8K 则显示正负5V 但是也有一点很像正弦波的电压拨动,电压值也跟实际值对不上     E:\untitled.jpg
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2021-6-25 19:18:57 | 显示全部楼层
刚才发现一个新问题,用信号发生器给信号,随着频率的升高,电压会降低,但是不是实际值。其他条件都没变。8K以上波形有一点样子。40K波形如图所示。感觉好像是电压随着频率的升高而降低。这是为啥?E:\untitled.jpg
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106588
QQ
发表于 2021-6-26 08:36:45 | 显示全部楼层
SXSJBD 发表于 2021-6-25 19:18
刚才发现一个新问题,用信号发生器给信号,随着频率的升高,电压会降低,但是不是实际值。其他条件都没变。 ...

200Ksps,而且没有采用DMA方式的话,如果你的程序没有及时处理,很容易出现波形不正常。当前这个测试不太有利于你解决问题。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2021-6-28 09:51:36 | 显示全部楼层
今天测试又发现一个现象,信号发生器接V1GND的时候,再直接接地,就可以正确采集到的一半的电压值,波形也对。但是没有接地的情况下,就会出现类似超量程现象,波形也不对。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2021-6-28 14:11:58 | 显示全部楼层
现在遇到一个新情况,在V1GND不接地的情况下,能采集到部分正确的幅值的波形,但是也会出现-5V的情况,如图所示。
微信截图_20210628141116.png
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106588
QQ
发表于 2021-6-29 08:34:10 | 显示全部楼层
SXSJBD 发表于 2021-6-28 09:51
今天测试又发现一个现象,信号发生器接V1GND的时候,再直接接地,就可以正确采集到的一半的电压值,波形也 ...

这一段不正常的是不是没有正确读取,方便的话,把你的接线图和FSMC配置代码发下
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2021-7-1 10:55:21 | 显示全部楼层
问一下  我用FSMC DMA双缓冲 的办法读取AD7606B的数据,看安富莱的程序,好像有16个字节  是不是前面8个字节 和后面8个字节的数据是两个时刻的数据呢?如果我每一路采集1024个点 能不能在HAL_DMA_Start_IT函数里面设置一个8192个字节的数组 ,并且采集8192个数据?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106588
QQ
发表于 2021-7-2 09:55:07 | 显示全部楼层
SXSJBD 发表于 2021-7-1 10:55
问一下  我用FSMC DMA双缓冲 的办法读取AD7606B的数据,看安富莱的程序,好像有16个字节  是不是前面8个字 ...

我们这个是为了方便J-Scope采集一轮打印一次。

你的可以设置很大,不超过DMA最大支持的65535次即可。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2021-7-2 11:56:55 | 显示全部楼层
eric2013 发表于 2021-7-2 09:55
我们这个是为了方便J-Scope采集一轮打印一次。

你的可以设置很大,不超过DMA最大支持的65535次即可。

可是我看到你是8个节拍突发一次 意思就是采集到8个通道的时候,进入中断一次,也就是每次进入中断只是刷新一次8组数据而已,还能设置最大么 我最大的是8192个数字 也就是每个通道采集1024个字节,我要怎么设置一些参数才能做到? 还有就是 我发现AD7606B最高采样率是800K 可是我用这个方法试验了一下 发现最高采样率只有300多K 这个该怎么弄呢 我的PWM都设置成800K的频率 占空比99.2%了。
回复

使用道具 举报

3

主题

12

回帖

21

积分

新手上路

积分
21
 楼主| 发表于 2021-7-2 12:05:37 | 显示全部楼层
eric2013 发表于 2021-7-2 09:55
我们这个是为了方便J-Scope采集一轮打印一次。

你的可以设置很大,不超过DMA最大支持的65535次即可。

当初你用了aligned (16)   是为了对齐里面有16个元素 如果我现在改成8192  是不是里面要变成 aligned (8192)
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106588
QQ
发表于 2021-7-2 16:06:44 | 显示全部楼层
SXSJBD 发表于 2021-7-2 11:56
可是我看到你是8个节拍突发一次 意思就是采集到8个通道的时候,进入中断一次,也就是每次进入中断只是刷 ...

1、我的是为了方便J-Scope展示,仅采集了一轮就需要给J-Scope,用于数据的实时波形绘制。你需要采集才8192而已,使用通用的DMA可以传输65535次呢,绰绰有余。你要重复理解下DMA用法。
2、你采集300K就不行了,说明程序还是有点问题,再排查排查
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106588
QQ
发表于 2021-7-2 16:07:05 | 显示全部楼层
SXSJBD 发表于 2021-7-2 12:05
当初你用了aligned (16)   是为了对齐里面有16个元素 如果我现在改成8192  是不是里面要变成 aligned (81 ...

不是,这个是首地址对齐,不是数据大小对齐。
回复

使用道具 举报

3

主题

11

回帖

20

积分

新手上路

积分
20
发表于 2021-7-9 09:19:28 | 显示全部楼层
n您的程序是在例程上面直接修改的吗
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106588
QQ
发表于 2021-7-9 09:47:40 | 显示全部楼层
噜噜噜 发表于 2021-7-9 09:19
n您的程序是在例程上面直接修改的吗

统一到此贴讨论

求助 AD7606 用STM32F407VGT6搭建环境硬件异常
http://www.armbbs.cn/forum.php?m ... 7769&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

3

主题

11

回帖

20

积分

新手上路

积分
20
发表于 2021-7-12 11:30:36 | 显示全部楼层
SXSJBD 发表于 2021-6-24 18:44
修改了这几个值 还是不行,从正常的数据到4.99987V 不是瞬间的 是慢慢升上去的 升上去之后就固定了。   要 ...

我现在也遇到了这个问题,请问您的问题解决了吗
回复

使用道具 举报

0

主题

1

回帖

1

积分

新手上路

积分
1
发表于 2022-9-25 17:53:13 | 显示全部楼层
你好,我现在在用AD7606B,遇到一点问题,想请你帮忙有偿解决一下,方便加个联系方式吗
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 18:28 , Processed in 0.388055 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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