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的数据时出现问题

Guru**** 2555630 points
Other Parts Discussed in Thread: ADS1299, ADS1299-4, ADS1299-6

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/612237/problem-reading-data-with-ads1299-in-daisy-chain

主题中讨论的其他器件:ADS1299ADS1299-4ADS1299-6

大家好。

 我使用三个 ADS1299EEG 评估板和一个 STM32F4 Discovery 板构建了该系统。 我将三个 ADS1299配置为菊花链模式。 三个 ADS1299共享相同的/CS、DIN、SCLK、CLK 和电源信号。 第二个和第三个 ADS1299s'/DRDY 悬空、不连接任何引脚。 第一个 ADS1299的/DRDY 信号作为外部中断输入连接到 STM32。 第二个 ADS1299的 DOUT 引脚连接到第一个菊花链、第三个 ADS1299的 DOUT 连接到第二个 ADS1299的第二个菊花链。 第三个 ADS1299的 DAISI-IN 引脚连接到 GND。

 现在、我可以写入和读取第一个 ADS1299的寄存器、并在数据转换开始时正确触发/DRDY 引脚。 但是、我从 ADS1299读取的数据是0xFF、并且数据后面有一个长的"尾"。 如下所示。  

 第一张图片是第一张 ADS1299的 SCLK 和 DOUT、上面是 DOUT、下面是 SCLK。 第二 幅至第四幅图片是三幅 ADS1299的/DRDY 引脚。 我认为三个 ADS1299的/DRDY 引脚是同步的。 但数据是错误的。 任何人以前都遇到过这种情况。 请帮帮我、非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Shunan、

    感谢您的提问。

    首先、我有几个我自己的问题、以了解您如何使用该器件:

    1. 您如何在器件之间共享 CLK 信号?
    2. 每个 ADS1299的完整寄存器设置是什么?

    假设器件已同步并配置为相同的数据速率、则只需监控第一个 ADS1299的/DRDY 引脚。 /DRDY 将在第一个 SCLK 下降沿后转换为高电平、并在下一个采样准备就绪后保持高电平。

    DOUT 上的放电"尾"可能是通过将/CS 恢复为高电平并禁用 ADS1299接口来解释的。 发生这种情况时、DOUT 引脚会变为高阻抗状态、任何剩余电压都可能通过电路板上的低阻抗路径或通过示波器探头中的电容进行放电。 我认为这还不是一个问题的迹象。

    此致、

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Ryan、感谢您的回复。 你人真是太好了。

    首先我回答问题:1. 如前所述、我使用三个 ADS1299EEG 子板来构成系统。 因此、我使用第一块 ADS1299EEG 板的外部时钟与三块 ADS1299共享。

     2.我的完整寄存器设置如下所示。

    uint8_t ADS1299Reg_Continuous_setting[24]=

    0x3E、//器件 ID

    0x96、//config1
    0XC0、//CONFIG2
    0XE0、//CONFIG3
    0x00、//LOFF

    0x00、//CH1SET;
    0x00、//CH2SET;
    0x00、//CH3SET;
    0x00、//CH4SET;
    0x00、//CH5SET;
    0x00、//CH6SET;
    0x00、//CH7SET;
    0x00、//CH8SET;
    0x00、//BIAS_SENSP
    0x00、//BIAS_SENSN
    0x00、//LOFF_SENSP
    0x00、//LOFF_SENSN
    0x00、//LOFF_FLIP

    0x00、//LOFF_STATP
    0x00、//LOFF_缎 面

    0x00、//GPIO
    0x00、//MIPSC1
    0x00、//MIPSC2
    0x00、//CONFIG4

    };

    系统作为菊花链和连续模式工作。

     现在我已经取得了一些进展。 我可以读取板上的第一个和第二个 ADS1299。 但第三个 ADS1299数据仍为0xff。 我阅读了有关菊花链的手册。 在第10.1.4.2节中、可以看到:"ADS1299可与第二个 ADS1299、ADS1299-6或 ADS1299-4以菊花链形式连接。" 因此、我想知道一个菊花链中可以有多少个 ADS1299。 只有两个? 我不相信。 但为什么我只能读取菊花链中的两个 ads1299? 我使用一个 ADS1299EEG 母板为三个 ADS1299供电。 是因为电源不足?  

     希望能得到您的帮助、非常感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Shunan、

    出于好奇、您的问题是否与此主题相关: e2e.ti.com/.../612447?问题非常相似、所以我想知道您是否与 Ming 合作。

    正如我在该线程中解释的那样、可以进行菊花链的器件数量取决于数据速率、SCLK 频率和需要读取的位数。 我不认为共享电源轨会有问题。 您可以通过探测所有三个器件的模拟和数字电源引脚以及/DRDY 引脚来验证这一点。 这应确认所有电源轨是否正确以及所有器件是否正常转换。 如果您使用相同的 CLK 源并将器件的转换与 START 引脚同步、则/DRDY 脉冲也将同步。

    您共享的寄存器设置看起来不错。 您是否将板载 OSC1 (2.048MHz)用于全部三个 ADS1299器件?

    此致、