This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

ADS1299: ADS1299EEG-FE使用菊链串联输出数据,数据存在问题,片与片连接处的状态位发生丢失

Part Number: ADS1299

使用逻辑分析仪读取链上每片数据输出,发现在片与片的标志位没对齐的时候发生数据读出错误,如下图所示(通道0:DRDY、通道1:菊链上1st输出、通道3:菊链上2st输出、通道3:菊链上3st输出)

每组数据传输结束后,在数据准备时间内Dout的波形占空比会随数据传输依次降低。如下图所示,通道3,在A1-A2期间Dout反转为高电平,保持1.3886ms后开始输出,到下一组时Dout反转为高电平,保持1.3779ms后开始数据输出。

如下图,此时数据输出格式仍是正确的(通道0:DRDY、通道1:菊链上1st输出、通道3:菊链上2st输出、通道3:菊链上3st输出)

这个DOUT反转高电平的保持时间会越来越小,当小到一定程度时该芯片输出的状态位被挤掉,芯片输出数据乱码,如下图所示。

 (跳变前后大约十组数据都是错误的)

具体如下图所示,第2片状态位丢失

对应的串口读出也乱码

但是1st的芯片输出非常稳定(即前八个通道)DOUT输出完成一组后的电平翻转占空比始终固定,保持时间约为12uS左右,与DRDY变化保持一致。

所以是什么导致的菊链串联的后面几片的数据输出异常?

所有片使用同一外部时钟2.048MHz,此时SPI_CLK为9MHz。

  • 您好,

    您是菊花链了3个 ADS1299是吗?我不明白下面这个图您要说明什么?下面这个图紫色、蓝色、绿色和黄色信号分别表示什么?

    这个DOUT反转高电平的保持时间会越来越小,当小到一定程度时该芯片输出的状态位被挤掉,

    Dout 信号您是使用反向器了吗?为什么会翻转?

    DOUT 随SCLK输出,您的意思是 DOUT输出的高电平或低电平时长不是一个SCLK周期?

    可以菊花链的最大设备数由下面公式计算,您设置的data rate 是多少?看下是否满足下面公式:

  •   感谢您的回复,抱歉阐述有些遗漏

      1.首先上述图中紫色的是DRDY信号,蓝色是菊花链上第一片输出,绿色是第二片输出,黄色是第三片的输出,串联遵循黄色→绿色→蓝色。

      2.我的DOUT并没有使用反向器,但是Dout在输出数据前会保持高电平一段时间,这是状态位前四位1100的由来,状态位的构成(1100 + LOFF_STATP + LOFF_STATN + bits[4:7] of the GPIO register),按照我的设置状态位十六进制表达为C00000。如下图所示

    通道0(紫色):DRDY信号

    通道1(蓝色):1st输出

    通道2(绿色):2st输出

    通道3(黄色):3st输出

    通道4(橘色):SPI_CLK信号

    但是现在由于第二第三片的输出数据前保持高电平的时间不固定(如下图中红色方框的部分),该高电平脉宽会随着数据传输的时间增加越来越小,导致一定情况下就没有这个高电平了,进一步的导致了我的状态位高四位1100消失了,并且状态位消失会导致该片的数据全都发生错误。

    通道0(紫色):DRDY信号

    通道1(蓝色):1st输出

    通道2(绿色):2st输出

    通道3(黄色):3st输出

    通道4(橘色):SPI_CLK信号

      3.而对于第一片输出:也就是通道0的蓝色的波形,这个高电平的保持时间基本与DRDY一致,没出现随时间变化的情况。并且总DOUT的长度是一个SCLK周期

      4.现在我主要是想知道这个高电平存在的原因,并且为什么它的脉宽为什么会随时间变化?这种随时间变化的情况为什么只发生在菊链上后面串联的片上,第一片为什么没有影响?

  • 1.首先上述图中紫色的是DRDY信号,蓝色是菊花链上第一片输出,绿色是第二片输出,黄色是第三片的输出,串联遵循黄色→绿色→蓝色。

    是3片ADS1299的什么输出,为什么都是一个脉冲信号?

    但是现在由于第二第三片的输出数据前保持高电平的时间不固定(如下图中红色方框的部分),该高电平脉宽会随着数据传输的时间增加越来越小,导致一定情况下就没有这个高电平了,进一步的导致了我的状态位高四位1100消失了,并且状态位消失会导致该片的数据全都发生错误。

    红色框内这个时间段您是否启动了AD转换,因为我没看到DRDY信号,我理解您这里没有启动AD转换,我不知道您为什么要看这个时间段的DOUT输出?

      3.而对于第一片输出:也就是通道0的蓝色的波形,这个高电平的保持时间基本与DRDY一致,没出现随时间变化的情况。并且总DOUT的长度是一个SCLK周期

    这个高电平根据您前面的描述是输出格式中的1100的前2bits 是吗?因为它是2bits 1,所以高电平时间是2个SCLK周期。

      4.现在我主要是想知道这个高电平存在的原因,并且为什么它的脉宽为什么会随时间变化?这种随时间变化的情况为什么只发生在菊链上后面串联的片上,第一片为什么没有影响?

    您的意思是输出的1100这4位,前两位高电平时间不是2个SCLK周期了是吗?此时对应的SCLK周期是否变化了?因为DOUT随SCLK上升沿输出。

    这里建议您同时抓 DRDY、CS、SCLK和DOUT的波形,DRDY在SCLK的第一个下降沿变高。