Skip to content
binho.io (opens in a new tab)Contact Us

I3C Common Command Codes

Common Command Codes (CCCs) are I3C’s standardized command set enabling access to various standard functions. Support for CCCs depends on the targets. CCCs are classified as BROADCAST or DIRECT:

  • Broadcast CCCs:
    • Addressed to all I3C target devices on the I3C bus.
    • All Broadcast CCCs are write operations.
  • Direct CCCs:
    • Typically directed to a single target device (e.g., DUT) on the I3C bus, identified by its dynamic address.
    • Some direct write CCCs can use a group address.
    • If a response is required, only the specifically addressed target device will reply.
    • Direct CCCs can be classified as read, write, or read/write.

Available ONLY as BROADCAST

Allows the Main Controller to tell the Secondary Controllers what Targets (and Groups) are on the I3C Bus.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF] (as DEFSLVS)
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.7 (as DEFSLVS)
I3C v1.1.1✅5.1.9.3.7

DISEC and ENEC (Enable/Disable Events Command)

Section titled “DISEC and ENEC (Enable/Disable Events Command)”

Available BOTH as DIRECT and BROADCAST

Allows the Controller to control target-initiated traffic on the I3C bus. ENEC enables traffic, DISEC disables traffic.

This CCC controls:

  • Target In-Band Interrupts (ENINT/DISINT) *
  • Requests for the Controller Role (ENCR/DISCR)
  • Hot Join Signaling (ENHJ/DISHJ) *
    • These commands can prevent the target from making Dynamic Address Assignment requests.

* Enabled by Default

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.1
I3C v1.1.1✅5.1.9.3.1

ENDXFER (Data Transfer Ending Procedure Control)

Section titled “ENDXFER (Data Transfer Ending Procedure Control)”

Available BOTH as DIRECT and BROADCAST

Allows the Controller and Target devices to exchange setup parameters for terminating data transfers in supported HDR modes.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0❌Unsupported
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0❌Unsupported
I3C v1.1.1✅5.1.9.3.25

Available BOTH as DIRECT and BROADCAST

Allows the Controller to inform Targets of inactivity periods on the bus, allowing them to enter lower power states.

Activity States:

  • Activity State 0: 1 microsecond (latency-free operation)
  • Activity State 1: 100 microseconds
  • Activity State 2: 2 milliseconds
  • Activity State 3: 50 milliseconds (lowest-activity operation)

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.2
I3C v1.1.1✅5.1.9.3.2

Available ONLY as BROADCAST

Allows the Controller to indicate all targets to enter the Dynamic Address Assignment procedure. Target devices with an already assigned Dynamic Address do not respond to this command.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.4
I3C v1.1.1✅5.1.9.3.4

Available ONLY as BROADCAST

Switches the bus from SDR to HDR Double Data Rate mode for the transfer that follows. The controller leaves HDR mode with the HDR Exit Pattern. ENTHDR1 to ENTHDR7 select the other HDR modes (TSP, TSL, BT and reserved).

Available ONLY as DIRECT

Enables the verification of a Controller Role request and enables the Active Controller to transfer the role to a Secondary Controller. If the Secondary Controller accepts the role, it responds with its Dynamic Address (matching the target’s address). If it NACKs or returns an invalid address, the Secondary Controller will not assume the Controller Role.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF] (as GETACCMST)
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.16
I3C v1.1.1✅5.1.9.3.16

Available ONLY as DIRECT

Allows the Controller to get the Bus Characteristics Register of a target.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.13
I3C v1.1.1✅5.1.9.3.13

GETCAPS (Get Optional Feature Capabilities)

Section titled “GETCAPS (Get Optional Feature Capabilities)”

Available ONLY as DIRECT

Allows the Controller to check which optional I3C features a Target supports. Responses are 2 to 4 bytes.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0❌Unsupported
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0❌Unsupported
I3C v1.1.1✅5.1.9.3.19

GETDCR (Get Device Characteristics Register)

Section titled “GETDCR (Get Device Characteristics Register)”

Available ONLY as DIRECT

Enables the Controller to retrieve the Device Characteristics Register from a Target device.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.14
I3C v1.1.1✅5.1.9.3.14

SETMRL is available both in DIRECT and BROADCAST, GETMRL is DIRECT ONLY

Allows the Controller to set or get a maximum data read length in bytes, and optionally, a maximum IBI payload size. The first 2 bytes indicate the Max Read Length, with a minimum of 16 bytes. A response of 0 means the Max Read Length is less than 16 bytes; otherwise, it shows the length in bytes. If the device’s BCR bit 2 is set, a third byte for Max IBI payload size is included. A value of 0 means unlimited, and the minimum depends on Timing Control (4 or 5 bytes if used, or 1 byte if not used).

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.6
I3C v1.1.1✅5.1.9.3.6

GETMWL / SETMWL (Get/Set Max Write Length)

Section titled “GETMWL / SETMWL (Get/Set Max Write Length)”

SETMWL is available both in DIRECT and BROADCAST, GETMWL is DIRECT ONLY

Allows the Controller to set or get the maximum data write length in bytes. This limit does not apply to BROADCAST CCCs as their data sizes are fixed. The minimum value that can be set is 16 bytes. If a Target responds with 0, it means the Max Write length is less than 16 bytes. Any other response indicates the number of bytes.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.5
I3C v1.1.1✅5.1.9.3.5

Available ONLY as DIRECT

Allows the controller to determine a Target’s SDR mode data speed limitations. The response is provided in one of two possible formats, indicated by the number of bytes returned:

  • FORMAT 1: 2 bytes containing Maximum Write Speed and Maximum Read Speed.
  • FORMAT 2: 5 bytes, including 2 bytes for Maximum Write Speed and Maximum Read Speed, plus 3 bytes for Maximum Read Turnaround Time.

The format used depends on whether the target needs to communicate its Maximum Read Turnaround Time.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.18
I3C v1.1.1✅5.1.9.3.18

Available ONLY as DIRECT

Allows the controller to get the 48-bit (6-byte) Provisioned ID of a target.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.12
I3C v1.1.1✅5.1.9.3.12

Available ONLY as DIRECT

Allows the controller to get the current status from the Target.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.15
I3C v1.1.1✅5.1.9.3.15

GETXTIME (Get Exchange Timing Information)

Section titled “GETXTIME (Get Exchange Timing Information)”

Available ONLY as DIRECT

Allows the controller to query the exchange timing capabilities of a Target. The response contains four bytes that provide key information on supported Timing Control modes, current state, internal clock frequency, and accuracy.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.21
I3C v1.1.1✅5.1.9.3.22

Available BOTH as DIRECT and BROADCAST

This CCC, available as both Broadcast (WRITE) and Direct (READ/WRITE), configures the next Target Reset action and can be used to retrieve the Target’s reset recovery timing. It is used alongside the Target Reset Pattern to initiate a reset on the Target.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0❌Unsupported
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0❌Unsupported
I3C v1.1.1✅5.1.9.3.26

Available ONLY as BROADCAST

This CCC indicates all Targets to clear their assigned Dynamic and Group Addresses (if applicable). After clearing, all Target devices should be ready to participate in Dynamic Address Assignment, SETDASA or SETAASA, or communicate via I2C.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.3
I3C v1.1.1✅5.1.9.3.3

SETAASA (Set All Addresses to Static Addresses)

Section titled “SETAASA (Set All Addresses to Static Addresses)”

Available ONLY as BROADCAST

Allows the Controller to request that all Targets that have an I2C Static Address set it as their Dynamic Address. This is the fastest way to assign Dynamic Addresses.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0❌Unsupported
I3C v1.1.1✅5.1.9.3.23

Available ONLY as BROADCAST

Enables the Controller to specify a particular context on the I3C bus, either a higher-level protocol developed by a standards-developing organization or the version of I3C Basic in use. Targets respond only to contexts they recognize. This command can be used multiple times to set and support a layered protocol context.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0❌Unsupported
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0❌Unsupported
I3C v1.1.1✅5.1.9.3.31

SETDASA (Set Dynamic Address from Static Address)

Section titled “SETDASA (Set Dynamic Address from Static Address)”

Available ONLY as DIRECT

Allows the Controller to assign a Dynamic Address to a Target via its Static Address (therefore, the target must have an I2C Static Address). This CCC is faster than the Dynamic Address Assignment Procedure (ENTDAA) and should be used beforehand. SETDASA is particularly useful for simple point-to-point communication in an I3C minimal bus, consisting of a single Controller and Target.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.10
I3C v1.1.1✅5.1.9.3.10

Available ONLY as DIRECT

Allows the Controller to assign a Group Address to an I3C Target that supports the Group Address feature. The Target will then respond to both the assigned Group and Dynamic addresses. If multiple I3C Targets share the same Group Address, a single message sent by the Controller to that Group Address will be received by all of those I3C Targets simultaneously.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0❌Unsupported
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0❌Unsupported
I3C v1.1.1✅5.1.9.3.27

Available ONLY as DIRECT

Allows the Controller to assign a new Dynamic Address to a Target that already has an existing Dynamic Address.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.11
I3C v1.1.1✅5.1.9.3.11

SETXTIME (Set Exchange Timing Information)

Section titled “SETXTIME (Set Exchange Timing Information)”

Available BOTH as DIRECT and BROADCAST

Allows the Controller and Targets to exchange event timing information for synchronizing controls, collecting or reconstructing timestamps, and specifying the timing data procedure. A defining byte is required to specify a sub-command, and while some sub-commands may require additional data, none that do so are currently supported.

I3C Basic

Specification VersionIn specReference Section
I3C Basic v1.0✅Link to Spec [PDF]
I3C Basic v1.1.1✅Link to Spec [PDF]

I3C

Specification VersionIn specReference Section
I3C v1.0✅5.1.9.3.20
I3C v1.1.1✅5.1.9.3.21

The table shows which CCCs the Binho Supernova sends as an I3C controller, and where each one can be sent from. It reflects firmware 4.6.x, PyCosmicSDK 1.7, CosmicSDK 1.7 and the Mission Control 3 I3C tool.

  • Yes: a named call or a menu entry.
  • Raw: no named call; send it with the raw CCC transfer (AsyncI3cCcc.transfer in PyCosmicSDK, i3cCccTransfer in CosmicSDK’s async API).
  • Auto: sent by another call.
  • No: not available.
CCCCodeTypeSupernovaPyCosmicSDKCosmicSDKMC3 I3C toolNotes
ENEC0x00 / 0x80Broadcast, DirectYesYesYesYes
DISEC0x01 / 0x81Broadcast, DirectYesYesYesYes
ENTAS0–ENTAS30x02–0x05 / 0x82–0x85Broadcast, DirectYesYesYesYesMC3 sends the broadcast form only.
RSTDAA0x06BroadcastYesYesYesYes
ENTDAA0x07BroadcastYesYesYesYesPyCosmicSDK init_bus() and MC3 Init Bus run RSTDAA + ENTDAA.
SETMWL0x09 / 0x89Broadcast, DirectYesYesYesYes
SETMRL0x0A / 0x8ABroadcast, DirectYesYesYesYes
SETBUSCON0x0CBroadcastYesYesYesYes
ENDXFER0x12 / 0x92Broadcast, DirectYesRawRawNo
ENTHDR00x20BroadcastYesAutoAutoNoSent by the HDR-DDR read and write calls (hdr_ddr_read / hdr_ddr_write, i3cHdrDdrRead / i3cHdrDdrWrite). Use firmware 4.6.1 or later for HDR-DDR.
SETXTIME0x28 / 0x98Broadcast, DirectYesYesYesYes
SETAASA0x29BroadcastYesYesYesYesNot supported by the Supernova in target mode.
RSTACT0x2A / 0x9ABroadcast, DirectYesYesYesYesDirect form in write and read mode.
RSTGRPA0x2C / 0x9CBroadcast, DirectYesYesYesNo
SETDASA0x87DirectYesYesYesYes
SETNEWDA0x88DirectYesYesYesYes
GETMWL0x8BDirectYesYesYesYes
GETMRL0x8CDirectYesYesYesYes
GETPID0x8DDirectYesYesYesYes
GETBCR0x8EDirectYesYesYesYes
GETDCR0x8FDirectYesYesYesYes
GETSTATUS0x90DirectYesYesYesYes
GETACCCR0x91DirectYesRawRawNoThe Supernova as a target does not take the Secondary Controller role.
GETMXDS0x94DirectYesYesYesYes
GETCAPS0x95DirectYesYesYesYesBoth SDKs take an optional defining byte.
GETXTIME0x99DirectYesYesYesYes
SETGRPA0x9BDirectYesYesYesNo

The Supernova does not support these CCCs:

  • Broadcast DEFTGTS (0x08) and Broadcast DEFGRPA (0x2B): need the I3C Secondary Controller role, which the Supernova does not support.
  • Broadcast ENTTM (0x0B)
  • Direct SETBRGTGT (0x93)
  • Direct SETROUTE (0x96)
  • Broadcast ENTHDR1, ENTHDR2, ENTHDR3: the Supernova does not support HDR-TSP, HDR-TSL or HDR-BT.
  • Broadcast and Direct MLANE (0x2D / 0x9D): the Supernova does not support multi-lane.