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.

ADS 1292 interrupt problem

Other Parts Discussed in Thread: ADS1292

Hi,

We are using ADS 1292 in our project. And we have configured it for 250 samples/second and continuous conversion. It's data ready interrupt is connected to MicroController.

So it should generate interrupt at every 4 ms. We ran it for 1 minute and we found that around 15-20 times the interrupt came at the duration of 17-20 ms. And because of that we missed few samples.

Has anyone observed/faced this issue? What could be the possible solution for the same?

Thanks,

Dhaval

  • Following are the values we are using for configuration of ADS 1292:

    Inline image 1

    Thanks,

    Dhaval

  • Dhaval,

    I am moving your post to the correct forum.

  • Hi Dhaval, 

    Thanks for your question.

    Off-hand, I do not see a reason why /DRDY would have inconsistent delays between pulses, ranging from the correct 4 ms period to 17 ms - 20 ms. You mentioned running the device in Continuous Conversion Mode. How are you reading the data: in RDATAC or in RDATA mode?

    I am looking into this further with the designers and should get back to you shortly with a possible explanation.

    Best Regards,

  • Hi Ryan,

    Thanks for your reply.

    We are reading the data in RDATA mode. So, every time /DRDY interrupt comes we are writing 0x12 to ADS 1292. 

    Looking forward to resolution of the same ASAP!!

    Thanks,

    Dhaval

  • Hi Dhaval, 

    I confirmed with the team that /DRDY should continue to pulse at the data rate regardless of whether you are using RDATAC or RDATA mode. Can you clarify how you are measuring the /DRDY periods? The falling edge of /DRDY should consistently measure 4 ms. Depending on when you start sending SCLKs to read the data, the rising edge of /DRDY can vary.

    One theory to explain the delay that you are seeing is that the digital filter is responding to either a transient input or to a pulse on the START pin. If START were to transition from low to high, the first falling edge of /DRDY would occur at 2052*tMOD = 2052*(1/128 kHz) = 16.03 ms (see Table 11 in the datasheet). Are you periodically sending the STOP/START command between RDATA? 

    Also, if the input receives a transient voltage, data will not appear settled until the 4th /DRDY pulse.

    Does it sound like one of these conditions could explain what you are observing? Please feel free to send along a scope capture to help illustrate the problem.

    Best Regards,

  • Hi Ryan,

    Thanks for your reply.

    No, we are not sending START/STOP command between RDATA. We are sending that only at the beginning. We have observed this issue using CRO, but at that time we haven't took the snapshot of the same. And unfortunately we are not able to capture it once again as this is very rare.

    Is there any change required in the configuration of ADS 1292? How can we get rid of this problem?

    Thanks,

    Dhaval

  • Hi Ryan,

    We have performed some more tests for this ADS interrupt problem and would like to share our observations here:

    In Interrupt Service Routine (ISR) of ADS 1292, we have removed all the code except a counter which will increase every time when interrupt comes. And send that counter value over BLE along with the tick counts (1 tick = 0.625 us) for time stamping at every one second. Attached XLS file shows results for 125 (sheet: ADS_interrupt_125) and 250 (ADS_interrupt_250) samples per second. Here you can see that we never get exact 125/250 samples per second as per expectation.

    Now we ran same code with the Function Generator. The Function Generator is configured to generate signal at every 4 ms with duty cycle of 90% i.e pulse remains low for 400 us. The results for the same can be find in the attached XLS, sheet: Function_generator_250. Here we can see that we are getting exactly 250 samples per second per second.


    Please help us to resolve this ASAP.

    5287.Ads_problem_logs.xlsx

  • Hi Dhaval,

    Thank you for the updated information. Clever experiment with the function generator to mimic /DRDY. :)

    The results in the Excel sheet are not as far off as what you mentioned in the first post. For 250 SPS, the worst data points show /DRDY coming at 243 SPS, which translates to 4.12 ms. I do not see where the /DRDY pulse suddenly changes from 4 ms to 17 ms or even 20 ms like you mentioned earlier. 

    What are you using for a clock source? The internal 512 kHz oscillator has a room temp accuracy of +/- 0.5%, but the results you show are off by about 2.8% (243/250). The 125 SPS results are even worse, about 117/125 = 6.4%.

    If you input clock is scaled down from 512 kHz, then the resulting modulator and output data rates will be scaled down as well. But I'm guessing that you used the same clock source with the function generator as well, correct?

    I will continue to look into what else may cause this and provide an update early next week.

    Best Regards,

  • Hi Ryan

    Thanks for your reply.

    May be I haven't explained it properly but I meant that sometimes we have seen that /DRDY comes after 17-20 ms. So if we are using 250 SPS then we miss around 5 samples means 245 SPS.

    Yes, we are using internal oscillator and we have used same clock source with function generator too.

    Please help us to resolve this issue ASAP.

    Thanks,

    Dhaval

  • Hi Dhaval,

    My colleagues told me offline that something was causing the ADS1292 to reset in your system. Now /DRDY is coming at the expected Data Rate.

    I'm glad you were able to solve the issue.

    Best Regards,

  • Yes Ryan. The issue is resolved. 

    Thanks a lot for all your help.