I2C vs I3C Protocol: Differences and Similarities
The I2C bus
I2C (Inter-Integrated Circuit) is an on-board communication protocol that is ideal for short distances and low bandwidth. It has a master-slave architecture in which all slaves are connected to the master via two lines: the serial data line (SDA) and the serial clock line (SCL). I2C is typically used to connect lower speed peripherals, such as sensors to processors and microcontrollers over short distances, within an integrated circuit.
The I2C protocol defines how data is sent. Initially, the master issues a start condition followed by the address of the slave device with which it is communicating. Once the appropriate slave has identified its address, it searches for the progressive read / write flag issued by the master. This flag tells the slave if it can receive data or send data. As soon as the slave has confirmed the master, communication continues.
A feature of I2C is the built-in test system: each byte of data is acknowledged by the receiver with either ACK or NAK to signal the sender whether the data has been received or not. As soon as the master has finished communicating with the addressed slave, it issues a stop condition to signal the end of the transmission. After the stop condition, communication with other slave devices can begin.
The I3C bus
(Improved Inter Integrated Circuit) is also known as MIPI I3C and SenseWire. I3C is the new industry standard for serial multidrop data buses. I3C was released in 2016 in collaboration between electronics and computer companies with the Mobile Industry Processor Interface Alliance (MIPI Alliance). I3C adds a considerable number of system interface functions while maintaining upward compatibility with existing I²C slave devices, while native I3C devices support higher data rates similar to SPI (Serial Peripheral Interface). With I3C, one or more master devices can be connected to one or more slaves via the bus. Prodigy Technovations is one of the first manufacturers to offer an I3C protocol analyzer for this purpose.
I2C vs I3C protocol analyzers: differences and similarities
I3C the evolution of I²C. I3C was originally intended as the only interface for all digitally connected sensors used in a mobile application. The bus is also suitable for all medium and high speed embedded applications, including sensors, power controllers, actuators, MCUs and FPGAs. I3C builds on and enhances the features and benefits of I2C, while maintaining backward compatibility. The interface is useful for many applications because it provides high-speed data transmission at very low power levels while allowing multi-drop between the host processor and the peripherals, which is highly desirable for any embedded system.
I2C vs. I3C: Where are the differences?
• Energy-saving and space-saving design for mobile devices (smartphones and IoT devices).
• Two-pole interface, which is a superset of the I2C standard. Older I2C slave devices can be connected to the newer bus.
• In-band interrupts over the serial bus instead of requiring separate pins.
• Standard Data Rate (SDR) throughput of up to 12.5 Mbps when using CMOS I / O levels
• HDR (High Data Rate) modes provide SPI-comparable throughput, but only require a fraction of the I2C fast-mode performance.
• A standardized set of common command codes
• Support for command queues
• Error detection and recovery (parity check in SDR mode and 5-bit CRC for HDR modes)
• Dynamic Address Assignment (DAA) for I3C slaves, but still supports static addresses for older I2C devices
• Hot-Join (some devices on the bus can be turned on and off during operation)
• Multi-master operation with clearly defined transfer
• Four different device classes can be supported on an I3C bus in standard mode (SDR)
Protocol analyzers for I2C and I3C
There are several protocol analyzers on the market. Some are specific to one protocol, while others support multiple protocols.
There are only a few functional differences between most I2C and SPI analyzers. You can have implementation differences such as header types, pin counts, or voltage / current tolerances, and these differences are evident in the manufacturers' designs.
Most analyzers provide GUI software for reading the communication detected on the bus. Protocol analyzers typically decrypt protocol control signals and data as opposed to a standard logic analyzer that only displays signals and timing diagrams.
Not all software is the same. The ability to view data in real time, start and stop captures, save and share captures, and search and filter captures is not always available in all log analysis software. For added flexibility and use, some protocol analyzers are equipped with a software API that allows the user to create a custom tool for their specific needs.
Understanding the similarities and differences between protocol analyzers is important and can make all the difference between a previous completion and a missed deadline.
Compatibility of protocol analyzers and programmers between I2C and I3C
Because I3C is backward compatible, an I2C host adapter can be used for programming. The Aardvark from Total Phase, which comes with matching Flash software, is ideal for this. For debugging I2C, the Beagle I2C / SPI is the right choice, as it has implemented internal memory that can store traffic to the bus and display it in real time. However, debugging I3C requires an I3C protocol analyzer because of the higher speeds. One of the few I3C analyzers available on the market is produced by Prodigy and offered here in our webshop. Prodigy's PGY-I3C-EX-ED can be configured as a master or slave, generate I3C traffic with error injection, and decode I3C protocol packets.
Price on request
When purchasing a protocol analyzer or programmer, consider its operating system compatibility, USB options, and price. Investigate to get exactly what you need and know what you are buying. Considering all available options, not only can you save money, but also maximize your work performance - you, your team and your projects can make the most of it!