TI中文支持网
TI专业的中文技术问题搜集分享网站

关于ADS1299采集到的奇怪值

各位工程师好。

            我现在对ADS1299的调试已经基本完成了,写入寄存器读取寄存器,通道设置,开启ADC,然后读取数据模式。内部测试信号都已经ok了。

但是现在在采集到数据后发送到PC端画图完成后发现有一些奇怪的尖峰。ads1299供电3.3V     +2.5V   -2.5V.

            绿色是通道2的内部测试信号。下面是通道7(ch6)的外部测试信号,外部测试信号来自430F5529的IO翻转,事实证明干扰大到看不见波形了

下图是测量电池电压的,放大倍数1倍。上面出现奇怪尖峰,从串口助手看其数值都是正MAX或者负MAX。

下图是接5529LP产生的干扰

下面是加IO翻转后的波形,对通道2的内部波形都产生影响了。LP的io/gnd接5529的7N/7P。

想请各位工程师帮我分析分析可能是哪里出现了问题。

user151383853:

有效信号淹没在干扰和噪声里, 先想办法去干扰降噪

大林:

回复 user151383853:

感谢您的回答,去干扰降噪的确是需要的,但是那个奇怪的尖峰给我的感觉不太像是干扰信号,

1.测电池电压的时候(我认为现在的电池相对于其他降压下来的电源都要来的稳定些),尖峰出现,其值都是在芯片电压范围的边缘。

2.然后还会有一组C0 00 00这样的数据,明显嵌在其他数据里面。比如我正确数据是7F FF FF / FF FF FF,然后这个嵌入的结果会是7F  FF C0 / 00 00 FF,这样可能就是导致出现00 00 FF这样一个接近边界值出现的可能。

Martin:

回复 大林:

有没有可能 出问题  的那一次采集 SPI通信不正常?

大林:

回复 Martin:

TI工程师你好,

      我也考虑过这个问题。但是我的寄存器写入读出,还有芯片基本功能的配置都OK了,我认为SPI大体上没有问题。

然后我的程序是energia上面移植过来的,之前一直是通讯有问题,但是我看示波器发现energia的spi_tx的发送中间间隔1000+ns,然后我在CCS里面人为加了delay_ns()延迟,然后spi能够通讯了。

       但是之前看你们TI同事上传的ADC驱动程序里面,却好像没有发现延时的存在。

然后想问下下面这个SPI里面的波特率是多少。B=F/(UCB0BR1*256+UCB0BR0);按这个来算,下面的UCBOBR0=24;算出来好像都不是常规的数值啊,1000000/24=41666;

大林:

////////////////结贴////////////////////

首先感谢上面各位的回答。

然后今日我终于调试得出这个奇怪的数据是因为我之前对数据手册http://www.ti.com/cn/lit/gpn/ads1299。pag36-37上的RDATAC和RDATA的理解有问题。

      芯片默认上电是RDATAC模式。然后我一直也是配置成RDATAC这个模式,然后我认为RDATA模式是用来测试ADC(读一次)。然后我是直接上RDATAC模式。读出结果基本正常,然后就认为ADC部分已经OK了,没必要测试RDATA这个模式。

     然后呢我只要开启RDATAC这个模式。我单片机给clk就能读到数据。相当于我认为RDATAC这个模式是时刻准备好数据在读;

然后图中的T-updata这个时间就是只要大于它就行的。

      所以我最后使用定时器中断来读这个数据。读出来的数据大部分(95%)以上是正确的。然后出现的上文说的奇怪数据。调了蛮多天。也问了很多人。有说干扰的,有说数据在转移过程出错的,还有说是不是被编译器优化了。

      然后今日我,算脑子抽筋了吧,去掉了定时器,只靠DRDY这个中断来读数据,然后发现好像没有出现C0 xx 这些数据了。呵呵。。。。不容易

      那么要实现我定时器读取的功能大概要使用RDATA这个模式吧。。。。。。还没来得及验证我就来发帖了。。。。。工科男的自信

感谢大家!

      

赞(0)
未经允许不得转载:TI中文支持网 » 关于ADS1299采集到的奇怪值
分享到: 更多 (0)