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.

ADS1278: ADCPro crashes and get undersized data

Part Number: ADS1278
Other Parts Discussed in Thread: ADCPRO, ADS1274

Hi,

I used ADS1278 and ADS1278 EVM-PDK to continuously acquire data with ADCPro.

This is my parameter :

Channel Enable: CH7 (just one)

Data Rate: 52.734kSPS

Clock Frequency: 27 MHz

Operating Mode: High-Resolution

Sample: 2048 or 8192

refer to picture below

And  the picture how the software works normally.

In this case, I sometimes get  data of length 8192 ,but sometimes get data of length 0.

There are attach files t_1.txt and t_2.txt as example.t_1.txt t_2.txt

But sometimes ADCPro ran halfway but suddenly didn't work.

ADCPro pops up error dialog, and then it crash.

There are dialog figure:

Can you please help me to solve these problems ? Thank you.

  • Hello,

    Welcome to the TI E2E Community!

    I am not certain why your EVM is giving the error message.  However, if you want to capture 8192 readings, the best way to do this is to use the Acquire button for a single capture, and set the BLOCK SIZE number to 8192 in the MultiChannel Scope window.

    Once the data is collected, you can right click on the waveform, and then select EXPORT -> Export Data To Excel.

    Using the 'Continous mode' will run multiple 512 blocks with gaps between each block of data.

    Regards,
    Keith Nicholas
    Precision ADC Applications

  • Hi, Keith :

    Thanks for your useful solution and information.

    But we want to get more sample data continuously,

    I guess i can only capture one data in this way.

    By the way, ADCPro usually crash when i power reset and reconnect ADS1278 EVM-PDK.

    I found that ADCPro work normally after the ADS1278 EVM-PDK reset after repeated testing.

    I think this is not a correct solution.

    How can i solve this problem ?

    There is an another problem, we need to get data with arduino due with SPI.

    There is a figure about SPI timing :

    But i don't know where is CS pin and what is SPI mode for C_pol and C_pha.

    And how can i set Operating Mode to High-Resolution ?

    Can you please give me suggestion or provide some example arduino code and example breadboard circuit  ?

  • Hello,

    I do not have any suggestions on why ADCpro is not stable.  The software was designed to work on Windows XP/7.  We have recently added driver support for Windows 10, but there may be other bugs depending on your exact Windows configuration.  If possible, try installing the software on a Windows 7 machine.

    The ADS1278 launches data on the falling edge of SCLK.  Typically, the host will then capature data on the rising edge of SCLK.  This corresponds to mode CPOL=0, CPHA=0.  You are correct, there is no chip select line; DOUT is always driven high or low.

    The ADS1278 continuously converts data.  In order to read data, the host processor must monitor DRDY going low, and then issue 24 SCLK's to shift the conversion result out for each channel.  The suggested approach is to monitor DRDY using a processor interrupt, and then clocking the data out of the device.

    Regards,
    Keith

  • Hi, Keith :
    Thanks for your suggestion and solution,
    but i still have some questions after reading documents for ADS1274/ADS1278 and ADS1X7XEVM-PDK.
    I''m sorry for ask so much question cause this is my first contact with ADC and SPI.
    Now, i want to use Arduino DUE for setting ADS1278EVM and getting data from it with SPI format.
    I use ADC just for getting data from eight photodiodes and send data to Arduino.
    Then i can collect the data from Arduino.

    Here is my questions :
    1. What is the difference between CLK and SCLK ?
    I guess CLK should get 27Mhz from Arduino, but this board seems to have a crystal oscillator.
    What must i do with J4.17 and J4.19 pin on ADS1278EVM ?
    Another question is how many frequencies do i have to set at SCLK pin ?
    There are two SCLK on 1278EVM,J4.3(SCLK) and J4.5(CLKR) , which should I choose?

    2. I want to choose high-resolution mode, and set Dout to TDM/Fixed data mode.
    I'm not shure i can get data from J4,13 pin or J2,1 pin on ADS1278EVM.

    3. There are many SYNC pins on ADS1278EVM, but i don't need to chain multiple devices.
    I just need to get data from one ADS1278, so I guess i can ignore these pins, is this right?

    Can you please help me to solve these problems ? Thanks again.

  • Hello,

    1.  CLK is the master clock for the ADS1278, and is usually provided by an external oscillator.  Depending on your output data rate, this clock can range from 100kHz to 27MHz when using SPI mode.  For example, if the ADC is configure in high speed mode, the output data rate will range from 105468 samples per second (CLK=27MHz) down to 390sps (CLK=100kHz).

    SCLK is provided by the host MCU, and is used to clock the data out of the ADC.

    J4.17 can float, and J4.19 can be set high (IOVDD) or low (GND).  There is an on-board oscillator, and it can be selected by setting JP4, JP5 to OFF, or open.  Use J4.3 for SCLK.

    2.  You can use either J4.13 or J2.1.  (J2.1 is the direct connection)  J4.13 is the delayed version of DOUT that is needed to support the maximum data rate of 144khz when using Frame Sync mode (does not apply to SPI).

    3.  You can leave J4.1 floating if you do not need to syncronize multiple ADS1278.  However, I recommend you connect this to your Arduino, since the SYNC also serves as a reset function.  

    Regards,
    Keith

  • Hi, Keith :

    Thanks for your detailed explanation again.

    So i can use on-board oscillator to provide CLK by setting pin J4.19 high and disconnect JP4 and JP5, is that right ?

    And then i just need to set pin J4.3 (SCLK) 27MHz and leave pin J4.17 (CLK) ?

    There is another question.

    For the pin J4.1 (SYNC), how to use this pin for reset ?

    Thank you .

  • Hello,

    So i can use on-board oscillator to provide CLK by setting pin J4.19 high and disconnect JP4 and JP5, is that right ?


    Yes, you are correct.

    And then i just need to set pin J4.3 (SCLK) 27MHz and leave pin J4.17 (CLK) ?


    Yes, J4.3 will be the SCLK supplied by your host MCU.  J4.17 will be left floating.

    Also, for SPI mode, the jumpers on S6 need removed and connected as follows:

    2-3, 5-6, 8-9, 11-12

    The SYNC pin also resets the device. Please refer to the Synchronization section of the datasheet for details.  This line normally stays high, and you pull it low for 1 or more CLK periods.  Using the on-board oscillator of 27MHz, the minimum low time for the pulse will be 38nS.

    Regards,

    Keith

  • Hi, Keith :

    I think i have basic concepts on how to operate it.

    Thank you.

  • Hi, Keith :

    Sorry about that i still can't successfully read the signal using Arduino in SPI mode.

    Can you please provide me example code for Arduino ?

    I need a reference to modify my code.

    Maybe something similar to this question

    Thanks again.

  • Hello,

    I am sorry, but we do not have any example code for this device, including use with Arduino.  The only source code available is included with the ADS1278EVM software, but this is usually not that helpful when trying to get it to work with a specific MCU.

    If you can capture the IO signals, DRDY, DOUT1, SCLK, and CLK using a logic analyzer or scope, I can look at it to see if I can figure out what is wrong.

    Regards,
    Keith

  • Hi, Keith :

    Thanks for your reply.

    Can you please provide this source code? I really need it for reference.

    In addition, i will use an oscilloscope for testing in the near future.

    Thank you a lot for your suggestions and help.

  • Hello,

    The files are included with the software download.  If you installed the software in the default directory you can find it here:

    C:\Program Files (x86)\ADCPro\plugins\evm\ADS1278\source

    The zip folder 'ADS1278EVM LabVIEW source.zip' contains all available source code.  If you navigate to the 'fw' folder inside the zip file, you can find the C source code.

    Regards,
    Keith