Working with Quad and Other SPI Protocols Testing and Debugging (Quad-) SPI-based ASIC, FPGA, SoC and Embedded Systems

Similar documents
SPI Storm. Data sheet

Introducing SPI Xpress SPI protocol Master / Analyser on USB

Design and development of embedded systems for the Internet of Things (IoT) Fabio Angeletti Fabrizio Gattuso

Introduction the Serial Communications Parallel Communications Parallel Communications with Handshaking Serial Communications

Introduction to I2C & SPI. Chapter 22

Parallel Data Transfer. Suppose you need to transfer data from one HCS12 to another. How can you do this?

SPI Storm Studio. Getting Started Guide. Revision Sep Byte Paradigm

ORION USB3 Evaluation Kit

Tektronix DPO Demo 1 Board Instruction Manual

Microcontrollers and Interfacing

SPI Universal Serial Communication Interface SPI Mode

User s Manual iceprogm1050, icecablem100 and SAB-XXXXX-X V 1.2

or between microcontrollers)

Serial Peripheral Interface. What is it? Basic SPI. Capabilities. Protocol. Pros and Cons. Uses

Application Brief. Using the Total Phase CAN/I2C Activity Board Pro as an I2C- to- CAN Translator Application Brief by Rick Bogart

Digital Storage Oscilloscope

Design Development and Implementation of SPI

AARDVARK. EEPROM Socket Board. DIP/SOIC/TSSOP EEPROM Socket Board. Datasheet v1.10 February 1, 2010 I 2 C/SPI. Features

Digital Circuits Part 2 - Communication

PIC Serial Peripheral Interface (SPI) to Digital Pot

S2C K7 Prodigy Logic Module Series

ArduCAM-M-2MP Camera Shield

Remote Keyless Entry In a Body Controller Unit Application

The 9S12 Serial Peripheral Inteface (SPI) Huang Section 10.2 through 10.6 SPI Block User Guide

Raspberry Pi - I/O Interfaces

D Demonstration of disturbance recording functions for PQ monitoring

Level Shifter. for. Hardware User s Manual.

High Speed SPI Slave Implementation in FPGA using Verilog HDL

UART TO SPI SPECIFICATION

SPI Xpress. Data sheet

FPGA Implementation Of SPI To I2C Bridge

SPI 3-Wire Master (VHDL)

MISO MOSI Clock. The master and the slave use a protocol based on the following frame structure. Preamble Body Postamble

Test Case: Linux I2C driver testing - Slave Mode. 1. Test Case ID: TC_I2C_Lin_004

PARALLEL COMMUNICATIONS

Interfacing Techniques in Embedded Systems

ECE 1160/2160 Embedded Systems Design. Midterm Review. Wei Gao. ECE 1160/2160 Embedded Systems Design

AARDVARK. Level Shifter Board. Level Shifter Board. Datasheet v1.00 February 15, 2008 I 2 C/SPI. Features

SPI (Serial & Peripheral Interface)

Tutorial for I 2 C Serial Protocol

Deterministic high-speed serial bus controller

2 Sockets Compatible Chip Sizes Pinouts Connectors pin Boxed Connector Powering the Flash Socket Boards...

Introduction the Serial Communications Huang Sections 9.2, 10.2 SCI Block User Guide SPI Block User Guide

Universität Dortmund. IO and Peripheral Interfaces

Multicommunication Type Identifying Debugging Probe

MAX31723PMB1 Peripheral Module

Understanding SPI with Precision Data Converters

Amarjeet Singh. January 30, 2012

MICROCONTROLLER S PROGRAMMER

Block Diagram. mast_sel. mast_inst. mast_data. mast_val mast_rdy. clk. slv_sel. slv_inst. slv_data. slv_val slv_rdy. rfifo_depth_log2.

Lecture 25 March 23, 2012 Introduction to Serial Communications

< W3150A+ / W5100 Application Note for SPI >

Embedded Systems Lab Lab 1 Introduction to Microcontrollers Eng. Dalia A. Awad

Beagle USB 5000 SuperSpeed Protocol Analyzer

C8051F700 Serial Peripheral Interface (SPI) Overview

Lecture 5: Computing Platforms. Asbjørn Djupdal ARM Norway, IDI NTNU 2013 TDT

EE 456 Fall, Table 1 SPI bus signals. Figure 1 SPI Bus exchange of information between a master and a slave.

Pmod ESP32 Reference Manual

PCI Host Controller 14a Hardware Reference Release 1.2 (October 16, 2017)

AT-501 Cortex-A5 System On Module Product Brief

Growing Together Globally Serial Communication Design In Embedded System

USER GUIDE EDBG. Description

Serial Communication. Simplex Half-Duplex Duplex

Network Embedded Systems Sensor Networks Fall Hardware. Marcus Chang,

SMT943 APPLICATION NOTE 1 APPLICATION NOTE 1. Application Note - SMT372T and SMT943.doc SMT943 SUNDANCE MULTIPROCESSOR TECHNOLOGY LTD.

CprE 488 Embedded Systems Design. Lecture 4 Interfacing Technologies

Arduino Uno R3 INTRODUCTION

I2C and SPI Foundation

USB-to-I2C. Ultra Hardware User s Manual.

What's "vspi"? What's included?

IPC. Preliminary Data Brief. IPC High speed phase current sensor with digital interface Draft Review Released

Doc: page 1 of 6

HZX N03 Bluetooth 4.0 Low Energy Module Datasheet

Microcontroller basics

Serial Peripheral Interface (SPI)

DT9853/DT9854 Isolated, Low Cost D/A Modules for USB

ASNTu2s PCB with Tiger Board USB to 7-Channel 3-Wire Interface Bridge Application Notes

Digital Storage Oscilloscope

AT90SO36 Summary Datasheet

SERDESUB 913ROS DS90UB913Q Serializer and DS90UB914Q Deserializer Evaluation Kit User s Manual

Multi-protocol monitoring using oscilloscopes

SPI to Ethernet Module

LEON4: Fourth Generation of the LEON Processor

AC : INFRARED COMMUNICATIONS FOR CONTROLLING A ROBOT

DESIGN AND VERIFICATION OF LOW SPEED PERIPHERAL SUBSYSTEM SUPPORTING PROTOCOLS LIKE SPI, I 2 C AND UART

DESIGNING OF INTER INTEGRATED CIRCUIT USING VERILOG

Reference Design RD1065

Pmod modules are powered by the host via the interface s power and ground pins.

FPGA system development What you need to think about. Frédéric Leens, CEO

LAB4. Program the on chip SPI module

STM32F7 series ARM Cortex -M7 powered Releasing your creativity

power supply Tamper Detect function will detect possible data modification from outside magnetic

Ethernet1 Xplained Pro

Overview of Microcontroller and Embedded Systems

Groking the Linux SPI Subsystem FOSDEM Matt Porter

Part 1 Using Serial EEPROMs

Cerebot Nano Reference Manual. Overview. Revised April 15, 2016 This manual applies to the Cerebot Nano rev. A

AN10428 UART-SPI Gateway for Philips SPI slave bridges

LABORATORIO DI ARCHITETTURE E PROGRAMMAZIONE DEI SISTEMI ELETTRONICI INDUSTRIALI. Laboratory Lesson 9: Serial Peripheral Interface (SPI)

Design and Implementation of LED Display Screen Controller based on STM32 and FPGA Chi Zhang 1,a, Xiaoguang Wu 1,b and Chengjun Zhang 1,c

Transcription:

Working with Quad and Other SPI Protocols Testing and Debugging (Quad-) SPI-based ASIC, FPGA, SoC and Embedded Systems By Alan Lowne, CEO, SaeligCo., Inc. and Frédéric Leens, sales and marketing manager, byteparadigm In the protocol world for communicating between integrated circuits, serial peripheral interface (SPI) has become a favorite, versatile choice for IC manufacturers because of its simplicity, especially when it comes to streaming large quantities of data with minimum pin count. SPI is based on four signal lines (see Figure 1): One clock signal (SCLK) sent from the bus master to the slave(s); this clock is active when data is exchanged between master and slave One slave select (SS) line for each slave used to select the slave the master communicates with One data line from master to slave ( Master-Out-Slave- In - MOSI) One data line from slave to master ( Master-In-Slave- Out MISO) SPI is also a primary choice for electronics engineers when choosing a simple interface between ICs. As a de facto standard, however, the SPI protocol does not define much at all no specific addressing scheme, no specific higher level formatting. Early on, the data length was 8 bits (1 byte), but now it can be almost any length. There are many advantages to using SPI protocol: Clock rate is not restricted: within the IC s physical limits, raising the clock rate increases the data rate. The protocol is full-duplex: data can be received as data is sent. It is equally suitable for many applications from register access with a fixed addressing/data scheme to the streaming of large amounts of data. SPI does not define the I/O voltage. Figure 1: Serial Peripheral Interface (SPI-4 protocol) 16 Engineers Guide to FPGA and CPLD Solutions 2012

Figure 2: Example of transition from simple SPI to quad-spi protocol Figure 3: Example of custom protocol composed of a pulse on MOSI, and a standard SPI access. This protocol also presents some drawbacks: for advanced uses, it requires building full protocol stacks from scratch (SPI does not define anything) and it lacks a built-in acknowledgement mechanism. Over time, SPI has seen variants and extensions here are a few examples: The clock signal is sometimes generated as a continuously toggling signal, as the SS line can allow detecting when data is sent and not sent. Some variants merge MOSI and MISO data lines, implementing a half-duplex SPI protocol with a bidirectional data line (often referred to as 3-wire SPI ). Especially for flash memories, dual-spi and quad-spi protocols were created to increase the available bandwidth. Because they use multiple data lines in parallel, dual-spi and quad-spi protocols cannot strictly be considered as serial protocols. Dual-SPI and quad-spi protocols are more or less standardized extensions of the SPI protocol. They are based on the following principles: Standard SPI protocol is used by default by dual-spi and quad-spi protocol slaves. Specific SPI instructions are used to set the slave in dual-spi or quad-spi mode. www.eecatalog.com/fpga 17

Figures 4 and 5: SPI Storm SPI Bus Tool 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. Of course, the purpose is to increase the available bandwidth (see Figure 2). Non-Standard Serial Protocols Designing custom ICs such as ASICs, SoCs or FPGAs allows the choosing of standard or custom protocols for IC-to-IC communications. Typical differences between these protocols and standard SPI include: Higher levels of protocol stacks can be implemented in the communication protocol itself, requiring a more strict use of the clock and control lines. Specific data pulse sequences, with or without clock can be used to set the slave components into specific modes, or to wake them up. Open-drain I/Os are possible. Additional data lines can be used (e.g.,quad-spi). Other implementations reduce I/O pin-count and require bi-directional data lines. Edges used for data generation and sampling vary from what is specified for SPI. Development Tools for Protocols Beyond Standard SPI There are a number of USB hardware solutions to provide standard SPI master and/or slave capabilities to computers running Linux, Mac or Windows, but hardly any of them work with quad-spi. SPI host adapters create an SPI master on an SPI bus from almost any PC, and are great for embedded system, chip (FPGA/ASIC/SoC) and peripheral testing, programming and debug. But, ideally, what is needed is a USB-connected serial protocol host adapter for PCs that supports not only standard SPI but also 3-wire SPI, dual-spi and quad-spi protocols as a master, allowing the control of custom serial protocol interfaces up to, say, 100MHz. This would allow access to ICs and embedded systems with standard and extended standard protocols, as well as user-defined methods, through graphical user interface PC software. It is extremely helpful to be able to view chip-to-chip communication protocols as an assembly of simple segments characterized by properties in terms of clocking, signal lines, control lines behavior, data sampling and data generation. Another useful feature would be a large memory buffer to allow some form of data logging and to guarantee 18 Engineers Guide to FPGA and CPLD Solutions 2012

Manufacturer Byte Paradigm Byte Paradigm Table 1 SPI Host Adapters SPI Host Adapter Host Bus Bus List Max frequency Price USD SPI Storm USB SPI, SPI 3 wires, dual-spi, quad- SPI, custom protocol, GPO 100 MHz $1,199 SPI Xpress USB SPI, SPI 3 wires 50 MHz $699 Diolan U2C-12 USB I²C, SPI, GPIO 200 khz $89 National Instruments USB-8541 USB I²C, SPI 12 MHz $109 Total Phase Aardvark USB I²C, SPI 8 MHz $250 Total Phase Cheetah USB SPI 40 MHz $350 SPECIAL FEATURE accurate real-time signal generation and data sampling for most applications. SPI host adapters are useful for troubleshooting digital designs, accessing registers and streaming serial port data; exercising ICs and embedded systems that use serial protocols;programming SPI, dual-spi and quad-spi flash memories;accessing ADC, DAC and other components that use standard SPI protocols;and accessing custom chips (FPGA, ASIC) using non-standard protocols for IP testing and prototype validations. Some available adapters provide useful GUI applications to make SPI access user-friendly. APIs also often are provided for use with other software. An included GPO/pattern generator with a dedicated memory can provide helpful input digital vector generation. Many high-end scope manufacturers offer scope-based triggering and protocol decode for SPI protocols, and most support 2-, 3- and 4-wire SPI, but these are often optional (i.e., not free) extras. PC oscilloscope adapters and logic analyzers also often offer SPI decode capabilities, but do not provide master capabilities. Non-Standard Protocol Definition It is helpful to be able to create a non-standard SPI protocol to match a new capability or a manufacturer s unusual communication standard, but creating or reproducing this can often be challenging. The Studio soft- Figure 6: Defining custom protocols in SPI Storm Studio software www.eecatalog.com/fpga 19

Conclusion Standard and custom serial protocols used for chip-to-chip communications are ubiquitous. Finding a convenient and powerful tool that enables ASIC, SoC and full embedded system development, testing and debugging can be an additional challenge, however. It is often necessary to be able to define unique serial protocols or fine tune the characteristics of standard protocols such as SPI. It is often helpful to try a demo version of the manufacturer s software before you buy it. Figure 7: SPI Storm Studio Program Page ware, provided with the SPI Storm allows a visual creation and definition of protocol parameters. Protocol Defining Software Once the protocols are defined in the GUI software, the user can choose to setup and execute real access sequences with the graphical user interface or with C-function calls from the provided API. This enables task automation and building complete custom application interfaces from an environment that can call standard C functions. Frederic Leens is sales and marketing manager of Byte Paradigm sprl (Belgium), a company that provides PC instrumentation solutions for testing and debugging embedded systems. He holds a MSEE in electrical engineering from the Mons Institute of Technology (FPMs), Belgium. Prior to founding Byte Paradigm in 2005, he was project leader at Barco (Belgium), with a specialty in digital ASIC, SoC, FPGA and full system board design for medical, avionics, banking and industrial applications. Alan Lowne is CEO of Saelig Co. Inc. (Pittsford, NY), a North American distributor founded in 1988, which sources and supports unique control and instrumentation products from around the world.prior to forming Saelig, Alan worked as an analog/digital design engineer for Eastman Kodak Co. in UK and USA, working on digital photography and clinical instruments.he completed electronic engineering degrees from Southampton University (UK) and Brunel University (UK). 20 Engineers Guide to FPGA and CPLD Solutions 2012