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.

ADS1282: Trouble getting data from part

Part Number: ADS1282

Yes, I'm using the ADS1282EVM board, but not the DSP board that it mounts on. I've got my own PCB I've mounted it on.

My question is about getting data out of the ADC. I've been using the info in the data sheet for the ADS1282
My plan is to get data using the "Read Data by Command" approach outlined in section 9.26.2 of the datasheet. I think I'm doing something wrong. After 2 reads, the DRDY seems to stop toggling.
Here are the steps I'm taking
  1. Toggle /Reset line low briefly to reset chip
  2. <using default values in the CONFIG registers>
  3. Send "OPCODE_SDATAC" command to stop continuous mode
  4. Set SYNC pin to logic high
  5. Send "OPCODE_RDATA"
  6. Wait for nDRDY pin to go low indicating new data
  7. Read 4 bytes of data, 1 byte at a time
  8. Send "OPCODE_RDATA"
  9. Jump back to step 6 and repeat forever
I'm sure there are errors in my sequence of steps. Can you please help me out?
Ultimately, I want to use the ADC in continuous sampling mode and just interrupt the MCU with the DRDY pin, but I wan to get this working first.
  • Hi Stephen,

    In general, if DRDY stops toggling then the ADS1282 isn't converting or waiting for data to settle. In the case of the SYNC pin, I imagine the digital filters might be resetting and you'd have to wait longer than you anticipate. But in general, I don't see issue with your start up sequence.

    Otherwise, you need to make sure MCLK is still present, the device is not in the STANDBY state (double checking if you're sending the command you think you are sending), or maybe the device doesn't have power (or is continually resetting). A lot of these are basic checks but its really difficult to have the device to stop converting so you might need to check them to make sure something strange isn't occurring in the middle of your initializing sequence.

    Here's some good posts on SYNC: https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/1012665/sync-pulse-in-pulse-sync-mode---rdatac/3742491#3742491

    https://e2e.ti.com/support/data-converters-group/data-converters/f/data-converters-forum/968493/ads1282-ht-is-it-possible-to-run-the-ads1282-in-continuous-sync-mode-using-sync-command-sync-tied-hi/3577709?tisearch=e2e-sitesearch&keymatch=ads1282%20continuous-sync%20mode#3577709 

    Best,

    -Cole

  • Hi Cole, thanks for your response and links. They were indeed informative. Based on info in the 2nd link I'm changing my approach as I have three of these ADCs I need to sample simultaneously and the are using buffered copies of the same clock.

    My new approach is to use Pulse-Sync mode, and Read Data Continuous. However, I get a similar result: the DRDY line goes low only once before just staying high. These are default settings in the ADC, so no commands are necessary (right?). My set of steps is now:

    1. Power up
    2. Toggle /reset pin
    3. Set SYNC pin high
    4. wait for DRDY to go low...
    5. clock out 32 bits at 1.25 MHz 
    6. back to step 4

    As I said above, I can get one 32 bit word of data, and DRDY never goes low again.

    Per your suggestions I have checked that MCLK is still good (its generated on the ADS1282EVM board), /reset  and /pwdn are high, as required.

    Any ideas?

  • Hi Stephen,

    Glad you got some use out of them.

    Hmmm, yes, the steps seem fine. I don't think there's anything obvious and not fundamental to recommend. Could it be possible that the program is missing the DRDY? Can we probe with an oscilloscope or logic analyzer to verify that DRDY actually stopped toggling? Because I assume step 4 is the one we're stuck on. 

    I'd be interested to see some of your commands on a logic analyzer.

    Best,

    -Cole

    Edit: Its a bit basic but there's some "troubleshoot the communication protocol" collateral that may or may not help depending if the something with communication isn't going correctly

  • Hi Cole,

    I received an update form the customer. Kindly see details below:

    They are able to figure out the issue to some degree but still needed further help.

    Their board with 3 ADS1282 are all getting copies of the same clock, SYNC, /PDWN and /RESET signals.

    When all is set up, they are able to see the DRDY line toggling, usually stopping after a short period of < 1 sec). However, there are instances (~1 out of 6 times) that it will start to run continuously, but the others won't. 

    The customer describes this as "like starting a lawn mower, where you need to pull the cord a few times before the engine starts and stays running".

    Below is their ADC set the up:

    1) Set /PWDN high
    2) Set SYNC pin low
    3) Reset ADCs by toggling /RESET
    4) Set SYNC pin high
    5) Enter a while loop that waits for /DRDY to go low, then clock the data out.

    Do they need some wait statements? Is it some clock-edge alignment issue?

    I hope you can help further.

    Regards,

    Marvin

  • Hi Marvin,

    Without any data I'm not sure I can say. I'd really like to see SYNC, SCLK, DOUT, CLK, DRDY, and DIN on a logic analyzer for a good and bad start up.

    I assume they already have appropriate wait times after RESET. I would maybe even implement a check between step 3 and 4 to make sure the ADC is converting (checking DRDY) before SYNC is toggled high for the first time. Maybe just as a debug step for now. 

    Knowing now that all of the power up signals are tied, I would look into transient current at start up and take a look at the POR criteria. It would be really interesting if some of the ADCs are not powering up correctly, which could explain why sometimes it doesn't work at start up.

    Best,

    -Cole