Total Phase Aardvark I2C/SPI Host Adapter

Fra Bitraf
Hopp til navigering Hopp til søk

The Aardvark I2C/SPI Host Adapter[1] is part of the I2C Development Kit from Total Phase[2].

The Aardvark I2C/SPI Host Adapter is a fast and powerful I2C bus and SPI bus host adapter through USB. It allows a developer to interface a Windows, Linux, or Mac OS X PC via USB to a downstream embedded system environment and transfer serial messages using the I2C and SPI protocols.


  • I2C master and slave up to 800 kHz[3]
  • I2C multi-master support
  • SPI master up to 8 MHz
  • SPI slave up to 4 MHz
  • GPIO with selectable pins

Aardvark adapter specifications

  • Hardware version: 3.00
  • Firmware version: 3.50
  • Functions: I2C, SPI, GPIO

Target power

It is possible to power a downstream target, such as an I2C or SPI EEPROM with the Aardvark adapters power (which is provided by the USB port). It is ideal if the downstream device does not consume more than 25 mA per pin. The Aardvark adapter is compatible with USB hubs as well as USB host controllers (see section below on USB compliance). USB hubs are technically only rated to provide 100 mA per USB device. If the Aardvark adapter is directly plugged into a USB host controller, it can theoretically draw up to 500 mA total, leaving approximately 400 mA for any downstream target. However, the Aardvark adapter always reports itself to the host as a low-power device (<100 mA). Therefore, drawing large amounts of current from the host is not advisable.

  • NC/+5V (Pin 4): I2C Power
  • NC/+5V (Pin 6): SPI Power

A maximum of 25 mA may be drawn from each pin.


Software is freely available (download from Total Phase), but you need to register before you can download it. Linux, Windows and Mac OS X is supported.

Control Center

The Control Center[4] Serial Software provides easy access to all the features of the Promira™ Serial Platform (with I2C or SPI applications installed), the Aardvark I2C/SPI Host Adapter, and the Cheetah SPI Host Adapter. Within minutes, developers can make full use of I2C, SPI, and GPIO functionality.

Flash Center

Flash Center[5] is a software package that allows engineers to quickly erase, program, and verify I2C- and SPI-based EEPROM and Flash memory chips that are interfaced through Total Phase's Promira™ Serial Platform, Aardvark™ I2C/SPI Host Adapter, and Cheetah™ SPI Host Adapter.

Aardvark Software API

Aardvark Software API[6] Rosetta Language Bindings - 32-bit and 64-bit Software API and Shared Library for C, C#, Python 2/3, .NET, VB.NET, and VB6. Note that this software requires an update of the firmware to version 3.50. Please read the UPGRADE.txt in the package because some API calls have been changed.

Other software

The Aardvark LabVIEW Driver[7] is a free and open-source LabVIEW Instrument Driver for the Aardvark I2C/SPI Host Adapter. This version supports LabVIEW 2017 and above.

Linux - USB drivers[8] - the Linux driver is based on libusb and there is no need to install any other drivers on the operating system. This package contains configuration files to enable device access (permissions) for all users.

Aardvark Firmware Update Utility

Firmware update utility[9]. Note that this firmware requires an update of the software to version 3.00 Unzip into a temporary folder and run aaflash-win32.exe (Windows), aaflash-linux (Linux), or aaflash-darwin (Mac OS X) from the command line.


fimrware update - also tested under Fedora 28 (Fedora is one of the supported distributions), but it

crashes there as well

[tingo@kg-elitebook aardvark-firmware-v3.51]$ sudo ./aaflash-linux 
Total Phase Aardvark(tm) Flash Upgrade Utility
(c) 2002-2008 Total Phase, Inc.  All rights reserved.

Firmware version           = v3.51
Requires hardware version >= v1.02

Detecting Aardvark devices...
Segmentation fault

Tingo (diskusjon) 11. sep. 2020 kl. 15:47 (CEST)

firmware update. I tested the firmware update utility, but it crashes under Debian:
$ ./aaflash-linux 
Total Phase Aardvark(tm) Flash Upgrade Utility
(c) 2002-2008 Total Phase, Inc.  All rights reserved.

Firmware version           = v3.51
Requires hardware version >= v1.02

Detecting Aardvark devices...
Segmentation fault

The executable is for 32-bits linux, perhaps that is why it fails:

$ file aaflash-linux 
aaflash-linux: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/, for GNU/Linux 2.2.5, stripped

Tingo (diskusjon) 11. sep. 2020 kl. 15:24 (CEST)

Installed Control Center on my machine (Debian 10.5), installed the permissions file (copied 99-totalphase.rules to /etc/udev/rules.d/) and plugged in the Aardvark adapter. Started Control Center, Connect (ctrl-O), selected the Aardvark adapter and mode (I2C - SPI, I2C - GPIO, SPI - GPIO, GPIO only, SPI Master, Batch Mode). The program works, and the adapter is connected. Connected the Aardvark to the I2C / SPI Activity Board, selected Batch Mode, and loaded scripts (examples) to control lights, read eeprom and so on. It works. Tingo (diskusjon) 11. sep. 2020 kl. 15:10 (CEST)