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.

Maximum length of SPI transaction on CC2650

Expert 1340 points
Other Parts Discussed in Thread: CC2650, ADS1298

I have a CC2650DK with which I'm trying to read data from the ADS1298. The ADS1298 requires 27B read on each DRDYb assertion. If I read 15B the SPI function seems to work fine; 20B+ and it locks up my firmware. Is there a limit to how much data the SPI peripheral can transfer? What's the optimal way to stream data from ADS1298 to  CC2650?

  • Hello,

    Are you doing a blocking SPI transaction in a callback (HWI)? This could lead to a lock up.

    For SPI, you can take a look at the SimpleNP example, npi_tl_spi.c, when SPI mode is used.

    I suggest adding the SPI driver to your project (source file), then using the debugger to step through a transaction.

    Best wishes
  • Hi JXS,

    Yes it's a blocking SPI transaction done on ADS1298 DRDYb interrupt. Is it possible to dynamically configure the SPI peripheral to use or not use a callback? For configuring the ADS1298 I'd need to add more code to do the register writes via callback. For the data read the callback is straightforward. Or do I need to open and close the SPI handle in order reconfigure the SPI peripheral to use a callback or not? Also, I plan on using the Sensor Controller in the future. I read somewhere that the SPI peripheral won't work for that and bit banging must be used. If so, if I implement a bit bang routine now without the Sensor Control, would I see this lockup?

    Thanks!