The CM-I2C bus provides bidirectional data transfer through a two-wire design; a serial data line (SDA) and a serial clock line (SCL); and interfaces to external I2C devices such as serial memory (RAMs and ROMs), networking devices, LCDs, tone generators, and so on. The CM-I2C bus can also be used for system testing and diagnostic purposes in product development and manufacturing.
The CM-I2C modules support the following features:
- Devices on the CM-I2C bus can be designated as either a master or a slave.
- Support both transmitting and receiving data as either a master or a slave
- Support simultaneous master and slave operation
- Four CM-I2C modes:
- Master transmit
- Master receive
- Slave transmit
- Slave receive
- Receive FIFO and Transmitter FIFO (8 deep × 8 bits FIFO)
- FIFOs can be independently assigned to master or slave
- Three transmission speeds:
- Standard (100 kbps)
- Fast mode (400 kbps)
- Fast-mode plus (1 Mbps)
- Glitch suppression
- SMBus support through software
- Clock low time-out interrupt
- Dual slave address capability
- Quick command capability
- Master and slave interrupt generation
- Master generates interrupts when a transmit or receive operation completes (or aborts because of an error)
- Slave generates interrupts when data has been transferred or requested by a master or when a START or STOP condition is detected
- Master with arbitration and clock synchronization, multiple-master support, and 7-bit addressing mode
- Efficient transfers using a Micro Direct Memory Access (µDMA) Controller
- Separate channels for transmit and receive
- Ability to execute single data transfers or burst data transfers using the RX and TX FIFOs in the CM-I2C
Figure 7-104 shows the CM-I2C block diagram.