Earlier this week Renesas publicly revealed their new RA8 series of microcontrollers, which is notably the industry's first implementation of the ARM Cortex-M85 core. (There's way more nuance to it, but at the highest level, the Cortex-M33 can be thought of as the next generation of M4 devices, the M85 can be thought of as the next-gen of M7 devices.) While remarkable on it's own, frequent readers will know that we are really only here to discuss one thing: I3C.
It's of course no surprise that the RA8M1-series features I3C support, as the RA4E2 and RA6E2 launched earlier this year had I3C peripherals. However, here's the real surprise that's buried deep in the technical documentation for this device. While Renesas's previous I3C-capable devices were limited to SDR mode of operation, the RA8M1 introduces support for HDR mode. And not just HDR-DDR mode, but for the whole set. HDR-DDR, HDR-TSL, and HDR-TSP. That's right - this is the first MCU publicly available with ternary mode support. You can find this mentioned on page 1455 of the RA8M1 User Manual.
Development kits are already conveniently available for purchase from DigiKey and Mouser, but buyer beware, there appears to be just one I3C example project included in their Example Application bundle, so it's definitely going to take some time and effort to get an I3C Ternary mode demo running on your desk.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
In early 2022, I shared my excitement regarding news of Microchip's I3C Target-Only implementation in the 8-bit PIC18-Q20. Now I'm please to let you know that it's publicly-available. But that's not all -- it's available as a Curiosity Nano development board, making it one of the lowest cost, lowest effort paths to developing your own I3C Target device.
This device has some really clever features, particularly in regards to it's implementation of power domains to have a very low voltage level supported for the I3C bus. It's very well suited for I3C-to-x bridge applications as well. The Curiosity Nano dev board (shown above) is available for purchase for ~$24 directly from Microchip or from Mouser.
But wait, there's more...
Microchip has partenered with Binho to provide everyone who purchases the PIC18-Q20 Curiosity Nano development kit a free 45-day license to use our I3C Basic Protocol Analyzer Plugin for Saleae Logic. This makes getting up and running with this MCU for I3C applications quick and easy. All you have to do is order your dev kit from the links above and then submit this form and you'll receive immediate access to the plugin files and license key.
Finally, if you're in search for an I3C Controller to use while developing your PIC18-Q20-based I3C Target, might I suggest taking a look at our brand-new USB to I3C Host Adapter, the Binho Supernova.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
Microcontroller giant Renesas has just released it's latest MCU series with integrated I3C peripherals. The new devices are additions to the popular RA series Cortext-M MCU portfolio Entry Line: RA4E2 and RA6E2. As you will find out in just a moment, the features of these MCUs would make use in smart home devices, wearable technology, and even voice-activated features in an automotive environment. Both device groups are 32-bit, run on the Arm Cortex-M33 core with Arm TrustZone SoC technology, and come in small packages for space savings.
The RA4E2 runs at 100MHz while the RA6E2 runs at 200 MHz. Renesas says that both are optimized to provide best-in-class power efficiency without compromising performance. Depending on selection, the device offerings also include on-chip CAN FD, USB 2.0 Full-Speed, QSPI, SSI and I3C interfaces.
These new MCUs are a significant advancement from their previous MCU with I3C support: The RA2E2.
In contrast with the RA2E2, these new devices are not limited to 4.6MHz max I3C Clock Frequencies and thankfully can achieve the max 12.5MHz clock frequency as defined in the MIPI I3C Specification. The I3C peripheral support is limited to SDR mode, but can operate as an I3C Controller or I3C Target.
Both devices run on the existing Renesas Flexible Software Package (FSP) which includes a GUI for easy access and easy backwards compatibility with legacy code. Best of all, RA4E2 and RA6E2 MCUs are available today. If you’re excited to get started, then hop on over to Renesas and grab either the EK-RA4E2 or the EK-RA6E2 evaluation kits.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
STMicro has finally launched their first MCU series boasting I3C peripheral support with an impressive 1023 CoreMark making it currently the world’s fastest Arm Cortex-M33. The introduction of the new STM32H5 series is an important milestone for industry adoption of I3C, as the STM32 family of devices is an industry stalwart. It would not be possible to consider I3C as a 'mainstream' protocol if it continued to remain absent from the STM32 MCUs. I'll share more thoughts on this below their marketing teaser video.
Now, before I dig into the specifics of the I3C implementation, there's a few other bells and whistles that deserve mentioning. Most notably, the STM32H5 is also the first MCU in the series to come with SoC security services through an industry-standard API. The STM32Trust TEE Secure Manager saves developers time by providing easy to access security features without needing to write their own code or being security experts.
In true ST fashion, this family of MCUs includes a full menu of memory and packaging sizes, as shown in the table below, and the best part is that some of these are already available now!
STMicro says that mass production has already started and the full lineup and package choices will be introduced in June 2023.
With that out of the way, let's talk about ST's I3C protocol support in this device. The I3C peripheral itself is capable of 12.5MHz SDR transactions (no HDR-DDR mode support), and implements v1.1 of the MIPI I3C specification. A real highlight of this I3C hardware implementation is that it has its own dedicated VDDIO supply pin which allows the I3C bus (along with other protocol peripherlas) to operate down to 1.2V. Other vendors have been working on similar implementations to support I3C at lower voltages, but this one going all the way down to 1.2V is best-in-class.
Another thing that STMicro brings to the table is fantastic support and documentation, and that holds true for their I3C functionality as well. There are currently two I3C-related application notes available:
1. Introduction to I3C for STM32H5 series MCU (AN5879) - This app note is the perfect place to get started learning about STMicro's I3C peripheral. A blend of explaining the protocol along with their implementation, the document is realtively easy to digest. At 64 pages long, it starts at the highest level, but also gets into the nuanced details as you read on. There's a helpful table showing which features are supported in Controller mode and Target mode. The second half of the document presents the example projects (9 of them currently) that are available and shows how to get up and running with them.
2. I3C Protocol used in the STM32 Bootloader (AN5927) - This app note explains how you can use I3C protocol to perform a firmware update using STMicro's embedded bootloader. This just goes to show you how much STMicro is invested in I3C support that they've updated their bootloader to support I3C as a firmware update interface. It's also interesting to see this because it alludes to the usefulness of the MIPI Debug for I3C protocol, which aims to provide a vendor-agnostic implementation for these types of activities over I3C. I'm eager to see where this leads.
If you’re itching to get your development on you should check out the ST development kits including the NUCLEO-H503RB, NUCLEO-H563ZI, and STM32H573I-DK which range in price from $15 to $99. For those lucky enough to drop in at STMicro's booth at Embedded World this year, they were handing out these dev boards for free to celebrate the launch of this device. We're eager to find time to experiment with it here in the office.
Annecdotedly, we've heard from a few customers that getting up and running with the I3C examples on this board is relatively quick and simple compared to doing the equivalent with the NXP's I3C App notes for iMXRT685 and LPC5536 eval boards.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
The MIPI Alliance announced a partnership with Embedded World conference to offer dedicated MIPI Education Tracks during March 14th at the Embedded World 2023 exhibition and conference in Nuremberg, Germany, marking the first year that the MIPI Alliance is formally participating in the event. I had been anxiously watching the clock tick counting down until the next MIPI I3C Workshop in June, so this opportunity for an I3C event in the next few weeks is a welcomed surprise!
The MIPI I3C session is part of the "Board Level Hardware Engineering" track and will be comprised of the following series of three 30 minute presentations:
All About MIPI I3C: The Next-Generation Utility and Control Bus
Presented by Michele Scarlatella, MIPI IoT Technical Consultant
Michele may be one of the most recognized names in the I3C circuit, as he's frequently part of the MIPI webinars -- I've watched his presentations a number times over the past few years and they consistently serve as one of the most polished and concise introductions to the key concepts of the I3C specification.
Advantages of MIPI I3C Enabling Simpler Design in a Variety of End Equipment Applications
Presented by Saminah Chaudhry, Texas Instruments
Saminah gave a similar presentation last year at MIPI DevCon along with another colleague from TI, and it was extremely informative. Rather than focusing on the actual I3C specification, Saminah takes a look at the various applications in which I3C is being adopted and why. If this session is anything like her previous presentation, it's going to be extremely insightful to see how and where I3C is making waves.
An Efficient Prototyping Framework for I3C Controllers
Presented by Aradhana Kumari, STMicroelectronics
I've got high hopes for Aradhana's presentation -- she was actually a participant in last year's MIPI I3C Interop Workshop in Munich, so I'm certain that the information she'll be sharing comes directly from hands-on lessons learned implementing the I3C protocol and verifying it. I'm really eager to hear from her!
Additional details including the full agenda for the session can be found on MIPI's blog post. Registration for this I3C track requires at least a 1 Day Session Ticket, which is currently 660€ -- a bit steep, but likely worth it, and can be purchased here.
Thankfully I already had plans to attend the Embedded World conference, so the announcement of these I3C discussions makes my trip even more meaningful. I'm looking forward to being in the audience and networking with attendees. For anyone who's attending the session and still wants to talk about I3C even more, feel free to reach out at i3ccafe@binho.io and we'll aim to meet up after sessions have wrapped up.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
Earlier today, the team at Espressif Systems, makers of the extremely popular and low-cost ESP32 family of wireless microcontrollers, announced the newest addition to the ESP32 lineup: The ESP32-P4.
This product announcement is interesting for a number of reasons. First off, It's powered by a dual-core RISC-V CPU running up to 400MHz, with an additional "LP-Core" running at 40MHz. And departing from the theme of the ESP32 family of devices, this one does not feature any RF functionality. Perhaps anticipating the reaction of their customer base struggling to find out what wireless protocols it supports, they specifically included the following text in their announcement:
If the application requires wireless connectivity, ESP32-P4 can easily connect, as a wireless companion chip, to any product of the ESP32-C/S/H series over SPI/SDIO/UART, by using the ESP-Hosted or ESP-AT solutions. ESP32-P4 can also function as the Host MCU for other connectivity solutions, such as ACK, AWS IoT ExpressLink, etc.
I find it to be an interesting choice that they included a mention of what it's lacking in their product announcement while also omitting a mention of an exciting feature that it does include: a MIPI I3C Peripheral. Not mentioned anywhere in the text of the announcement, it can be found in the HP Peripherals section of the SoC block diagram.
I'm personally quite thrilled with this announcement for several reasons. One is that it's great to see Espressif branching out into the high-performance MCU space, and the fact they have chosen to include I3C in their device is another big contributor to the excitement. The other thing that really makes this a big deal is that Espressif has a very large reach all the way down to startups, hobbyists, and enthusiasts, and have really embraced the community. As of now, many devices with I3C support are in devices that are inaccessible by folks not affiliated with a large company. It is highly likely that many folks will have their first exposure and opportunity to use I3C with this device when it hits the market.
You can find out about all the other cool bells and whistles included in their new SoC by reading the entire product announcement here.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
Earlier this week it was announced that the MIPI Debug Working Group is guaging interest in a MIPI Debug for I3C Interoperability event to be held at the June 2023 MIPI Alliance Member Meeting in San Jose, California.
While the I3C Interop Workshop held in 2022 was hosted by the MIPI I3C Working Group and focused on broad I3C implementations, this workshop aims to dial in on the recently released Debug for I3C specification. The full text of the brief annoucement can be found below:
The event will concentrate on checking the interoperability of these devices against the foundational requirements of Debug for I3C v1.0 to ensure features such as the debug-specific common command codes (CCCs) and in-band interrupts (IBIs) are working.
Participants would be asked to bring one or more of the following devices for testing:
Those interested in attending are asked to fill out the interest form on MIPI's website. While it's not explicitly stated in the announcement, I believe it is open to non-members, given that I3C Basic and Debug for I3C are available for non-member implementation. (Last year's I3C Interop Workshop held at the MIPI Member Meeting in Munich was open for non-members.)
I'm really looking forward to this event and am excited for the opportunity to test our I3C Basic Protocol Analyzer Plugin through another round of real-world testing, specifically in the context of the Debug for I3C specification.
If you're planning on attending the MIPI I3C Interop Event, please reach out to us at i3ccafe@binho.io, we'd love to meet you!
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
We're sharing our findings after spending some time building a new automated I3C test bench using the Scout SC4420 Serial Bus Controller by Signal Craft Technology. There's really a shortage of reviews of these types of devices as almost everyone using them is working on confidential / proprietary projects which cannot be discussed in an open forum. I've received numerous emails over the past few months from folks asking how to best get up and running with an I3C Controller, so I've decided to spend some time creating content on this topic. One of the most enjoyable aspects of my work with I3C is that I'm not bound by those constraints and can share my learnings openly in hopes that others working in the field will benefit. I have no affiliation with Signal Craft Technologies and received no incentive, financial or otherwise, to review their product. Let's get started with some brief background and then dive in to the hands on review.
The Scout SC4420 is a Deterministic Serial Bus Controller (quite similar to a USB Host Adapter) that features support for several MIPI protocols, including I3C v1.1. The base product supports traditional SPI protocol capabilities, and RFFE, SPMI, and I3C protocols are made available via the purchase of optional feature licenses. It's important to call it the nuance implied by their use of the term 'deterministic'. Unlike traditional USB host adapters, where communication is handled by hardware peripherals and can have some variations in timing due to interrupt priority levels and other tasks currently being serviced by the microcontroller, the timing of a 'deterministic' controller is fixed and 100% repeatable. This is achieved by implementing the logic in hardware (FPGA) rather than using a sequential logic device such as microcontroller. Depending on the type of testing and development, this nuance may be quite important.
In short, the device can operate as an I3C Controller, up to 12.5MHz clock frequency, SDR and DDR support, with a bus voltage range from 0.8V to 3.3V. The device is accurately advertised and documented, although it does take a bit of digging to surface the important details, as the main product page only covers the high-level features. The product brief [PDF] is much better at painting the full picture of the device's capability. However, if you're looking to build an understanding of it's command interface and level of software support (spoiler alert, or lack thereof) you'll need to go even deeper and create an account to gain access to their support portal. There you'll be able to find the user manual which contains the necessary information to understand how to interact with the device. I definitely recommend reviewing this document prior to making a purchase as it will give you an idea of the learning curve to get up and running with this product.
The price of the product is not publicly posted on their website or online, and is only available by requesting a quotation. Respecting their process, I will not disclose the exact amount paid for the product, but for budgeting purposes the cost of the base product + MIPI-I3C feature unlock can be considered to be ~$1000 USD.
I was pleasantly surprised that the device was actually available to ship within just a few days after placing the order. Not having a long-lead time for a device like this is somewhat atypical given the supply chain constraints on FPGAs.
As of the time of writing, the only means of procuring this device is to purchase directly from Signal Craft Technologies. Better suited for enterprise sales, the purchase needs to go through the formal process of requesting a quote, issuing a purchase order, paying by bank transfer, and providing them with a shipping account. Regrettably they do not have an online store where the purchase can be made via credit card. They also do not work with any distributors, so there's no option to acquire this through Digikey, Mouser, or the other common test equipment vendors. Signal Craft Technologies ships the devices out from their office in Canada.
Alright, enough background, let's see it in real life...
The device comes in a plain white box. The only marking is a label placed on the side with the product name and details, including the serial number. The box contains only the device and the connector used to mate with the device's external 5V DC supply input. The device itself comes in an ESD bag and is well-packed with foam end-caps.
It's worth noting that the device does not come with a USB cable or wire harness for the signals. This is clearly indicated in their documentation, however it's worth mentioning as a reminder to be sure to order those items ahead of time. I ordered this USB 2.0 A male to B male cable from a popular online bookstore. It appears that Signal Craft Technologies sells a wire harness separately, although the connector is a standard 0.1in/2.54mm pitch pin header, so it's possible to just use typical jumper cables. We've been using Qwiic connectors and harnesses on our test setup, so I opted to use this cable to connect the SC4420 to my I3C Target.
Like many engineers, I cannot resist taking things apart and seeing how they are made. While a full breakdown and analysis of the electrical design is well beyond the scope of this review, it's worth sharing the highlights. The Scout SC4420 design is based on the Xilinx Zynq XC7Z010-series FPGA. This device and it's supporting components + power supplies make up the bulk of the system. Near the connectors there is some circuitry for input protection and interfacing the signals between the FPGA and the outside world.
The PCB is a 12-layer board with well-organized component placements and an elegant layout. One particularly clever aspect of the design is the actual PCB outline. Each edge of the board features 2 x bowed cutouts which will be ever-so-slightly compressed when board is installed in the extruded aluminum enclosure. This is a fantastic way to ensure that the board isn't loose in the enclosure nor so tight that makes assembly a challenge. I really like this subtle design feature and look forward to the opportunity to try to implement in my own PCB design at some point in the future.
After I put it all back together, it was time to power it on for the first time. An interesting curiosity about the device that isn't mentioned anywhere in the manual, and honestly gave me quite the moment of angst: it takes approximately 12 seconds after plugging in the USB cable for the LED to turn on and the device to enumerate. Being that I had just taken the device apart to look at it, when it didn't power on instantly, I got quite worried and started examining my setup. Only after I calmed down and let it sit plugged in for a while did I notice that it takes a while to come up. (This is an interesting design trade-off between running the USB stack in the FPGA, which takes some time to come up, rather than use an external IC as a dedicated USB FIFO. Personally, I think the act of waiting such an atypically long time for device enumeration makes for a really poor first impression / user experience, but I can see that this is also not core to the product's functionality.)
Once the FPGA takes control, the device shows up on PC as USB CDC device (Virtual COM port). Using the CDC device class eliminates the need to install platform-specific drivers since all major operating systems have built-in support for these devices. This approach inherently makes the device cross-platform, which I'm a big fan of. I confirm that I did not need to install any drivers to get the device working on my Windows 11 machine.
The interface to the Scout SC4420 is limited to a terminal-style interface over the virtual com port. There is no desktop-based software provided. Furthermore, the user's manual just provides a sequential list of commands, but does not provide any examples of how they should be strung together in order to successfully perform typical I3C bus transactions. While the device itself is 'plug-and-play' in terms of getting access to a console to send commands to it, here is where the learning curve really starts to begin. Having a strong grasp on the I3C specification can help ease the pain, but even that is not sufficient on its own to demystify the sequence of commands needed to actually perform your first transaction..
The video below demonstrates the command interface flow from power on through performing a simple I3C transaction to give you an idea of what it it's like to send commands to the device:
In the video, I'm using CoolTerm, my serial console application of choice, to send the commands to SC4420 to enter I3C mode, provide power to the bus from its internal supply at 3.3V, initialize the I3C bus, and execute a GETBCR command. In this example, the I3C Target device is an ICM-42605 from TDK/Invensense, which gets assigned a dynamic address of 0x18 during initialization, and then responds correctly to the GETBCR command with the value of 0x27.
A few key take-aways from this experience:
(1) There's a lot of typing involved to get up and running. It takes several commands to prep the device and initialize the bus, which is fine, but there's a bit of a memory game to remember the parameters to each of the command. The optimal way to handle this would likely be to have a text file with the commands which can be copy/pasted into the terminal.
(2) The output is pretty. The response to each command is formatted in a way that makes the most sense for its context to make it human-readable -- even more friendly than the command naming scheme and their parameters.
(3) The pretty formatting on the output of each command, each with its unique format is going to be a real pain in the parse. The Command API does provide for a method to turn off the device's error message reporting, since it can occur asynchronously and trip up scripts; however, Signal Craft does not provide any other interface or response formatting options, so one will need to be prepared to parse responses in these formats in order to interact with this device in any sort of automated fashion.
Update: We released our I3C Controller Python Package to make it fast an easy for anyone to automate their Scout SC4420. Learn more about our I3C Controller Python Package Here.
I used our I3C analyzer plugin with Saleae Logic Pro 8 to capture the initialization and GETBCR transaction demonstrated above to take a look at the actual traffic on the bus. The image below shows the bus traffic when the SC4420 is given the 'init' command to initialize the bus.
It's clear that the SC4420 is performing the correct procedure to initialize the bus which involves sending a broadcast RSTDAA (Reset Dynamic Address) message, followed by a Broadcast DISEC message to disable interrupts. The ENTDAA message is then sent as a broadcast to begin dynamic address assignment. The ICM-42605 on the bus responds with it's PID, BCR, and DCR, and is assigned address 0x18. There are no additional I3C Targets on the bus so the dynamic address assignment process is completed. Lastly, the SC4420 sends a broadcast ENTAS0 (Enter Activity State 0) to tell the target devices on the bus to go into Activity State 0 (normal operation). (ENTASx CCCs are optional and are meant to aid in optimizing power utilization in the target devices by informing them when they can safely enter lower power / higher latency modes of operation). This completes the bus initialization.
The screenshot above shows the direct GETBCR CCC sent to the ICM-42605 Target at address 0x18 and it's one-byte response of 0x27. Compared to the initialization, this is a very simple transaction. Overall, the waveforms generated by the Scout SC4420 look very nice. I haven't fully exercised it at low voltages yet, but operation at 1.8V and 3.3V has been solid.
Aside from the learning curve of figuring out how to string the commands together and providing the correct parameter values, there were a few other things that are worth pointing out:
(1) In I3C mode, the Scout SC4420 is only able to power the I3C bus at 1.2V, 1.8V, and 3.3V. For operation at any other voltage, the power will need to be provided by an external source and the SC4420 will need to be configured to use the external source for the voltage reference using the vio command.
(2) The supported clock frequency settings are fairly limited, and skew to the low-side of I3C operation. The only supported I3C clock frequencies are the following: 12.5MHz, 6.25MHz, 3.125MHz, 1MHz, 400kHz, 200kHz, and 100kHz. I would have liked to see more options between 6.25MHz and 12.5MHz as we work with a few relatively large I3C test buses that run happily at 8MHz, but due to the signal integrity issues of the long runs, cannot handle 12.5MHz operation. With such large step size, the SC4420 can't really be used to push I3C bus implementations to find out the max frequency they can handle reliably if they can't do the full 12.5MHz. Perhaps this is a bit atypical, but I suspect it's more common than not during early development.
(3) If you want to automate this device, be prepared to invest a fair amount of time into writing robust code that can parse it's output.
The Scout SC4420 is a diamond in the rough. It is sufficient at its job and is accurately marketed. Like most pieces of test equipment, there is little emphasis on the actual user experience, but it can be overcome by investing some time to learn how to work with it. Working with the SC4420 in many cases is preferable than the alternative option: writing code to implement an I3C controller on a microcontroller (either bitbanged or on an MCU with an I3C peripheral -- both of which would result in non-deterministic timings). I still long for more, yet given the current state of I3C dev tools / general industry-wide adoption, I think this device will certainly help move adoption forward and likely mature along the way as well.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
Earlier this month, NXP announced their new MCX portfolio of general purpose ARM Cortex-M microcontrollers. This portfolio of devices is targeted towards industrial and IoT edge computing applications and is the first to feature NXP's Neural Processing Unit (NPU) for machine learning and AI.
This portfolio is split into 4 series: (N) Advanced, (A) Essential, (W) Wireless, and (L) Ultra Low Power. A high-level breakdown of each series was published in their fact sheet, seen below.
While the announcement is quite exciting, the specific details are still a bit sparse. Thankfully I was able to spend a few moments at the NXP booth at Embedded World 2022 to get some questions answered. It will come as no surprise that the two biggest questions I had were as follows:
#1) Will the MCX devices feature an I3C peripheral?
#2) When will more information / chips be available publicly?
The answer to question #1 was very positive: Yes! It is confirmed that at least some, if not all, variants of the MCX device portfolio will include I3C support. However, the answer for #2 is that availability will be in the 2nd half of 2023, with more information being made public around the same time. That gives us pretty much a full year of waiting in great anticipation.
Update on 5 November 2022:
NXP announced the details of the MCX N Series microcontrollers, consisting of the N94x and N54x families, both featuring 2 x I3C peripherals among the vast array of hardware peripherals. The block diagram below shows the hardware of the MCX N94x device for reference:
Additional details can be found on the product page on NXP's website here.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
Ladyada and PT over at Adafruit have been putting out a weekly video called Eye on NPI where they talk about cool new devices. Back in May 2022, they chose to speak about the P3S0200GM I3C Switch released by NXP. Given Adafruit's primary focus on making electronics more accessible to tinkerers, hobbyists, students, and educators, the video they produced is an amazingly concise explanation of the key concepts of I3C in just ~12 minutes. I highly recommend this video as a starting point for anyone eager to build an understanding of I3C, as well as the motivation for creating a new protocol and the purpose that it aims to serve.
I've seen several attempts by various folks to create an introduction/summary of I3C for a more general audience, and regrettably many of them miss the mark on capturing the nuanced details that are fundamental to I3C. Thankfully the folks at Adafruit were careful not to skimp over the details that really are a key part of specification.
All of the figures and slides presented in the video can be found on their blog post page here for easy reference.
While this video is not new, it's actually buried in search results and most folks looking to learn about I3C might not find it in their pursuit of learning more. As such, I'm hopeful that this page increases the visibility of this incredibly well-done video introduction to I3C.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
Texas Instruments has a hidden gem buried in their catalog of devices: an I3C Switch and Voltage-Level translator. Officially marketed as a Dual Bidirectional I2C Bus and SMBus Voltage-Level Translator, the TCA39306 actually calls out I3C compatibility on the first page of its datasheet.
TCA39306 Datasheet, Page 1 [Link]
Aside from the two mentions shown in the screenshot above, usage with an I3C Controller is also included in the "Simplified Application Diagram" on the bottom of the first page as well. This datasheet is really talking the talk when it comes to I3C, but does it walk the walk? Actually, yes. Yes, it Does!
Section 9.3 of the datasheet is dedicated to the nuances of using this device on an I3C bus.
Kudos to the team at TI that put together this datasheet and backed up their bold claims of "I3C Compatible" with some rather thorough discussion of the nuanced details needed to successfully use this device on an I3C bus, as well as for calling out some of the challenges one may face when employing this chip for a role on an I3C bus. At this point, the only remaining mystery about this chip's I3C support is just to know why TI isn't doing more to market it as an I3C device.
Beyond the fact that there's a great level of detail in the datasheet about I3C, it also excites me that this IC is available in VSSOP and SOT packages which means we'll probably build up a circuit to play with it sooner or later.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
I've been meaning to write about this for a while now, and regrettably it's already old news at this point. But it's actually a very important topic that's worthy of some additional time in the spotlight. The USB Implementers Forum (USB-IF) published the I3C Device Class Specification v1.0 back in January 2022. This only came to my attention when MIPI announced the release of this publication as a resulf of collaboration between the USB-IF and the MIPI I3C Working Group in mid-March, several months later. Their blog post covers a lot of interesting details as well as their motivation and goals and is certainly worth a read.
I think this is a really proactive move to get a custom device class defined in the early days of I3C adoption, as it will pave a clear path forward for USB to I3C Bridge implementations. With a standard already defined, the risk of ending up with multiple manufacturer-specific implementations is minimized and will result in a cohesive I3C ecosystem.
I had a chance to speak with an engineer knowledgeable on this effort while attending the I3C Interop Workshop last month and he mentioned there is forward momentum on getting device driver support for Windows, MacOS, and Linux, with the ultimate goal of getting it included as an official driver distributed with the OS. I think this is critical to the success of the device class adoption -- whereas the ease of use of a device class of a standard driver (such as HID) might be a more interesting approach to eliminate what could be a very painful battle with device driver support. I'm really interested in seeing how this plays out over the coming months.
Once the driver is readily available, the cherry on top of the I3C sundae we've all just been served will be for a manufacturer to provide an official example implemenation of this device class implemented in their USB stack / SDK. (I'm looking at you, NXP MCUXpresso team), or even better yet, in a popular open-source USB stack such as tinyusb.
Finally, I dropped in at FTDI's booth at Embedded World 2022 to see if they had I3C-capable USB bridge ICs on their roadmap -- I figured for a company who's bread-and-butter is in the USB Bridge IC space, they'd be eager to jump on this opportunity. However the folks I spoke with at their booth were not even aware of I3C, so if it's something even on their roadmap, it hasn't made it far enough along for their marketing team to even be aware of it yet. I also reached out to their customer support team separately to inquire about I3C support and was informed that they do not have anything planned yet.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic..
Earlier this week NXP published an "I3C Interface Devices" page on their website. This is not a very profound occurrence, although it does in fact confirm their upcoming line of I3C-capable temperature sensors.
On a deeper level, this continues to signal NXP's commitment to invest in building out the I3C ecosystem of supported devices. As of the writing of this article, many manufacturers don't have a separate category for I3C products -- it gets buried on their device datasheets, or at most, surfaced as a simple bullet point that it's a supported communication interface on a given device. This has been our primary motivation for maintaining a list of I3C-capabel devices, since it's so hard actually searching for devices based on whether or not they support I3C. I really hope that other device manufactures follow suit.
Awkwardly enough, though, the I3C Devices page makes no reference to their I3C-capable Microcontrollers and Microprocessors. I understand those don't necessary fit in with the "interface devices", but in my opinion, that's a huge, missed opportunity to direct folks to their iMXRT600 and RT500-series, LPC5500-series devices that have I3C peripherals.
Earlier today, the MIPI Alliance and ETSI Technical Committee Secure Element Technologies officially announced the adoption of I3C Interface for SSP (TS 103 818)[PDF]. This formalizes the employment of the MIPI I3C Basic specification for the physical and logical link layer for the ETSI Smart Secure Platform (SSP). Check out the full press release for some additional background information regarding the ETSI SSP and what it entails. The figure below is a simple illustration of how the SSP data frames are structured within an I3C transaction, the full context and additional examples can be found in the PDF linked above.
The diagram above is almost trivial, which perfectly highlights why I3C is a great choice for the lower layer of specialized protocols. These upper-layer protocols can take advantage of all the bus management capabilities built in to the I3C specification while avoiding the introduction of needless complexity.
At the highest level, it's great seeing I3C adoption by other standards. ETSI now joins JEDEC, which had previously adopted I3C for their JESD300-5A: SPD5118, SPD5108 Hub and Serial Presence Detect Device Standard, as standards bodies which are publishing protocols on top of I3C. Furthermore, ETSI's adoption signals another expansion of I3C's reach into another category of devices: Security & Authentication.
Now the real highlight, or at least what I personally perceive to be the most exciting part of the adoption of I3C into this domain of security and authentication devices, is embodied in this beautiful gem of a sentence buried in the middle of the press release:
Thanks to the multidrop configuration of the MIPI I3C Basic bus, the SSP will become accessible to all devices connected to the bus that can benefit from security services that the SSP may offer.
Think about that -- now these security features could be accessed directly by any other devices on the bus that would like to utilize them. This is a pretty awesome step forward in embedded system / IoT device security, built on the foundation of the I3C spec. I'm very excited to see how this manifests in real-world systems.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
Respecting the privacy of the participating companies, this article will focus on the high-level outcomes of the event and purposefully avoid a lot of exciting specific details. If you're interested in the details, be sure to attend the next event.
As mentioned in this previous article, MIPI Alliance hosted their first I3C Interop Workshop open to non-members in June 2022. I couldn't miss the opportunity to perform ample real-world testing with our I3C Basic Protocol Analyzer as well as get feedback from the engineers designing / validating I3C devices, so of course I attended the two day workshop. By all measures, the event was a great success, and let me tell you why.
First off, our I3C Basic Protocol Analyzer plugin for Saleae Logic performed incredibly well and was a hit amongst the engineers in the room. A few minor formatting/aesthetical bugs were identified with help from the attendees and were corrected.
Having tested it out on numerous real-world I3C devices, and alongside other I3C test and measurement equipment, it's clear that the protocol analyzer is a world-class development tool. I couldn't be more proud of our team of developers who worked tirelessly to bring this analyzer to life.
I'd especially like to thank the team at Saleae for providing us with several demo devices for the workshop attendees to use.
Beyond the verification and testing of our own I3C product, it's really important to highlight the true value of participating in this workshop: collaboration!
The collaboration among the teams from various companies was beautiful to see. Engineers from Semiconductor Company X sitting down with engineers from Semiconductor Company Y to help them exercise and validate the performance of their I3C devices, sharing their techniques and even using their own proprietary tools to create certain edge cases, was truly refreshing to see and be a part of. Keep in mind that X and Y are in fact direct competitors on many different sensing technologies.
It reminded me of the collaboration during undergraduate studies EE lab projects, where everyone is competing for the highest marks or grand prize, but at the same time, helping each other succeed. I'm not sure I've seen anything like this in industry. I've now got direct connections to some of the world's leading experts with this protocol.
I paired up with another engineer who was also testing out his I3C protocol decoder for a test equipment company. Since we both had passive I3C devices, it only made sense that we pair up and take captures off the same bus / set of test devices. By observing the same bus, we were able to cross-check our decoded results, not only helping us, but also giving the semiconductor teams confidence in the results -- multiple, independently developed tools were confirming the same performance information. I had an absolute blast meeting everyone and learning from everyone in the room.
Having attended this event and seeing first hand how the magic happens, there's no way I'll miss out on the next one. It would be a huge mistake for any company working on I3C products to skip out on these.
The next event is in the early planning phases and is likely to be held in Vancouver, Canada in October. We'll be sure to write about it on I3C Cafe when more details are available. I'm absolutely planning to attend again.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
Earlier today, the team at Renesas pulled back the curtain to reveal their newest device family: a line of 2:4 and 2:8 I3C Intelligent Switches.
The RG3MxxB12 devices "enable intelligent management of CPI, BMC, DIMM, and other peripherals with significant performance and power benefits over other serial communication interfaces with easy-to-use bidirectional signaling capabilities in a small footprint (28pin QFN)."
A picture is worth a thousand words, the block diagram for this device does a great job conveying it's purpose:
Renesas has been very aggressive in adopting I3C in their ICs. This intelligent switch family of devices complements their SPD hubs, temperature sensors, PMICs, and DDR5 I3C expanders already in their catalog. This chip aims to enhance the scalability and reliability of next-generation servers and infrastructure equipment. The need for this device is driven by the increased speeds offered by I3C, the simple solutions previously used for I2C cannot be scaled up to I3C speeds.
This device was actually the result of close collaboration between Renesas and Intel from early concept, through definition and silicon fabrication, and even further onwards in software development and system level validation.
Samples are now available for request from Renesas, although the publicly-available datasheet is short on details. We've requested a few samples to add to our always-growing I3C test bench circuit - let's see if we'll get approved. The press release indicates the plan to have these devices available in Mass Production quantities in the first quarter of 2023.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...
In April, the MIPI Alliance announced that, in conjunction with the June MIPI Alliance member meeting, the MIPI I3C and I3C Basic Ad Hoc working groups will host an I3C Interop Workshop on 13-14 June, 08:00-18:00, in Munich. The official announcement and further details about the event can be found in this MIPI Alliance blog post.
Per the announcement, the event was contingent upon the registration of at least 6 MIPI-member company participants, and as of 9 May, it was confirmed that the threshold has been met.
The MIPI Alliance has hosted a few of these I3C Interop Workshops in the past, however it's noteworthy that this is the first time they are opening up the workshop for non-members to participate. This is tangible confirmation that the MIPI Alliance is really supporting the open adoption of the publicly available, royalty-free I3C Basic protocol.
With this event taking place in Munich just a few days before the opening day of annual Embedded World conference in nearby Nuremberg, we found enough justification to make the trip across the pond to attend both events. We'll be putting our I3C Basic Protocol Analyzer Plugin through two days of rigorous, real-world testing at the Interop Workshop and then giving some demos and meeting with customers and fellow I3C enthusiasts at Embedded World.
]]>All the tech specs and datasheet can be found on the product page. I personally do not have an adequate technical background in RF to understand the nuances of this device and it's potential usecases, but I find it very interesting to see I3C support ending up in an RF amplifier this early in the industry-adoption phase.
Have a good understanding of how this device will be used and why I3C is useful / relevant to it's success? I'd love to hear from you!
]]>Details, tech specs, and the product datasheet can all be found on Renesas' product page.
]]>Both devices are dual-core, featuring a Cortex-M33 paired with a Cadence Tensilica DSP specialized for various applications. The RT600 features a single I3C peripheral, and the RT500 has 2 x I3C peripherals. The most exciting thing from my perspective is that the eval board is readily-available from Mouser, and NXP produced an awesome AppNote and sample code demonstrating the I3C functionality. The "RT600 I3C Simple Controller" Application Note and related code can be downloaded from NXP here. Note that you'll need to create an account on NXP's website in order to be able to able to access/download those resources.
I'll be documentaing my experience with this board and application note in another blog post. While these devices are quite complicated if you're just looking to experiment with I3C, getting up and running wasn't actually too challenging -- it's possible to entirely ignore the existence of the Cadence Tensilica core from a development perspective while playing with I3C, which certainly simplies the toolchain setup.
]]>In early 2022, I shared my excitement regarding news of Microchip's I3C Target-Only implementation in the 8-bit PIC18-Q20. Now I'm please to let you know that it's publicly-available. But that's not all -- it's available as a Curiosity Nano development board, making it one of the lowest cost, lowest effort paths to developing your own I3C Target device.
This device has some really clever features, particularly in regards to it's implementation of power domains to have a very low voltage level supported for the I3C bus. It's very well suited for I3C-to-x bridge applications as well. The Curiosity Nano dev board (shown above) is available for purchase for ~$24 directly from Microchip or from Mouser.
But wait, there's more...
Microchip has partenered with Binho to provide everyone who purchases the PIC18-Q20 Curiosity Nano development kit a free 45-day license to use our I3C Basic Protocol Analyzer Plugin for Saleae Logic. This makes getting up and running with this MCU for I3C applications quick and easy. All you have to do is order your dev kit from the links above and then submit this form and you'll receive immediate access to the plugin files and license key.
Finally, if you're in search for an I3C Controller to use while developing your PIC18-Q20-based I3C Target, might I suggest taking a look at our brand-new USB to I3C Host Adapter, the Binho Supernova.
Already working with I3C? Check out our I3C Basic Protocol Analyzer Plugin for Saleae Logic...