Control Center Serial Software Series: General Purpose IO

The Total Phase Control Center Serial Software provides access to I2C and SPI functionalities of the Aardvark I2C/SPI Host AdapterCheetah SPI Host Adapter, and Promira Serial Platform, including reading and writing messages, XML batch scripting, and more. Additionally, this software allows users to access and interact with the GPIO functionality that is offered with the Aardvark adapter and Promira platform specifically. The GPIO functionality can be combined with I2C or SPI or it can be used as a standalone, which offers users flexibility when developing and testing devices as GPIOs bring additional uses for pins not otherwise natively available. In this article, we’ll provide more insight into the GPIO functionality that is offered within the Control Center Serial Software.

What is a GPIO?

For users new to General Purpose Input/Output, or GPIO, it is a digital signal pin located on an integrated circuit that can be configured as an input or output depending on the application. Unlike other pins that have a dedicated purpose, the GPIO pins can be customized by hardware and software developers for use with a variety of different purposes. Developers can use GPIO pins to connect microcontrollers to other devices such as sensors, LEDs, or system-on-chip circuits.

GPIO in the Control Center Serial Software

Within the Control Center Serial Software, there are six operational modes supported including I2C + SPI, I2C + GPIO, SPI + GPIO, GPIO Only, Batch Mode, and Multi SPI I/O. Depending on the device and selected mode, different modes will appear in the main display. In this article, we’ll focus on using the GPIO related modes.

The “GPIO Only” mode allows users to take advantage of the six GPIO pins available on the 10-pin header of the Aardvark adapter and Promira platform.  Those looking to combine I2C or SPI with GPIO concurrently can choose the “I2C + GPIO” or “SPI + GPIO” mode options.

When GPIO is combined with either I2C or SPI, only the unused pins are available for GPIO. For example, when using I2C + GPIO, only the SPI pins (5,7,8,9) are available for GPIO and when using SPI + GPIO, only the I2C pins (1,3) are available for GPIO.

When using the Promira Serial Platform, up to eight GPIO pins are available in the software. The Promira platform can be licensed for up to 16 GPIOs when using the 34-pin connector.  The remaining available GPIO pins can be utilized through the Promira API.

The figures below provide examples into the GPIO-related modes while using an Aardvark I2C/SPI Host Adapter. Pin assignments for using the Aardvark adapter pins for GPIO include:

  • GPIO SCL - signal pin 1
  • GPIO SDA - signal pin 3
  • GPIO MISO - signal pin 5
  • GPIO SCK - signal pin 7
  • GPIO MOSI - signal pin 8
  • GPIO SS - signal pin 9
Control Center Serial Software GPIO Only Mode GPIO Only Mode for Aardvark I2C/SPI Host Adapter

 

Control Center Serial Software SPI and GPIO Mode GPIO mode when using SPI + GPIO for Aardvark I2C/SPI Host Adapter

 

Control Center Serial Software I2C and GPIO Mode GPIO mode when using I2C + GPIO for Aardvark I2C/SPI Host Adapter

GPIO Parameters

When GPIO mode is selected, only the available pins are displayed in the window. The parameters of each pin can be set by the user.

Parameters of the mode include:

  • GPIO#: Number of each GPIO signal
  • Pin#: Pin position depending on t he10/34-pin socket connector for the Promira platform or in the 10-pin connector for the Aardvark adapter
  • Value: The bit value of each pin signal

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
  • Direction: Whether the GPIO pin is in or out
  • Pull-Ups: Whether a pin in active or inactive
  • Out Set/Out Value: “Out Set” arranges the levels of the output pins where 0" and "1 are accepted. “Out Value” indicates the last known values of the output pins.
  • In Value: Indicates the last known values of the input pins

Transaction Log and Batch Mode

By using the Transaction Log feature in Control Center Serial Software, users can review all I2C, SPI, and GPIO transactions. GPIO transactions are categorized under “Mod.” and are displayed in gray.

Transaction Log in Control Center Serial Software

Users can also utilize the Batch Mode feature to easily configure GPIO functionality within a system. GPIO commands for XML batch scripting include configuring the GPIO interface, getting the value of current GPIO inputs, and setting the value of current GPIO outputs. More on the GPIO commands can be found here.

Host Adapters that Support GPIO Functionality

Promira Serial Platform

The Promira Serial Platform is a versatile and powerful host adapter that supports I2C and SPI protocols. Through its field upgradeable design, users can select from different application levels, which provide access to varying speeds, the number of supported GPIO pins, and more. Depending on the application and level, this tool can support from six to sixteen GPIO pins that also include pins normally used for I2C to send and receive signals. The specific pin configuration can be found in the Promira I2C/SPI Active User Manual. The GPIO functionality can be combined with either I2C or SPI or can be used by itself.

The number of supported GPIOs per application include:

Promira Serial Platform

Aardvark I2C/SPI Host Adapter

The Aardvark I2C/SPI Host Adapter is a general-purpose host adapter that supports I2C and SPI communication. This tool offers GPIO functionality and allows users to use the six pins that are normally used for I2C and SPI to send and receive signals. These six pins are SCL, SDA, MOSI, SCLK, MISO, and SS. The GPIO functionality can be combined with either I2C or SPI or can be used by itself.

 

Aardvark I2C/SPI Host Adapter

For further details on the GPIO functionality within Control Center Serial Software, please visit the Control Center Serial Software user manual or contact us at sales@totalphase.com.