TI论坛
直播中

陈韵瑄

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

如何读取ADS1299菊花链数据?


  • 我已经使用一片ADS1299读取数据并制作了一块采集板。现在打算制作多导的脑电采集设备。
    帖子分为两部分,一个是我做的多片级联关键点,作为记录。另一个是我的一些疑问。
    以下是总结的关键点:
    1.  有两种:1级联模式,2菊花链模式(级联更像并联,菊花链更像串联模式),若使用菊花链模式要设置好CONFIG1寄存器中设置DAISY EN位,菊花链模式只需要一个CS引脚,级联模式几片1299用几个CS脚,菊花链模式下不能使用多回读模式(multiple readback feature)。菊花链和级联除了通信风格和使用 GPIO 的数量之外,没有真正的差异。

  • 2.  必须使用同一时钟:1都使用外部时钟,2第一片使用内部时钟,并且将内部时钟输出,第二篇使用外部时钟为第一片输入的时钟,确保两种时钟一样。要保证clksel引脚配置正确并且config1寄存机clk_en位配置正确。但是一个ADS1299时钟只能驱动2-3个器件,如需更多,需增加http://www.ti.com/clocks-timing/buffers/products.html时钟缓冲器产品。LMK00101可以驱动10个,LMK00105驱动5个。
    3.  只保留第一个drdy引脚,后面的都浮空,因为时钟一样,drdy信号也一样。
    4.  菊花链模式所有ADS1299的配置都会配置成一样,并且只能读第一片ADS1299寄存器配置,菊花链必须统一使用外部时钟。级联模式可以分别配置不同ADS1299。
    5.  多片bias引脚连接如下图(将BIASINV连接在一起,并且只留一个bias放大器电源,其他电源全部关闭。):

  • 6.    SPI 5Mhz的sck时钟速率可以驱动26片1ksps采样率的ADS1299的通讯。(5*1000*1000)/(1000*8*24+24)=26
    7.    可以两种模式结合起来用。级联模式下配置和读取每片ADS1299的寄存机。然后使用菊花链模式读取采集到的数据。
    8.    在菊花链模式下,如果电路板级传播延迟过大,就需要在DOUT和DAISYIN中间延迟电路或D触发器,通过缩短两个引脚的距离可以避免。



    以上是我查到的一些总结和关键点,如果有问题和错误请告诉我,我的疑问主要有以下3点:
    1.    当我使用使用8片ADS1299菊花链模式时,采样率设置1000sps,所以我应该是1ms进一次中断,我是将这8个ADS的寄存器看成一个,进一次中断读一次呢?还是要去分别读8次?比如读一个ADS1299的寄存器采集的数据有27位,那么我SPI在进中断时是不是应该一次读取216位的数据?
    2.当我使用级联模式,将8片ADS1299共同使用时,1ms进一次中断,我是否应该在这1ms内将8片的CS依次选中来轮流读取数据,这样做是否会消耗大量MCU的资源?
    3.当我使用菊花链模式时,DAISY和DOUT引脚之间需要做什么特殊处理吗?我看到有些说要使用下拉电阻?

回帖(3)

王明钊

2024-12-4 16:06:58
当使用菊花链模式时,DAISY和DOUT引脚之间不需要做什么特殊处理。菊花链中的所有ADS1299(在第一个ADS1299之后)必须将其DOUT pin连接到其前面的DAISY_IN pin。菊花链中的最后一个ADS1299应将DAISY_IN pin接地。
举报

魏红

2024-12-4 16:07:06
1.    当使用菊花链模式时,将看成一个设备,一次读完所有样本数据。
2.当使用级联模式,一次中断,需要将8片的CS依次选中来轮流读取数据。
举报

杨福林

2024-12-4 17:56:30
要读取ADS1299菊花链数据,您需要遵循以下步骤:

1. 硬件连接:确保您的多片ADS1299设备已经正确连接,并且每个设备的CS引脚都连接到主控制器的相应引脚。在菊花链模式下,只需要一个CS引脚。

2. 配置寄存器:在CONFIG1寄存器中设置DAISY EN位,以启用菊花链模式。这将允许数据在各个设备之间传输。

3. 初始化SPI通信:配置您的主控制器的SPI接口,以便与ADS1299设备进行通信。设置适当的时钟速度、CPOL和CPHA值。

4. 发送命令:通过SPI发送命令以配置ADS1299设备。例如,您可以发送“WREG”命令来写入寄存器,或者发送“RREG”命令来读取寄存器。

5. 读取数据:在菊花链模式下,您需要逐个读取每个设备的数据。首先,发送“RDATAC”命令以开始读取数据。然后,逐个读取每个设备的数据。在读取每个设备的数据时,您需要发送“RDATA”命令。

6. 处理数据:将从每个设备读取的数据转换为实际的模拟值。您可以参考ADS1299的数据手册以了解如何进行这种转换。

7. 循环读取:在您的应用程序中,您可以创建一个循环,以便定期读取数据。这将允许您实时监控脑电信号。

关于您的疑问:

1. 菊花链和级联模式的主要区别在于通信风格和使用的GPIO数量。在菊花链模式下,只需要一个CS引脚,而在级联模式下,每个设备都需要一个CS引脚。

2. 菊花链模式下不能使用多回读模式(multiple readback feature),因为数据在各个设备之间传输,而不是从单个设备读取多个寄存器。

3. 除了通信风格和使用的GPIO数量之外,菊花链和级联模式之间没有真正的差异。它们都可以用于实现多导脑电采集设备。
举报

更多回帖

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