I am working on Ti's EK-TM4C1294XL which is basically a Arm Cortex M4 evaluation board. I was going through I2C bus of the same and have the following question regarding the I2C bus.
I understand I2C support multi master multi slave configuration. So when we want to send data from a particular master to a particular slave we write first the slave address on the bus from that master and after receiving the Ack transmits the data to that slave.
So in the same situation i want to receive data from a particular slave to a particular master but can the slave start the communication? Like suppose slave is a ADC and once the conversion is done send the converted data to a particular master. Is this possible in I2C?
In I2C a master always initiates communication with a slave, even if it is only for a slave to send data. The first byte after a start condition will contain a 7-bit address and one bit indicating if it is a write or read. If a slave is of a type that may have an asynchronous event (i.e. an ADC running continuous conversions), typically I would expect to see a signal separate from the I2C bus (an attention signal, interrupt signal, or if your I2C device is actually an SMBus device, SMBALERT#) that would change state to indicate that an event has occurred and the master should query that device.