As we know, the waveforms of the I2C signals (SDA and SCL) are very similar to the following:
The main requirement is that during the transmission of a byte, the SDA does not transition while SCL is high. In fact, in that case a STOP condition arises 2. The SCL is driven by the master so how can the slave asynchronously drive the SDA? Does it have an internal PLL to produce a faster internal clock (I am thinking a clock frequency twice the SDA frequency), or can the slave just switch SDA at the falling edge of SCL?