24.3 I2C System Overview
The I2C module contains an independent I2C host logic and an I2C client logic, which generates interrupts based on their events. In the multi-host systems, the user software is simply partitioned into the host controller and the client controller.
When the I2C host logic is active, the client logic also remains active, detecting the state of the bus and potentially receiving messages from itself in a single-host system or from the other hosts in a multi-host system. No messages are lost during the multi-host bus arbitration.
In a multi-host system, the bus collision conflicts with the other hosts in the system when detected, and the module provides a method to terminate and then restart the message.
The I2C module contains a Baud Rate Generator (BRG). The I2C BRG does not consume other timer resources in the device. Figure 24-4 illustrates the I2C module block diagram.