Binho Customer Support
  • Customer Support Portal
  • User Guide
    • Binho Nova
    • Binho Supernova
    • Hardware Comparison Table
    • Safety Notice
    • Compliance & Legal
    • System Requirements
    • Updating Firmware
    • Protocols and Interfaces
      • I3C Common Command Codes
      • Bridge 1.1 API
        • Bridge 1.1 API - Basic I3C Commands
        • Bridge 1.1 API - I3C Common Command Codes
        • Bridge 1.1 API - I2C Commands
        • Bridge 1.1 API - SPI Commands
        • Bridge 1.1 API - UART Commands
        • Bridge 1.1 API - GPIO Commands
  • Getting Started
    • Hardware Setup
      • Binho Nova
      • Binho Supernova
    • Binho Mission Control
      • Overview
      • Download & Installation
      • Interactive Tour
        • App Layout
        • Protocol Activation
        • Command Panel
        • Transaction Log View
      • Updating Binho Mission Control Software
      • Simulators
      • Communication Protocols
        • SPI
        • UART
        • I2C
        • I3C
        • 1-WIRE
        • GPIO
      • Settings
    • Python SDKs
      • SupernovaController
      • Nova SDK
    • C++ SDK
      • Installation
      • Environment Setup
      • Building the C++ SDK Library
      • Building a Project Using the SDK
      • Example Applications
      • Using the Library
    • Software Releases
  • Examples
    • SupernovaController
    • Other Examples
  • Troubleshooting
    • Solving USB Connection Issues on Linux
  • FAQ
    • What is a host adapter?
    • What protocols are supported?
    • Can multiple devices be used at the same time?
    • Where can I find the product datasheet?
    • Is there a GUI available?
    • Is the ADC calibrated?
    • Is the DAC calibrated?
  • Returns & Warranty
    • 90-Day Return Policy
    • 2-Year Warranty
  • Dropping Legacy Terminology
  • Contact Us
  • Orders & Shipping
    • Place an Order
    • Requesting a Quotation
    • Placing a Purchase Order
    • Shipping Policy
    • International Shipping
    • Tax Exemption
    • Discounts
    • Distributors
Powered by GitBook
On this page
  1. User Guide
  2. Protocols and Interfaces
  3. Bridge 1.1 API

Bridge 1.1 API - I3C Common Command Codes

PreviousBridge 1.1 API - Basic I3C CommandsNextBridge 1.1 API - I2C Commands

Last updated 5 days ago

CCC (Common Command Codes)

The CCC (Common Command Codes) provides a set of universal commands supported across multiple devices. The Bridge for Supernova has a few CCCs which can be used to interact with the downstream devices. This section details these CCCs. For more information on this topic see section.

GETPID

  • Command Request:

    {
      "transaction_id": 9,
      "command": "i3c_ccc_send",
      "params": {
        "cccName": "GETPID",
        "address": "08",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "cccParams": {}
      }
    }
  • Responses:

    1. Immediate promise:

    {
      "transaction_id": "9",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_ccc_getpid"
      }
    }
    1. Command result:

    {
      "transaction_id": "9",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_ccc_getpid",
        "status": "success",
        "result": {
          "payload": ["0", "0", "0", "0", "64", "65"],
          "payload_size": 6
        }
      }
    }

DIRECTSETMRL

  • Command Request:

    {
      "transaction_id": 10,
      "command": "i3c_ccc_send",
      "params": {
        "cccName": "DIRECTSETMRL",
        "address": "08",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "cccParams": { 
          "cccDataBuffer": "10"
        }
      }
    }
  • Responses:

    1. Immediate promise:

    {
      "transaction_id": "10",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_ccc_direct_setmrl"
      }
    }
    1. Command result:

    {
      "transaction_id": "10",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_ccc_direct_setmrl",
        "status": "success",
        "result": {
          "payload": ["00", "00"],
          "payload_size": 2
        }
      }
    }

DIRECTENEC

  • Command Request:

    {
      "transaction_id": 11,
      "command": "i3c_ccc_send",
      "params": {
        "cccName": "DIRECTENEC",
        "address": "08",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "cccParams": { 
          "events": ["ENINT", "ENCR", "ENHJ"]
        }
      }
    }
  • Responses:

    1. Immediate promise:

    {
      "transaction_id": "10",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_ccc_direct_enec"
      }
    }
    1. Command result:

    {
      "transaction_id": "10",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_ccc_direct_enec",
        "status": "success"
      }
    }

Note: For DIRECTDISEC the response's format is very similar, except that the accepted events are ["DISINT", "DISCR", "DISHJ"]. For BROADCASTENEC and BROADCASTDISEC is also similar but address parameter is not required.

SETAASA

  • Command Request:

    {
      "transaction_id": 12,
      "command": "i3c_ccc_send",
      "params": {
        "cccName": "SETAASA",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "cccParams": {
          "staticAddresses": ["08", "09", "0A"]
        }
      }
    }
  • Responses:

    1. Immediate promise:

    {
      "transaction_id": "12",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_ccc_setaasa"
      }
    }
    
    1. Command result:

    {
      "transaction_id": "12",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_ccc_setaasa",
        "status": "success"
      }
    }
    

ENTDAA

  • Command Request:

    {
      "transaction_id": 13,
      "command": "i3c_ccc_send",
      "params": {
        "cccName": "ENTDAA",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "cccParams": {
          "targetDeviceTable": {
            "BMM350": {
              "staticAddress": "0x14",
              "dynamicAddress": "0x0C",
              "i3cFeatures": "0x0B",
              "maxIbiPayloadLength": "0xE9",
              "bcr": "0x26",
              "dcr": "0x43",
              "pid": ["0x07", "0x70", "0x10", "0x33", "0x00", "0x00"]
            }
          }
        }
      }
    }
  • Responses:

    1. Immediate promise:

    {
      "transaction_id": "13",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_ccc_entdaa"
      }
    }
    1. Command result:

    {
      "transaction_id": "13",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_ccc_entdaa",
        "status": "success"
      }
    }

Note: When using this command is necessary to previously run i3c_init_bus followed byi3c_reset_bus.

BROADCASTRSTACT

  • Command Request:

    {
      "transaction_id": 14,
      "command": "i3c_ccc_send",
      "params": {
        "cccName": "BROADCASTRSTACT",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "cccParams": {
          "definingByte": "02"
        }
      }
    }
  • Responses:

    1. Immediate promise:

    {
      "transaction_id": "14",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_ccc_broadcast_rstact"
      }
    }
    1. Command result:

    {
      "transaction_id": "14",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_ccc_broadcast_rstact",
        "status": "success"
      }
    }

Note: Similar to DIRECTRSTACT but does not require an address parameter.

DIRECTENDXFER

  • Command Request:

    {
      "transaction_id": 15,
      "command": "i3c_ccc_send",
      "params": {
        "cccName": "DIRECTENDXFER",
        "address": "08",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "cccParams": {
          "definingByte": "AA",
          "data": "20"
        }
      }
    }
  • Responses:

    1. Immediate promise:

    {
      "transaction_id": "15",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_ccc_direct_endxfer"
      }
    }
    1. Command result:

    {
      "transaction_id": "15",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_ccc_direct_endxfer",
        "status": "success",
        "result": {
          "payload": [0],
          "payload_size": 1
        }
      }
    }

Note: Similar to BROADCASTENDXFER, but requires an address parameter.

BROADCASTSETXTIME

  • Command Request:

    {
      "transaction_id": 16,
      "command": "i3c_ccc_send",
      "params": {
        "cccName": "BROADCASTSETXTIME",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "cccParams": {
          "definingByte": "3F",
          "data": ["DE", "AD", "BE", "EF"]
        }
      }
    }
  • Responses:

    1. Immediate promise:

    {
      "transaction_id": "16",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_ccc_broadcast_setxtime"
      }
    }
    1. Command result:

    {
      "transaction_id": "16",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_ccc_broadcast_setxtime",
        "status": "success",
        "result": {
          "payload": [0, 0, 0, 0, 0],
          "payload_size": 5
        }
      }
    }

Note: Similar to DIRECTSETXTIME, but does not require an address parameter.

Currently Supported CCCs:

Refer to for current support status (see Bridge column).

I3C Common Command Codes
this table