AnsweredAssumed Answered

I2S hangup with SPI

Question asked by RANDY LEE on Nov 7, 2018
Latest reply on Nov 12, 2018 by RANDY LEE

I'm using a K22FN512 running at 60MHz. I've got SPI memory @ 8MHz and mastering an I2S bus at 11025 sample rate stereo (356KHz).

 

I2S is running in transfer mode according to the tools.

 

Using SDK 2.4.1 (I think) and FreeRTOS 10 with one thread talking to both these things.  All transfers are being done with async (non-blocking) calls like SAI_TransferSendNonBlocking() and DSPI_MasterTransferNonBlocking()

 

What I'm seeing is that the I2S get's a FIFO underrun and data goes idle during any SPI transfer (which is like 2KB long)

 

I'm assuming that both of these are interrupt mode transfers in the SDK which, on an a 60MHz CPU, should be no problem to interleave these ISRs but it's like the SPI transfer is swamping the thing and it hasn't got any time to deal with the I2S at all. 

 

Any thoughts?

Outcomes