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 - Read By Command



Hello,

I have the same problem, DRDY never went down when I tried to read by command mode.

I kept the default configuration and just sent the stop continuous command then read by command but DRDY never went down.

Here is my commands sequence after power on:

send command 0x11  ( stop data continuous mode)

send command 0x12 (read by command)

and DRDY never goes down.

I checked all timing for SPI and it seems OK. Also, I checked the continuous mode and it seems OK.

When I put a printf statement between the stop and read by command, then DRDY went down and the device seams OK. It looks like the device needs some delay before the read by command, so one of the previous responsed used SYNC command and other used stop command.

Is there a need for some delay before any read by command? If yes, how long?

Regards,

Khaled.

  • Khaled,

    As per timing requirements, there must be minimum of 24/fclk time between any two commands.  So the delay necessary will depend on the speed of fclk.  This is actually a pretty small delay (24us or less depending on your clock.)  If you could send us some more details regarding your clock speed and scope shots of your timing that would be helpful.

    On most of our delta-sigma ADCs the SDATAC command does not fully take affect until after the next conversion is complete.  It may be necessary to wait this additional time before RDATA command will be recognized.  This additional delay should be no longer than the period of the data rate being used.

    Best regards,

    Bob B

  • Hi Bob,

     

    I'm using fclk = 4 Mhz which means a minimum delay of 6 us. I tried that and even I increased the delay to 12 us but I faced the same problem.

     

    The second part of your reply maybe is the reason. My sampling rate is 4000 SPS which means 250 us delay is needed but I think that's long time. Maybe it is a good idea to use what was suggested in old reply as using SYNC command to reset the current conversion and wait for SYNC to complete then use RDATA command.

    But how can I know that the SYNC command is completed?

     

    Regards,

    Khaled.

  • Khaled,

    We will be looking at the timing for this issue in our lab this week.  I will respond with more information once we've looked at this in more detail.

    The SYNC command delay will depend on data rate and digital filter used.  The SYNC resets the modulator and digital filter, and this adds a built in delay.  The delay can be calculated using the information in Table 10.  I suspect the delay is more important than the command and that is what we need to check in our lab.

    Best regards,

    Bob B

  • Khaled,

    I took a look at this in our lab.  This issue revolves around the reset of the digital filter.  Anytime a register write takes place, the digital filter is reset.  Data is not available for a period of time until the filter has settled.  This time delay will depend on which filters are active.  The SINC filter is relatively short in time, but the FIR takes about 64 DRDY periods (64/fsampling rate).  The part defaults to having the FIR active.

    So if you wait 16ms for 4000sps (or 64ms for 1000sps as another example) with the FIR filter active you then can give the RDATA command and you should see DRDY go low.  If you do not wait at least the time necessary for the digital filter to settle, you RDATA command will be ignored.

    You will also see similar issues after a WAKEUP, RESET, or SYNC command as in these cases the digital filter will also be reset.  You do not have to wait after a RREG command as the filter is not reset in this case.

    For further specific timing calculations see Figure 52, Table 10 and Table 24 of the datasheet (SBAS418G.)

    Best regards,

    Bob B

  • Hi Bob,

    I tried your suggestion and my RDATA command is working now. But correct me if i'm wrong, using SYNC before RDATA command needs less waiting time than using register write before RDATA command?

    For SINC filter, fdata = 128K and fclk = 4Mhz : using write register command needs waiting time of 62/128K which is about 484 us

    using SYNC command needs waiting time of 440x1/4Mhz which is about 110 us

    Thank you very much for your support.

    Regards,

    Khaled. 

  • Khaled,

    I'm not sure how you are calculating the numbers.  It appears that you are using the FIR filter case for one (register write) and SINC filter case for the other (SYNC).  So depending on which digital filters are used (as defined in the CONFIG0 register), you use the timing formula from Table 10 if the FIR is active or Table 24 if only the SINC filter is active.

    The SYNC command resets the modulator and digital filter so there is no speed advantage using this method.  If you write to a register (resetting the filter) and then issue the SYNC, you are actually delaying the total time by the length of the time it takes to write or issue the SYNC.

    The important thing to remember here is that any time the digital filter is reset (write register, SYNC, WAKEUP, etc.), data will not be available until the filter has settled.

    Best regards,

    Bob B