Effective development and debugging of high-speed SPI systems depends on real-time visibility into bus activity. The Promira® Serial Platform with Data Center Software provides detailed real-time insights into SPI communication up to 40 MHz as it occurs.
Rapid prototyping of I2C and SPI systems can be optimized and streamlined with the award-winning Promira Serial Platform from Total Phase: an all-in-one tool for high-performance system emulation and high-speed protocol analysis. From a simplified benchtop setup, to flexibility on device emulation or real-time sniffing, this tool is designed to streamline your prototyping process.
CANopen and J1939 are widely used higher-layer CAN protocols that define standardized message formats, device behavior, and network management on top of classical CAN. CANopen is commonly used in industrial automation, embedded control systems, and medical and robotics equipment, where structured device profiles and network management simplify system integration. J1939 is primarily used in heavy-duty vehicles and industrial machinery, including trucks, buses, agricultural equipment, and construction vehicles, where standardized parameter group numbers (PGNs) enable interoperability between electronic control units across complex vehicle networks.
Total Phase has recently released several updates to our Promira® Serial Platform, including Promira Firmware Update version 2.00, which supports the newest I2C and SPI Analysis Applications and gives access to the new Promira Admin Interface.
I purchased the Aardvark I2C/SPI Host Adapter and am testing it with an external SPI master device. I preloaded a 10-byte slave response message to the Aardvark adapter (configured as the SPI slave).
I am using the Total Phase Aardvark I2C/SPI Host Adapter as an SPI slave to receive and transmit data with an FPGA in an SPI digital system. I observed the following behaviors:
I am using the Aardvark I2C/SPI Host Adapter with Control Center Serial Software to read, write and troubleshoot I2C components. I have some questions:
Last week, the Total Phase Sales and Marketing team exhibited at the Embedded World North America 2025 conference in Anaheim, California. It was an exciting week filled with great conversations and hands-on demos of our latest tools for embedded systems engineers!
The Promira Serial Platform is the first all-in-one active/analysis tool of its kind for debugging and developing I2C- and SPI-based systems. This FPGA-based serial device can be configured with Active applications to function as an I2C/SPI host adapter for master or slave emulation, or with Analysis applications to operate as an I2C/SPI/eSPI protocol analyzer, capturing and monitoring data in real time.
Total Phase now offers new high-speed I2C and SPI sniffing capabilities on our Promira Serial Platform configurable through three new downloadable applications. Designed to meet the demands of increasingly complex, high-speed systems, these applications support higher sniffing speeds, surpassing those of the Beagle I2C/SPI Protocol Analyzer:
I have a question about the Cheetah SPI Host Adapter reading responses from a peripheral device. I am using the example code flash.c that is provided with Cheetah Software API. I am trying to read a message from a peripheral SPI slave device, the Aardvark I2C/SPI Host Adapter, but not all the SPI data is read.
We are using the Aardvark I2C/SPI Host Adapter and Control Center Serial Software in our test environment. We have encountered the following discrepancies during our evaluation tests:
We are using Aardvark I2C/SPI Host Adapter to control a bus that has six fan boards with registers on each board. There are many slave devices on the bus. I am looking at the Aardvark Software API code that was previously written and works correctly. However, there is a line of aa_i2c_write() for each slave device. This results in hundreds of repeated lines of code throughout the script, which makes it tedious to review, update, and maintain the script as needed.
The CAN protocol allows multiple devices, or nodes, to connect to a single two-wire bus. Each node consists of a CAN transceiver and a CAN controller, enabling it to transmit and listen for messages on the bus. When two or more nodes attempt to transmit at the same time, CAN uses bitwise arbitration based on message identifiers. Messages with a dominant bit are prioritized over those with a recessive bit, ensuring the highest-priority message continues first. As soon as the bus becomes available again, lower priority messages re-enter arbitration. This avoids communication collisions, which makes deterministic, real-time communication possible, even in complex, multi-device systems.
I am using the Aardvark I2C/SPI Host Adapter with Aardvark Software API as a master device on the I2C interface. I am observing that the I2C signals remain low, which seems related to the py_aa_target_power() function.
I need to set up an Aardvark I2C/SPI Host Adapter as I2C slave device that will respond to a 10-bit slave address. So far, I am only able to set up a 7-bit address. My questions:
I2C is one of the most commonly used protocols in embedded systems design. Known for its simplicity, low-cost, and ability to connect multiple devices over just two wires, it’s often the go-to choice for everything from consumer electronics to smart home systems.
We are using the Aardvark I2C/SPI Host Adapter with Flash Center Software to program the Macronix SPI Flash chip, which fails during the verification process.
System validation, stress testing, and regression testing are essential for debugging I2C/SPI-based systems and ensuring they perform reliably under all operating conditions. Validation testing verifies that the device under test (DUT) functions correctly and as expected across a range of scenarios, while regression testing verifies that system changes, such as hardware or firmware updates, do not break existing functionality. Stress testing evaluates how the system performs under extreme conditions or heavy loads, helping to identify potential failure points. Automating these workflows improves consistency, repeatability, and test coverage.
I am using the Aardvark I2C/SPI Host Adapter and Aardvark Software API to interact with an SMBus system. I have looked through the API library to find a way to send a quick command, but all the examples seem to involve data exchange – are quick commands available with the API?