This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

I2C Auto suspend / resume

Hi, I have an inter-processor communication using I2C working well with the NRF51, the NRF51 performs a read as a master from the other micro ( slave ) which returns a packet with a minimum length of 2 bytes where the first byte is the packet length, if 0 then the packet data is null, the second byte is there to allow the master to terminate the transaction cleanly with a NAK if there is nothing to transfer. I'm now considering moving to the NRF52 but the I2C interface now uses EasyDMA meaning that you need to know the packet length prior to initiating the transfer. What I would like to do is transfer 1 byte then suspend, let SW check the byte and configure the actual length of the transfer remaining before resuming. It appears that this might not be possible in which case the NRF52 is not a viable upgrade path, it's very unclear from the data sheets how to cause the suspend event and if the transfer can be resumed with new parameters, if not then it just won't work. Any help appreciated.

Related