XiangJun,
Thank you for your response.
Some more system information I overlooked mentioning:
1) We're using MQX, and soon will be forced into FreeRTOS with KSDK 2.0.
2) It is our desire to run the DSPI at 1-10 MB.
I've been through all the examples, and the hardware reference manual (K64P144M120SF5RM.pdf, rev 2).
I'm aware of the polling method, but without putting a OS sleep between polls other tasks are blocked.
For that sleep, the OSs have a 5ms tick, which limits the sleep time.
Since our application is m2m, we're implementing a protocol similar to a SPI EEPROM for read and write access.
In our case, when generating a response sleeping for that long would miss the rest of the packet without causing the master to insert pauses between sections.
As to DSPI_DRV_EdmaSlaveGetTransferStatus(), that only returns byte count, and kStatus_DSPI_Busy or kStatus_DSPI_Success.
Nothing indicates the state of the chip select (PCS0/SS), or if it had been released.
Looking at the reference manual, chapter 50:
Section 50.1.2 PCS0/SS—Peripheral Chip Select/Slave Select only states:
"Slave mode: Slave Select (I)—Selects the module to receive data transmitted from an SPI master."
There is no explanation, but from it's behavior it seems to only gate the clock to the shift register.
Sections 50.3.5 and 50.3.6 do not seem to show a hardware indication of the current state of /SS.
I was hoping that someone more familiar with the hardware knew a work around.
Without hardware to test the state of the chip select, yes, polling might be the only way around it; watching for the byte count to stop increasing.
Thanks again,
Steve