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
How Do I Synchronize Multiple Aardvark I2C/SPI Host Adapters to Program SPI Flash Devices on the Production Floor?
Rena Ayeras

Question from the Customer:

I need to simultaneously program six SPI Flash devices on a production floor. I will be using six Aardvark I2C/SPI Host Adapters as well as six Level Shifter Boards.

How do I synchronize the Aardvark adapters? As this operation will be executed on the production floor, I need the setup to be stable and easy for the operators to use.

Response from Technical Support:

Thanks for your question! There are two ways to utilize multiple Aardvark I2C/SPI Host Adapters. One method is using the Flash Center Software, which provides an easy-to-use GUI, and supports connecting to multiple host adapters for programming devices in parallel. Another method is customizing the user interface and operations with the Aardvark Software API. We’ll start with an overview about implementing multiple host adapters and then we’ll talk about the software applications.

Overview of Using Multiple Host Adapters

You can connect multiple Aardvark adapters to one computer. The number of Aardvark adapters that can be connected to one computer depends on the computer system: computer parameters, test features, devices configurations, etc.

USB Port Assignments

When using multiple Aardvark adapters, you can easily identify each host adapter for troubleshooting, updates, maintenance, and other actions. Each adapter can be identified via USB ports. For details, please refer to the USB Port Assignment section in the Aardvark I2C/SPI Host Adapter User Manual.

Programming Multiple SPI Devices with Flash Center Software

The Flash Center Software is designed to quickly erase, program, and verify I2C and SPI based EEPROM and Flash memory chips. It has a user-extensible XML parts library with built-in support for EEPROMs and serial Flash chips from major manufacturers. When needed, you can customize or create an XML part file for prototypes or devices that are not yet included in the library.

One instance of the Flash Center Software can be used to control multiple Aardvark adapters. The GUI makes it easy to access and use the Aardvark adapters to program devices. Here is an example of a Flash Center Software dialog when using more than one adapter:

Selecting adapters from a Flash Center Software dialog

Synchronizing Host Adapters with Software API

The Total Phase API bindings support Python 2.5 though to 3.6. Sample code is available, which can be used as is or customized for your specifications.

Single Thread Environment

The Aardvark DLL is designed for single-threaded environments, which allows maximum cross-platform compatibility at maximum speed. For your application, the multi-thread environment applies instead.

Multi-Thread Environment

For a multi-threaded use of the Aardvark adapter functionality, each Aardvark API call must be wrapped with a thread-safe locking mechanism for each invocation.

A call to any Aardvark API function that synchronously communicates with the host computer will also fetch any pending asynchronous messages and buffer them for subsequent calls to the asynchronous (slave) receive functions.

For more information, please refer to the API Documentation section of the Aardvark I2C/SPI Host Adapter User Manual. We also provide detailed examples of using API in our Software API Knowledge Base.

Additional resources that you may find helpful include the following:

If you have more questions or want additional information about Total Phase tools, you can email us your questions.  You can also request a demo that is specific to your application.