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.

Strange issue with SPI via DMA

Other Parts Discussed in Thread: ADS1299

Hi all,

I am currently experiencing a strange issue when using DMA to send / receive data over SPI to / from an ADS1299. I have been working successfully at a clock frequency of 12MHz, but for EMC reasons we would like to alter this, I have found that changing this below about 10MHz results in corrupted data being placed into memory once the DMA is complete which I fail to understand, surely the clock is just a clock an shouldn't effect the data being returned?

If I look at the signal lines on a protocol analyser the output from the ADS1299 looks correct but does not match what I am receiving into memory on my C6748 DSP.

has anyone seen anything similar before?   

EDIT:

Looking at the bytes in my received memory it looks like the 1st byte is not as expected and then the second byte is what the 1st should have been and all subsequent ones are therefore 1 byte out.

  • Hi Graham,

    Please check out below mentioned thread, it might help you out.
    e2e.ti.com/.../418461
  • For anyone else who experiences a similar issue, I eventually traced this down to setting my gpio paramset (which initiated the spi transfer by sending out one byte) to event triggered while the event register bit relating to the gpio was 1, this initiated a byte transfer which postponed everything by 1 byte, if the frequency was above 10MHz there were only 2 - 3 clock pulses sent out and not the full byte.

    I fixed this by clearing the channel bit in the event register before setting the trigger type.