ADI 技术
直播中

何洁萍

7年用户 194经验值
私信 关注
[问答]

AD7124-4的转换总出现一个通道的值采集的是另外一个通道的数据

你好,我配置了两个channel setup进行AD转换,用的默认的连续方式转换,power mode 为full mode,每隔1ms去读取状态寄存器和数据寄存器的数据,根据状态寄存器的低四位确定channel号,大部分时间转换数据都是对的,但是总会出现这样的现象:一个通道的值采集的是另外一个通道的数据,用的官方提供的驱动函数AD7124_ReadData(ad7124_device *device, int32_t* pData),请问是什么原因呢?我该如何处理?困扰好久了

回帖(9)

孙秀英

2018-8-19 08:13:05
按数据手册对对时序吧,再优化下程序。
举报

何洁萍

2018-8-19 08:27:15

我是先写的0x40读取状态寄存器,再写0x42读取数据寄存器,上面两个图是正常的,一个读的是channel0,一个读的是channel1,蓝的DOUT,黄的DIN,绿的SCLK,cs没抓
但是出现下面两张图就会有问题,我写0x40读状态寄存器是对的,紧接着写0x42的时候,DOUT会出现高电平的情况,然后读到的值就不对了,是另外一个通道的数据,是不是新的数据还没转换好我就去取导致数据丢了呢?那我怎么知道数据准备好了呢?我读的状态寄存器最高位为0显示准备好了啊,

 
举报

张涵

2018-8-19 08:37:57
引用: yhxc 发表于 2018-8-19 08:27
我是先写的0x40读取状态寄存器,再写0x42读取数据寄存器,上面两个图是正常的,一个读的是channel0,一个读的是channel1,蓝的DOUT,黄的DIN,绿的SCLK,cs没抓
但是出现下面两张图就会有问题,我写0x40读状态寄存器是对的,紧接着写0x42的时候,DOUT会出现高电平的情况,然后读到的值就不对了,是另外一个通道的数据,是不 ...

这个ADC需要配置每次转换的时间,也就是配置滤波参数。如果在1mS内没有转换完成,或者转换时间刚好少于1mS但是差别又很小时,可能存在你说的问题。
 
建议把转换时间等参数配置为一次转换少于1mS再测量下看下情况。
举报

何洁萍

2018-8-19 08:46:25
引用: dsdaiztt 发表于 2018-8-19 08:37
这个ADC需要配置每次转换的时间,也就是配置滤波参数。如果在1mS内没有转换完成,或者转换时间刚好少于1mS但是差别又很小时,可能存在你说的问题。
 
建议把转换时间等参数配置为一次转换少于1mS再测量下看下情况。

感谢回复,这个问题我考虑了,之前我调成每隔5ms去采集还是有问题,我按照您的建议设置下滤波参数试一下
举报

更多回帖

发帖
×
20
完善资料,
赚取积分