5 min read
MIPI I3C and I3C Basic v1.1.1 – A Conversation with Tim McKee
Ian Smith, MIPI Alliance Technical Content Manager : 21 October 2021
The MIPI I3C® and I3C BasicSM specifications define scalable, medium-speed, utility and control bus interfaces for streamlined, cost-efficient connection of peripheral devices and sensors with application processors. As the broadly welcomed successor to the I2C interface, MIPI I3C and its features can be used to create innovative designs for products including smartphones, wearables and systems in automobiles and server environments.
MIPI Alliance recently released version 1.1.1 of both the MIPI I3C and I3C Basic specifications, so we asked Tim McKee, chair of the MIPI I3C Working Group, to provide an update on what’s new with the interfaces, how they’ve evolved and where the specifications may be headed next.
Q: What are the fundamental benefits of using I3C and I3C Basic versus the use of I2C and SPI interfaces?
For starters, I3C and I3C Basic are faster, require fewer pins and wires, and use less power—to me, that's a powerful combination that makes for a compelling upgrade path.
Smartphones, wearables, IoT (Internet of Things) devices and other mobile-connected products are steadily becoming more advanced and complicated. They're more densely packed with sensors and other components, and application processors and sensor hubs require more advanced interfaces to control and transmit data to and from them. The sensors themselves also are more advanced, collecting more detailed information at ever-faster sampling rates.
These trends have cast more light on the limitations of the previous generation of interfaces. I2C, for example, has a 7-bit fixed address, which does not allow for virtual addressing. I2C and SPI don’t offer support for in-band interrupts, which increases requirements for additional wires and pins.
I3C and I3C Basic were developed specifically to address these types of limitations and pain points while incorporating key attributes of the legacy interfaces. At the same time though, understanding that change doesn't happen overnight, we were careful to maintain backward compatibility with I2C for those who would likely be working with both interfaces for the foreseeable future.
I3C controller connecting to I3C and I2C target devices
Q: How have MIPI I3C and MIPI I3C Basic evolved since they were launched in 2016 and 2018, respectively, and what has driven these changes?
When I3C and I3C Basic were initially released, they delivered a baseline of capabilities needed to integrate mechanical, motion, biometric, environmental and any other type of sensor. But key additional features were still needed to support their usefulness across far-ranging use cases and applications such as memory management, server control and manageability, “always-on” imaging, debug communications, touchscreen and sensor device command, and power management.
Version 1.1 of MIPI I3C, announced in 2020, introduced extensible use of extra bus lanes (single, dual or quad), allowing it to reach an effective data rate close to 100 Mbps (Megabits per second). Version 1.1 also introduced features for peripheral command, control and communication to a host processor over a short distance, and system manageability. These improved overall system reliability and resiliency.
Most recently, the working group more closely aligned the two specifications. I3C Basic v1.1.1 brought in many of the features implemented in I3C v1.1. For instance, two new HDR (High Data Rate) modes in I3C Basic allow use of different clock and data transmission models, so we can now increase the throughput up to 12.5 Mhz on a single lane. That's a huge step up. Other new I3C Basic features include extensible use of extra bus lanes, group addressing for increased efficiency and standardized target reset to enable better recovery from error conditions. And both specifications were revised to replace objectionable terms with ones that more accurately reflect the functions of technical devices. There's been a ton of work that's gone into these specifications, and we're excited to share them.
Feature comparison between I3C and I3C Basic versions
Q: To clarify, how is MIPI I3C Basic related to MIPI I3C, and why are two versions of the I3C specification needed in the market?
The MIPI Alliance wants to see I3C technology broadly deployed across all of the industries we serve, and we recognized that the developer community around I2C was much broader and more diverse than the MIPI member ecosystem. To respond to the need for a royalty-free version that could be implemented without MIPI membership, MIPI introduced I3C Basic as a subset of the full I3C version that bundles the features most commonly needed by developers and other standards organizations.
That said, with the recent release of I3C Basic v1.1.1, the delta between the feature sets of the two specifications has now been significantly reduced to support implementation in a greater variety of applications. This tighter alignment also translates into greater interoperability.
Q: We know that MIPI I3C Basic has been adopted by JEDEC, and other standards bodies are currently evaluating it as well. Can you tell us more about some of these collaborations?
Yes, I3C Basic is the centerpiece of multiple industry collaborations that are so important to MIPI Alliance and our membership. We want to make sure that I3C can meet the needs of the broader industry, and to do that we've partnered with some incredible organizations. With JEDEC, I3C Basic has already been adopted in its Sideband Bus and DDR5 standards, and we're actively working with DMTF (Distributed Management Task Force), ETSI (European Telecommunications Standards Institute) and TCA (Trusted Connectivity Alliance) to drive further collaboration. Any time I3C can be adopted by another one of these organizations, it's positive for MIPI members and that industry because coalescence around a particular technology results in a richer ecosystem, provides resources and fosters more interoperability. And it allows us to get better, as well—we're sitting down and working with other experts, and they're sharing their knowledge. It helps all of the technology improve.
Q: What supporting resources does MIPI provide to help I3C developers?
This is important to us, so we've spent a good deal of time developing a whole heap of resources to support developers.
First, in terms of specifications and related tools, we have the MIPI I3C Host Controller Interface (HCI), which standardizes the interface that platform software uses to access I3C target devices and their capabilities. An I3C HCI driver for Linux has also been developed by MIPI and released to the open-source community.
Next we have the MIPI Discovery and Configuration (MIPI DisCo) for I3C, which is a software framework designed to simplify the software integration of sensors and other peripherals that use the I3C/I3C Basic device interface. The specification allows major operating systems to identify MIPI-conformant external devices in mobile and mobile-influenced systems and automatically implement drivers for them.
And, although it's not a "helper" interface, I should also mention that the Debug Working Group has developed MIPI Debug for I3CSM, which uses I3C to transport debug controls and data between a debug and test system and a target system.
For documentation about I3C, we also have several new supporting documents. We've updated our FAQs to include questions about the newest versions, as well as released two new application notes—one focused on I3C’s Hot-Join feature and the second on integrating virtual devices and targets. We also just published a Conformance Test Suite for I3C/I3C Basic, which defines a set of conformance or interoperability tests that allows products to be tested against other implementations of the two specifications.
And finally, we've also been busy offering education sessions that pull all of this information together. In September, the I3C Working Group offered a webinar titled, “What’s New in MIPI I3C Basic and the I3C Ecosystem,” which provided more detail on the new features in I3C Basic and spotlighted I3C's power-saving features. Also, we conducted an interesting panel discussion at the recent virtual MIPI DevCon event. Both of these sessions can be viewed on demand on MIPI's YouTube channel.
Q: What is coming up next from the MIPI I3C Working Group?
With I3C and I3C Basic, we will be considering a range of new capabilities and enhancements, including longer reach, various specification development improvements, support of more automotive requirements, speed increases, new multi-lane uses, new PHY approaches, standardized connectors and other feature refinements. And we'll continue to collaborate with industry partners to ensure that I3C’s feature set and scope continue to expand as needed to serve our members' needs.
We're committed to continually developing and supporting our specifications, and we want others to get involved. We have incredible experts and great engineers working with us, but we always welcome contributions from others. And we want feedback. We want to hear from the implementers—the people who are using this technology. If you have suggestions, we encourage you to learn more about the working group and share your input.