I have 2 MCUs and I want to connect them together over I2C bus. MCU1 will be Master while MCU2 will be Slave. Only these 2 MCUs are on the bus. This configuration is fixed and I cannot change it.
There are 2 scenarios. In first scenario only MCU1 and MCU2 are on the bus. While in a second scenario there are some additional I2C devices also connected on this shared bus.
My main purpose to connect them as above is to send data from MCU2 (Slave) to MCU1 (Master).
So far what i understand about I2C is that it is a command-response protocol. The master gives command to slaves, and then the slaves respond to this command and send their data to the master. The slaves cannot send their data on their own without receiving the command first.
If the master wants to receive 32 bytes of data from the slave then what command will it send to the slave and then how will the slave assert that it has received the valid command for data send? I think this is called 'block-mode' data transfer.
My slave address is fixed as 0x08.