I2C slave protocol

Data that comes from the Slave to the Master in response to Master's Wire.requestFrom() instruction is taken care of by the Master just after the request() command.

But if the Master expects data outside of Wire.requstFrom() command, the Master may (must) turn itself into a Slave and jump into the Wire.onReceive() routine to grasp the data. This is my understanding (program written on this understanding works well -- Post#8 ) from which the multi--master setup has emerged.