Hi,
I'm developing on this setup:
- nRF52833 DK, emulating an nRF52820.
- Soft Device 113 version 7.2.0
- SDK 17.1.0, with updated MDK (see link)
- IAR EW ARM 9.30
I need to get an event on the CS falling edge, with the nRF configured as a SPI Slave. I'm able to configure the GPIOTE interrupt but I believe this is messing up with the SPI peripheral event handling, because I stop getting the NRF_DRV_SPIS_XFER_DONE event after that. I read somewhere (I can't seem to find it now) that the SPIS module uses the GPIOTE to monitor the CS falling edge and start the transaction, which could explain why this doesn't work.
The way we setup the protocol, we expect for the CS falling edge to call nrf_drv_spis_buffers_set and load the highest priority message at that point in time. We have a different GPIO line to signal that data is ready, so the master lowers CS, nRF calls nrf_drv_spis_buffers_set and raises the other signal and then the master starts the transaction.
It'd be great if there was a way to get an event for the CS falling edge without messing with the SPI peripheral. Or a way to send a "fake" event to the SPI, so that my GPIOTE interrupt handles the falling edge and forwards it to the other module. Is this possible? Can I generate a fake CS falling edge from software?
Thank you and happy holidays!