SXSJBD 发表于 2021-6-24 16:10:47

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

求助!!!采用安富莱的AD7606 FSMC例程,用STM32F407VET6搭建环境。采用NE1 采样地址是0x600000000.发现采集直流和输入悬空的时候,都是正常的,采集交流信号,如8K 1V的正弦波,用串口打印通道一的1024个返回数据,有时候返回的值出现4.99987V 而且是连续一大片的出现,有时候又是正常的值。正常值和4.99987V无规律的成片交替出现。这是为啥呢?如何解决?

eric2013 发表于 2021-6-24 16:25:58

AD7606和AD7606B有点区别,我们的例子是基于AD7606的,你可以适当调节下FSMC时序参数看看

SXSJBD 发表于 2021-6-24 16:55:23

eric2013 发表于 2021-6-24 16:25
AD7606和AD7606B有点区别,我们的例子是基于AD7606的,你可以适当调节下FSMC时序参数看看

就是FSMC配置里面的 那个4 0 6 0 0 这几个参数吗
Timing.AddressSetupTime = 4;
Timing.AddressHoldTime = 0;
Timing.DataSetupTime = 6;
Timing.BusTurnAroundDuration = 0;
Timing.CLKDivision = 0;
Timing.DataLatency = 0;
Timing.AccessMode = FSMC_ACCESS_MODE_A;

eric2013 发表于 2021-6-24 17:05:21

SXSJBD 发表于 2021-6-24 16:55
就是FSMC配置里面的 那个4 0 6 0 0 这几个参数吗

对,就是这些参数。

SXSJBD 发表于 2021-6-24 18:44:05

修改了这几个值 还是不行,从正常的数据到4.99987V 不是瞬间的 是慢慢升上去的 升上去之后就固定了。-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,
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,
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.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,
   要不你能帮我算下那两个参数用多少比较好么 谢谢咯

菜鸟中的萌新 发表于 2021-6-24 23:48:02

SXSJBD 发表于 2021-6-24 18:44
修改了这几个值 还是不行,从正常的数据到4.99987V 不是瞬间的 是慢慢升上去的 升上去之后就固定了。   要 ...

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

eric2013 发表于 2021-6-25 08:39:22

SXSJBD 发表于 2021-6-24 18:44
修改了这几个值 还是不行,从正常的数据到4.99987V 不是瞬间的 是慢慢升上去的 升上去之后就固定了。   要 ...

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

SXSJBD 发表于 2021-6-25 08:53:38

我是直接函数型号发生器输出的信号 送到AD的输入口 没有任何器件的。难道是7606B的哪个引脚没有弄好么?

eric2013 发表于 2021-6-25 10:01:46

SXSJBD 发表于 2021-6-25 08:53
我是直接函数型号发生器输出的信号 送到AD的输入口 没有任何器件的。难道是7606B的哪个引脚没有弄好么?

别的问题不太清楚了。

SXSJBD 发表于 2021-6-25 19:02:07

遇到一个新情况,当采样频率是200K的时候,采集8K以上信号,越往上,电压越小,但是电压和实际值对不上,波形附图所示,波形是40K的,其他的频率差不多。如果频率低于8K 则显示正负5V 但是也有一点很像正弦波的电压拨动,电压值也跟实际值对不上   E:\untitled.jpg

SXSJBD 发表于 2021-6-25 19:18:57

刚才发现一个新问题,用信号发生器给信号,随着频率的升高,电压会降低,但是不是实际值。其他条件都没变。8K以上波形有一点样子。40K波形如图所示。感觉好像是电压随着频率的升高而降低。这是为啥?E:\untitled.jpg

eric2013 发表于 2021-6-26 08:36:45

SXSJBD 发表于 2021-6-25 19:18
刚才发现一个新问题,用信号发生器给信号,随着频率的升高,电压会降低,但是不是实际值。其他条件都没变。 ...

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

SXSJBD 发表于 2021-6-28 09:51:36

今天测试又发现一个现象,信号发生器接V1GND的时候,再直接接地,就可以正确采集到的一半的电压值,波形也对。但是没有接地的情况下,就会出现类似超量程现象,波形也不对。

SXSJBD 发表于 2021-6-28 14:11:58

现在遇到一个新情况,在V1GND不接地的情况下,能采集到部分正确的幅值的波形,但是也会出现-5V的情况,如图所示。

eric2013 发表于 2021-6-29 08:34:10

SXSJBD 发表于 2021-6-28 09:51
今天测试又发现一个现象,信号发生器接V1GND的时候,再直接接地,就可以正确采集到的一半的电压值,波形也 ...

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

SXSJBD 发表于 2021-7-1 10:55:21

问一下我用FSMC DMA双缓冲 的办法读取AD7606B的数据,看安富莱的程序,好像有16个字节是不是前面8个字节 和后面8个字节的数据是两个时刻的数据呢?如果我每一路采集1024个点 能不能在HAL_DMA_Start_IT函数里面设置一个8192个字节的数组 ,并且采集8192个数据?

eric2013 发表于 2021-7-2 09:55:07

SXSJBD 发表于 2021-7-1 10:55
问一下我用FSMC DMA双缓冲 的办法读取AD7606B的数据,看安富莱的程序,好像有16个字节是不是前面8个字 ...

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

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

SXSJBD 发表于 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%了。

SXSJBD 发表于 2021-7-2 12:05:37

eric2013 发表于 2021-7-2 09:55
我们这个是为了方便J-Scope采集一轮打印一次。

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

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

eric2013 发表于 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就不行了,说明程序还是有点问题,再排查排查

eric2013 发表于 2021-7-2 16:07:05

SXSJBD 发表于 2021-7-2 12:05
当初你用了aligned (16)   是为了对齐里面有16个元素 如果我现在改成8192是不是里面要变成 aligned (81 ...

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

噜噜噜 发表于 2021-7-9 09:19:28

n您的程序是在例程上面直接修改的吗

eric2013 发表于 2021-7-9 09:47:40

噜噜噜 发表于 2021-7-9 09:19
n您的程序是在例程上面直接修改的吗

统一到此贴讨论

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

噜噜噜 发表于 2021-7-12 11:30:36

SXSJBD 发表于 2021-6-24 18:44
修改了这几个值 还是不行,从正常的数据到4.99987V 不是瞬间的 是慢慢升上去的 升上去之后就固定了。   要 ...

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

菜鸟冷柜 发表于 2022-9-25 17:53:13

你好,我现在在用AD7606B,遇到一点问题,想请你帮忙有偿解决一下,方便加个联系方式吗
页: [1]
查看完整版本: AD7606B返回值错误的原因,急!在线等!