I'm new to I2C and need a basic understanding of its core functionalities. Can you tell me the primary function of the I2C bus, how many bus lines it requires, what 'clock stretching' is and why it's used, what a 'repeated START condition' is and its purpose, and finally, the main characteristic of 'multi-master' communication?
Navigate to 'https://www.i2c-bus.org/'. From the homepage, identify the primary function of the I2C bus and the number of bus lines required. Click the 'Clock Stretching' link in the left-hand navigation menu. From the 'Clock Stretching' page, explain what clock stretching is and its purpose. Click the 'Repeated Start Condition' link in the left-hand navigation menu. From the 'Repeated Start Condition' page, explain what a repeated START condition is and its purpose. Click the 'MultiMaster' link in the left-hand navigation menu. From the 'MultiMaster' page, identify the main characteristic of multi-master communication. Synthesize all collected information into a concise answer.
The primary function of the I2C bus is stated as allowing 'easy communication between components which reside on the same circuit board' or similar. The number of bus lines required is stated as 'Only two bus lines'. Clock stretching is explained as a mechanism where a slave device can hold the SCL (clock) line low to temporarily halt the master's clock, typically to process data before continuing communication. A repeated START condition is described as a START condition generated by the master without a preceding STOP condition, allowing the master to retain control of the bus and communicate with multiple slaves or perform multiple operations without releasing the bus. The main characteristic of multi-master communication is stated as 'arbitration and collision detection' or that 'multiple masters can coexist on the same bus and can initiate data transfers'.