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
  • I3C Bus Initialization
  • Reset I3C Bus
  • Set Bus Voltage
  • I3C Get Target Device Table
  • I3C Write
  • I3C Read
  1. User Guide
  2. Protocols and Interfaces
  3. Bridge 1.1 API

Bridge 1.1 API - Basic I3C Commands

I3C Bus Initialization

  • Command Request:

    {
      "transaction_id": "1",
      "command": "i3c_init_bus",
      "params": {
        "busVoltageInV": "3.3"
      }
    }
  • Responses:

    • Immediate Promise Response:

      {
        "transaction_id": "1",
        "status": "success",
        "type": "command_response",
        "is_promise": true,
        "data": {
          "command": "i3c_init_bus"
        }
      }
    • Final Response to Setting Bus Voltage:

      {
        "transaction_id": "1",
        "status": "success",
        "type": "command_response",
        "is_promise": false,
        "data": {
          "is_response_to": "i3c_set_bus_voltage",
          "status": "success",
          "result": {}
        }
      }
    • Final Response to Bus Initialization:

      {
        "transaction_id": "2",
        "status": "success",
        "type": "command_response",
        "is_promise": false,
        "data": {
          "is_response_to": "i3c_init_bus",
          "status": "success",
          "result": {}
        }
      }
    • Response to Get Target Device Table:

      {
        "transaction_id": "3",
        "status": "success",
        "type": "command_response",
        "is_promise": false,
        "data": {
          "is_response_to": "i3c_get_target_device_table",
          "status": "success",
          "result": {
            "payload": [
              {"static_address": "50", "dynamic_address": "08", "bcr": "10", "dcr": "C3", "pid": ["65", "64", "00", "00", "00", "00"]},
              {"static_address": "51", "dynamic_address": "09", "bcr": "10", "dcr": "C3", "pid": ["65", "64", "00", "00", "00", "00"]},
              {"static_address": "52", "dynamic_address": "0A", "bcr": "10", "dcr": "C3", "pid": ["65", "64", "00", "00", "00", "00"]},
              {"static_address": "53", "dynamic_address": "0B", "bcr": "03", "dcr": "63", "pid": ["5A", "00", "1D", "0F", "17", "02"]}
            ]
          }
        }
      }

Reset I3C Bus

  • Command Request:

    {
      "transaction_id": "2",
      "command": "i3c_reset_bus",
      "params": {}
    }
  • Responses:

    1. Initial promise indicating the command is queued:

      {
        "transaction_id": "2",
        "status": "success",
        "type": "command_response",
        "is_promise": true,
        "data": {
          "command": "i3c_reset_bus"
        }
      }
    2. Final response indicating the outcome of the reset command:

      {
        "transaction_id": "2",
        "status": "success",
        "type": "command_response",
        "is_promise": false,
        "data": {
          "is_response_to": "i3c_reset_bus",
          "status": "success",
          "result": {}
        }
      }
    3. Response indicating the state of the target device table after reset:

      {
        "transaction_id": "2",
        "status": "success",
        "type": "command_response",
        "is_promise": false,
        "data": {
          "is_response_to": "i3c_get_target_device_table",
          "status": "success",
          "result": {
            "payload": []
          }
        }
      }

Set Bus Voltage

Set the bus voltage for the connected device.

  • Command Request:

    {
      "transaction_id": 4,
      "command": "i3c_set_bus_voltage",
      "params": {
        "busVoltageInV": "3.3"
      }
    }
  • Responses:

    Immediate promise response:

    {
      "transaction_id": "4",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_set_bus_voltage"
      }
    }

    Final response:

    {
      "transaction_id": "4",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_set_bus_voltage",
        "status": "success",
        "result": {}
      }
    }

I3C Get Target Device Table

  • Command Request:

    {
      "transaction_id": "6",
      "command": "i3c_get_target_device_table",
      "params": {}
    }
  • Responses:

    • Immediate Promise Response:

      {
        "transaction_id": "6",
        "status": "success",
        "type": "command_response",
        "is_promise": true,
        "data": {
          "command": "i3c_get_target_device_table"
        }
      }
    • Final Response:

      {
        "transaction_id": "6",
        "status": "success",
        "type": "command_response",
        "is_promise": false,
        "data": {
          "is_response_to": "i3c_get_target_device_table",
          "status": "success",
          "result": {
            "payload": [
              {"static_address": "50", "dynamic_address": "08", "bcr": "10", "dcr": "C3", "pid": ["65", "64", "00", "00", "00", "00"]},
              {"static_address": "51", "dynamic_address": "09", "bcr": "10", "dcr": "C3", "pid": ["65", "64", "00", "00", "00", "00"]},
              {"static_address": "52", "dynamic_address": "0A", "bcr": "10", "dcr": "C3", "pid": ["65", "64", "00", "00", "00", "00"]},
              {"static_address": "53", "dynamic_address": "0B", "bcr": "03", "dcr": "63", "pid": ["5A", "00", "1D", "0F", "17", "02"]}
            ]
          }
        }
      }

I3C Write

Write Using Subaddress

  • Command Request:

    {
      "transaction_id": "5",
      "command": "i3c_write_using_subaddress",
      "params": {
        "address": "08",
        "subaddress": "0000",
        "mode": "SDR",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "writeBuffer": "DEADBEEF"
      }
    }
  • Responses:

    • Immediate Promise:

      {
        "transaction_id": "5",
        "status": "success",
        "type": "command_response",
        "is_promise": true,
        "data": {
          "command": "i3c_write_using_subaddress"
        }
      }
    • Final Response:

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

Direct Write

  • Command Request:

    {
      "transaction_id": "6",
      "command": "i3c_write",
      "params": {
        "address": "08",
        "mode": "SDR",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "writeBuffer": "0000"
      }
    }
  • Responses:

    • Immediate Promise:

      {
        "transaction_id": "6",
        "status": "success",
        "type": "command_response",
        "is_promise": true,
        "data": {
          "command": "i3c_write"
        }
      }
    • Final Response:

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

I3C Read

Basic Read

  • Command Request:

    {
      "transaction_id": 7,
      "command": "i3c_read",
      "params": {
        "address": "08",
        "mode": "SDR",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "bytesToRead": "5"
      }
    }
  • Responses:

    {
      "transaction_id": "7",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_read"
      }
    }
    {
      "transaction_id": "7",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_read",
        "status": "success",
        "result": {
          "payload": ["DE", "AD", "BE", "EF", "00"],
          "payload_size": 5
        }
      }
    }

Read using Subaddress

  • Command Request:

    {
      "transaction_id": 8,
      "command": "i3c_read_using_subaddress",
      "params": {
        "address": "08",
        "mode": "SDR",
        "pushPullClockFrequencyInMHz": "5",
        "openDrainClockFrequencyInKHz": "2500",
        "subaddress": "0000",
        "bytesToRead": "5"
      }
    }
  • Responses:

    {
      "transaction_id": "8",
      "status": "success",
      "type": "command_response",
      "is_promise": true,
      "data": {
        "command": "i3c_read_using_subaddress"
      }
    }
    {
      "transaction_id": "8",
      "status": "success",
      "type": "command_response",
      "is_promise": false,
      "data": {
        "is_response_to": "i3c_read_using_subaddress",
        "status": "success",
        "result": {
          "payload": ["DE", "AD", "BE", "EF", "00"],
          "payload_size": 5
        }
      }
    }
PreviousBridge 1.1 APINextBridge 1.1 API - I3C Common Command Codes

Last updated 5 days ago