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.

ADS1194: retrieve data from SPI interface - multiple channels

Part Number: ADS1194

Hello,

I am trying to acquire data from the ADS1194 (by using either RDATA or RDATAC).

After sending the START command and pulled CS down, in order to retrieve the data from all channels, do I need to read the bits as they come  or should I wait 11 bytes to be ready? this is, do I need to send any command inbetween bytes

unsigned char channel1, channe2, channe3, channe4;

channel1 = SPI.Write(0x00);
channel2 = SPI.Write(0x00);
...

or

unsigned char channels[4]

channels = SPI.Write(RDATA);

Another question is: if I want to replace this by RDATAC

1) is it the same as using RDATA in a loop?

2) the variable assigned to the call of RDATAC is automatically updated?

Question 3: The outputed values need to be converted to milivolts, right?

  • Hello xptG53,

    Welcome to our forum and thank you for your post!

    The easiest way to acquire data from the ADS1194 is to place the device in RDATC mode. This means that new data is automatically updated in the output shift register of the ADS1194. New data is indicated by the /DRDY falling edge. Connect /DRDY to an interrupt pin on your MCU and enable the SPI interface each time you detect /DRDY goes low. To read the data, you must bring /CS low and send 24 + n*16 SCLKs. You do not need to send any commands in order to read the data.

    What is the reason you wish to use the RDATA command? The RDATA command is used when the device is placed in "SDATAC" mode. RDATA is intended to read data "on-demand" without necessarily keeping a consistent period. The ADC is still converting continuously, but the output shift register is only updated when the RDATA command is sent.

    For more information on RDATA vs. RDATAC mode, please read pages 36 - 37 of the datasheet.

    The ADC output will be in binary two's complement. These binary values can be converted to volts using the LSB size of the ADC. 1 Code represents (2*VREF) / Gain / 2^16 volts. Please read the Data Format section on page 25 of the datasheet.


    Best Regards,