Quick Jump Menu
Info Ask a Question
Advanced Search Search the Knowledgebase
Which serial protocol do you use?
Reference Number: AA-00518 Created: 2011-08-08 14:43

<Previous question: SPI Adapter Selection Guide - Introduction
Next question:
 Do you use a custom / non-standard serial protocol?>


This question seems obvious, but really, it is not straightforward at all.

Here is why:

1) Real SPI (Serial Peripheral Interface) protocol implementations often slightly differ from the original spec.

SPI protocol really exists in many variations that can be called 'SPI'.
* In a real example, a so-called 'SPI slave' was compliant to the standard 'SPI' when transmitting data, but required a single "wake up" pulse on the MOSI line prior to operation. This is not strictly compliant to SPI.
* Another typical example will require the protocol to use a continuously toggling clock signal on SCLK, while the original SPI protocol only toggles the clock while sending and receiving data.

2) Your system often uses several serial protocols.

3) There are standard variations of the SPI protocol which you would like to use in the future

4) 3-wires SPI protocols are common. But what does this really mean?

Which protocols do Byte Paradigm's devices support?

Standard protocolExtended featuresSPI Xpress logo
SPI Storm logo
Standard SPI on 4 wires 
All SPI modes supported  

 3-wires protocol
with bi-directional data line
 Basic, limited to fixed protocol
('read after write')
 Continuous clock generation
(Clock optionally keeps on toggling when data is not generated / readback)


 Selectable SS polarity 

 Access length defined as a number of 'bits'.
Dual-SPI  
Quad-SPI
 
 Custom serial protocol 
 Selectable open-drain I/O 















Overview of the protocols mentioned in the above table:

SPI XpressSPI Storm logo
1) Standard SPI protocol:

This single master protocol uses 4 wires and formally performs byte-boundary full-duplex accesses with MOSI (Master-Out-Slave-In) and MISO (Master-In-Slave-Out) as data lines.
The 2 other wires are the SS (Slave Select) and SCLK (Serial clock line).

Standard SPI protocol

For more information about SPI protocol, please refer to the following article in the knowledge base: Introduction to SPI and I²C protocols


2) 3-wires protocol

'3-wires protocols' defined from SPI basically 'merge' MOSI and MISO as a single data line for both direction.
These protocols are also called 'half-duplex SPI', since the master is no longer able to write to slave and read from slave simultaneously (like it is the case for standard SPI).

As a consequence, 3-wires SPI protocols must define one or multiple 'sequences' in the protocol, which indicate when the master writes on the data line, when the slave writes on the data line and when the data line is Idle (HI-Z). 'Floating' (HI-Z) data line is notably necessary for switching the direction of the data line.

SPI XpressSPI Storm logo
2.1) 3-wires protocol as defined for SPI Xpress device.

SPI Xpress uses a fix 3-wires protocol, defined as follows (for clarity, SCLK is represented as continuously toggling. SCLK can be left at IDLE level when SS is not active).

SPI Xpress 3-wires SPI protocol

This protocol defines 3 phases:

Phase 1: 'WRITE-OUT': the master writes a specified number of bits to the slave selected with the SS line.

Phase 2: 'Latency' : the bus is left in high impedance (HI-Z) during a specified number of bits.

Phase 3: 'READ-IN' : the slave answers and writes a conventional number of bits onto the serial data line.

Note: this protocol is supported by SPI Storm device as well.


SPI Storm logo
2.2) 3-wires protocols supported by SPI Storm device

The protocol described above is supported by SPI Storm as a 'standard SPI-3 protocol'.

Moreover, SPI Storm also supports virtually any 3-wires protocols that assembles any combination of 'write-out', 'latency' and 'read-in', in any order, for any length, and with flexible clocking (full flexibility for when to toggle and stop clock).

Please refer to the next question (Do you use a custom / non-standard serial protocol?) for more information about the possibilities in the definition of custom protocols with SPI Storm.


SPI Storm logo
3) Dual-SPI and Quad-SPI protocols

Quad SPI protocol

Dual-SPI and quad-SPI are more or less 'standardized extensions' of the standard SPI protocol.
They are based on the following principles:

  • Standard SPI protocol is used by default by dual-SPI and quad-SPI-compliant slaves;
  • Specific SPI instructions are used to set the slave in 'dual-SPI' or 'quad-SPI' mode;
  • Once the slave is configured in 'dual-' or 'quad-' SPI mode, the data transfers (read or write) use some additional control lines as data lines, resulting in a data bus extended from 1 data signal line to 2 (dual-SPI) or 4 (quad-SPI) data lines.

SPI Storm logo
4) Custom serial protocol

Please go to next question:


<Previous question: SPI Adapter Selection Guide - Introduction
Next question:
 Do you use a custom / non-standard serial protocol?>