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
  • Settings
  • Chip Selection
  • Transactions
  • Real-world Examples
  1. Getting Started
  2. Binho Mission Control
  3. Communication Protocols

SPI

PreviousCommunication ProtocolsNextUART

Last updated 4 months ago

SPI, short for Serial Peripheral Interface, is a widely-used communication protocol in the realm of electronics. Binho Mission Control optimizes the user's interaction with the SPI protocol, presenting an intuitive approach to its functionalities. When the SPI communication protocol is selected and activated, the Command Panel gets segmented into three distinct sections, each dedicated to a specific facet of the SPI communication: settings, chip selection, and transaction execution.

The Bus Voltage section allows the user to initialize and set the bus voltage. Additionally, in the case of Supernova and Pulsar, 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.

Settings

The Settings segment allows users to adjust the following parameters:

Parameter
Nova values
Supernova and Pulsar values
Comment

Clock Freq

0.8 to 12 MHz

10 kHz to 50 MHz

Discreet values.

Bit Order

MSB, LSB.

MSB, LSB.

Most/Less Significant Bit first.

Bits / Transfer

8, 16.

-

Bits per transfer.

Mode

0, 1, 2, 4.

0, 1, 2, 4.

(CPOL, CPHA) ∈ {(0,0); (0,1); (1,0); (1,1)}

CPOL and CPHA refer to the clock's polarity and phase. In tandem, they designate the precise timing and edge (be it rising or falling) at which data is sampled.

Chip Selection

Parameter
Admited values
Comment

Pin Select

CS0, CS1.

CS = Chip Select

Polarity

Low, High.

Active Low/High polarity for CS.

Pre-Delay

Numeric

Only positive integer numbers. Unit: μs.

Post-Delay

Numeric

Only positive integer numbers. Unit: μs.

Pre/Post Delays pertain to the time gap between the inactive-to-active transition of the CS (Chip Select) signal and the sampling of the initial payload bit.

Transactions

This segment comprises two text fields and a dedicated TRANSFER button, simplifying SPI transaction processes.

  1. Write Buffer: Here, users input the data payload designated for the target device. It's important to note that entries should be in hexadecimal form, grouped in byte packets. For instance, inputs like '00' or 'FF' (contingent on the chosen polarity) symbolize a read-only operation.

  2. Read Size: This field allows users to determine the quantity of bytes they wish to retrieve from the target device. Initiating an SPI transaction is as simple as hitting the TRANSFER button.

Real-world Examples

Outlined below are hands-on tests with tangible devices, offering a glimpse into the SPI protocol in action.

Flash Memory Test with W25Q128fV: Utilizing a Winbond flash memory model W25Q128fV, we explored the Binho Mission Control app's SPI capabilities. The device's datasheet elucidates an instruction to fetch the JEDEC designated manufacturer ID, Memory Type, and its Capacity concurrently. This is executed by transmitting the byte '0x9F' to the flash memory input. Winbond's ID, as per the datasheet, is '0xEF'. With a permissible clock frequency of up to 50 MHz and compatibility with SPI modes 0 and 2, our test was conducted at a 12 MHz clock frequency in mode 0. The subsequent results, especially concerning the JEDEC ID, aligned with our expectations.

Pressure Sensor Test with BMP280: This example delves deeper, showcasing the capabilities of the SPI protocol using the BMP280 pressure sensor.

SPI command panel for Supernova and Pulsar
Operation Settings for Nova
Chip Select for Nova
Transactions sub-panel.
Write operation to a SPI flash memory