The MI2C provides an interface between a microprocessor and an I2C bus. It can be programmed to operate as either a master or a slave device and performs arbitration in master mode to allow it to operate in multi-master systems. In slave mode, it can interrupt the processor when it recognizes its own 7-bit or 10-bit address or the general call address. The MI2C can be used in any applications which use I2C bus devices. These are primarily in the consumer and telecoms market segments. The I2C bus is also used as a board level communications protocol.