What is a Host Adapter and Why is it Useful for Embedded Systems Development

What is a Host Adapter?

A host adapter, also known as a "controller" or "bus interface", is an active device that acts as an interface between a host system, like a computer, and peripheral devices. It allows the host system to interact with a device, where engineers can actively communicate over the bus using a communication protocol such as I2C or SPI.

Why is a Host Adapter Useful in Embedded Systems Development?

To understand why host adapters are useful for embedded systems development, it’s good to understand what embedded systems are and how they function.

Embedded systems are computer systems that incorporate hardware and software components, including a computer processor, memory, and input/output peripheral devices. Each component has a dedicated function within a larger mechanical or electrical system. Embedded systems are controlled by microcontrollers, which are essentially computers on a single integrated circuit that control the logic and functionality of a system, including the communication between peripheral devices.

Microcontroller on circuit board

Photo by Pok Rie

In embedded systems, communication typically relies on a master and slave configuration where one embedded system component is considered the master and another is considered a slave. Master devices are responsible for initiating communication to connected peripheral devices, while slave devices can typically only respond and transmit data on the bus when prompted by the master.

This master-slave configuration can be simulated through the use of a host adapter, where the host adapter can either represent a master or slave device. By using a host computer, users can initiate communication over the bus and test various master and slave setups.

Additionally, host adapters are useful for embedded development since embedded systems are not able to display its traffic without an external tool. By connecting the host adapter to a host computer, it allows the computer to act as a host system where users can actively inject messages onto the bus or program peripheral devices using an interface. By using a host adapter with a GUI, it make it possible to view and validate the transactions occurring on the bus for further debugging.

Host Adapter Applications

Host adapters provide access and visibility into a system, allowing engineers to perform a variety of different applications, including emulation and prototyping, and programming devices:

Prototyping

During product development, it is often difficult for engineers to fully validate an embedded system without the right tools to test and analyze each component. By using a host adapter, engineers can easily emulate a system by configuring the tool as a master or slave device. Setups can even include multiple host adapters that simultaneously emulate a master and slave device to test each component together. Having the ability to emulate an entire system is extremely helpful in test driving products in various environments and allows users to see what is working properly and what needs improvement.

Specifically, a host adapter will allow users to inject messages onto the bus in order to review communication and behavior between devices. It can also be used to emulate a master device to evaluate peripherals such as sensors and memory chips, and can also be used to emulate a slave device to test commands sent from MCUs.

Memory Programming

In order for the embedded system to have its dedicated function, it needs to be loaded with instructions that can be used to send and receive messages to and from other devices. By using a host adapter, embedded system developers can easily program instructions onto the Flash memory or EEPROM devices. Flash programming can be useful in multiple applications, whether it be for prototyping systems to assess how they perform in different environments or to mass program memory devices on the production line.

Total Phase’s Host Adapter Tools

Total Phase offers numerous host adapter devices that support I2C and SPI protocols including the Aardvark I2C/SPI Host Adapter, Cheetah SPI Host Adapter, and Promira Serial Platform. Each offers unique capabilities geared toward specific project requirements:

Aardvark I2C/SPI Host Adapter

The Aardvark I2C/SPI Host Adapter is a general-purpose host adapter that can emulate an I2C or SPI master or slave device. It can signal up to 800 kHz as an I2C master, up to 8 MHz as an SPI master, and up to 4 MHz as an SPI slave. It allows users to perform multiple applications including prototyping and production testing.

Aardvark I2C/SPI Host Adapter

Cheetah SPI Host Adapter

 The Cheetah SPI Host Adapter is a fast and powerful USB-to-SPI host adapter, capable of communicating at up to 40+ MHz. It is an ideal tool to develop, debug, and program SPI applications, helping users focus on core competencies by minimizing debugging and programming time.

Promira Serial Platform 

The Promira Serial Platform is an FPGA-based platform that supports a variety of different protocols, speeds, and functionalities through downloadable applications. It is able to emulate an I2C or SPI master or slave device, and can signal up to 80 MHz as an SPI master, up to 20 MHz as an SPI slave, and up to 3.4 MHz as an I2C master or slave. It offers advanced features and capabilities that allow it to be a fitting device for a number of different applications, whether it be prototyping or Flash programming memory devices.

Promira Serial Platform

For a guided flowchart on how to choose the right Total Phase host adapter for your project requirements, click here.

Still have questions on which Total Phase host adapter will work best for you? Contact us at sales@totalphase.com for more information.