I3C

I3C, or Improved Inter-Integrated Circuit, is the successor of the I2C communication protocol, adopting backward compatibility. Additionally, the I3C protocol incorporates several features that allow for more communication flexibility, extends the spectrum of possible applications, increases performance and robustness. Some of these features include Dynamic Address Assignment, Higher Data Rates, CCC commands, Multi-Controller support, Hot Join/Removal events support, In-Band Interruptions (IBIs), etc. The Binho Supernova host adapter proudly supports the I3C protocol.

The I3C command panel is organized in five segments: Available Devices, Clock Settings, Bus Voltage, Private Transactions, and Common Command Code transfers.

I3C command panel.

Available Devices

When the INIT BUS button is pressed, Binho Supernova initializes the bus, sets the bus voltage and assigns dynamic addresses to the target devices. In this process, the targets send their BCR, DCR and PID to the Controller, so it can identify them and assign them the dynamic addresses. After this is concluded, all target devices are listed up in the Available Devices table:

Available Devices segment

The Available Devices panel also offers other functionalities that allows, for example, resetting the bus, resetting targets (via the Target Reset Pattern specified in the I3C protocol), obtaining the I3C connector status and also refreshing the targets table (managed by our SDK).

Clock Settings

Clock Settings sub-panel.

In the Clock Settings segment the user can configure two different clock frequencies:

Parameter
Admited values
Comment

Push-Pull

3.75 to 12.5 MHz

6 possible values

Open Drain

0.1 to 4.17 MHz

7 possible values

Notes:

  • Push-Pull Clock: Standard for regular transactions like Reads and Writes.

  • Open Drain Clock: Employed during the Dynamic Address Assignment phase to circumvent potential short-circuits, particularly when multiple targets access the bus concurrently.

Bus Voltage

The Bus Voltage section enables users to configure the operational voltage of the bus within a range of 0.8 to 3.3 V. Once the desired voltage is specified, pressing the SET button applies the new setting. Additionally, users can measure the bus voltage and choose to use an external power source. Using an external source is equivalent to measuring the voltage and setting it to match the external supply.

Bus Voltage sub-panel

Private Transactions

The Private Transactions segment is dedicated to I2C read/write transfers.

  1. Address and Subaddress: Positioned at the top, users can input these in hexadecimal format.

  2. Write Buffer and Read Size: The subsequent row houses fields to specify the payload (in hexadecimal) and the byte count for reading.

  3. Read and Write Buttons: Positioned on the final row, these buttons execute the aforementioned operations.

Private Transactions sub-panel.

Common Command Code (CCC) Operations

The CCC sub-panel is dedicated to the unique I3C CCC commands, indicative of the protocol's novel offerings. It comprises a dropdown menu, textbox, and a TRANSFER button for seamless command execution.

Common Command Code sub-panel

The BMC App currently supports the following CCC.

CCC command
Description

GETBCR

Get the Bus Characteristics Register

GETDCR

Get the Device Characteristics Register

GETPID

Get Provisioned ID

GETMRL

Get Max Read Length

GETMWL

Get Max Write Length

DIRECT SETMRL

Set Max Read Length

DIRECT SETMWL

Set Max Read Length

Notes:

  • The Write Buffer is relevant only for CCC commands that send data, such as DIRECT SETMRL and DIRECT SETMWL.

  • As more CCC commands are added with new versions of the app, this table serves as a reference. We recommend users to download the latest version of Binho Mission Control for the most up-to-date features.

Last updated