Easyi3C is a leading supplier of embedded system tools that simplify the development and debugging of various communication protocols. The company offers a range of products designed to help engineers and developers use I3C/I2C , USB and MIPI, JEDEC, MCTP and other protocols more efficiently.
It has been almost 50 years since the birth of the I2C protocol. However, there is no simple and easy-to-use I2C
Adapter on the market that can test I2C timing and filter. The existing solution is generally to test through DTG
or ATE, which is cumbersome and costly. Some companies have given up testing these parameters and basically
rely on the designer's design experience to ensure the correctness of the above parameters. For customers, any
chip product that has not been tested for I2C timing and filter effectiveness may actually have potential
problems, and product reliability cannot be guaranteed. It is precisely to solve these pain points of customers
that we launched the self-developed I2C Adpter. In order to help customers get familiar with our products
faster, we explain them through a series of articles in the column.
In order to solve the above user pain points, we have made unique innovations in product design and designed
two I2C master controllers to be placed in the Adapter at the same time, as shown below:
Easyi3C Tower I2C Host Adapter includes two I2C master controllers. One is the main controller; the other is the
debug controller. The two controllers are on the same bus. You can call any API of one of the controllers to send
the I2C protocol. The main controller is designed for normal operation to ensure that the host can complete
operations such as reading and writing normally. The debug controller is designed to test specific protocol
parameters. You can use the debug controller to set different timing parameters, write data through the debug
controller API, and then read back the data through the main controller API for verification. Through this unique
and innovative design, the verification process of the timing parameters can be completed through an
automated python script, thereby simplifying the verification process, and quickly scanning the upper and lower
boundaries of different timing parameters, so that the normal working timing range of the slave chip can be
quickly obtained.
The following are some APIs that can be used by Main Controller:
1. Configure API
2. Read and Write API
The read/write functions provided by these APIs follow the original I2C read/write protocol. All data after the
address byte is treated as data only. The concept of registers is not introduced in the EasyI3C API. This is to
provide more freedom for different uses. Users can use the EasyI3C read/write API and appropriate read/write
flags to write register read/write APIs according to their device specifications.
The above are some relatively common operations. Basically, all products on the market already have these
common functions, and everyone should be familiar with them. Our introduction is relatively brief. If you want
to know more detailed introduction, you can download more complete documents from our official website.
The following highlights the differences between our products and other products.
3. Debug Controller APIs:
In order to test the different timing parameters and filters of I2C in MIPI protocol, as shown in the following
figure:
Our debug controller supports configuration of the following parameters:
In order to set the above parameters, we provide the following API, which can be set dynamically:
At the same time, we provide a set of read and write APIs similar to standard read and write for users to use:
We will introduce the specific detailed usage later. If you want to know more, you can go to the official website
to download product related information.
In order to lower the threshold for customers to use our products, the functions tested above can be debugged
through our Tower Console GUI. The following describes how to debug in the Tower Console GUI.