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: daisy chain and cascaded mode together

Part Number: ADS1299

Hi,

I'm doing a project that will use 8 ADS1299 to reach 64 EMG channels. I want to be able to configure each ADS separatelly, so I need cascaded mode, but I want to receive the samples of all ADS1299 like they are just one devide, so I need daisy chain mode.

I'm planning to connect all the ADS1299 in daisy chain configuration but with an independent CS pin to each device. When I want to write to a specific ADS, I just assert the respective CS pin and send the command. When I want to read registers or receive samples, I assert all ADS1299 CS pins, send the command and receive data in daisy chain mode.

It will work or I'm missing something?

  • Hello Mateus,

    Thank you for your post and welcome to our forum!

    It's perfectly fine to combine the two multiple device configurations. Many customers do this for the exact reason that you explained – reading data in a daisy-chain configuration, but customizing register settings for each device in a cascaded configuration.

    The only problem I see is that you will not be able to read the register settings from all 8 devices at once in a daisy-chain configuration. Instead, you will have to read and write the registers from one device at a time with individual /CS signals. The reason is because each device has 24 registers, which adds up to 192 total. The SPI command format only allows for 32 registers:

    RREG = 001r rrrr 000n nnnn.

    “n nnnn” is the number of registers to read minus 1. “1 1111” = 31, so the max is 32 registers.

    Best regards,

  • Hi Ryan, thank you for answering!

    I didn't understand very well why can't I read all registers at once. I thought that if I send the command to read 24 registers asserting all CS pins, all ADS will receive that command and send their 24 registers through the DOUT pin connected to the DAISY IN pin of the the next ADS, and I will read, from the DOUT pin of the last ADS, all the 8*24 registers.

    Best regards

  • Hi Mateus,

    You know what - I think you are correct. I don't know where my brain was on Friday. I made a mistake thinking that you were sending the command as "0x20 0xBF", which I do not believe the device would accept. 

    Of course it makes more sense that you would send 0x20 0x17 to all devices at once. Each device will then load it's respective output shift register with the maximum 24 8-bit register contents. As soon as you finish reading register 17h from the first device, the next SCLK should read the first bit in register 00h of the second device.

    My apologies for causing confusion!

    Best regards,