I want to know that is it possible that a Slave I2C device which is a 32-bit MCU, for example STM32F407, I write its I2C data send function and send data through it after every 1 sec? I am asking this because my understanding is that I2C is a command-response protocol. A salve will not send data unless it will receive a command to do so. So for the case of fixed I2C based sensor chips this logic or protocol is embedded in the chip silicon. It's state machine will not send data unless it gets a command first.
But in the case of an MCU in which I2C is a peripheral and it is configurable and programmable.. will it be possible to call the I2C_Data_Send() library function in my test program that will send for example 1-byte of test data over and over again?
So essentially what I want to know is that when an I2C Slave is a peripheral in an MCU then does its SEND and RECEIVE digital logics are implemented independent from each other in the hardware or they are logically tied together? If it's the later case then obviously I will not be able to invoke the SEND_DATA logic without first receiving the COMMAND from a I2C Master. But if its the first case and SEND and RECEIVE logics are independent then I can start an I2C_SEND_DATA() case anytime from my firmware (specially at the time of testing the setup to see if my data sending logic is working or not).
Overall I will have single Slave device (an I2C MCU) and no Master. I want to see if I can make to to send data without any master giving it a command or ACK/NACK or START/STOP signal. I will be looking at the output on an oscilloscope by pulling-up the SCL, SDA lines of the Slave device.