I am using two ADS1278 chips in daisy chain fashion (so total 16 channels = 48 bytes) with TMS470R1B1M. I am using SPI with DRDY with SCLK = 9.6 MHz. The ADC is configured for Low Speed mode. So fClk/fData = 2560. So for 9.6 MHz I get an interrupt from DRDY every 266.67 us. I see the DRDY line pulsing low every 266.67 us. On scope I checked that the DRDY stays low for about 10 us before it goes high again.
Once in a while the DRDY goes low and it generates an interrupt and I configure my DMA to fetch data over SPI. Once DRDY goes high, after some time I noticed that the DRDY goes low again sooner than expected (before the next expected 266.67 us). This time the pulse is low for only 200 ns, but this messes up my DMA as the interrupt is triggered again causing DMA to be reconfigured - while it was in middle of a transfer so now I see that my data bytes are messed up. I managed to catch this sporadic DRDY pulse on analog scope. I have attached the screenshot below.
Any idea what could be causing this sporadic DRDY pulse.
Screenshots:
Channel 1 (Yellow waveform at top) is DRDY.
Channel 4 - (Green waveform at bottom) is a testpin which I toggle inside ISR triggered by DRDY.
Good DRDY Pulse:
Sporadic DRDY Pulse: In the zoomed out portion you can see that the green waveform toggles twice within the 266.67 us period.
Also I noticed that the DRDY was inverted for some time at power up - it was low and would pulse high for 10 us after every 266.67 us. You can see this in the first screenshot above (Good DRDY Pulse. It is the top zoomed out portion. After some time it seemed to fix itself. Any idea why it would be doing this?
Pinakin