Prepare 2 PPI triggered transmissions using "NRF_DRV_SPI_FLAG_HOLD_XFER" in two different SPI instances

Good morning, 

I' mi trying to improve power saving on a device and it would be great to trigger:

1.an NRF52832 input pin transition triggers a "SPI1 instance" reading

2. an END OF TRANSMISSION event called by "SPI1 instance" triggers a "SPI2 instance" reading

3 an END OF TRANSMISSION INTERRUPT raised by "SPI2 instance" executes the following commands

void spiImuHandler(nrf_drv_spi_evt_t const * p_event, void * p_context)
{
    nrf_drv_spi_xfer(&spiMax, &spiDesc1, NRF_DRV_SPI_FLAG_HOLD_XFER | NRF_DRV_SPI_FLAG_NO_XFER_EVT_HANDLER);
    nrf_drv_spi_xfer(&spiImu, &spiDesc2, NRF_DRV_SPI_FLAG_HOLD_XFER);
}

 in order to prepare the micro for a continuous loop from 1 to 3.

Is this forbidden in some way? I've been trying to just call the two lines of code shown above, but the second instance just stops filling the dedicated buffer. A whole 0s buffer is read.

I hope to have described the problem clearly, thank you.

Parents Reply Children
No Data
Related