The I2C bus provides
bidirectional data transfer through a 2-wire design, a serial data line (SDA) and a
serial clock line (SCL), and interfaces to external I2C devices such as
serial memory (RAM and ROM), networking devices, LCDs, tone generators, and so on.
The I2C bus can also be used for system testing and diagnostic purposes
in product development and manufacture.
The I2C module has following features:
- Devices on the I2C bus
can be designated as either a Controller or a Target.
- Supports both transmitting and receiving data as either a Controller or Target.
- Four I2C modes
- Controller-transmit
- Controller-receive
- Target-transmit
- Target-receive
- FIFO support in Controller and
Target modes for receive and transmit data with each location being 8-bits wide
- 7-bit and 10-bit addressing support
- Supported transmission speeds:
- Standard (100 kbps)
- Fast Mode (400 kbps)
- Fast Mode + (1 Mbps)
- Glitch suppression using digital glitch filters
- Multi Target address capability
- Quick command capability
- Support for host notify protocol, alert response protocol, address resolution
protocol addresses
- Independent Controller and Target interrupt generation
- Controller operation with arbitration, clock synchronization, multi-Controller
support
- Hardware support for DMA with
separate channels for transmit and receive