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

1 Overview

The Control Center Serial software interacts directly with the Promira Serial Platform, Aardvark I2C/SPI Host Adapter, or Cheetah SPI Host Adapter.

The Control Center Serial provides basic access to all the functionality of these products. It is built upon the APIs as described in the product manuals.

1.1 Changes in version 4.3.0

New Features

  • Support for Windows 11.
  • Support for macOS Monterey.
  • Support for Retina displays.

Bug Fixes

  • Fixed various user interface issues.
  • Fixed target power issue in batch mode.
  • Fixed performance issues in batch mode.

1.2 Changes in version 4.2.0

New Features

  • Support for Apple M1 on macOS Big Sur.
  • Enabled management of Promira adapters with no license.
  • Support for additional SPI slave selects in batch mode.
  • Improved batch mode examples.

Bug Fixes

  • Fixed splash screen orientation on macOS Big Sur.
  • Fixed a window sizing issue on small laptop screens.
  • Fixed 10-bit I2C addressing for the Promira adapter.
  • Fixed auto-start configuration for the Promira adapter.
  • Fixed failure to launch with corrupted preferences file.

1.3 Changes in version 4.1.0

New Features

  • Support batch mode for the Cheetah adapter.
  • Updated the spi-flash-25P32 batch mode examples.
  • Improved Communication Error dialog on device unplug.

Bug Fixes

  • Fixed help links in Linux.
  • Fixed batch mode load/save on macOS Catalina.
  • Fixed I2C/SPI slave for Promira adapter.

1.4 Changes in version 4.0.0

New Features

  • Support for 64-bit platforms.
  • Support for the Cheetah SPI Host Adapter.
  • Integrated Promira Utility functionality for management.
  • Device unplug shows a communication error dialog.
  • Support 64k I2C data transfer for the Promira adapter.
  • I2C bitrate default set to 400kHz.
  • Updated the list of I2C bitrates.
  • Allowed manual I2C bitrate entry.
  • Improved Target Power/I2C Pull-ups/IO Power options.
  • "Free Bus" now issues stop command to free bus.
  • Changed manuals from bundled PDFs to web links.

Bug Fixes

  • Fixed various user interface issues.
  • Improved transaction log window for Promira I2C slave.
  • Improved Promira ethernet connectivity.
  • Resolved timing issue with "lights" batch script.

2 Getting Started

2.1 Requirements

2.1.1 Overview

The Control Center Serial software is compatible with 64-bit operating systems. The following sections describe the requirements to run Control Center Serial. Be sure your Aardvark, Cheetah, or Promira adapter has been completely set up before using Control Center. Aardvark and Cheetah adapters may require driver installation before use. Refer to the Software section of the Aardvark, Cheetah or Promira manuals for additional information regarding the driver and compatibility.

2.1.2 Windows

The Control Center software is compatible with 64-bit versions of Windows 7, Windows 10, and Windows 11. The software does not support 32-bit Windows, Windows Vista, XP, or 2000

2.1.3 Linux

The Control Center software has been designed for 64-bit Ubuntu desktop editions with kernel 3.x and integrated USB support. Other distributions including RHEL, Fedora, and SuSE have been known to work.

2.1.4 Mac OS X

The Control Center software is compatible with Intel and M1 versions of Mac OS X 10.13 and later. Installation of the latest available operating system update is recommended.

2.2 Installing Control Center Software

The Control Center software is a self-contained application. Installing the software consists of extracting the software package:

  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 Control Center Software

2.3.1 Windows

Figure : Control Center Directory – This is what the directory should look like after the software has been extracted.
  1. Go to the folder where the software package was extracted.
  2. Click on "Control Center.exe"

2.3.2 Linux

  1. Go to the folder where the software package was extracted.
  2. Click on "Control Center"

2.3.3 Mac OS X

  1. Go to the folder where the software package was extracted.
  2. Click on "Control Center.app"

2.3.4 Command Line

To launch the Control Center Serial from the command line, use the script located in the bin directory in the software package. Note that the bin directory is located inside the app bundle on Mac OS X.

2.4 Operating Control Center Software

The Promira, Aardvark, or Cheetah adapter must be configured for use before the Control Center software can be used to send and receive any messages. To configure the adapter, go to the menu item: Adapter | Connect.

2.4.1 Configure the Adapter

Figure : Configure Adapter Window – The Configure Adapter window is organized in two major sections: the list of available adapters and operational modes.

The configuration window (figure) is organized into two sections: the list of available adapters and operational modes.

List of Available Adapters

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

Refresh List

To see an updated list of adapters attached to the computer, simply click on the "Refresh List" button to rescan the USB / Ethernet bus. Please note that adapters that are in use by other applications are no longer available and consequently do not appear in the list of available units.

The list of Promira, Aardvark, and Cheetah adapters provides the following information:

Port

The port that the adapter occupies. The Aardvark and Cheetah port number is a zero based integer number.

For more information about USB port assignments, please consult section 3.5: USB Port Assignment of the Aardvark adapter manual.

For the Promira platform, the port number is listed as the IP address of the device. A device may have two ports if both the Ethernet and USB ports are connected.

Hardware Version (HW Ver.) & Firmware Version (FW Ver.)

For more information about version numbers, please consult the Promira Serial Platform manual, Section 3.4 Dynamically Linked Library - DLL Versioning and Section 3.5 Rosetta Language Bindings - API Integration into Custom Applications - Versioning and Aardvark I2C/SPI Host Adapter manual, Section 3.6 Aardvark Dynamically Linked Library - DLL Versioning and Section 3.7 Rosetta Language Bindings - API Integration into Custom Applications - Versioning .

For Promira Serial Platform, two FW version numbers are shown. The first one is the version number of FW management and the second one is the version number of FW application.

Serial Number

The serial number of the Promira platform or Aardvark adapter.

I2C, SPI, and GPIO

Supported modules. "Yes" indicates that a module is supported. "No" indicates that a module is not supported.

2.4.2 Operational Modes

On the right side of the window is a list of the five operational modes: "I2C + SPI", "I2C + GPIO", "SPI + GPIO", "GPIO Only", and "Batch Mode". Select the radio button next to the desired mode.

The mode of the Promira platform or Aardvark adapter can be changed after the unit has already been connected. For additional information see Section 2.5 Reconfiguring the Promira platform and Aardvark adapter. .

Once you have selected the Promira platform or Aardvark adapter and the desired mode, click on "OK"" to continue.

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

2.4.3 Add custom IP addresses

The Promira platform communicates through the Ethernet protocol and can be accessible from anywhere. However, the Control Center Serial scans for devices directly connected to the PC. To allow Control Center to find a device that is not directly connected, the user can specify a custom IP address to search for.

More than one IP address can be specified. Each IP address should be separated by a comma(',') or a space. This information is saved in the preference file.

2.5 Reconfiguring the Promira platform and Aardvark adapter

After the Control Center Serial has been configured with a specific Promira platform or Aardvark adapter, it is possible to change the Promira platform or Aardvark adapter and/or the mode that it is operating in.

2.5.1 Change Mode

To change the mode but continue using the same Promira platform or Aardvark adapter go to the menu item:

Adapter

Select the desired mode and the Control Center Serial will be automatically reconfigured to reflect this selection.

2.6 Powering Downstream Devices

It is possible to power a downstream target, such as an I2C/SPI EEPROM/flash with the Promira platform or Aardvark adapters power (which is provided by the USB port or external power supply). More information about powering downstream devices can be found in the Promira platform and Aardvark adapter manuals.

NC / 3.3V / 5V (Pin 4) : Target Power (Aardvark and Promira)

NC / 3.3V / 5V (Pin 6) : Target Power (Aardvark and Promira)

NC / 0.9V-3.3V (Pin 22): I/O Power (Promira only)

NC / 0.9V-3.3V (Pin 24): I/O Power (Promira only)

By default, these pins are left unconnected at the time of shipping. For Promira platforms or Aardvark adapters with hardware versions 2.00 and greater, these pins can be enabled through the Control Center Serial software. Simply go to the menu item: Adapter | Target Power (Pin 4, 6) or Adapter | IO Power (Pin 22, 24).

A checkmark indicates that power will be supplied to downstream devices on both pins.

2.7 Shifting Logical Level

The Promira platform is capable of shifting the I2C/SPI signals logical level and the IO power signals (pins 22 and 24) level from 0.9 V to 3.3 V. Available options are 0.9 V, 1.0 V, 1.2 V, 1.5 V, 1.8 V, 2.5 V, 3.0 V, 3.3 V. To do so, go to the menu item: Adapter | Level Shift.

2.8 Configuring Network Preferences

The Promira platform is connected through Ethernet or Ethernet over USB. The network preferences for Ethernet is configurable. To do so, go to the menu item: Adapter | Network Preference.

2.8.1 Query or Configure Network Preferences

Figure : Network Preferences Window – The Network Preferences window is to query or to configure the network preferences of the currently connected Promira platform.

The default network preferences of the Promira platform for Ethernet is a static and its IP address is 192.168.11.1 and only the network preferences for Ethernet is configurable.

Static IP Addressing

To configure to static IP addressing, select Manually and select Apply.

To change the IP address or the Subnet Mask, type a new value and select Apply.

Dynamic IP Addressing

 

Figure : Network Preferences Window (DHCP)– When DHCP is enabled, IP address and Subnet Mask is read-only, to refresh the preferences, select Refresh.

To configure to dynamic IP addressing, select Using DHCP and select Apply.

Once it is configured to dynamic IP addressing, it takes seconds for a router to allocate an IP address of the Promira platform.

DHCP Renew is to release the currently allocated IP address and is to get new IP address.

Notes

If new settings are for the current connection, user will see the following warning.

Figure : Network Preferences Warning Window.

2.9 Printing License

The Promira platform has a license file. To print the license file on screen, go to the menu item: Adapter | Print License.

2.10 Disconnecting the Adapter

The Promira platform or Aardvark adapter can be disconnected from the current application. To do so, go to the menu item: Adapter | Disconnect.

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

2.11 Auto Connect the Adapter

The Auto Connect option allows single-adapter users to conveniently bypass the device connection during Control Center Serial launch. When this option is enabled and one adapter is attached to the system, Control Center Serial will automatically connect to the adapter on launch. To do so, go to the menu item: Adapter | Auto Connect

Note: Auto connect may fail if the device is in use by another application or is otherwise not connectable. In this case, a warning will appear alerting the user of the connection failure.

2.12 Exiting the Application

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

3 Application

3.1 General

The main application window is divided into two sections. The top section contains the modules for use with the adapter. Depending on the device and selected mode, different modules will appear in the main display. The available modules are I2C, SPI, Multi I/O SPI, and GPIO. Each one has different features and functionality which are explained in Section 4 Modules.

The bottom section of the application contains the Transaction Log. The log keeps track of all transactions that the adapter sends or receives.

3.2 Transaction Log

3.2.1 Elements of the Transaction Log

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

The Transaction log is a scrolling list of all the transactions that the adapter sends or receives. The information is arranged in the following columns.

Time

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

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

Module (Mod.)

The module that logged the transaction. This can be either I2C, SPI, or GPIO. Log entries from for different modules have different background colors to make them easier to identify.

Table : Transaction Background Colors
I2C Gold
SPI Turquoise
GPIO White

Read/Write (R/W)

This column is only used by I2C and SPI

Whether the transaction from the perspective of the device was a read transaction ("R") or a write transaction ("W") or a register read transaction ("RegW" or "RegR").

Master/Slave (M/S)

This column is only used by I2C and SPI

Indicates the mode that the attached adapter is functioning in. If the adapter is operating as a master, then an "M" appears. In the adapter is operating as a slave, then an, "S" appears.

Features (Feat.)

This column is only used by I2C and SPI

This is a string that indicates the features that were active during the transaction.

I2C

I2C features are encoded in the string: TCS

              T - 10-bit Addressing
C - Combined FMT
S - No Stop

If the feature is not being used, then a "-" appears in place of the character. More information about the specific features can be found in Section 4.1 I2C .

For example, in a transaction that uses 10-bit addressing and the no stop feature, the feature string would be "T-S".

SPI

SPI data exchange parameters are string encoded. The order of the parameters is:

Polarity ("R" or "F")

Rising ("R") or Falling ("F")

Phase ("S" or "s")

Sample/Setup ("S") or Setup/Sample ("s")

Bit Order ("M" or "L")

Most Significant Bit First - MSB ("M )
Least Significant Bit First - LSB ("L")

SS Polarity ("L" or "H")

SS Active Low ("L")
SS Active High ("H")

If a feature is not being used, then a "-" appears in the place of the character. More information about the SPI Bit Protocol can be found in Section 4.2 SPI

For example, in a transaction that uses Falling polarity, Setup/Sample Phase and Most Significant Bit First, the feature string would be: "FsM-"

Bitrate (B.R.)

This column is only used by I2C and SPI

Indicates the speed of the transaction in kbps. The value logged in this column many differ from the bitrate specified. The value reported here is the actual bit rate returned by the adapter.

Address (Addr.)

This column is only used by I2C

The address that was the target of the transaction.

In the case of I2C master, the address is the slave address that the master targeted for communication.

In the case of I2C slave, the address will be the address of the adapter unless the adapter slave is answering a general call in which case 0x80 will appear in the address column.

Length (Len.)

This column is only used by I2C and SPI

The number of bytes in the transaction. In the case where bytes are dropped from the transmission, DB will appear in this column to indicate that the message was truncated and bytes were dropped from the end of the message.

Data

I2C and SPI

The message in hexadecimal.

GPIO

The GPIO values in the log is the OR-ed values of the pins involved. The pins have the following values:

              Signal  Aardvark Promira
SCL   = 0x01     0x01
SDA   = 0x02     0x02
MISO  = 0x04     N/A
SCK   = 0x08     N/A
MOSI  = 0x10     N/A
SS    = 0x20     0x04

Set

The data is in the format:

                   OUT:0xXX DIRECTION:0xXX PULLUPS:0xXX

Get

The data is in the format:

                   IN:0xXX DIRECTION:0xXX PULLUPS:0xXX

OUT and IN

A value of 1 indicates that the pin has been set logic high and 0 indicated logic low. For example, if SCL, MOSI and SS where set to logic high, then the value of OUT would be: 0x31.

                   0x01 | 0x10 | 0x20 = 0x31

DIRECTION

A value of 1 indicates that the direction is out and 0 indicates that the direction is in. For example, if SDA, MISO and SS were set to output and the rest of the pins to input, the value of DIRECTION would be: 0x26.

                   0x02 | 0x04 | 0x20 = 0x26

PULLUPS

A value of 1 indicates that the pullup is on and 0 indicates the pullup is off. For example, if MISO, SCK, MOSI and SS had their pullups turned on, the value of PULLUP would be: 0x3c.

                   0x04 | 0x08 | 0x10 | 0x20 = 0x3c

More information about GPIO can be found in Section 4.3 GPIO.

3.2.2 Transaction Viewer

Figure : The Transaction Viewer

The transaction viewer is a convenient way to view the full details of a transaction. To see an transaction in the Transaction Viewer, double-click on an entry in the transaction log.

Save Data

The transaction data can be saved in a binary file. Click on the "Save Data" button to bring up the save file dialog. This binary file can later be loaded as a message in I2C or SPI.

3.2.3 Clear Log

Deletes all entries from the Transaction Log.

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

3.2.4 Save To File

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]
Port [port number]
Adapter HW_Version: [hw version]
FW_Version: [fw version]

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

4 Modules

4.1 I2C

Inter-IC bus, or I2C, was developed by Philips in the 1980s. I2C is a low-bandwidth, short distance protocol for on board communications. All devices are connected through two wires: serial data (SDA) and serial clock (SCL).

The Control Center Serial I2C module consists of 2 tabs, master and slave.

4.1.1 I2C Pull-ups

The Promira platform and Aardvark adapter have optional pull up resistors on theI2C signals (SCL and SDA). For more information about the pull-up resistors, please consult the Promira platform and Aardvark adapter manuals.

Promira platforms and Aardvark adapters with a hardware versions 2.00 and greater have the ability to enable the pull-up resistors through the Control Center Serial application. To toggle the pull-up resistors, go to the menu item:

Adapter -> I2C Pull-ups

A checkmark indicates that the pull-up resistors have been enabled on the I2C lines.

4.1.2 I2C Master

Figure : I2C Master tab of the I2C Module

As a master device, there are three actions, write, read, or register read. For these actions, there are a number of parameters that can or must be specified: bitrate, slave address, and other I2C features.

Bitrate

The bitrate is the speed of communications between the master and the slave. The maximum master I2C bitrate is 1.0 MHz and the minimum is 1 kHz. Control Center Serial supports many intermediate bit rates between these values. More information about the bit rate can be found in the Promira platform and Aardvark adapter manuals.

Changing the Bitrate

To change the bitrate, simply select a bitrate from the pull-down menu or alternatively, enter your own bitrate and press <Enter>.

Figure : Bitrate Confirmation Dialog

If the bitrate you entered is not available, the application will display a message indicating the close matching bitrate. Click on "Yes "to accept this alternative bit rate, or click on "No" to continue using the existing bitrate.

Slave Address

The slave address is the address of the target I2C slave device. This address can be entered in either decimal or hexadecimal notation. If using hexadecimal notation, preface the number with "0x". For 7-bit and 10-bit addressing, the 7 and 10 least significant bits should be used to specify the address, respectively.

Features

The Promira platform and the Aardvark adapter supports many of the additional I2C features.

10-Bit Slave Address (10-Bit Addr.)

When 10-bit slave address is selected, the slave address will be treated as a 10-bit address. The appropriate actions as described in the I2C specification will be performed to address the 10-bit slave on the bus.

Note: The Promira adapter and Aardvark adapter slave is always a 7-bit addressed device.

Combined Format (Combined FMT)

When Combined Format is selected, the "combined" format will be used for Master Read commands. This feature is only enabled when 10-bit addressing is active because it is only useful when used in conjunction with 10-bit slave Addressing

This flag indicates to the adapter that the address is a 10-bit address but that it is not necessary to send the entire address using a master write before executing the read.

For specific information about the "combined" format, consult Section 14.2 "Formats with 10-bit address" in the Philips I2C Specification. A link to the specification can be found on the Total Phase website.

No Stop (No Stop)

When No Stop is selected, the master device will explicitly not signal the stop command after the last byte in a transaction. The bus will be held and the subsequent master read or master write events will issue the repeated start on the bus.

Free Bus

The "Free Bus" button will explicitly issue the stop command on the I2C bus.

If the adapter I2C subsystem had executed a master transaction and is holding the bus due to a previous "No Stop" transaction, the Free Bus command will issue the stop command and free the bus.

I2C Master Write

Message to Send

Enter the message to be sent in hexadecimal in this field. Spaces will be automatically added for better legibility but these spaces will not be sent as part of the message. The maximum message size is 64k (65535) bytes when using 7-bit addressing and 64k-1 (65534) bytes when using 10-bit addressing.

The message can be loaded from a binary file by clicking on the "Load". Conversely, the message can also be saved to a binary file by clicking on the "Save" button.

Once a message has been set, click on the "Master Write" button to initiate the action. The results of the action will appear in the transaction log.

I2C Master Read

Number of Data Bytes

This value is the maximum number of bytes the master will accept in a single transaction. The master may receive fewer bytes than are specified in this field, but not more. In the case that a slave does not have the requested number of bytes available, the remainder of the bytes will simply default to 0xff due to the pullup resistors on the bus.

I2C Master Register Read

The typical protocol to read a register on an I2C device is to perform an I2C write with the register address followed by a repeated start and an I2C read. The Master Register Read feature provides a way to do this in one operation. Please consult the datasheet of your I2C slave device to ensure it follows this protocol.

Register Address

This register address can be entered in either decimal or hexadecimal notation. If using hexadecimal notation, preface the number with "0x". Note that this is different from the I2C slave address.

Address Width

The Address Width specifies the size in bytes of the register address. If the provided Register Address exceeds this width, the least significant bytes of the Register Address are used.

Number of Data Bytes

This value is the number of bytes the adapter will attempt to read from the I2C slave. The adapter may receive fewer bytes than are specified in this field, but not more. In the case that a slave does not have the requested number of bytes available, the remainder of the bytes will simply default to 0xff due to the pullup resistors on the bus.

4.1.3 I2C Slave

Figure : I2C Slave tab of the I2C Module

Slave Enable

An I2C slave can send messages to and receive messages from a master device after the master has initiated a transaction. An adapter will not respond as an I2C slave device unless it has been enabled as a slave device.

When enabling an adapter as a slave device, three parameters must be provided: the "Slave Address", the maximum number of bytes to send ("Max Tx Bytes") and the maximum number of bytes to receive ("Max Rx Bytes").

Slave Address

This is the I2C address that adapter will use as an I2C slave device. The adapter always uses a 7-bit slave address. The address is specified in the 7 least significant bits. The most significant bit is ignored.

Max Tx Bytes & Max Rx Bytes

The Max Tx Bytes and Max Rx Bytes indicates the maximum number of bytes the adapter device will send and receive respectively. The adapter will not exceed the maximum number of bytes that have been specified.

An exception to this rule is "0" which indicates that the number of bytes is unlimited.

Slave Response

A slave response message can be set in the adapter as a response to a write request. The message entry field operates in the same manner as the I2C master message to send field. The maximum message size for the Aardvark adapter is 64 bytes and the one for the Promira Serial Platform is 255 bytes.

The message can be loaded from a binary file by clicking on the "Load" button. Conversely, the message can also be saved to a binary file by clicking on the "Save" button.

If more bytes are requested in a transaction than have been specified in the slave response, the response string will be wrapped as many times as necessary to complete the transaction. For example if the slave response has been set to:

                    00 01 02 03 04

and 12 bytes have been requested, the response that is sent to the master will be:

                    00 01 02 03 04 00 01 02 03 04 00 01

To set the response in the slave, click on the "Set Resp" button. It is advisable to set the slave response before enabling the slave. If a response is not set before the slave is enabled, it is possible that a slave response be requested before the slave device has one to return.

Note: Slave Message Can Be Overwritten

All I2C messages share memory in the adapter. Therefore it is possible that the slave response may be overwritten in the Aardvark unit.

For example, an I2C slave response is set and then the adapter is enabled as an I2C slave, but then without disabling the slave, an I2C master transaction is executed. The adapter will implicitly deactivate the I2C slave and because of the shared memory in the adapter the I2C master operation will almost always overwrite the I2C slave response.

The safest course of action is to set the slave response each time before enabling or re-enabling the I2C slave.

Enabling the Slave

To enable the adapter as an I2C slave, simply click on the "Enable" button.

Figure : Enabled I2C Slave tab of the I2C Module

Once the slave is enabled, the status indicator at the top of the panel will change from "Disabled" in red to "Enabled" in green.

As request arrive for the slave, the transaction log will be updated with the read and write actions that the slave performed.

Disabling the Slave

To disable the adapter as an I2C slave device, simply click on the "Disable" button. Once disabled the status indicator at the top of the panel will change from "Enabled" in Green to "Disabled" in Red.

Implicit Slave Disabling

Executing an I2C master write or I2C master read will implicitly disable the device as an I2C slave device. After a master write or read event, it is recommended that the I2C slave response be resent to the adapter and then it can be re-enabled as an I2C slave device.

Switching the I2C pins to GPIO will also implicitly disable the I2C slave.

4.2 SPI

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

The SPI tab consists of two tabs: master and slave.

4.2.1 SPI Data Exchange Parameters

The SPI master and slave need to agree about the data frame for the transaction. The data frame is described by three parameters: clock polarity, clock phase and bit order.

Figure : SPI Parameters in the SPI Module

These parameters must be the same for both the master and slave modes. More information about these parameters can be found in the Promira platform and the Aardvark adapter manuals.

Bitrate

The bitrate is the speed of communications between the master and the slave. The Control Center Serial supports SPI master from 31 KHz to 40 MHz and SPI slave from 31 KHz to 20 MHz depending on the device. More information about the bit rate can be found in the Promira platform and Aardvark adapter manuals.

Changing the Bitrate

To change the bitrate, simply select a bitrate from the pull-down menu or alternatively, enter your own bitrate and press <Enter>.

Figure : Bitrate Confirmation Dialog

If the bitrate you entered is not available, the application will display a message indicating the close matching bitrate. Click on "Yes" to accept this alternative bit rate or click on "No" to continue using the existing bitrate.

4.2.2 SPI Master

Figure : SPI Master tab in the SPI Module

The SPI master has an additional parameter that can be set, the polarity of the SS line.

SS Polarity

The SS Polarity indicates whether the adapter will pull the SS pin high or low to activate the SPI slave device.

Note: When configured as an SPI slave, the adapter will always be setup with SS as active low.

MOSI Message

MOSI (Master Out, Slave In) message is entered here in hexadecimal format. Spaces are automatically inserted for legibility. The maximum message size is 4 KiB due to operating system buffer limits.

The message can be loaded from a binary file by clicking on the "Load" button. Conversely, the message can also be saved to a binary file by clicking on the "Save" button.

SPI is a full duplex protocol. When the MOSI message is sent a MISO message is received. The transaction log will log MOSI and MISO as two separate transactions that occur at the same time. The length of the two messages will be the same due to the duplex nature of the protocol.

4.2.3 SPI Slave

Figure : SPI Slave tab in the SPI Module

MISO Message

The MISO (Master In, Slave Out) message is the message that the adapter will return as its response to a SPI transaction. Like the MOSI message, this message is entered in hexadecimal format. Spaces are automatically inserted for legibility, but are not sent in the transaction. The maximum message size for the Aardvark adapter is 64 bytes and the one for the Promira Serial Platform is 256 Bytes.

It is advisable to set the MISO message before enabling the slave. If a MISO message is not set before the slave is enabled, it is possible that the message may be requested before the slave device has one to return.

The message can be loaded from a binary file by clicking on the "Load" button. Conversely, the message can also be saved to a binary file by clicking on the "Save" button.

Note: MISO Message Can Be Overwritten

All SPI messages share memory in the adapter. Therefore it is possible that the MISO message may be overwritten in the Aardvark unit.

For example, a MISO message is set and then adapter is enabled as an SPI slave, but then without disabling the slave, an SPI master transaction is executed. The adapter will implicitly deactivate the SPI slave and because of the shared memory in the adapter the SPI master operation will almost always overwrite the MISO message.

The safest course of action is to set the MISO message each time before enabling or re-enabling the SPI slave.

Slave Enable

An adapter will not respond as an SPI slave device until it has been enabled. It is advisable that the MISO message be set in the slave device before it is enabled to ensure valid data to all requests.

Figure : Enabled SPI Slave tab in the SPI Module

Once the slave is enabled, the status indicator at the top of the panel will change from "Disabled" in red to "Enabled" in green. As requests arrive for the slave, the transaction log will be updated with the read and write actions that the slave performed.

When the MOSI message is received a MISO message is sent to the master. The transaction log will log MOSI and MISO as two separate transactions that occur at the same time.

Implicit Slave Disabling

Executing a SPI master write will implicitly disable the adapter as an SPI slave device. After a master write event, it is recommended that the MISO message be resent to the adapter and then it can be re-enabled as an SPI slave device.

Switching the SPI pins to GPIO will also implicitly disable the SPI slave.

4.3 Multi I/O SPI

While standard SPI uses a bidirectional protocol with the MOSI and MISO lines, multi I/O SPI uses parallel data lines (e.g. IO0 to IO3) in a half-duplex fashion. Dual I/O SPI uses two data lines and Quad I/O SPI uses four data lines.

The Multi I/O SPI tab is only supported by the Promira platform.

4.3.1 Multi I/O SPI Master

Figure : Multi I/O SPI

SPI Mode

The SPI mode defines the data exchange parameters, phase and polarity.

Bit Order

Whether the data shall be transferred Most Significant Bit first or Least Significant Bit first.

SS Polarity

The SS Polarity indicates whether the adapter will pull the SS pin high or low to activate the SPI slave device.

Bitrate

The bitrate is the speed of communications between the master and the slave. The Control Center Serial supports SPI master from 31 KHz to 40 MHz. More information about the bit rate can be found in the Promira platform manuals.

Changing the Bitrate

To change the bitrate, simply select a bitrate from the pull-down menu or alternatively, enter your own bitrate and press <Enter>.

Figure : Bitrate Confirmation Dialog

If the bitrate you entered is not available, the application will display a message indicating the close matching bitrate. Click on "Yes" to accept this alternative bit rate or click on "No" to continue using the existing bitrate.

Slave Select

The Promira platform supports up to 8 slave selects. However only some of them may be configurable based on the capabilities of the attached device.

IO Mode

IO Mode indicates which type of SPI will be used for each phase of the transfer. The first mode in the parenthesis is the IO mode for Command, the second is IO mode for Address, and the third is the IO mode for either message to write when sending or message to read when receiving.

Multi I/O SPI Send

A multi I/O SPI write transfer consists of the Promira platform performing the following:

  1. Assert slave select
  2. Shift out Command (if provided)
  3. Shift out Address (if provided)
  4. Shift out Data (if provided)
  5. De-assert slave select

The data portion can be loaded from a binary file by clicking on the "Load" button. Conversely, the data portion can also be saved to a binary file by clicking on the "Save" button.

Multi I/O SPI Receive

A multi I/O SPI read transfer consists of the Promira platform performing the following:

  1. Assert slave select
  2. Shift out Command (if provided)
  3. Shift out Address (if provided)
  4. Shift in data from slave
  5. De-assert slave select

For Dual and Quad Data I/O modes, no data is shifted out during the data phase since the data lines switch to inputs during a read transaction. However, when the Data I/O mode is set to Single, zeros will be shifted out over the MOSI line as data is clocked in on the MISO line.

4.4 General Purpose IO

Figure : GPIO Module

General Purpose IO, GPIO, on the Aardvark device allows the users to use the six pins that are normally used for I2C and SPI and use them to send and receive signals. These six pins are SCL, SDA, MOSI, SCLK, MISO, and SS. GPIO functionality can be combined with either I2C or SPI or can be used by itself.

GPIO on the Promira platform allows the users to use six to sixteen pins that include the pins normally used for I2C to send and receive signals. These pins are defined in the Promira manual. GPIO functionality can be combined with either I2C or SPI or can be used by itself.

4.4.1 GPIO Configurations

When GPIO is combined with either I2C or SPI, only the pins of the unused module are available for GPIO. Therefore when using "I2C + GPIO" only the SPI pins are available for GPIO and when using "SPI + GPIO", only the I2C pins are available for GPIO on the Aardvark device. For the Promira platform up to eight GPIO pins are available in Control Center Serial. Other GPIO pins can be utilized through the product API defined in the Promira platform manual.

Figure : GPIO module when using I2C + GPIO
Figure : GPIO module when using SPI + GPIO

4.4.2 GPIO Parameters

When GPIO module is selected, only the available pins are displayed in the window. Each pin is labeled and has parameters that can be set by the user.

GPIO #

The GPIO number of each GPIO signal is displayed in the first row of the GPIO window.

Pin #

The position of the pin in the 10/34-pin socket connector for the Promira platform or in the 10-pin connector for the Aardvark adapter. Information about the pin arrangement can be found the Promira platform and the Aardvark adapter manuals and on the Total Phase website.

Value

Each pin has a different value which can be OR-ed together to produce a single number that represents the state of all the pins.

The pins have the following values:

              Signal  Aardvark Promira
SCL   = 0x01     0x01
SDA   = 0x02     0x02
MISO  = 0x04     N/A
SCK   = 0x08     N/A
MOSI  = 0x10     N/A
SS0   = 0x20     0x04
SS2   = N/A      0x08
SS1   = N/A      0x10
SS3   = N/A      0x20
SS4   = N/A      0x40
SS5   = N/A      0x80

For example, if SCL, MOSI and SS where set to 1, then the value of all pins would be:

                    0x01 | 0x10 | 0x20 = 0x31

Direction (Dir.)

The direction of the pin, Input or Output.

If a pin is configured as an input pin, then the pullup selector and In Value row are enabled and the Out Set and Out Value rows are disabled.

If a pin is configured as an output pin, then the pullup selector and the In Value are disabled and the Out Set and Out Value rows are disabled.

All In and All Out

The "All In" and "All Out" buttons are convenience buttons to set all pins to input or output respectively.

Pull Ups (P.U.)

For the Aardvark device indicates whether the pullup is active or inactive on a pin. The pullup selector is only enabled when the pin is set to the in direction because the pullup are only turned on on pins that have been configured as input. If a line is configured as output, the pullup mask is cached and the pullup configuration for that line will only take effect if the line is later configured as an input.

For the Promira platform only pins 1 and 3 can have pull-ups which are enabled via the "Adapter" pull down menu.

All On and All Off

The "All On" and "All Off" buttons are convenience buttons to turn on the pullups on or off respectively on all pins.

Note: Only Aardvark device pins that have been configured to be input will be affected by these buttons.

Note: I2C Pin Pullups

It is not possible to disable the pullups for SCL and SDA input on Aardvark adapter with Hardware Version 1.02.

Out Set & Out Value

The "Out Set" boxes are a staging area for setting the levels of the output pins. Only "0" and "1" are accepted in these text boxes.

The values in the "Out Set" boxes are only applied once the "Set "button is clicked. The "Out Value" indicates the last known values of the output pins. After clicking the "Set" button the "Out Set" and the "Out Value" for all pins configured as output should match. The parameters of the transaction are added to the transaction log.

If a pin is switched from output to input, the values in "Out Set" and "Out Value" are disabled but are conserved. When a pin is switched back to output, these values will be restored.

In Value

The "In Value" is the last known values of the input pins. Initially the values for the In Value will be "X" indicating that the value is not known on the pin.

The "In Value" of the input pins are updated when the "Get" button is clicked. The parameters of the transaction are added to the transaction log.

The "In Value" for an output pin will always display an "X" because the input value of this pin is not known.

4.5 Batch Mode

Figure : Batch Scripting Module

In Batch mode, the user can specify an arbitrary set of instructions for the adapter to execute in sequence. This scripting language is based on XML.

4.5.1 Batch Instructions

A set of batch instructions for an adapter is scripted in an XML based language. A set of instructions must be contained within a set of <adapter> tags. Each command is specified by an XML tag. These tags are described in section 5. Batch Instruction Commands . Commands are executed in the order that they appear in the XML block.

Help for the Batch Commands is available in the Control Center Serial software which explains all the available commands. Just click on the "Help" button.

Figure : Batch Commands Help System

4.5.2 Editing Batch Instructions

The Batch XML Instructions are entered in this text field. Batch instructions can be saved and loaded as XML files via the "Save" and "Load" buttons respectively. The "Clear" button will clear all contents out of the text field. The following dialog box will appear to confirm that the user wants to clear all data out of the text field.

Figure : When clearing the batch command console, a dialog box will appear to confirm the user's action.

4.5.3 Executing Batch Instruction

To execute a set of batch instructions, simply click on the "Execute" button. When a script is executing, the status indicator will turn green. The results from the commands will appear in the transaction log. While a script is running, it is not possible to edit the batch instructions.

To stop the execution of a script, simply click on the "Stop" button.

Figure : Executing a batch command script.

Once the script has completed, the status indicator will change back to red and the batch instructions will once again be editable.

Batch Instruction Error

When the "Execute" button is clicked, the instruction set is parsed and validated. In the event of an error, a dialog box will open indicating the type of error and the command in which the error appears.

Figure : Batch command error dialog.

The format of the error message is:

                  n) command [attribute] - error message

where:

n

zero-based index of the command

command

command type

attribute

attribute name where the error occurred. If an error is not associated with an attribute, this field will be omitted.

error message

error message.

Click OK to close the dialog.

5 Batch Instruction Commands

5.1 Notes on Batch Instructions

Unless specified otherwise, all arguments to a batch instruction are "1" to enable/request the specified parameter, or "0" to disable/not request the specified parameter.

The Batch Instruction commands support I2C master, SPI master, and GPIO modes. However, the batch Instruction commands do not support I2C slave and SPI slave mode.

5.2 General Commands

5.2.1 Configure

              <configure i2c="i2c"
spi="spi"
gpio="gpio"
tpower="tpower"
iopower="iopower" (Promira only)
levelshift="levelshift" (Promira only)
pullups="pullups"/>

Activate/Deactivate individual sub-systems and features

Parameters
i2c Enable I2C
spi Enable SPI
gpio Enable GPIO
tpower Enable Target Power on pins 4 and 6
iopower Enable Target Power on pins 22 and 24 for the Promira platform
levelshift The logic level for all signal pins including Target Power pins 22 and 24 on the Promira platform.
pullups Enable pullup resistors on the I2C lines: SCL and SDA.
Details

It is not possible to activate I2C, SPI, and GPIO all at the same time. The possible combinations are:

Table : Allowed configuration combinations
i2c spi gpio Configuration
"1" "1" "0" I2C and SPI enabled
"1" "0" "1" I2C enabled and SPI pins used as GPIO
"0" "1" "1" SPI enabled and I2C pins used as GPIO
"0" "0" "1" I2C and SPI pins used as GPIO

Please see the Promira platform and the Aardvark adapter manuals for more information about supplying target power and I2C pullup resistors.

5.2.2 sleep

              <sleep ms="ms"/>

Set the Aardvark adapter or the Promira Serial Platform to sleep for a number of milliseconds.

Parameters
ms Requested number of milliseconds to sleep.

5.3 I2C Commands

5.3.1 i2c_bitrate

              <i2c_bitrate khz="khz"/>

Set the I2C bitrate in kilohertz.

Parameters
khz requested bitrate in kHz
Details

The default power-on bitrate is 100khz.

Only certain discrete bitrates are supported by the I2C master interface. The actual bitrate set will be less than or equal to the requested bitrate and is returned in the Transaction Log.

Please see the Promira platform and the Aardvark adapter manuals for more information.

5.3.2 i2c_write

              <i2c_write addr="addr"
count="count"
nostop="nostop"
ten_bit_addr="ten_bit_addr"
combined_fmt="combined_fmt"
radix="radix">
message
</i2c_write>

Write a stream of bytes to the I2C slave device.

Parameters
addr The slave from which to read. The slave address can be specified in decimal or hexadecimal notation.
count The number of bytes to write (maximum 65535).
nostop Request that no stop condition is issued on the I2C bus after the transaction completes.
ten_bit_addr Request that the provided address is treated as a 10-bit address.
combined_fmt Request that the Philips combined format is followed during a I2C write operation. This only has an effect when used in conjunction with 10-bit addressing.
radix The base of the number system of the message, with the value being 10 for decimal, or 16 for hexadecimal.
message The message to transmit as a space-separated list of numbers.
Details

The default power-on bitrate is 100khz.

Only certain discrete bitrates are supported by the I2C master interface. The actual bitrate set will be less than or equal to the requested bitrate and is returned in the Transaction Log.

Please see the Promira platform and the Aardvark adapter manuals for more information.

5.3.3 i2c_read

              <i2c_read addr="addr"
count="count"
nostop="nostop"
ten_bit_addr="ten_bit_addr"
combined_fmt="combined_fmt"/>

Read a stream of bytes from the I2C slave device.

Parameters
addr The slave from which to read. The slave address can be specified in decimal or hexadecimal.
count The number of bytes to read (maximum 65535).
nostop Request that no stop condition is issued on the I2C bus after the transaction completes.
ten_bit_addr Request that the provided address is treated as a 10-bit address.
combined_fmt Request that the Philips combined format is followed during a I2C read operation. This only has an effect when used in conjunction with 10-bit addressing.
Details

For ordinary 7-bit addressing, the lower 7 bits of the addr should correspond to the slave address. The topmost bits are ignored. The adapter I2C subsystem will assemble the address along with the R/W bit after grabbing the bus. For 10-bit addressing, the lower 10 bits of addr should correspond to the slave address. The adapter will then assemble the address into the proper format as described in the Philips specification, namely by first issuing an write transaction on the bus to specify the 10-bit slave and then a read transaction to read the requested number of bytes. The initial write transaction can be skipped if the Combined Format feature is requested in conjunction with the 10-bit addressing functionality.

Please see the Promira platform and the Aardvark adapter manuals for more information.

5.3.4 i2c_free_bus

              <i2c_free_bus/>

Free the adapter I2C subsystem from a held bus condition (e.g., no stop).

Parameters
None  
Details

If the adapter I2C subsystem had executed a master transaction and is holding the bus due to a previous nostop flag, this function will issue the stop command and free the bus.

Please see the Promira platform and the Aardvark adapter manuals for more information.

5.4 SPI Commands

5.4.1 spi_config

              <spi_config polarity="polarity"
phase="phase"
bitorder="bitorder"
ss="ss"/>

Configure the SPI master interface.

Parameters
polarity Set as either "rising/falling" or "falling/rising".
phase Set as either "sample/setup" or "setup/sample".
bitorder Set as either "msb" or "lsb".
ss Set as either "active_low" or "active_high".
Details

These configuration parameters specify how to clock the bits that are sent and received on the adapter SPI interface.

The polarity option specifies which transition constitutes the leading edge and which transition is the falling edge. For example, rising/falling would configure the SPI to idle the SCLK clock line low. The clock would then transition low-to-high on the leading edge and high-to-low on the trailing edge.

The phase option determines whether to sample or setup on the leading edge. For example, "sample/setup" would configure the SPI to sample on the leading edge and setup on the trailing edge. The bitorder option is used to indicate whether LSB or MSB is shifted first.

The ss option is used change the output polarity on the SS line. For example, "active_low" will pull the SS line low to active the slave device.

Please see the Promira platform and the Aardvark adapter manuals for more information.

5.4.2 spi_bitrate

              <spi_bitrate khz="khz"/>

Set the SPI bitrate in kilohertz.

Parameters
khz requested bitrate in kHz.
Details

The power-on default bitrate is 1000 kHz. Only certain discrete bitrates are supported by the Promira platform and the Aardvark adapter. As such, this actual bitrate set will be less than or equal to the requested bitrate unless the requested value is less than 31 kHz, in which case the Promira platform will default the bitrate to 31 kHz. The actual bitrate set is returned in the Transaction Log.

Please see the Promira platform and the Aardvark adapter manuals for more information.

 

5.4.3 spi_write

              <spi_write count="count"
radix="radix">
message
</spi_write>

Write a stream of bytes to the downstream SPI slave device and read back the full-duplex response.

Parameters
count The number of bytes to write (maximum 65535).
radix The base of the number system of the message, with the value being 10 for decimal or 16 for hexadecimal. message The message to transmit as a space separated list of numbers.
Details

If count is 0, no bytes will be written to the slave. However, the slave select line will be dropped for 5-10 microseconds. This can be useful in sending a signal to a downstream SPI slave without actually sending any bytes. For example, if an SPI slave has tied the slave select to an interrupt line and it sees the line is toggled without any bytes sent, it can interpret the action as a command to prepare its firmware for an subsequent reception of bytes.

Please see the Promira platform and the Aardvark adapter manuals for more information.

5.5 GPIO Commands

The following table maps the named lines on the I2C/SPI output cable to bit positions in the direction and pullups masks. All GPIO API functions will index these lines through a single 8-bit masked value. Thus, each bit position in the mask can be referred back its corresponding line through the mapping described below.

Table : GPIO Bit Values
Pin # Aardvark Bit Value Promira Bit Value Description
Pin 1 0x01 0x01 I2C SCL line
Pin 3 0x02 0x02 I2C SDA line
Pin 5 0x04 N/A SPI MISO line
Pin 7 0x08 N/A SPI SCK line
Pin 8 0x10 N/A SPI MOSI line
Pin 9 0x20 0x04 SPI SS line

5.5.1 gpio_config

              <gpio_config direction="direction"
pullups="pullups"/>

Configure the GPIO interface.

Parameters
direction A single byte value where each bit corresponds to the physical line as defined in Table . If a line's bit is 0, the line is configured as an input. Otherwise it will be an output.
pullups A single byte value where each bit corresponds to the physical line as defined in Table . If a line's bit is 1, the lines pullup is active whenever the line is configured as an input. Otherwise the pullup will be deactivated.
Details

Please see the Promira platform and Aardvark adapter manuals for more information.

5.5.2 gpio_get

              <gpio_get/>

Get the value of current GPIO inputs.

Parameters
None  
Details

A line's bit position in the mask will be 0 if it is configured as an output or if it corresponds to a subsystem that is still active.

Please see the Promira platform and the Aardvark adapter manuals for more information.

5.5.3 gpio_set

              <gpio_set value="value"/>

Set the value of current GPIO outputs.

Parameters
value A bitmask as defined in Tablespecifying which outputs should be set to logic high and which should be set to logic low.
Details

If a line is configured as an input or not activated for GPIO, the output value will be cached. The next time the line is an output and activated for GPIO, the output value previously set will automatically take effect.

Please see the Promira platform and the Aardvark adapter manuals for more information.

6 Notes

6.1 Multiple Units

It is possible to operate multiple adapters simultaneously. Each window of the application is bound to a single adapter. Additional adapters can be accessed by opening additional windows.

To open a new Window simply go to the menu item: File | New Window.

A new window will open which will need to be configured to the additional adapter.

6.2 Promira platform and Aardvark adapter Technical Specifications

Detailed information about the Technical Specifications of the Promira platform and the Aardvark adapter can be found on the Total Phase website: http://www.totalphase.com/

7 Firmware

7.1 Field Upgrades

7.1.1 Upgrade Philosophy

The Promira platform is designed so that its internal license and firmware can be upgraded in the field by the user.

7.1.2 Upgrade Procedure

    1. Download the license/firmware upgrade package to your PC.
    2. Launch the Control Center Serial software and connect to the device (Adapter | Connect).
    3. Go to Adapter | Upgrade License/Firmware. The software notifies you before proceeding.
Figure : Initialize Device command warning dialog.
    1. Select OK. The Control Center Serial software initializes and reboots the device for firmware upgrade. This can take up to 15 seconds.
    2. Upon reboot, the device will appear as a hard drive on the PC. Note: If Windows prompts to scan and fix the hard drive, go ahead and let it scan and fix the hard drive.
Figure : Device appears as hard drive on PC.
  1. Unzip the firmware upgrade package and copy .pmu file to the hard drive of the device.
  2. Important: Make sure to safely eject the hard drive from the PC after the copy.
  3. Power-cycle the device again by disconnecting and re-connecting the USB cable. It will take a few seconds for the device to complete the update. Also, restart the Control Center Serial software after the firmware upgrade.

8 Legal / Contact

8.1 Disclaimer

All of the software and documentation provided in this manual, 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.

8.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.

8.3 Contact Information

Total Phase can be found at http://www.totalphase.com/. If you have support-related questions, please submit a support request at http://www.totalphase.com/support/. For sales inquiries, please contact sales@totalphase.com.

©2004-2021 Total Phase, Inc.
All rights reserved.