Quantcast
Channel: Total Phase Blog
Viewing all 822 articles
Browse latest View live

Support Question of the Week: How Do You Transfer SPI Data Using the Aardvark I2C/SPI Host Adapter and LabVIEW?

$
0
0

Today's article is based on a new Knowledge Base article, Sending SPI Messages Between Two Aardvark adapters Using Aardvark LabVIEW.

The AardvarkTM I2C/SPI Host Adapter is often used with LabVIEW to transfer SPI data. The Aardvark LabVIEW Driver supports the Windows operating system and includes examples. You can use the Aardvark LabVIEW Driver to control the Aardvark adapter, as well as write a custom program for specific requirements. For information about API Software, which is also used to write custom software, please refer to section 5 of the Aardvark Adapter Use Manual.  Following are instructions to install the Aardvark LabVIEW driver and then run two examples that use Aardvark LabVIEW drivers (connect and spi):

  • connect example - Indicates if the I2C/SPI/GPIO functions are available, and displays the port number, Aardvark handle, Serial Number, Hardware version, and Firmware version for the connected Aardvark adapters.
  • spi example - Reads and writes SPI data between two Aardvark adapters. In this example, one Aardvark adapter is the SPI master and the other Aardvark adapter is the SPI slave.

Aardvark LabVIEW Driver Installation Guidelines:

  1. Download and run the latest version of the Total Phase USB Drivers Installer.
  2. Download and install the latest version of Aardvark LabVIEW Driver following the README file in the driver package.
    • Be sure to place the aardvark.dll into a directory that is listed in the system search path. The Windows system32 directory (on 32-bit Windows) is a good location for the aardvark.dll.
  3. Connect the two Aardvark adapters to the computer via the USB connector.
  4. Connect the two Aardvark adapters to each other via the I2C/SPI connector.
  5. Install 32-bit LabVIEW for Windows from the LabVIEW website.
    • Be sure to use 32-bit LabVIEW;  currently, the Aardvark LabVIEW Driver is only provided in a 32-bit package.
  6. Launch Aardvark LabVIEW Driver by clicking on the icon …/aardvark-labview-v5.03/aardvark/aardvark.llb.
  7. Run the original connect Aardvark LabVIEW Driver example as provided in the Aardvark LabVIEW Driver package. To do so:
    1. Go to the Aardvark Example Connect.vi window.
    2. Click Operate → Run.
    3. Verify that the computer detects the first Aardvark adapter, and that the Aardvark parameters are correct including: Aardvark Handle, Aardvark Port; Aardvark Serial Number String, Hardware Version String, and Firmware Version String. Refer to Figure 1 below.
Setting up Drivers for the Aardvark Host Adapter Figure 1: Setting up Drivers for the Aardvark Host Adapter

 

Instructions to send SPI data between two Aardvark adapters with the Aardvark LabVIEW Driver SPI.

  1. Go to the Aardvark LabVIEW Driver Example SPI.vi window.
  2. Click Operate → Run.
  3. Verify that the Aardvark parameters are correct including: Aardvark Handle 1, Aardvark Handle 2, Message received by master, and Message received by slave. Refer to Figure 2 below.
Sending SPI Data between Aardvark Host Adapters Figure 2: Sending SPI Data between Aardvark Host Adapters

Note: similar steps can be used for transferring SPI data between Aardvark adapter and another SPI device.

For more information, please refer to the following documents:

Aardvark Adapter User Manual
Aardvark I2C/SPI Host Adapter Quick Start Guide

LabVIEW Drivers for Aardvark
Sending SPI Messages Between Two Aardvark adapters Using Aardvark LabVIEW
Total Phase Products
Product Selector Guide

We hope this answers your question. If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.


Question of the Week: What are the features of the Komodo CAN interface and the software used with it?

$
0
0

We are starting to use the KomodoTM CAN Duo Interface - it is very easy to set up and use. We like the activity LEDs and the choice of connectors. The ability to make the device active or passive is also useful. We have a few questions about the Komodo:

  1. What controls the operation of the PWR (Power) LEDs on the unit? We're not sure what causes them to turn on or off or change color.
  2. How can we can store a list of message to transmit? What I normally want to do is fire off a message, wait for the response, fire off the next message and so on. It seems that I would have to have a batch file for each message - is there another method? If we can transmit CAN messages from the Data CenterTM Software, how is it done? We only seem to be able to transmit from within the KomodoTM GUI Software.
  3. Looking at the display of the GUI - can we stop it from continuously scrolling? Sometimes we only need to see the latest message on any given ident (Identifier) rather than scrolling down a list looking for the latest message.

Thanks for your questions! The Komodo CAN Interface you are using is a two-channel USB-to-CAN device that functions as both adapter and analyzer. The two CAN channels can be configured independently. Following is the information that you requested:

    1. Each CAN interface features two LEDs: an activity LED and a bi-color power LED. The bi-color power LEDs illuminate white when the Komodo interface is sourcing V+ to the CAN bus, and illuminate blue when the CAN bus is powered externally. The power LEDs will be off when power is neither observed nor sourced.
      Komodo CAN Interface Figure 1: Komodo CAN Duo Interface

       

    2. To send and receive CAN data with the Komodo CAN bus interface, you can use either the Komodo GUI Software or the Komodo API. The Data Center does not have the option to send CAN data.
      For your system test requirements, you can use the Komodo GUI batch mode or the Komodo Software API.  For information about the Komodo GUI batch mode, please refer to section 3.4 of the Komodo GUI Software Manual.
      The Komodo Software API is used to control the Komodo analyzer features, and to write a custom program to achieve the user goals. The API comes with support for multiple OS (Windows, Linux, and Mac) and multiple languages (C, Python, Visual Basic, and C#), and includes examples. For additional information about the Komodo Software API, please refer to section 5 of the Komodo Interface User Manual.
    3. The scrolling of the Komodo GUI Software output can be enabled or disabled by clicking the scrolling button in the lower right corner of the GUI window.

 

How to control scrolling on the Komodo GUI Software Figure2: Komodo GUI Batch Mode

 

For more information, please refer to the following documents:

Komodo Interface User Guide
Komodo GUI Software User Manual
Data Center Software User Manual
Total Phase Products
Product Selector Guide

 We hope this answers your questions. If you have other questions about our Komodo Can Interface or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: Which SPI Host Adapter and Which Software Should I Use for Gang Programming?

$
0
0

I will be programming Serial flash and I see that your Cheetah and Aardvark host adapters both support SPI programming. I have two questions:

  1. Which is more appropriate for gang programming in-system, Cheetah or Aardvark? I want to hook up multiple devices to one computer and program in parallel. The device we will be using is a Micron N25Q00AA13G1240E.
  2. How many devices can be programmed at once - what is the maximum?

Thanks for your questions! For programming the Micron 1 Gbit SPI flash N25Q00AA, we recommend using the CheetahTM SPI Host Adapter, because of its faster SPI programming speed (up to 50 MHz vs. 8 MHz for the AardvarkTM I2C/SPI Host Adapter), with the Flash CenterTM Software. The Flash Center Software has built-in support for N25QAA. The Flash Center Software also supports gang programming for multiple Cheetah adapters programming in parallel. The number of Cheetah adapters that can be connected to one computer is limited by the USB protocol (127 units).

 

The Cheetah SPI Host Adapter is recommended for gang programming SPI devices Figure 1: Cheetah SPI Host Adapter

 

Following is a comparison of the functionalities of the Aardvark and Cheetah host adapters

  • The Cheetah SPI Host Adapter functions as an SPI master, actively communicates on the bus, operates at high speeds up to 50 MHz, can provide gapless shifting, and provides control over the timing of the data that is shifted out.
  • The Aardvark I2C/SPI Host Adapter is a more general purpose device that can actively communicate on the bus, and provides master and slave capability along with I2C/SPI features. The Aardvark supports SPI master at 8 MHz.

To review and compare more details, please refer to the following user manuals: Aardvark Adapter User Manual and Cheetah Host Adapter Manual.

You can interface with the Cheetah adapter using the Flash Center Software, the Cheetah GUI Software, and the Cheetah Software API. Following are summaries of what each software application provides:

  • The Flash Center Software provides mechanism to quickly erase, program, and verify SPI based EEPROM and flash memory Chips. It has an extensible XML parts library with built-in support for EEPROMs and serial flash chips from major manufacturers.
  • The Cheetah GUI Software provides full access to all Cheetah adapter functionality, and eliminates the need to write custom software to control the adapter.
  • The Cheetah Software API is used to control the adapter, as well as write a custom program to fulfill user-specific requirements. The API comes with support for multiple OS (Windows, Linux, and Mac) and multiple languages (C, Python, Visual Basic, and C#), and includes examples. We recommend using the Python bindings as it is a simple language and a good option for scripting.

For additional information, please refer to the following documents:
Cheetah SPI Host Adapter Quick Start Guide
Cheetah Host Adapter User Manual
Cheetah GUI Software User Manual
Flash Center Software User Manual
Cheetah API Software
Total Phase Products
Product Selector Guide

We hope this answers your question. If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: How do I Set Up and Identify Multiple Cheetah SPI Host Adapters for Programming SPI Devices?

$
0
0

We have a new product in development that will contain a new Microsemi FPGA device and the Micron Flash N25Q00AA13G1240E - both need to be programmed. They will be built into a panel, eight to a panel. I am developing a test box that will connect to a minimum of four devices. I have some questions:

  • With multiple Cheetah adapters connected, how do I identify each adapter?
  • Can the Flash Center Software be configured to fully automate this setup?

Thanks for your questions! Multiple Cheetah SPI Host Adapters can be connected to Flash Center.  Following are examples of setting up the Cheetah adapter with the Flash Center Software to program Micron N25Q00AA devices, which you can expand for your system.

Equipment:

Program One N25Q00AA Device:

This example is to help familiarize you with using the Cheetah adapter and the Flash Center Software for programming SPI devices:

  1. Program one N25Q00AA 3.3V SOIC-16 on the SOIC-16 socket board with a Cheetah adapter and the Flash Center Software. For details, please refer to the knowledge base article "Programming 4 Byte Address Mode SPI Flash Using Cheetah Adapter and Flash Center  Software".

Program Two N25Q00AA Devices:

  1. Connect two Cheetah adapters connector to the computer USB connectors.
  2. Launch one instance of Flash Center v1.24.
  3. Connect one N25Q00AA memory device to each of the two Cheetah adapters.
  4. Connect the two Cheetah adapters to the Flash Center Software.
  5. Choose the memory part N25Q00AA in the Flash Center Software
  6. Perform the "read" operation in the Flash Center from one of the two memory devices.
  7. Perform the "Program & Verify" operation in the Flash Center for both memory devices.
  8. To see an example of results, refer to Figure 1 below:
    • "Adapters" (left side) shows the identifies of the adapters
    • "Transaction Log" (right side) shows the timestamps of the actions performed with each Cheetah adapter.

Note - should you need a more customized interface, you can do so with the Cheetah Software API. Several code examples are available, which can be modified for your system specifications.

Results of programming multiple devices with multiple Cheetah SPI Host Adapters with the Flash Center Software. Figure 1: Flash Center Software

 

For additional information please refer to the following documents:

Cheetah Host Adapter User Manual
Cheetah Software API
Flash Center Software User Manual
Programming 4 Byte Address Mode SPI Flash Using Cheetah Adapter and Flash Center
Total Phase Products
Product Selector Guide

 We hope this answers your question. If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

 

Support Question of the Week: Which Host Adapters Can I use to Communicate to One I2C Slave Device and Three SPI Slave Devices Simultaneously?

$
0
0

We have decided to use the AardvarkTM I2C/SPI Host Adapter for the purpose of I2C and SPI communication with our device under test (DUT). The scope is set up to act as a slave in I2C communication and interact with the device. At the same time, the adapter also have to act as a master to control three slaves in SPI communication. Our questions:

  • Is this approach possible with a single Aardvark Host Adapter?
  • Can the adapter act as a slave for I2C and a Master (of three slaves) in SPI communication at the same time?

Thanks for your questions! The Aardvark adapter is able to act as an I2C slave and as an SPI master at the same time. However, it has only one slave select line for SPI - it may be difficult to communicate with three different SPI devices on the same SPI bus. section 1.2.2 of the Aardvark Adapter User Manual (or section 1.1.2 of the Cheetah Adapter User Manual) describes how SPI operates, and shows an example of one SPI master controlling three slave devices with separate Slave Select (SS) signals.

 

Example of connecting multiple SPI slaves to one SPI master. Figure 1: Example of Multiple SPI Slaves

 

We recommend using the Aardvark adapter for the I2C communication and adding a Cheetah SPI Host Adapter for the SPI communication. The Cheetah adapter is a dedicated high-speed SPI master with three slave select lines, and supports the setup shown above in Figure 1. This implementation should meet your system requirements. For additional information about SPI Modes, and how the SPI master and the SPI slaves exchange information, please refer to section 1.1.3 of the Cheetah Adapter User Manual. For information about I2C master and slave communication, please refer to section 1.1 of the Aardvark Adapter User Manual.

For additional information about the Aardvark and Cheetah host adapters and other Total Phase products, please refer to the following documents:

Cheetah SPI Host Adapter Quick Start Guide
Cheetah Host Adapter User Manual
Aardvark I2C/SPI Host Adapter Quick Start GuideAardvark Host Adapter User ManualTotal Phase Products
Product Selector Guide

We hope this answers your question. If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: How Do I Use the Cheetah SPI Host Adapter with a 1.8V Flash Device and Adjust the Timing?

$
0
0

I just started using your CheetahTM SPI Host Adapter and high speed flash sockets to program 1.8V Micron flash devices, N25Q064A.

The Total Phase socket boards I use provide about 3V for VCC, even when I select a 1.8V part type. Otherwise, this seems to program correctly. When I attach the Cheetah SPI Host Adapter to my custom socket board (where the flash device is powered by 1.8V), I cannot program the flash device. However, I can program it from my micro controller. I have isolated the flash part from the micro controller and I still cannot program the device at 1.8V with the Cheetah host adapter. What should I be doing?

Also, I tried running signals as slowly as the Flash Center allows, and I checked that all signals go to their correct places. What is see on the scope shows there may be a timing issue - I need to add a delay. How can I adjust the timing?

Thanks for your questions! The Cheetah SPI Host Adapter operates at 3.3V signal levels. The Total Phase SPI Flash Socket Boards (SOIC-8 and SOIC-16) support memory parts with SPI 3.3V logic level voltage. The Total Phase SPI socket boards cannot be configured to a lower logic level voltage (such as 1.8V). It is possible that the boards work in your system due to voltage margins. There may be also be some voltage margin in the 1.8V N25Q064 memory part. In addition, the two board designs are not identical. There may be some differences between the board design of your custom board and the Total Phase socket board.

To communicate with devices that operate at a lower voltage (such as the 1.8V device on your custom board), we recommend using a Level Shifter Board between the Cheetah host adapter and the target device. This setup will provide the correct SPI signals level to both devices.

Some of the Cheetah SPI timing parameters can be configured when using the appropriate software.

  • When using the Flash CenterTM Software (and its XML file), you cannot change the Cheetah timing parameters.
  • When using the Cheetah Software API, you can also configure the Cheetah timing parameters. For additional information about the Cheetah API, please refer to section 5 of the Cheetah Host Adapter User Manual.
  • When using the Cheetah GUI Software, you can change the delay parameter in the Cheetah GUI window, as shown below.

 

How to add a signal delay when using the Cheetah GUI. Figure 1: Cheetah SPI Host Adapter GUI Window

 

For additional information about the Cheetah SPI parameters please refer to section 2.5 of the Cheetah Host Adapter User Manual.

 

A timing diagram of the SPI Host Adapter SPI Signaling Characteristics. Figure 2: Cheetah SPI Host Adapter Parameters

 

 Table 1: Cheetah SPI Timing Parameters

Symbol Parameter

Min

Max

Units

clk Clock period

25

10000

ns

e Output Enable to SS control delay

8

8

clk

sac SS# assertion to first clock edge

6.5

7

clk

csd SS# deassertion from last clock edge

1.5

2

clk

op MOSI propagation time

0

5.8

ns

oh MOSI hold time

0.5

0.5

clk

is MISO setup time

4.8

N/A

ns

ih MISO hold time

0

N/A

ns

ud User Insertable Delay

8

232

tclk

 

For additional information about the Cheetah adapter and the accessory boards, please refer to the following documents:

Cheetah SPI Host Adapter Quick Start Guide
Cheetah Host Adapter User Manual
Cheetah GUI Software User Manual
Flash Center Software User Manual
Flash Socket Board User Manual
Total Phase Products
Product Selector Guide

We hope this answers your question. If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: How Can I Best Capture SPI Bus Data for Calibration and Analysis – Use a Host Adapter or a Protocol Analyzer?

$
0
0

I am debugging a TI C2000 microcontroller using SPI.  The setup:

  • The PC (personal computer) side of the SPI bus is the slave.
  • The packet rate is 10kHz, 100 bits/packet.

Looking at the specifications about the AardvarkTM I2C/SPI Host Adapter, I understand that when acting as a slave, the maximum clock rate of the Aardvark host adapter is 4Mhz.  My questions:

  1. Can the Aardvark host adapter be used to log data on the PC at the packet rate of 10kHz, 100 bits/packet?
  2. What is the time limit for logging data?
  3. Using both the Data CenterTM Software and an Aardvark host adapter, is it possible to both log data and graph data using your LabVIEW drivers and API? The graph data will be used for calibration; the logged data will be used for offline analysis.

Note – there is no slave on the SPI bus.  Because I am debugging the microcontroller, I am thinking about outputting the data via SPI and transferring data to the PC. It looks like the Aardvark host adapter could be used as an SPI slave or to monitor the bus to capture SPI bus data.

Thanks for your questions! Analyzing data is a legacy feature of the Aardvark host adapter.  As an SPI slave, the Aardvark host adapters supports up to 4MHz, which supports your packet rate of 1MHz (10 K packet rate per second x 100 bits per packet).

However, in your case, as you only need to monitor SPI traffic from the microcontroller and do not need to send a response, we recommend using the BeagleTM I2C/SPI Protocol Analyzer.  The Beagle protocol analyzer is a dedicated I2C and SPI sniffer.  In comparison, the Beagle protocol analyzer has more robust features and provides a better interface (with the Data Center software) for examining the data.

 

Using the Beagle I2C/SPI Protocol Analyzer to log and graph data using Data Center Software and LabVIEW. Figure 1: Beagle I2C/SPI Protocol Analyzer

 

Regarding LabVIEW - we provide the LabVIEW driver for the Beagle analyzer, so you can take advantage of using LabVIEW to graph data. These drivers simply wrap the C API and expose the functionality to LabVIEW. For each call, the bg_spi_read function (or SPI Read VI) returns the next SPI message seen on the bus. There is no limit to how long you can capture data, as long as data is grabbed fast enough so that the buffers in the Beagle Software API libraries do not overflow. For the speeds that you are using, overflow should not occur. For information about API software, please refer to section 6 of the Beagle Protocol Analyzer User Manual.

To view a graph in LabVIEW and save the data for offline analysis, the data will need to be logged in the LabVIEW application. The SPI example provided with the Beagle LabVIEW drivers already writes the data to a file; you will need to add the graphing function to the API software. For additional information, please refer to the following documents:

Aardvark Host Adapter User Manual
Beagle Protocol Analyzer User Manual
Beagle LabVIEW Driver
Beagle Software API
Data Center Software User Manual
Total Phase Products
Product Selector Guide

 We hope this answers your question. If you have other questions about our host adapters or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: How is a Batch File Run on the Control Center Software with the Aardvark I2C/SPI Host Adapter for an I2C Device?

$
0
0

We recently purchased an AardvarkTM I2C/SPI Host Adapter. We're using it to read two packets from the register from a PLX chip. We're trying to use the batch mode of the Control CenterTM Software, but we can't get it to work. Can you advise us how to correct the script?

  • The address of the PLX chip is 70.
  • The command bytes we are sending are 04, 00, BC and 14.

Thanks for your question! We have a knowledge base article that should be useful for your project: "How to Read and Write to an I2C EEPROM Using the Aardvark adapter and Control Center".  This article provides an example of writing several bytes of data to a specific address and then reading back the data. The necessary information from an EEPROM datasheet is extracted, and then the appropriate commands are executed from the Control Center Software.  The AT24C02 I2C device (EEPROM) (found on the I2C/SPI Activity Board) is used in this example - you can modify the instruction for your PLX device.  There are other documents that may be useful about running a batch file for your setup:

Following is a summary of setting up and running a batch file:

  1. Use the slave address 0x38 (7 bit format).
  2. Modify the knowledge base instructions to fit your PLX device.
  3. Perform the following batch test. To do so:
    • The batch mode test file:
      <aardvark>
      <configure i2c="1" spi="1" gpio="0" tpower="0" pullups="0"/>
      <i2c_bitrate khz="100"/>
      <i2c_write addr="0x38" count="4" radix="16" nostop="0">04 00 BC 14</i2c_write>
      <i2c_read addr="0x38" count="4"/>
      </aardvark>
    • In the Control Center, click Aardvark -> Enable Batch Mode -> Load the Batch Mode Test file (above) -> Click

 

Run a batch mode file using the Aardvark I2C/SPI Host Adapter and the Control Center Software. Figure 1: Running Batch Mode in Control Center Software

 

For additional information, please refer to the following documents:

How to Read and Write to an I2C EEPROM Using the Aardvark adapter and Control Center
Control Center Software User Manual
Aardvark I2C/SPI Host Adapter Quick Start Guide
Aardvark Adapter User Manual
Total Phase Products
Product Selector Guide

We hope this answers your question. If you have other questions about our Host Adapters or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

 


Support Question of the Week: Using the Beagle USB Protocol Analyzer, How Do I Decode USB Class-Level Protocols and Archive the Data?

$
0
0

I am using the BeagleTM USB 480 Protocol Analyzer, and I want to use a decode script, such as Mass Storage, to display the transactions as class specific commands. Can the Data CenterTM Software archive the information I need? Other than doing this manually with class specifications, is it possible to decode USB class-level protocols?

Thanks for your questions! The Beagle 480 Protocol Analyzer and the Data Center Software support multiple class level decoding including Mass Storage. For a list of the supported classes, please refer to the Data Center Software class decoding web page, Debug USB Faster with USB Class-Level Decoding. This article describes USB classes and lists which USB classes are supported.

 

Using the USB 480 Protocol Analyzer to capture data to archive and decode. Figure 1: Beagle USB 480 Protocol Analyzer

 

When you capture USB device data with the Beagle USB protocol analyzer and the Data Center Software, the analyzer and the Data Center Software GUI automatically decode the supported classes. Examples of using Data Center Software are provided with the application. To view an example:

  1. Launch Data Center
  2. Click File
  3. Click Examples
  4. Choose usb480-hs-flash-drive.tdc file
  5. Click OK

For more information about capturing USB bus data and decode class-level protocols, please see the video Introducing Real-Time Class-Level Decoding Feature for USB Debugging and Analysis.

For additional information, please refer to the following documents:

Beagle Protocol Analyzer User Manual
Data Center Software User Manual
Total Phase Products
Product Selector Guide

We hope this answers your question. If you have other questions about our Protocol Analyzers, software or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

 

Support Question of the Week: How do I Communicate with a SMBus Slave Device using a Master I2C/SPI Host Adapter and the Control Center Software?

$
0
0

I’m using the AardvarkTM I2C/SPI Host Adapter to communicate with a SMBus slave device (Accuron PS401). What I'm looking to do is establish communication with the chip and verify the communication with the BeagleTM I2C/SPI Protocol Analyzer. Do you have any examples in C, for batch mode, I2C transfers, and communicating over the SMBus?

Thanks for your question! The batch mode in the Control CenterTM Software has an example for I2C transfers, which is provided in the Control Center Software package.

There is an example C script for I2C transfers, which is provided in the Aardvark Software API package. Neither the Control Center Software nor the Aardvark Software API packages have example scripts for SMBus explicitly, but since it is based on I2C, the Aardvark adapter is completely compatible with SMBus. However, we do have information that you can modify for your specific setup. For more information about using API, please refer to section 5 of the Aardvark Adapter User Manual.

In both the batch script in Control Center and the script in the API, you can edit the hex values to correspond with commands for your part.  Once you have the appropriate values, you can execute the commands to see if you get an appropriate response.  You can then connect your Beagle analyzer to the same lines to monitor the data sent the Aardvark and your chip.

Using the Aardvark I2C/SPI Host Adapter, Control Center Software and Modified API to Communicate over the SMBus. Figure 1: Aardvark I2C/SPI Host Adapter

 

The steps above should provide a good baseline for establishing communication between the Aardvark adapter and your SMSC.

For additional information, please refer to the following documents:

We hope this answers your question. If you have other questions about our Host Adapters or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: How Can I Use the Beagle I2C/SPI Protocol Analyzer to Capture Data from Multiple SPI Slaves on an SPI Bus?

$
0
0

 

I have the BeagleTM I2C/SPI Protocol Analyzer, and I need to capture any glitches that may occur on an SPI bus where multiple SPI slaves are attached. How can I capture data from multiple SPI Slaves that are synchronized on an SPI bus?

Thank you for your question! Multiple SPI Slave device signals can be captured by using both the Cheetah TM SPI Host Adapter and the Beagle I2C/SPI Protocol Analyzer. The BeagleI2C/SPI analyzer supports one SPI slave select (SS) signal; the Cheetah adapter supports three SPI SS signals. Following are two examples use these devices to capture data from multiple SPI slave devices.

 

Example of connecting multiple SPI slaves to one SPI master. Figure 1: Cheetah SPI Host Adapter Supports Multiple SPI Slave Signals

 

To identify each signal from each SPI slave device, you can use a Beagle I2C/SPI analyzer for each device. The following example captures two SPI slave device signals on the SPI device. This setup uses one Cheetah host adapter, two Beagle I2C/SPI protocol analyzers, and two instances of the Data CenterTM Software.

  1. Connect each Beagle I2C/SPI analyzer (Beagle 1 and Beagle 2) to two separate SS signals.
  2. Connect Beagle 1 to a Cheetah SS signal.
  3. Connect Beagle 2 to another Cheetah SS signal.
  4. Connect one instance of the Data Center Software to Beagle 1.
  5. Connect another instance of the Data Center Software to Beagle 2.

If you do not need to identify the behavior from each SPI slave device, you can multiplex the SS signals and use fewer devices. The following example captures two SPI slave device signals on the SPI bus. This setup uses one Cheetah Adapter, one Beagle I2C/SPI analyzers, one 2-to-1 multiplexer (mux) and one instance of the Data Center Software.

  1. Connect the multiplexer to two SPI device slaves and the Cheetah SS signal.
  2. Connect the Cheetah to the Beagle I2C/SPI SS signal.
  3. Connect the Data Center Software to the Beagle I2C/SPI analyzer. Note - As both signals will be displayed in one Data Center Software window, the signal source, captured from which Cheetah adapter, will not be identified.

For more information, please refer to the following documents:

We hope this answers your question. If you have other questions about our protocol analyzers, software or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: What are the Available Software API Examples for the Komodo CAN Duo Interface and How Can I Execute Commands on Different Threads?

$
0
0

I'm starting to use the KomodoTM Duo Interface. I need to create some programs to run tests on prototype devices for a CAN bus. I have a couple of questions:

  • Do you have any Komodo software examples in C#?
  • Can the commands km_can_read and km_can_write be simultaneously executed from different threads?

Thanks for your questions! Software examples can be downloaded from KomodoTM Software API. C#, as well as C Python, .NET, VB.NET, and VB6 are also supported. C# program examples include the following:

  • detect: Detect Komodo devices attached to the system.
  • async: Use the asynchronous interface to send packets on CAN channel A.
  • gpio: Perform simple GPIO operations with a Komodo interface, including monitoring the pins for voltage changes.
  • loopback: A demonstration to to open ports, acquire features, write and read data. This example requires that CAN channels A and B are connected together with a properly-terminated cable. Please note: this example only applies to the Komodo CAN Duo Interface; it will not work with the Komodo CAN Solo interface.
  • monitor: Monitor CAN bus and GPIO activity. This program prints out timestamps, status messages, errors messages, and data.
  • request: Request data from specified CAN ID and prints the received data.
Using the Komodo CAN Duo Interface and API to execute commands on different threads. Figure 1: Komodo CAN Duo Interface

Since the Komodo CAN Duo interface has two virtual ports, the commands km_can_read and km_can_write can definitely be executed simultaneously from different threads.  To execute km_can_read and km_can_write from the same port, the following actions will be required:

  • Synchronization
  • Wrap each Komodo API call with a thread-safe locking mechanism before and after invocation.

For details about threading, please refer to section 3.8.3 of the Komodo Interface User Manual. For details about using Komodo Software API, please refer to section 5 of the Komodo Interface User Manual.

For additional information, please refer to the following documents:

We hope this answers your question. If you have other questions about our Komodo Interface analyzers or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: Using a Protocol Analyzer, How Does the Data Center Software Capture USB Trace Files and Display the Data?

$
0
0

I have a question about results I see when I capture USB trace files. Using a BeagleTM USB Protocol Analyzer , I was browsing two separate USB trace files with the DataTM Center Software. On one window, the trace appeared to show some data that didn’t make sense for a short sequence in the packet view. Also, it did not agree with the block view. When I looked at the sequence numbers, some of the packets were out of order. For example, the earlier packets were inserted in a later sequence. Then, after scrolling the window up and down, those packets vanished. Can you explain why I saw that? By the way - the block view was always correct.

Thanks for your question! When you use the Class View or the Transaction View in the Data Center software, the records may not be displayed in the correct time-order. This is due to how the data is grouped for higher level parsing. You can see the records in time-order by switching to Packet View, which disables the higher level parsing. Please note - only the captures that are run in the sequential mode can be viewed in the packet view.

To select a Capture View, use the Capture View Menu in the Transaction Window Controls section of the application.

    1. Select Analyzer and then select Capture Sections.
    2. Under the USB tab, select Sequential as the Capture Mode.
      Step 1 for selling the desired capture mode in the Data Center Software. Figure 1: Step 1 - Select the Capture Setting in the Data Center Software

 

  1. At Protocol Lens, from the second drop menu (that shows icons) select Packet Level as the classification view. The selection will be displayed under Command Line.
Step 2 for selecting the desired capture mode in the Data Center Software. Figure 2: Step 2 - Select Packet Level

For additional information, please refer to section 6.7 of the Data Center Software User Manual. Following is a summary of that information:

  • Packet View – Protocol-level decoding is performed, and records are in time-order. Collapsed groups, such as SOFs and IN-NAKs are broken up as necessary to ensure the records are in timestamp order. Only captures that are run in Sequential Mode can be viewed in Packet View.
  • Transaction View – Protocol-level decoding is performed. Records may not be in time-order. Collapsed groups are not broken up for time-order preservation. As there is no time-order restriction, captures generally appear more compact in the Transaction View than in the Packet View.
  • Class View – Class-level parsing is performed. Records may not be in time-order. Captures generally appear high-level and more compact in this view.

For more information, please refer to the following documents:

For more information, please refer to the following documents:

We hope this answers your question. If you have other questions about our software, host adapters, protocol analyzers or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: How Do I Integrate the Aardvark I2C/SPI Host Adapter and the API Software with MATLAB?

$
0
0

I have an AardvarkTM I2C/SPI Host Adapter. To configure communication for I2C devices,  I'll be using MATLAB® with the Aardvark adapter. Can you tell me how to do that? I am using Windows 7 Professional, 64-bit.

Thanks for your question! We do not support MATLAB directly, but we provide the tools so that you can use the Aardvark I2C/SPI Host Adapter and MATLAB together. We have a knowledge base article that should help you: How To Use Total Phase Products With MATLAB. We also provide Aardvark API Software, which includes several code examples that include integrating with MATLAB as well as many chips and devices, and can be customized as needed. Following is a summary of the directions. In this example, Python for 64-bit Windows is used. Many other programming languages and operating systems are also supported.

Aardvark Software API supports multiple software languages and can be modified for specific user requirements. Figure 1: Aardvark API Software

Install Aardvark API Python:
NOTE: Install the same windows version of API software as MATLAB: 64-bit or 32-bit.

  1. Locate and then delete the aardvark.dll /.h/.c files in your computer.
  2. Uninstall and then download and re-install the latest USB drivers v2.12 for Windows. Verify that the Aardvark adapter appears in the Windows Device Manager under the USB section.
  3. Uninstall and then download and re-install the latest Aardvark API v5.14 for 64-bit Windows.
  4. Connect the Aardvark adapter to the Windows computer via the USB connector.
  5. Download and install Python 2.7.6 for 64-bit Windows.
  6. Run the original aadetect Python example as provided in the API package. Verify the Aardvark adapter appears in the aadetect API example.
  7. Ensure the 64-bit aardvark.dll is in same directory as the executable.
  8. Open the Command Prompt.
  9. Change the directory to “..\ aardvark-api-windows-x86_64-v5.14\python”.
  10. In the directory “..\ aardvark-api-windows-x86_64-v5.14\python” type: ”C:/Python27/python.exe aadetect.py”.
  11. To verify the setup, write and read to I2C memory with the Aardvark adapter and the original aai2c_eeprom Python. Use this example as provided in the API Software package.

Install Aardvark API MATLAB:

  • To install 64-bit MATLAB , follow steps 1-4 above that are were used to install API Python.

For more information about the Aardvark adapter and other Total Phase products, please refer to the  documents listed below.  If you have questions about using MATLAB software commands, please contact Mathworks Support.

We hope this answers your question. If you have other questions about our Host Adapters or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

 

We've reached the (Flash Memory) Summit!

$
0
0
Our booth at Flash Summit The booth is ready for visitors

Total Phase is exhibiting at the Flash Memory Summit in Santa Clara, California.  We're showing off our entire range of debugging and development tools for USB, I2C, SPI, and CAN.  In particular, we're focusing on the Cheetah SPI Host Adapter and the Beagle I2C/SPI Protocol Analyzer because of the flash memory emphasis of the show.

The Cheetah adapter and Beagle analyzer hang out at Flash Summit The Cheetah adapter and Beagle analyzer hooked up to a Flash demo board

The Cheetah adapter is capable of programming flash memory at up to 40+ MHz and the Beagle analyzer can passively monitor all the SPI traffic on the bus. If you work with flash memory, did you know that our Flash Center software supports over 500 different types of memory?  Take a look at the page and see if we support your chip. If not, you can easily edit the existing XML-based part files, and create your own part file for use in Flash Center.

Large number of attendees on the show floor Large number of attendees on the show floor

It's been a great show so far and it's been busy. We're in our final day and look forward to talking to more customers. We hope you're having a great month of August so far and hope to see you at a future show!

 


Support Question of the Week: Did You Know That a Beagle Protocol Analyzer Can Be Integrated with Wireshark or ARM-based Hosts?

$
0
0

The BeagleTM I2C/SPI Protocol Analyzer is a cost-effective tool for easily sniffing I2C and SPI traffic. But did you know that it could also be integrated with other systems? Here are two examples of how the analyzer can be integrated with these external systems.

The Beagle Protocol Analyzer, in addition to sniffing I2C and SPI traffic, can be integrated with other systems Figure 1: Beagle I2C/SPI Protocol Analyzer

 

Analyzing IPMB (over I2C) with Wireshark

The Beagle I2C/SPI Protocol Analyzer has been successfully used for importing the captured IPMB (based on I2C) data to Wireshark, an open-source network protocol analyzer, which would be able to further decode the I2C data. A detailed example is available on wiki.wireshark.org. A summary of the procedure:

  1. The Beagle protocol analyzer captures data on the IPMB platform.
  2. The data file is loaded into Wireshark. For information about the IPMB, please refer to wiki.wireshark.org/IPMB_protocol.
  3. For information about implementing the Beagle analyzer for IPMB sniffing, please refer to bugs.wireshark.org.
  4. The file that applies to this example is beagle_i2c_analyzer.tar.gz, which you can download from bugs.wireshark.org.

Using the Beagle analyzer with an ARM-based embedded host

The Beagle analyzer does not have to be connected to a full analysis PC to work.  Some customers have been able to use the analyzers with ARM-based embedded hosts such as a Raspberry Pi and the Beagle Boards.  For more a detailed recommendation on how to implement the Beagle analyzers with your embedded host, please contact our customer support team.

As you can see, there are many powerful ways to interface with our tools, which can be implemented with standard setups as well as customized, creative setups for your specific use.

For more information, please refer to the following documents:

If you have other questions about our protocol analyzers or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

 

Support Question of the Week: Did You Know You Can use Cheetah API Software to Integrate the Cheetah SPI Host Adapter with MATLAB?

$
0
0

I'm using the CheetahTM SPI Host Adapter as an SPI controller, and I need to control Cheetah with MATLAB.  I've tried modifying the h. files and then generate the .m files for MATLAB, but I can't get it to work - each data type "does not exist". Can you tell me the details of what I need to do to make this work?

Thanks for your question! We do not support MATLAB directly, but we provide the tools to use a Host Adapter and MATLAB together. We have a knowledge base article that should help you: How To Use Total Phase Products With MATLAB  - that article uses Aardvark as an example, but the methods can be used with other tools. We also provide Cheetah API Software, which includes code examples that can be used with MATLAB and customized as needed. Following is a summary of the directions. In this example, Python for 64-bit Windows is used. Many other programming languages and operating systems are also supported.

Based on the article How To Use Total Phase Products With MATLAB, following are guidelines to integrate the Cheetah SPI Host Adapter with MATLAB.

Cheetah Software API supports multiple software languages and can be modified for specific user requirements. Figure 1: Cheetah API Software

NOTE: These guidelines can be used with Aardvark adapters and Beagle protocol analyzers as well - just use the appropriate files for the tool.

  1. Download and run the latest version of the Total Phase USB Drivers Installer.
  2. Download and unzip the latest version of the Cheetah API software
  3. Go the c directory in the Cheetah API package.
  4. Modify the functions' names in cheetah.h file.
    • On the cheetah.h file, run a search and replace to rename all functions to have a "c_" prefix. This name modification ensures that the dll and h files match).
    • The Cheetah API functions are not exposed from cheetah.dll with the names listed in the user manual. The cheetah.c source file acts as a wrapper for the dll functions to the API functions which all have the prefix "c_". Those functions' names are exported public. cheetah.dll has functions called "c_aa_open" instead of "aa_open" as seen in cheetah.h.
  5. Run the Mathworks loadlibrary command.
  6. Call loadlibrary('cheetah.dll',['cheetah.h'],'mfilename','cheetah_matlab').
    • The Mathworks loadlibrary command takes c header file and creates m wrapper instead. This command creates a file called cheetah_matlab.m.
  7. Continue with the programming based on the system requirements.

For additional information, please refer to the Cheetah adapter API documentation and the MATLAB loadlibrary command in the MATLAB help site.

For more information about the Cheetah adapter, customizing your setup using software API and other Total Phase products, please refer to the following documents:

If you have other questions about our protocol analyzers or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: What Makes the Beagle USB Protocol Analyzer More Effective for USB Debugging?

$
0
0

There are many effective uses for a Beagle USB Protocol Analyzer: sniff and analyze many products, including mass storage, HIG, many classes, USB-Ethernet devices, IP-layer decoding, pass data to Wireshark and more. Colin O'Flynn, independent of Total Phase, published a review about the BeagleTM USB 480 Protocol Analyzer.

If you wonder how you can make best use of a Beagle analyzer, following is a summary of Colin O'Flynn's review (http://colinoflynn.com) of using a Beagle protocol analyzer for efficient USB debugging.

Triggering USB Packets Makes USB Debugging More Efficient
This is a important for all firmware developers. When debugging USB, you cannot pause an embedded target: it will stop responding to USB requests, which then kills the connection. To debug USB errors, seeing the error isn't enough; you need to see where in the code the error originates.

To locate errors, breakpoints need to be set up quickly (e.g.: pause target, dump a value, and continue running before USB errors out), or need it needs to be selected where breakpoints happen.

In the Total Phase Data Center Software, advanced data matching features, such as matching specific packet types (including corrupted) or even specific data, all in real-time, enable you to trigger your breakpoints with detailed data matching.

Setting up the Beagle Protocol Analyzer Trigger in the Data Center Software Figure 1: Setting up the Trigger in the Data Center Software

 

This trigger can be fed into the emulator to cause a BREAK condition. This can be done by adding an interrupt into your system with a breakpoint in it. The results: a breakpoint occurs when some data goes over the bus to see what's happening. For example - is memcpy() overwriting a buffer before the system completes sending the data?

 

Viewing Triggered Results in the Data Center Software Figure 2: Viewing Results in the Data Center Software

 

Monitoring Status in a Running System
The Beagle USB 480 Protocol Analyzer provides a good variety of inputs. You can toggle IO pins from inside the firmware when specific tasks start and end. For example, assign 1 pin to the low-level USB task, 1 pin to the higher-level class, and 1 pin to the user software. By monitoring the status of the pin toggles in the Data Center software, it's easy to see if task stops running properly, or if there's a bug.

With this technique, you will see what USB code is doing when it needs to pass messages between multiple tasks. For example, the scheduler is not calling the final task that actually processes the data, which causes the system to run out of buffers faster than estimated or designed.

Synchronizing Other Equipment to the USB Capture
Synchronization can be a critical, important factor in USB capture. For example, you need to reverse-engineer a USB device. You can set up the hardware to trigger when it sees a specific output condition, such as a sequence of packets. This trigger can be used to synchronize to the actual USB data on the bus. This setup help determine exactly what messages are being passed.

Here is Colin's video of debugging a controller:

For more information, including more examples of using Total Phase products, please refer to the following documents:

We hope this answers your question. If you have other questions about our software, host adapters, protocol analyzers or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: How do You Use the Host Adapter GPIO Features to Send Interrupt Signals?

$
0
0

I’m new with the Aardvark I2C/SPI host Adapter, and I’m using it in SPI mode. It seems it does not have pins that are dedicated for sending interrupts. Could I use another pin to send interrupt signals to the host computer? I am using four SPI bus lines - the unused pins are SCL, SDA and GND, as well as two power pins.

Is there a way I can use one of those pins to send an interrupt to the host computer?

Thanks for your question! You can use the GPIO feature of the Aardvark I2C/SPI Host Adapter to send interrupts to the host computer. For details, please refer to the knowledge base article Using the Aardvark I2C/SPI Host Adapter GPIO Feature to Support Interrupts. This article includes an example of using Aardvark Software API, which supports several programming languages and operating systems. For information about Software API, please refer to section 5 of the Aardvark Adapter User Manual. For details about the host adapter signal pins, please refer to section 2 of the Aardvark Adapter User Manual.

The Aardvark Host Adapter GPIO Feature Can Be Used to Send Interrupt Signals Figure 1: Aardvark I2C/SPI Host Adapter

 

To become more familiar with Aardvark adapter GPIO features, the Aardvark API Software and the Control Center Software, we recommend trying out the following:

  1. Install the Control Center Software.
  2. Make sure the Aardvark adapter is not connected to your target system; plug the Aardvark adapter into the computer and open the Aardvark Control Center Software.
  3. Using the Control Center Software GUI, connect to the Aardvark adapter and select the GPIO only mode. Ensure that the I2C Pull-ups are disabled in the Aardvark menu.
  4. Set all the directions to OUT, and set all the outputs to logical 0. Using a meter, verify that all the pins output 0V.
  5. Set all the outputs to logical 1, and verify that the pin output 3.3V.
  6. Do similar testing with the input pins, such as in sending a 3.3V or 0V signal to each input, and then verify if the Aardvark adapter sees the signals properly.

For additional information about the Aardvark I2C/SPI Host Adapter and other Total Phase products, please refer to the following documents:

We hope this answers your question. If you have other questions about our Komodo Interface analyzers or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Support Question of the Week: How Can I Interface the Beagle SPI Protocol Analyzer to a High Impedance SPI Signal Line and Resolve the Signal Noise?

$
0
0

I have a question about interfacing the BeagleTM IC2/SPI Protocol Analyzer with my setup. I am using the ST Microelectronics STM32F071CB as the SPI master and the Nuvoton ISD2115 as the SPI slave device. The clock is set to 750Khz and the SPI bus is operating in Mode 3. My Data Center acquisition is set up for SPI at 10MHz. Between the two devices are 470 ohm resistors on the SPI signal lines. They are placed close to the slave device - the Beagle connects to the STM device, but the 470 ohms is between the Beagle and the Nuvoton target device. Both devices and the SPI signal lines operate at 3.3V.

The Beagle SPI protocol analyzer and the Data CenterTM Software are working fine, but the behavior is strange when the Beagle analyzer is connected to the target device - the symptoms are similar to when there is signal noise on an SPI signal line.

What causes this chatter?

  • Is this setup okay?
  • What is the input impedance of the Beagle SPI sniffer device?
  • What is the recommended circuitry so that the Beagle can monitor the SPI signals?
  • Also, for another project, does the Beagle analyzer work with 5V signals as well as 3.3V signals?

Thanks for your questions! The Beagle I2C/SPI Protocol Analyzer is compatible with 3.3V or 5V signal levels for I2C and SPI devices. The input characteristics of the Beagle I2C/SPI Protocol Analyzer are approximately 15pF parasitic capacitance and 10uA leakage current, which calculates to a minimum of 330k ohms. In actual practice, it is more like 1M ohms.

The Beagle I2C/SPI Protocol Analyzer supports 3.3V and 5V signals. Figure 1: Beagle I2C/SPI Protocol Analyzer

 

We have two recommendations for your setup:

Connecting the Beagle Directly
It is usually best to connect the Beagle I2C/SPI Protocol Analyzer directly to the I2C/SPI circuit while considering the above mentioned AC characteristics.

Using a Level Shifter Board with the SPI Circuitry
However, in your case, the output impedance of the target system may be too high to work directly with the Beagle analyzer. The Beagle analyzer has a bus-keeper circuit that uses a 50k pull-up/pull-down resistor, and your target system may not interface properly with its drivers. However, this can be resolved by using our Level Shifter Board between the analyzer and the target system or by using pull-down/ pull-up resistors. Details about using the Level Shifter Board are provided in the Level Shifter Board User Manual and the knowledge base article Programming I2C EEPROM Using Aardvark Adapter, Level Shifter Board and Control Center. You can also contact us for additional information about configuring the Level Shifter Board for your system. In addition to high impedance, the Level Shifter Board can be used to support interfacing our host adapters and protocol analyzers to other signal levels, 1.2V, 1.5V, 1.8V, 2.5V, 3.0V, and 3.3V.

 

Use the  Level Shifter Board to interface the Beagle I2C Protocol Analyzer to resolve signal noise cause by impedance mismatch. Figure 2: Level Shifter Board

 

For additional information about Protocol Analyzers, Accessory Boards and other Total Phase products, please refer to the following documents:

We hope this answers your question. If you have other questions about our Komodo Interface analyzers or other Total Phase products, feel free to email us at sales@totalphase.com or submit a request for technical support.

Viewing all 822 articles
Browse latest View live