I2C SPI USB CAN eSPI Cable Testing View All Videos Quick Start Guides Software Downloads App Notes White Papers User Manuals Knowledge Base Sales Support About Us
Products Blog Sales Support Contact Search
Cheetah GUI Software User Manual
Cheetah GUI Software User Manual

1 Overview

The Cheetah SPI Host Adapter is a high-speed SPI-to-USB host adapter. The Cheetah GUI software interacts directly with the Cheetah adapter.

The Cheetah GUI provides basic access to all the functionality of the Cheetah adapter. It is built upon the freely available Cheetah SPI Software API as detailed in the Cheetah SPI Host Adapter datasheet.

1.1 Cheetah SPI Host Adapter

The Cheetah SPI Adapter can function as an SPI master device. It is capable of communicating over all four modes of SPI at up to 40+ MHz. The Cheetah adapter also has three independently controllable slave select lines.

SPI is a serial protocol for communicating between devices. Information about its specifications can be found in the Cheetah SPI Host Adapter datasheet and on the Total Phase website: http://www.totalphase.com/.

1.2 Changes in version 1.12

  • Improved USB driver support for Linux.

1.3 Changes in version 1.11

  • Added suppport for Windows 8.1.

1.4 Changes in version 1.10

  • The minimum and default bit rate is now 100 kHz.
  • Added the ability to insert delays between the bytes of a message.
  • Added support for 64-bit Windows. Note that the Cheetah GUI software will run on 64-bit systems as a 32-bit application.

2 Getting Started

2.1 Requirements

2.1.1 Overview

The following sections describe the requirements to run the Cheetah GUI software. Be sure the device driver has been installed before plugging in the Cheetah adapter. Refer to the Cheetah datasheet for additional information regarding the driver and compatibility.

2.1.2 Windows

The Cheetah GUI software is compatible with Windows XP (SP2 or later, 32-bit or 64-bit), Windows Vista (32-bit and 64-bit), and Windows 7 (32-bit and 64-bit). The software will run on 64-bit systems as a 32-bit application. Windows 2000 and legacy 16-bit Windows 95/98/ME operating systems are not supported.

2.1.3 Linux

The Cheetah GUI software has been designed for Red Hat Enterprise Linux 4 and 5 with integrated USB support. Kernel 2.6 is required. The software will run on 64-bit systems as a 32-bit application, provided that 32-bit system libraries are available.

2.2 Installing the Cheetah GUI Software

The Cheetah GUI software is a self-contained application. Installing the software is as easy as unpacking the archive containing the software package. To install the Cheetah GUI:

  1. Download the latest version of the software from the Total Phase website.
  2. Unzip the zip archive to your desired location.

2.3 Launching the Cheetah GUI

2.3.1 Windows

  1. Go to the folder where the software package was extracted.
  2. Click on "Cheetah-GUI.exe"

2.3.2 Linux

  1. Go to the installation directory where the software package was unzipped.
  2. Run >./Cheetah-Gui

After launching the Cheetah GUI, you will see the screen in figure 1.

Figure 1 : Initial Screen
After first launching the Cheetah GUI, the software needs to be connected to a Cheetah adapter.

To send and receive messages, the Cheetah GUI software must be connected to a Cheetah adapter. When a Cheetah adapter is connected to the software, it will be unavailable for use by another process until the adapter is disconnected from the process or the application is terminated.

2.3.3 Connect a Cheetah Adapter

Figure 2 : Cheetah Adapter Connect Window
The Connect window displays a list of available Cheetah adapters and their version information.

The configuration window (figure 2) has a list of available Cheetah adapters and their version information.

List of Available Cheetah Adapters

In the configure window, there is a list of all the available Cheetah adapters that are connected to the computer. If no Cheetah adapters appear in the list, then there are no available units connected to your computer.

Refresh List

To see an updated list of Cheetah adapters attached to the computer, simply click on the "Refresh" button to rescan the USB bus.

Please note that Cheetah adapters that are in use by other applications are no longer available for use. These Cheetah adapters are listed as IN USE in the Connect window.

The list of Cheetah adapters provides the following information:


The port that the Cheetah adapter occupies. The port number is a zero-based number. For more information about USB port assignments, please consult section the relevant section of the Cheetah SPI Host Adapter datasheet.

Firmware Version (FW) & Hardware Version (HW)

For more information about version numbers, please consult the Cheetah SPI Host Adapter datasheet.

Serial Number

The serial number of the Cheetah adapter.

Opening a Cheetah Adapter

Click "Open" to connect to the desired Cheetah adapter. You can also double-click on the selected entry in the list.

The port and serial number of the Cheetah adapter will appear in the status bar at the bottom of the window to indicate which Cheetah adapter is bound to this instance of the application.

2.4 Disconnecting the Cheetah Adapter

The Cheetah adapter can be disconnected from the current application. To do so, click on the "Disconnect" button or go to the menu item: File | Disconnect.

When disconnected, the application will return to the starting screen.

2.5 Exiting the Application

To exit the application, go to the menu item: File | Quit.

3 Application

SPI is a serial communication bus developed by Motorola. It is a full-duplex protocol that functions on a master-slave paradigm that is ideally suited to data streaming applications.

3.1 Introduction

Figure 3 : Cheetah GUI
Once the Cheetah GUI has been connected to a Cheetah adapter, the GUI becomes enabled to allow the user to control the SPI parameters of the Cheetah adapter as well as send and receive messages.

The main application window is divided into three major sections. The top section contains the controls to configure the SPI parameters of the Cheetah adapter. The middle section contains a hex editor for entering the MOSI message to send from the Cheetah adapter. The bottom section contains a transaction log that provides a timestamped list of transactions performed by the Cheetah GUI software.

3.2 SPI Parameters

Many of the SPI signaling parameters of the Cheetah adapter can be changed to suit the needs of the system it targets.

Figure 4 : SPI Parameters
The top section of the Cheetah GUI provides the ability to control the various SPI parameters of the Cheetah adapter.

3.2.1 SPI Mode

The Cheetah adapter is capable of communicating in all four modes of SPI. Both the Cheetah adapter and the target device must use the same SPI mode such that they both use the same data frame for the transaction.

Each of the four SPI mode defines a specific combination of clock polarity (CPOL) and clock phase (CPHA). A clock polarity of 0 means that the clock is rising then falling and a clock polarity of 1 means that the clock is falling then rising. A clock phase of 0 means that the data is sampled on the first edge and a clock phase of 1 means that the data is sampled on the trailing edge.

Figure 5 : SPI Modes
The frame of the data exchange is described by two parameters, the clock polarity (CPOL) and the clock phase (CPHA). This diagram shows the four possible states for these parameters and the corresponding mode in SPI.

A pull-down menu provides a quick and easy way to change SPI modes. There is also an accompanying graphic, labeled "SCK Polarity," which illustrates the characteristics of the mode. Once a mode has been selected from the pull-down menu, it is immediately set and a message should appear in the transaction log.

3.2.2 Bit Rate

The bit rate is the speed of communications between the master and the slave. The Cheetah adapter can operate at bit rates from 100 kHz to 40 MHz in increments of 1-2 kHz. It is also possible to overclock the Cheetah adapter to bit rates beyond 40 MHz. While the Cheetah adapter can communicate at up to 50 MHz, Total Phase will not provide support for any communication over 40 MHz.

Changing the Bit Rate

The most commonly used bit rates are available in the bit rate pull-down menu. To change the bit rate, simply select a bit rate from the pull-down menu. Alternatively, it is also possible to enter any arbitrary bit rate greater than 100 kHz. Only integer values are accepted; decimal bit rate values (e.g., 1.3 MHz) will cause an error message to be displayed. Bit rates can be specified in either kilohertz (kHz) or megahertz (MHz). If no units are specified, it will be assumed that the bit rate is being set in kilohertz.

Once a bit rate is entered, the Accept and Cancel icons next to the bit rate box will become active. To accept the bit rate that has been entered, simply click on the green check mark of the Accept button. To cancel the data entry, simply click on the red X of the Cancel button. When a data entry has been canceled, the previous bit rate setting will be displayed.

Figure 6 : Bit Rate Confirmation Dialog
If the desired bit rate is not available, the Cheetah adapter will use the closest available bit rate. The actual bit rate used is reported back to the user through the "Bit Rate Confirmation" window.

The bit rate will not be accepted until the Accept button has been clicked. When the Accept button is clicked, the software will attempt to set the bit rate in the Cheetah adapter. If the requested bit rate is not available, the closest available bit rate will be set. In such a case, a dialog box will appear to inform the user of the bit rate that the Cheetah adapter was set to.

Once the bit rate has been set, a message will appear in the transaction log indicating the bit rate change.

3.2.3 Bit Order

The bit order of the SPI data can be changed. MSB indicates that the Most Significant Bit will be sent first. LSB indicates that the Least Significant Bit will be sent first.

To change the "Bit Order," select the appropriate radio button for either "MSB" or "LSB". Only one bit order can be selected at a time. Once the radio button has been selected, the parameter is immediately set and a message should appear in the transaction log.

3.2.4 SS Polarity

The SS polarity indicates whether the Cheetah device will pull the Slave Select pin high or low to activate the SPI slave device.

To change the "SS polarity," select the appropriate radio button for either "Active Low" or "Active High." Once the radio button has been selected, the polarity is immediately set and a message should appear in the transaction log.

3.2.5 Slave Select Lines

The Cheetah adapter provides three separate slave select lines. In this way it is possible to control three different slave devices with a single Cheetah adapter. Each slave select line can be toggled on or off separately. It is possible to use more than a single slave select line simultaneously.

Table 1 : SPI Slave Select Pins
SS1 Pin 9
SS2 Pin 1
SS3 Pin 3

To toggle a slave select line for use, simply check the box next to the desired slave select line. Once the checkbox has been toggled, a message should appear in the transaction log. The selected slave select lines will be enabled when the next MOSI message is sent.

3.2.6 Output Enabled

Output enabled indicates whether or not the outputs of the Cheetah adapter have been enabled. When enabled, the Cheetah device connects to the SPI bus and is ready to drive the signal lines. When the Cheetah output enable is disabled, the device disconnects from the bus and each signal line is held at their current value with a very weak internal pull-up or pull-down on the Cheetah device. When the Cheetah adapter is disabled, it is not possible to send or receive data.

To toggle the enabled state of the Cheetah adapter, simply check or uncheck the checkbox next to "Output Enable." The enabled state is set as soon as the checkbox has been changed and a message should appear in the transaction log.

3.2.7 Target Power

It is possible to power a downstream target, such as an SPI EEPROM, with the Cheetah adapters power (which is provided by the USB port). More information about powering downstream devices can be found in the Cheetah SPI Host Adapter datasheet.

NC/+5V (Pin 4): 5 V Power

NC/+5V (Pin 6): 5 V Power

These pins can be enabled through the Cheetah GUI software. To turn on target power, check the box next to "Target Power." A checkmark indicates that power will be supplied to downstream devices on both pins. The target power state is set as soon as the checkbox has been changed, and a message should appear in the transaction log.

3.3 MOSI Message

The MOSI (Master Out, Slave In) message is the data that will be transmitted from the Cheetah adapter. The data can be entered in either hexadecimal or ASCII.

3.3.1 Sending the MOSI message

To send the MOSI message, simply click on the "Send" button. As soon as the button is clicked, the Cheetah GUI software will send the MOSI message through the Cheetah adapter. A message should appear in the transaction log with the data from the transaction.

3.3.2 Expected Bytes

Since SPI is a full-duplex protocol, the Cheetah adapter will receive as many bytes as it sends. However, there may be situations where either some or all of the returned data is not meaningful. For example, when programming a flash device, the returned MISO message does not have any meaningful data.

The "Expected Bytes" is normally disabled. To enable the field, uncheck the "All Bytes" checkbox. Check the "All Bytes" checkbox to receive all of the bytes in the MISO message.

The "Expected Bytes" field allows the user to specify the specific number of bytes that should be returned by the Cheetah adapter. Please note that the number of bytes received over the MISO line in any given transaction will never exceed the number of bytes sent over the MOSI line, regardless of the value input into the "Expected Bytes" field.

The number of expected bytes is set in the Cheetah adapter upon a subsequent "Send." When a transaction is sent, the expected byte value will be reported in the transaction log. The second value in the "Length" column should reflect the number of expected bytes, unless the number of bytes sent was fewer than the number of bytes expected. In the "Summary" column, the truncated bytes will be shown as "XX."

3.3.3 Delays

Some SPI devices may require delays during an SPI transmission. To satisfy these requirements the user may specify a delay value in the "Delay" field. The delay value may be specified in units of clock cycles, nanoseconds, microseconds, or milliseconds. The delay unit can be selected in the drop down list next to the "Delay" field.

If the "Delay" field is not set to zero, the Cheetah will insert delays between the slave select assertion and the first byte, between each byte, and between the last byte and slave select deassertion. The Cheetah rounds the delay up to the nearest 8 clock cycle boundary. Therefore, the delay entered may not always be satisfied. The actual delay will be displayed in the Transaction Log and in the "Delay" field after a transmission is complete.

3.3.4 Hex Editor

The "MOSI message" box is a full-featured hex editor. The data can be specified in either hexadecimal or ASCII. There are several keyboard shortcuts available while working in the hex editor.

Table 2 : MOSI Hex Editor Keyboard Shortcuts
Key(s) Function
Arrow keys Move one space left, right, up or down
Home Move to the beginning of the row
End Move to the end of the row
Page Up Move one screen up
Page Down Move one screen down
Ctrl-Home Move to the beginning of the message
Ctrl-End Move to the end of the message
Shift When holding it down, selects the text under the cursor. This can be used in conjunction with the movement keys above and the mouse.
Ctrl-Tab Switches between Hex and ASCII mode
Ctrl-Left Switches to Hex mode
Ctrl-Right Switches to ASCII mode
Insert Toggles between Insert mode and Overwrite mode
Ctrl-V Paste

When moving around in the Hex Editor, the current location in the current mode (Hex or ASCII) is marked with the cursor. The equivalent position in the other mode is marked by green text. If the Hex Editor is in Insert mode, the cursor will be a line. If the Hex Editor is in Overwrite mode, the cursor will be a box.

Figure 7 : Hex Editor Cursor Position
The equivalent cursor position is displayed in the other mode with green text. In this screenshot, several ASCII characters are highlighted. The corresponding hexadecimal positions are also highlighted in green text.

The entire MOSI message can be cleared by clicking on the "Clear" button. Please note that the entire contents of the MOSI message will be cleared once the button is clicked.


An arbitrary number of zeros can be inserted at the current cursor position by clicking the "Zeros" button. When the button is clicked, a dialog box will appear where the number of zeros can be specified.

Figure 8 : Zeros Window
The number of zeros to be inserted at the current cursor position can be specified in this dialog window.


The contents of a binary file can be inserted at the current cursor position. Clicking the "Insert" button will cause a file dialog to appear. In this window, a *.bin file can be selected for insertion.


The entire MOSI message can be also be saved to a binary file by clicking on the "Save" button. When the button is clicked, a file dialog window will appear to allow a *.bin file to be created with the MOSI message.

3.4 Transaction Log

The Transaction log is a scrolling list of all the transactions that the Cheetah adapter sends or receives. Since SPI is a full duplex protocol, when a MOSI message is sent, a MISO message is received at the same time. The transaction log will log MOSI and MISO in a single transaction with the corresponding bytes paired up and separated by a slash. The length of the two messages will be the same due to the duplex nature of the protocol.

Figure 9 : The Transaction Log
The Transaction Log records all transactions that are performed by the Cheetah adapter. This log can be saved as a file for future reference.

The information is arranged in the following columns:

3.5 Index

Index number of the transaction. The index is a zero-based number.

3.6 Timestamp

Time of the transaction. This information is displayed in the format:

      YYYY-MMM-DD hh:mm:ss.xxx     

3.7 Length

The number of bytes in the transaction. There are two numbers in this column. The first number is the number of bytes in the MOSI message, and the second number is the number of bytes in the MISO message. The length of the MISO message will be less than the length of the MOSI message if the "Expected Bytes" field was set to a value less than the amount of the MOSI data sent.

3.8 Summary

A summary of the data sent and received on the SPI bus or a description of the action performed.

In the case of a configuration change, a brief message will be displayed, indicating the change made. In the case of data, up to ten byte pairs are displayed. Each pair represents a MOSI/MISO byte pair. If the "Expected Bytes" field was used, an "XX" will appear for any MISO values that were truncated.

3.8.1 Clear

The "Clear" button clears all entries from the Transaction Log.

Please note that all transactions are cleared immediately when the button is pressed.

3.8.2 Details

Figure 10 : The Details Viewer
The entire contents of a transaction can be viewed in details. In this window, the MISO and MOSI messages are displayed in their entirety with timestamp information. The MOSI and MISO messages can be saved independently.

The Details view provides the full details of a transaction. To see the details of a transaction, simply click on the "Details" button or double-click on an entry in the transaction log.

In the Details window, the MOSI and MISO messages are displayed separately.


The MOSI and/or MISO data can be saved separately in a binary file. Click on either the "Save MISO" button or "Save MOSI" button to bring up the save file dialog. This binary file can later be loaded as a MOSI message.

Close the Details Window

To close the Details window, click on the "Cancel" button or hit the Esc key.

3.8.3 Save Log

The data in the log can be exported in a comma separated values (CSV) format by clicking on the "Save To File" button. You will be prompted for a filename to save the data.

The log file has a header with the following information:

      Export Time: [time of export]     

After the header, all transactions are appended, one per line. The column order in the exported file is the same as the order of the columns in the transaction log.

4 Legal / Contact

4.1 Disclaimer

All of the software and documentation provided in this datasheet, is copyright Total Phase, Inc. ("Total Phase"). License is granted to the user to freely use and distribute the software and documentation in complete and unaltered form, provided that the purpose is to use or evaluate Total Phase products. Distribution rights do not include public posting or mirroring on Internet websites. Only a link to the Total Phase download area can be provided on such public websites.

Total Phase shall in no event be liable to any party for direct, indirect, special, general, incidental, or consequential damages arising from the use of its site, the software or documentation downloaded from its site, or any derivative works thereof, even if Total Phase or distributors have been advised of the possibility of such damage. The software, its documentation, and any derivative works is provided on an "as-is" basis, and thus comes with absolutely no warranty, either express or implied. This disclaimer includes, but is not limited to, implied warranties of merchantability, fitness for any particular purpose, and non-infringement. Total Phase and distributors have no obligation to provide maintenance, support, or updates.

Information in this document is subject to change without notice and should not be construed as a commitment by Total Phase. While the information contained herein is believed to be accurate, Total Phase assumes no responsibility for any errors and/or omissions that may appear in this document.

4.2 Life Support Equipment Policy

Total Phase products are not authorized for use in life support devices or systems. Life support devices or systems include, but are not limited to, surgical implants, medical systems, and other safety-critical systems in which failure of a Total Phase product could cause personal injury or loss of life. Should a Total Phase product be used in such an unauthorized manner, Buyer agrees to indemnify and hold harmless Total Phase, its officers, employees, affiliates, and distributors from any and all claims arising from such use, even if such claim alleges that Total Phase was negligent in the design or manufacture of its product.

4.3 Contact Information

Total Phase can be found on the Internet at http://www.totalphase.com/. If you have support-related questions, please go to the Total Phase website. For sales inquiries, please contact [email protected].

©2006-2014 Total Phase, Inc.
All rights reserved.