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.

ADS124S08: Multi-channel continuous read

Part Number: ADS124S08
Other Parts Discussed in Thread: , MSP430FR5994

I have been using the evaluation module ADS124S08EVM to get an understanding of the performance characteristics of the ADC with a load cell.

I have a need to acquire continuous dynamic data [ dc ~ 100 Hz minimum ] from 6 wheat-stone bridge circuits

I have established that I can meet my signal quality goals using a single channel at 400Hz sample rate with the low latency filter and a PGA gain of 128.

What is the best method of acquiring continuous data from multiple channels on the same device?

Using the evaluation module, I can test the performance with a single channel.

How can I use the evaluation module software to read multiple channel data?

Is there a method of doing continuous sequential reads from multiple channels at a prescribed data rate?

or do I have to setup each input channel pair for the multiplexer, followed by a single read,

and then select the next channel pair followed by a single read .....  repeated for each channel.

If I have to do individual single channel reads, how do I perform a loop function using the script editor, so I can repeat the process at the desired acq rate.

The list of commands available within the evaluation software script editor does not provide for looping. 

regards

Tom

  • Hi Tom,

    Welcome to the E2E forum!  There are a couple of issues with using the scripting tool.  First of all we shouldn't have called it 'scripting' as this implies that there is more functionality and control than was designed.  The original intent of the tool was to show a type of pseudo code for setting up registers for various types of sensor measurements.  It was not intended to build a pseudo system and part of the reason why we didn't take this further was due to lack of timing control.  There is no consistency of when the command is issued, communicated through USB, read by the EVM firmware and then acted upon by firmware.  To get the precision of event timing you would need to do something much different than the EVM software can deliver.

    Even if we had included a loop capability, there would be only the sequence of events that could be guaranteed and not the timing between events, so there would be no way to quantify or capture your results in a meaningful way.

    What you could do is to apply another processor to control the ADS124S08 on the ADS124S08EVM.  For example, you could get a EX-TM4C1294XL Launchpad and program the Tiva after modifying the ADS124S08 example code: http://www.ti.com/lit/zip/sbac159

    In this way you could create the sequence desired and send the data out a USB virtual COM port in a loop fashion.  The data can be captured into a text file and processed later.

    On the EVM you would connect all of the labeled signals as shown along the J3 connector.  You would also need to add a shorting jumper to JP1 to disable the Tiva on the EVM and disable the level shifters on the EVM preventing contention.  You would also need to supply power between the EVM and the Launchpad.

    On the EVM inputs, you would also need to make some changes as the input configuration is to show various different sensor input and would require a couple of modifications.

    So, this is a rather intense endeavor and I can give more specific details on how this can be accomplished if you are interested in going this route.

    Best regards,

    Bob B

  • Thank you Bob for your response....

    OK... so I can't do multichannel continuous reads using the EVM software and module as supplied.

    I have a MSP430FR5994 Launchpad board which I wish to use to read and store data to SD card from the ADS124S08 chip.

    My application requirement is to capture continuous data from a six-axis force sensor (Fx,Fy, Fz, Mx, My and Mz).

    If I can collect data from all 6 channels at a rate of at least 200Hz, and the delay between channel reads is constant, I should be OK.

    The ADS124S08 can only read a single channel at a time, so I assume I will have to select each channel individually and do a read, then change to next channel and repeat the process for all 6 channels.

    It is the single read time spec that concerns me.  Please ascertain if I have understood the operation of this device in text below....

    Looking at Table 13 in the ADS124S08 data sheet, Data Conversion Time using the low latency filter with a data rate of 400 sps for a single read will take 2.656 mS.   6 single reads will take approx. 16 mS + whatever overhead is required for channel selection and offset cal etc.  That would yield a 6 channel throughput of less than 62Hz. 

    I would I need to set a data rate of 2000 sps, (0.656mS / single read) to get at least 200 Hz throughput for all 6 channels? 

    Is this correct?  

    regards

    tom

  • Hi Tom,

    Your understanding is correct. To cycle through the mux you would need at least 2000sps with the low latency filter to cycle the mux through 6 input channels at a 200 Hz rate. This would not include any programmable conversion delay or any communication delays.

    To accomplish the task you intend, there are a number of ways to configure the ADS124S08. You could operate the device in single conversion mode and issue a Start command to start conversions for each new mux configuration. This would require that the Start command be issued prior to the start of the conversion.

    I would suggest you instead operate in continuous conversion mode and take a look at Figure 92 on page 71 of the ADS124S08 datasheet. This example shows reading conversion data directly while sending the WREG command for a mux change. When the mux change has completed, the conversion will restart at that point with minimal communication delay. You will need to monitor DRDY, and the best and fastest approach would be to set DRDY as an interrupt.

    Best regards,
    Bob B
  • Thank you Bob.
    I'll give your suggestion a try.