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

How Can I Program an SPI Host Adapter to Communicate with Three SPI Slaves?

$
0
0

Question from the Customer:

I have been using your Aardvark I2C/SPI Host Adapter for many projects. For the latest project, I need to set up the Aardvark adapter to communicate with at least three SPI slaves. I have many evaluations to run  – I don’t want to change the wiring of my setup for each project.  If I used Aardvark API Software, would it be possible to program the I2C pins as additional Slave Select (SS) pins?

Response from Technical Support:

Thanks for your question! The I2C pins of an Aardvark adapter cannot be programmed as SPI Slave Select signals. However, we have two options for you: the Cheetah SPI Host Adapter and the Promira Serial Platform. The Cheetah SPI Host Adapter provides three Slave Select signals.

One Cheetah SPI Host Adapter Supports up to 3 SPI Slaves

For larger setups, we suggest the Promira Serial Platform, which can provide up to eight Slave Select signals, depending on which level of application you use:

Note: To use Level 2 or Level 3 applications, the previous level(s) of application must first be licensed and installed.

If you have been using the API software with the Aardvark adapter, you can also use our Promira Aardvark Wrapper Software AP to continue using those programs with the Promira platform. However, to maximize using Promira platform capabilities, such as signal leveling, communicating with multiple SPI slaves and programming GPIO pins, you will need to use Promira Software API I2C/SPI Active.

We hope this answers your question. Additional resources that you may find helpful include the following:

More questions? More projects? You can contact us and request a demo that applies to your application, as well as ask questions about the Promira Serial Platform and other Total Phase products.

Request a Demo


What Are the Best Tools for Programming 1.8v and 3.3v SPI Devices when Using a Flash Socket Board?

$
0
0

Question from the Customer:

I need to program 1.8V SPI devices with one of your Flash Socket Boards.

I reviewed the user manual for the Level Shifter Board, but it is not clear how to set the target voltage of the Cheetah SPI Host Adapter so that it is 5V when used with the level shifter and 3.3V when it is used with the Flash Socket Board directly. How can I best set up the 5V required for the level shifter, while ensuring that the SPI interface is still 3.3V compatible?

Also, using the Flash Center Software, I can see that the Promira Serial Platform allows the target voltage to be defined. Is there an advantage to using the Promira platform?

Response from Technical Support:

Thanks for your questions!  For your application, we recommend using the Promira platform and the Flash SOIC-8 Socket Board - 10/34. As both the Promira platform and the Flash SOIC-8 Socket Board - 10/34 support 1.8V and 3.3V.  You can connect the Promira platform directly to the Flash socket board - you will not need the level shifter board with this configuration.


Promira Serial Platform
   SOIC Flash Board

About the socket board:

  • The Flash SOIC-8 Socket Board - 10/34 is the latest version that supports multiple SPI signals logical levels (including 1.8V and 3.3V).
  • It also supports connecting directly to the Promira platform that also supports 1.8V and 3.3V via software (without a level shifter.)

The Cheetah adapter operates at high speeds up to 40+ MHz with SPI signals at 3.3V.  To use the Cheetah adapter with SPI flash at lower voltage levels, you can use the level shifter board to provide the required voltages.

The Promira platform is an advanced device with built-in level shifting that can function as either an SPI master or slave, as well as many other features, depending on which Promira Application you have licensed.

Here’s a table so you can easily compare the Promira platform (and Applications) and the Cheetah adapter.

Compare the features of the Promira and the I2C/SPI Active Applications, and the Cheetah and Aardvark host adapters.Note: for Active - Level 2 and 3 Applications, the previous levels must first be licensed and installed on the Promira platform.

We hope this answers your questions. Additional resources that you may find helpful include the following:

More questions? More projects? You can contact us and request a demo that applies to your application, as well as ask questions about the Promira Serial Platform and other Total Phase products.

Request a Demo

How Can I Obtain Details about Failures on my USB Type-C Cables Detected by the Advanced Cable Tester?

$
0
0

Question from the Customer:

I have the Advanced Cable Tester running tests on two identical working USB Type-C cables. The report shows one cable passed everything on the physical wiring section, but the other cable failed the physical wiring on SBU1 and SBU2. I have checked all wiring and function of these two cables to make sure they are working the same. Can you explain these test results?

  • What are these results based on?
  • What does it mean if a section is failing?

Response from Technical Support:

Thanks for your questions! For the digital pins SBU1, SBU2, as well as DP1/DM1, and DP2/DM2, a simple continuity test is used to verify the presence or absence of signals.

  • How this test works: This test consists of applying a voltage at one end of the cable and measuring the incoming signal at the far end of the cable.  The inputs are weakly pulled to the rail to prevent any false readings from a floating conductor.
  • What causes a failure: This test fails if the lines are AC coupled between the Upstream and Downstream ports of the Advance Cable Tester.

For more information about the tests the Advanced Cable Tester can run, take a look at the Test Specification section - which includes Test Coverage, Test Sequence, Detailed Test Information and more - in the Advanced Cable Tester User Manual. We also have an introductory video about using the Advanced Cable Tester:

Additional resources that you may find helpful include the following:

More questions? More ideas? You can also contact us and request a demo that applies to your application, as well as ask questions about the Advanced Cable Tester and other Total Phase products.

Request a Demo

How can I send large data transactions, messages greater than 64 bytes, using the Aardvark I2C/SPI Host Adapter?

$
0
0

technology-serversQuestion from the Customer
For a communication scenario, I am using the Aardvark Software API for data transactions. Here is the call that I am using:

aa_i2c_write (handle, deviceAddress, AA_I”C_NO_FLAGS, numbytes, bufferin)

If I define numbytes=300, is there a limitation when sending data due to the buffer size of 64 bytes? In other words, I would like to know what is the maximum size of data (number of bytes) that the Aardvark I2C/SPI Host Adapter can process.

Response from Technical Support:

Thanks for your question! For the Aardvark adapter, the buffer space is 64 bytes, and the maximum slave response is 64 bytes. However, the transactions can be much larger. Here are the details:

The size of the I2C and SPI buffers are 16 Kbytes each - they can hold many separate transactions. These buffers are only used when an Aardvark API call is invoked. This buffer size is adequate for your use, as the overall limitation for asynchronous messages is determined by the operating systems internal buffer size.

The Aardvark adapter can reliably send and receive transactions of 4 Kbytes or less as an SPI master or slave. This is due to operating system issues and the full-duplex nature of the SPI signaling.

When configuring Aardvark adapter for Master Write, the maximum message size is 64k (65535) bytes when using 7-bit addressing and 64k-1 (65534) bytes when using 10-bit addressing. For more details about addresses, please refer to this knowledge base article: 7-bit, 8-bit, and 10-bit I2C Slave Addressing.

Please note, the number of bytes that can be written in the API call  aa_i2c_write is 65535. For more information, please have a look at the API Documentation section, I2C Interface, in the Aardvark I2C/SPI Host Adapter User Manual.

Additional resources that you may find helpful include the following:

We hope this answers your question. Want more information? You can contact us and request a demo that applies to your application, as well as ask about our Total Phase products.

Request a Demo

Which Beagle USB Protocol Analyzer Should I Choose to Capture the Data of High Volume Transactions at an Airport?

$
0
0

Beagle 480 for high-speed transactions

 Question from the Customer:

My consulting firm just got a large contract. We’ll be testing and verifying a setup for high volume sales for airport stakeholders.  The system consists of a cash register, a tablet, and printer, and connectivity to the server farm. To better monitor transactions and provide real-time information, this project is moving the data exchange from an RS232 bus to a high-speed USB bus. Here’s a diagram of what we’ll be testing.

Setup for high-speed data transfer to printer

  • The printer is a slave device.
  • The cash register and the tablet are master devices
  • The server farm manages flight and service information

The tablet has important tasks to run:

  • Sniff the communication between the Cash Register and the Printer
  •  Capture the data of the printed receipt
  •  Interface with the servers for information related to the sale: flight information and any additional services (first boarding, insurance, additional baggage, etc.)

To verify the functionality of this system, we need to non-intrusively capture USB traffic sent from the cash register to the printer. For all our other projects, we have been using the Beagle USB 12 Protocol Analyzer. We used the same analyzer for our initial evaluation using similar devices at Low/Full USB speeds, but we’re not sure the Beagle USB 12 analyzer is fast enough for testing the actual devices to be used in the system. As implied in the diagram, we will be using several analyzers during final verification and customer acceptance testing, one for each printer. We need to be cost-effective – which analyzer do you recommend for this project? Also, we’ll need to accumulate and analyze a lot of information during verification - how can we manage that?

Response from Technical Support:

Thanks for your questions! Regarding which analyzer to used, we have two suggestions about Beagle USB protocol analyzers for your project. We also have a recommendation for data storage.

For high speed sniffing, as you observed, the Beagle 12 Protocol Analyze is designed for a Low/Full speed USB bus. To monitor this set up, we recommend using the High-speed Beagle USB 480 Protocol Analyzer.  However, the tablet may not be able to fulfill the power requirements of the Beagle USB 480 analyzer. If that proves to be the case, we recommend using the Beagle USB 480 analyzer with an external computer.

For data storage, you can store the traffic on PC RAM using the Data Center Software and then export or save trace files for future review.  Additionally you can use the Beagle API Software to capture and log data directly to a hard drive.

We hope this answers your questions. Additional resources that you may find helpful include the following:

More questions? More projects? You can contact us and request a demo that applies to your application, as well as ask questions about protocol analyzers and other Total Phase products.

What Tools Can I Use to Interface with Multiple SPI Slave Devices?

$
0
0

Question from the Customer:

I want to connect to multiple slave devices. With the Aardvark I2C/SPI Host Adapter, I would like to use an analog switch to make or break the connection to the slave devices chip select(CS), along with pull-ups. Do you have a recommended method for interfacing to multiple SPI slave devices?

Response from Technical Support:

Thanks for your question! For the circuit you are considering, we do not have specific recommendations but an analog switch for CS and/or a multiplexer IC that you could control with GPIOs to select the outputs should work.  For that customized setup, Aardvark API Software could help you create a program for full control.

We do have recommendations for specific tools that support interfacing with multiple SPI slave devices without the need for additional equipment.

 Cheetah SPI Host Adapter  Promira Serial Platform

For up to three SPI slaves , we recommend the Cheetah SPI Host Adapter,  The Cheetah adapter actively communicates on the bus, operates at high speeds up to 40+ MHz and has three SPI SS signals so it can interface with up to three SPI slaves.

For more than three SPI slaves, you can use the Promira Serial Platform with the SPI Active - Level 3 Application. The Promira platform provides other advantages, including built-in level shifter, Ethernet and high-speed USB interfaces, and ability to provide up to 200mA to the target device.

For an overview, the table below summarizes the features of Total Phase tools.

Comparison Chart: Promira Serial Platform and Aardvark I2C/SPI Host Adapter

Additional resources that you may find helpful include the following:

We hope this answers your question. Want more information? You can contact us and request a demo that applies to your application, as well as ask about our Total Phase products.

Request a Demo

When you need to program SPI devices, do you know how much help comes with the SPI Host Adapter and the Software API?

$
0
0

Question from the Customer:

I am new and suddenly immersed with programming embedded devices. I need to quickly program the N25Q256A flash chip.  I’ll be using the Cheetah SPI Host Adapter with Cheetah Software API. For this project, I need to change the 3-bit address programming sequence to a 4-bit address programming sequence. Can you help me get started?

Response from Technical Support:

Thanks for your question! A lot of the information that you need comes with the Cheetah Software API package. Functional code examples are provided with the API, which you can use as-is or modify as needed for your specifications. Here are the programs that are provided in the API package:

  • detect - detect Cheetah devices attached to the system
  • blast - shift a running 8-bit counter via SPI
  • timing - insert user-defined delays in the middle of an SPI shifting sequence
  • eeprom - read from or write to an SPI serial EEPROM, such as the Atmel AT25080A that comes with the I2C/SPI Activity Board
  • flash - read, write, verify, or erase a high-speed SPI flash memory such as the STMicro M25P32 which is including on the High-Speed SPI Flash Demo Board
  • async - use the advanced asynchronous SPI shifting API

In addition to Python, C, C++, C#, VB and .Net are supported. We also have Knowledge Base articles and Solution Videos to help you get started, including how to program SPI devices.

More questions? You can contact us and request a demo that applies to your application, as well as ask questions about host adapters, software packages and other Total Phase products.

Request a Demo

How can I best capture MDIO bus transactions with Total Phase tools?

$
0
0

Question from the Customer:

I need a protocol analyzer to capture MDIO bus transactions. I have a Total Phase 10-Pin Grabber Split Cable on hand, but I don’t see any markings for MDC and MDIO signals. Which pins should I use, and which Beagle protocol analyzer do you recommend?

Response from Technical Support:

Thanks for your questions! For your use, we recommend the Beagle I2C/SPI Protocol Analyzer and Data Center Software version 2.20. Used together, they can easily display and capture MDIO bus transactions.

Beagle I2C/SPI Protocol Analyzer Data Center Software

About the Beagle I2C/SPI analyzer MDIO support:

  • Non-intrusively monitors MDIO up to 2.5 MHz
  • Monitors clause 22 and clause 45 MDIO
  • Pin 8 is the bidirectional management data input/output (MDIO signal), which is used to transfer data between the STA and the MMD.
  • Pin 7, is the management data clock (MDC signal), which is a control line that is driven by the STA and synchronizes the flow of the data on the MDIO line.

To capture MDIO signals, the sampling rate must be set properly: the minimum requirement for the sampling rate is twice the bus bit rate. To customize a program for your setup requirements, we recommend using Beagle Software API. Functional examples are provided, which you can use as-is or modify as needed.

The Beagle I2C/SPI analyzer signal level is 3.3V.  If you need to monitor a lower voltage MDIO bus, you can use the Level Shifter Board.

For additional information, please refer to the knowledge base article MDIO Background and the following sections of the Beagle Protocol Analyzer User Manual:

  • MDIO Background
  • Beagle I2C/SPI/MDIO Protocol Analyzer
  • MDIO API

We hope this answers your questions. Additional resources that you may find helpful include the following

More questions? You can also contact us and request a demo that applies to your application, as well as ask questions about the Beagle  protocol analyzers and other Total Phase products.

Request a Demo


I Need to Program 129 Bytes to an I2C EEPROM, but the Host Adapter Stops After Programming 16 Bytes – What Do I Need to Change, and How?

$
0
0

Question from the Customer:

We purchased an Aardvark I2C/SPI Host Adapter for our product development and manufacturing evaluation. We ‘re trying to use this adapter with the Flash Center Software to program 129 bytes to an ST Micro M24C02-W I2C EEPROM.  Our problem - it consistently fails with “Slave NACK” error.

159084-data1

Checking the SCL and SDA signals, we found it only wrote 16 bytes of real data as shown in the first line of the Data Window to the EEPROM before the program failed.  Looking at the timing diagrams, the Aardvark adapter is communicating with the EEPROM.

 

159084-data2 159084-data3

 

Can you tell us why the Aardvark adapter stops after writing 16 bytes and what we need to do about it?

Response from Technical Support:

Thanks for your questions! Based on the information you provided, the issue you are experiencing is related on timing and easy to fix. In addition to using the XML-based memory device library as is – you can customize the files for products not yet supported in the library or for new prototypes.

For this device, we recommend adding <writeTime> 10000 </writeTime> between the writeSize setting and the base device address setting for the ST Micro M24C02-W in the st-i2c.xml file. This will increase the wait time from 2.7ms to about 7.5ms, providing sufficient time to successfully program all 129 bytes.  For your convenience, here is the code:


<manufacturerName> STMicro </manufacturerName>
<deviceAlgorithm>I2C EEPROM</deviceAlgorithm>
<maxBitrate>400</maxBitrate>
<addressWidth>1</addressWidth>
<writeSize>16</writeSize>
<writeTime>10000</writeTime>
<baseDeviceAddress>0x50</baseDeviceAddress>

Additional resources that you may find helpful include the following:

We hope this answers your question. Looking for more information? You can contact us and request a demo that applies to your application, as well as ask about our Total Phase products.

Request a Demo

How Can I Get the Best Speed when Generating Signals with the Cheetah SPI Host Adapter?

$
0
0

Question from the Customer:

I plan to use the Cheetah SPI Host Adapter  and the Cheetah Software API (Python) for generating SPI signals to communicate with my board. Before I get started, can you tell me about timing delays from the API execution call to the signals generated at the Cheetah output?

For example, if I execute a SPI read API call, what delays do I need to consider when generating output SPI signals from the Cheetah adapter? If there are some tricks to help boost the speed, can you tell me about that as well?

Response from Technical Support:

Thanks for your questions! The Cheetah SPI Host Adapter actively communicates on the bus, operates at high speeds up to 40+ MHz, can provide gapless shifting, and provides control over the timing of the data that is shifted out. As you noted, there are timing overheads and delays to consider:

  • The maximum bit rates are only achievable within each individual byte and do not extend across bytes.
  • There are various overheads and delays that affect the overall speed of data transfer. Showing the range of values per SS assertion and deassertion:
    • SS# assertion to first clock edge (tSAC 7-6.5 tCLK)
    • SS# deassertion from last clock edge (tCSD 2-1.5 tCLK)
    • The OS may add additional delay due to internal overhead. In addition, the Cheetah adapter has 250us round-trip latency, which is caused by the high-speed USB link between the computer and the adapter. These delays will further reduce the overall throughput across multiple transactions.  Here is a diagram of the Cheetah adapter SPI signaling characteristics:

A timing diagram of the SPI Host Adapter SPI Signaling Characteristics.

 

M25P32 Instructions, details will differ for your SPI memory

To help accelerate the data rate, the Cheetah adapter has an asynchronous interface - API functions can be queued, which allows faster rates for streaming data.

For additional information, please refer to the SPI Signaling Characteristics and API Documentation sections of the Cheetah SPI Host Adapter User Manual.

We hope this answers your questions. Additional resources that you may find helpful include the following:

More questions? More projects? You can contact us and request a demo that applies to your application, as well as ask questions about host adapters, software packages and other Total Phase products.

Request a Demo

Which Data Formats Can I Use to View and Access the Saved SPI Data from an SPI Slave?

$
0
0

159131-dataQuestion from the Customer:

I'm working with the Aardvark I2C/SPI Host Adapter to collect data from an SPI slave interface, and then view and analyze the information with the Control Center Serial Software.

Which data formats I should use to load the SPI test data into the Control Center Serial Software? I tried doing this a few times, but looking at the data, the format was changed from binary to something else. Here’s an example:

159131-customer-view

Response from Technical Support:

Thank you for your question! It’s very easy to save SPI data as a binary file. The data can be loaded from a binary file by clicking on Load button. Alternatively, when you view data on the Control Center Serial Software, you can save it as binary file by clicking the Save button as shown below.

159131-tech-support-saveTo BinaryBile

Additional resources that you may find helpful include the following:

We hope this answers your question. If you have other questions about our host adapters or other Total Phase products, you can contact us and request a demo that applies to your application, as well as ask questions.

Request a Demo

When you need to program SPI devices, do you know how much help comes with the SPI Host Adapter and the Software API?

$
0
0

Question from the Customer:

I am new and suddenly immersed with programming embedded devices. I need to quickly program the N25Q256A flash chip.  I’ll be using the Cheetah SPI Host Adapter with Cheetah Software API. For this project, I need to change the 3-bit address programming sequence to a 4-bit address programming sequence. Can you help me get started?

Response from Technical Support:

Thanks for your question! A lot of the information that you need comes with the Cheetah Software API package. Functional code examples are provided with the API, which you can use as-is or modify as needed for your specifications. Here are the programs that are provided in the API package:

  • detect - detect Cheetah devices attached to the system
  • blast - shift a running 8-bit counter via SPI
  • timing - insert user-defined delays in the middle of an SPI shifting sequence
  • eeprom - read from or write to an SPI serial EEPROM, such as the Atmel AT25080A that comes with the I2C/SPI Activity Board.
  • flash - read, write, verify, or erase a high-speed SPI flash memory such as the STMicro M25P32 which is including on the High-Speed SPI Flash Demo Board
  • async - use the advanced asynchronous SPI shifting API

In addition to Python, C, C++, C#, VB and .Net are supported. We also have Knowledge Base articles and videos to help you get started, including how to program SPI devices, such as Programming 4 Byte Address Mode SPI Flash Using Cheetah Adapter and Flash Center.

 More questions? You can contact us and request a demo that applies to your application, as well as ask questions about host adapters, software packages and other Total Phase products.

Request a Demo

For SPI devices, how do I modify data at the bit level during read and write operations in both master and slave configurations?

$
0
0

Question from the Customer:

I’m looking at three devices that interface with the SPI bus: Aardvark I2C/SPI Host Adapter, Cheetah SPI Host Adapter and the Promira Serial Platform. So far, the Promira platform looks best for our needs. Before I make a decision, I’d like some information about I/O buffers and data handling:

  • Is there a difference in the data size of I/O buffers between the three devices? It looks like the Promira platform can handle higher amounts of data (bytes) in read/write operations.
  • Is it possible to modify data at the bit level (instead of byte level) during read and/or write operations with the Promira platform, in both master and slave configurations?

Response from Technical Support:

Thanks for your questions! Here’s a comparison of the features you asked about:

I/O Buffer Size: volume of data (bytes) in read/write operations

  • The maximum buffer size of Aardvark and Cheetah adapters is 64 bytes. This applies to both slave and master modes. NOTE: The Cheetah adapter only functions as an SPI Master; the Aardvark adapter can function in either master or slave modes.
  • For the Promira Serial Platform, the I2C/SPI device receive buffer size is 2 Mbytes; the I2C/SPI slave response size is 256 bytes.

Here is some information about using the Promira Software API for read/write operations.

Modifying data at the bit level during read/write operations in Master and Slave configurations:

In SPI mode, the Promira Serial Platform has the capability to vary the word length between 2 and 32 bit words. You can modify the data at the bit-level during read and write operations, which you can do with the Promira Software API. Here is the Promira API function for SPI write - you queue a command that writes a stream of the same word to the downstream SPI slave device:

The function:


int ps_queue_spi_write_word (
PromiraQueueHandle queue,
PromiraSpiIOMode io,
u08 word_size,
u32 out_num_words,
u32 word);

The arguments:

queue: the queue handle,
io: IO mode flag. The value of flas is related to the SPI device (see the table below)
word_size: number of bits per word, between 2 and 32
out_num_words: number of words to send

Regarding the values of the I/O flag:

Promira-SPI-IO-flagsThe return value:

When successful, the status code is returned with PS_APP_OK. There are no error codes.

About queuing:
NOTE: before using this function, enable the outputs with ps_queue_spi_oe

out_num_words: for queuing, this is number of words to send

For more information, please refer to the commands read(int ps_queue_spi_read) and SPI Master write(ps_queue_spi_write_word) in the API Documentation section of the Promira Serial Platform User Manual.

Here is a table that shows the main features of the Aardvark and Cheetah adapters, and the Promira platform and SPI Active Level 1-3 applications:

Compare the features of the Promira and the I2C/SPI Active Applications, and the Cheetah and Aardvark host adapters.

NOTE: For the Promira applications, the previous levels of the application must first be installed. For example, for SPI Active - Level 3, SPI Active - Levels 1-2 must already be installed.

We hope this answers your questions. Additional resources that you may find helpful include the following:

More questions? Need more details? You can also contact us and request a demo that applies to your application, as well as ask questions about the Promira Serial Platform and other Total Phase products.

Request a Demo

For I2C and SPI host adapters, what is the timing resolution difference between block functionality and queuing?

$
0
0

Question from the Customer:
With the Aardvark I2C/SPI Host Adapter and Aardvark Software API, I’m trying to read from an I2C sensor with the smallest time resolution possible. Can I buffer read/write commands to avoid being limited by USB frame rates?

Response from Technical Support:
Thanks for your question! For the Aardvark API functions, everything is a block function that waits for the response from the device, which affects timing. Each API call that is used to send data to and from the Aardvark adapter can cause a delay up to 1ms on the PC host. This is caused by the inherent design of the USB architecture. Also, the Aardvark adapter communicates with USB Full Speed (12 Mbit/s), which is a bit slower than other Total Phase devices. For more information about USB scheduling delays, please refer to the Application Notes section of the Aardvark I2C/SPI Host Adapter User Manual.

To accelerate your read/write speed, Total Phase has another device, the Promira Serial Platform, for communicating with and programming I2C (or SPI) devices.

aardvark-275 Promira Serial Platform

The Promira platform communicates over Ethernet and Ethernet over USB, both of which are faster than full-speed USB. With Promira Software API, the Promira platform also provides the queue functionality - multiple commands can be queued up and shifted to the device at once. For details about queuing functions, please refer to the Queue Overview section of the Promira Serial Platform User Manual.

What else is different between the Aardvark adapter and the Promira platform? For a quick comparison, here is a table that summarizes the features of the TotalPhase host adapters and other I2C/SPI devices:

Compare the features of the Promira and the I2C/SPI Active Applications, and the Cheetah and Aardvark host adapters.Additional resources that you may find helpful include the following:

We hope this answers your question. Want more information? You can contact us and request a demo that applies to your application, as well as ask about our Total Phase products.

Request a Demo

When Monitoring a USB Bus, I Am Capturing a Lot of Data Packets that I Don’t Need to See. How Can I Exclude the USB Data that Doesn’t Matter to Me?

$
0
0

Question from the Customer:

I am interested in the Beagle USB protocol analyzers, and I have very specific questions about the Data Center Software. What searching or filtering options do you offer?

The exact scenario is that I am looking to find and ideally exclude particular packets based on a given sequence within the packet data. For example, I would want to find all packets with 0xAA 0xBB 0xCC in the data, and filter out any packets with 0xDD 0xEE in the data. Is this possible?

Response from Technical Support:

Thanks for your question! Yes, filter and trigger options are available with our Beagle USB Protocol Analyzers. Your requirement can be fulfilled with the LiveFilterTM option in the Data Center Software, and it’s easy to do!

A summary of what LiveFilter does:

  • Filter for and against specific indices, errors, endpoints, device addresses, PIDs, data patterns, and more
  • Switch between filtered and non-filtered views with a single click

An overview of how LiveFilter works:

You can do this with the Data Center Software.  Enter the hex data to be filtered in LiveFilter tab under the Navigator. We have two examples to show you – the first we filtered 0xE1 0x81 0x58 and in the second we filtered out (excluded) 0x4B 0x1B 0x40.

Unfiltered Data

161887-beagle-unfiltered_data

Filter Matched Data Included

161887-beagle-filter_matched_data

Filter Matched Data Excluded

161887-beagle-filter_out_matched_dataFor more information about how this is done, you can watch this video that includes LiveFilter.



Note – this video shows you can use LiveFilter for I2C and SPI data streams as well.

You can also refer to section Filtering a Capture of the Data Center Protocol Analyzer User Manual.  For information about Software API, please refer to the API Documentation section of the Beagle Protocol Analyzer User Manual.

With the Beagle USB 5000 analyzers or the Beagle USB 480 Power Protocol Analyzer – Ultimate Edition, it is possible to use the advanced state-based matching system, also known as triggers, to execute a hardware filter to remove any data packets you don’t want to see from the capture entirely.  Then you could use the LiveFilter option to show only the packets you are interested in (and hide everything else).  Here’s a video on how to use the advanced state-based matching system:

https://youtu.be/6gsx0evRPuE



We hope this answers your questions. Additional resources that you may find helpful include the following:

More questions? More projects? You can contact us and request a demo that applies to your application, as well as ask questions about protocol analyzers and other Total Phase products.

Request a Demo


For a Preliminary Design Simulation, What Do I Need to Set Up the Aardvark I2C/SPI Host Adapter as a Slave for Responding to Requests from the Master Device? Is Polling Needed?

$
0
0

Question from the Customer:

I plan to run a simulation using the Aardvark I2C/SPI Host Adapter in Slave mode. Before I get started, I would like some information about the Master request. I have two simulation scenarios.

Scenario 1:

Step 1 - Master sends a request to Slave (ex: 01 01)
Step 2 - Slave responds to Master (ex: 01 01 01)

The hardware setup: the Master is a real device; the Slave is the Aardvark adapter; they communicate at the rate of 400 kHz.

The purpose of the simulation: write a DLL with .Net platform for doing the logic behind the read request, and then output data using the slave response.

My questions:

  • For Step 1 – the request from Master can happen at any time. If that is the case, should I iteratively poll for 'Slave Read' function continuously?
  • For Step 2 - based on the data received from 'Slave Read' I would logically decide what to be sent out and then call 'Slave Set Response' with the appropriate response (ex: 01 01 01). Is this assumption correct?
  • Also, are steps in the correct sequence for this implementation?

Scenario 2:

Step 1 - Master sends a request to Slave (ex: 02 01)
Step 2 - Slave responds to master (ex: 02 01 xx yy zz aa bb cc dd ee ff gg hh ii etc (36 bytes))

My questions:

  • Please confirm if the above steps will work. My understanding is the response buffer is 64 bytes – is that correct?

I have additional questions that could apply to both scenarios about polling and slave response:

There could be multiple master requests, and some could be different (01 01 or 02 01 or 04 33 etc.). I need to simulate a unique response for each request. Example:

  • If the Master request is 01 01, I would simulate the slave response 01 01 01. In this case, if I have read "Slave Read" and the outcome of  "Slave Read" is 01 01, only then will I set the "Slave Response" to 01 01 01.

For “Set Slave Response”, the Aardvark I2C/SPI Host Adapter User Manual  describes the following:

  • Set the slave response in the event the Aardvark adapter is put into slave mode and contacted by a master

My questions:

  • In my scenario, as the Master request is already there on bus (from Slave Read), will the Slave set the “Slave Response”, as master will not send a new request of 01 01?
  • Or will the Slave response be pushed on to I2C bus, irrespective of a new master request for 01 01?

Response from Technical Support:

Thanks for your questions! The response buffer space is 64 bytes. Here are details about running the commands you described:

The API command aa_i2c_slave_read checks the Master's message asynchronously; you do not need to poll to check incoming messages indefinitely (the default timeout is 500 ms). You can change the timeout with aa_async_poll.

For setting the slave response, aa_i2c_slave_set_response sends the response set by the Aardvark slave automatically on the event of contact by master. The Slave response is set only when the Master invokes a "read from slave" command.

Here is an example of such a flow:

aa_i2c_slave_read // reads 01 01/ 02 02/ 03 03 from master and stores it in buffer "data_from_master" variable.set slave response buffer "slave_resp" according to data_from_master :
u08 slave_resp[3];if (data_from_master[0] == 01 && data_from_master[1] == 01)
{
slave_resp[0] = 01;
slave_resp[1] = 01;
slave_resp[2] = 01;
}
else if (data_from_master[0] == 02 && data_from_master[1] == 02)
{
slave_resp[0] = 02;
slave_resp[1] = 02;
slave_resp[2] = 02;
}
else if (data_from_master[0] == 03 && data_from_master[1] == 03)
{
slave_resp[0] = 03;
slave_resp[1] = 03;
slave_resp[2] = 03;
}

In summary:

Call aa_i2c_slave_set_response, then issue  the master_read_from_slave command. Once the Master contacts the Slave to read data, data from slave_resp is sent.

For more information, please refer to the API Documentation section of the Aardvark I2C/SPI Host Adapter User Manual.

Additional resources that you may find helpful include the following:

We hope this answers your question. Looking for more information? You can contact us and request a demo that applies to your application, as well as ask about our Total Phase products.

Request a Demo

What is the Fastest Way I Can Switch from an I2C Master I2C to I2C Slave using the Aardvark I2C/SPI Host Adapter when Testing I2C Devices?

$
0
0

Question from the Customer:

I am using Aardvark I2C/SPI Host Adapter, and I’ve come to a stage in the project where I could use your help.  I’m testing SMBus/I2C devices running at 400 kbps. This test includes logging the following steps (which are repeated):

  1. As an I2C Master, I need the Aardvark adapter to transmit an I2C sequential write of less than 128 bytes, to a slave device at 7-bit slave address X
  2. To respond to 7-bit slave address Y, I need the Aardvark adapter to immediately switch its mode to I2C Slave. Swapping from Master to Slave, I need the delay to be no more than 30 us.
  3. The I2C sequential write will be less than 128 bytes, which will occur about 100 us after transmitting from step 1
  4. Save and process the received message.

Here’s what it looks like:

Timing diagram:  Switch from an I2C Master I2C to I2C Slave Do you have a device that can alternate Master/Slave modes that quickly?  What are my options?

Response from Technical Support:

Thanks for your question! Taking a look at your specifications, our adapters do not switch modes that quickly – however, we have a solution for you. Our recommendation, which is both effective and low-cost, is using two Aardvark adapters: one adapter set up as the Master, the other adapter set up as a Slave.

To maximize the speed of looping your test, we also recommend using the Aardvark Software API, which is provided with functional examples that you can use as-is or modify for your specifications, as well as create your own scripts. For details about API calls, please refer to the I2C Interface commands in the API Documentation section for the in the Aardvark I2C/SPI Host Adapter User Manual.

Additional resources that you may find helpful include the following:

We hope this answers your question. Looking for more information? You can contact us and request a demo that applies to your application, as well as ask about our Total Phase products.

Request a Demo

Wondering How You Can Efficiently Manage your USB Protocol Analyzer to Obtain and Decode Longer Data Captures for USB Devices? Watch This!

$
0
0

Decode longer data captures with Beagle USB 500 v2 SuperSpeed Protocol Analyzer and Data Center Protocol Analyzer SoftwareDo you have the Beagle™ USB 5000 v2 SuperSpeed Protocol Analyzer and want to make the most of this investment? Do you want to capture the most data records to better analyze the USB devices and systems you are working on?

Data Captures Over Long Periods Are Often Critical

Performance evaluations, environmental testing, as well as troubleshooting intermittent and infrequent problems can require extensive, long-term tests. Using the Data Center™ Software, you can configure the settings needed to accomplish these tasks. Here’s an outline of what you can do:

  • Packet Truncation: keep only the first 20, 36 or 68 symbols of each data transaction. This allows you to capture more records over a longer period of time. For more information, refer to the USB 3.0 Truncation Mode section of the Data Center Software User Manual.
  • Configuration Management: if enumerated data is not captured or is incomplete, you can apply USB configurations to decode class-level data. You can create these configs from scratch or save them from a capture. There are also pre-loaded configurations of common USB devices available for selection. This feature allows you to make full use of the truncated packets. For more information, refer to the Configuration Management Data Center Software User Manual.

Watch and Learn How to Manage Large-Scale Data Captures

For an example of how you can easily capture and manage thousands of data packets with your Beagle USB 5000 v2 analyzer and the Data Center Software, watch this video:

Here are some options to further extend your ROI:

Additional resources that you may find helpful include the following:

Any questions? Need more details? You can contact us and request a demo that applies to your application, as well as ask questions about protocol analyzers and other Total Phase products.

Request a Demo

Canary Connect Use Case: Using the Aardvark I2C/SPI Host Adapter to Make Homes Safer with Embedded Technology

$
0
0

key-2114046_1280Embedded technology is everywhere – hidden behind the scenes of the different electronics we use every day. One of the most interesting things I find working in the embedded industry is learning about how people in various trades use technology, and how our tools help them develop the products we use every day — from wearables and consumer electronics to the cars we drive and planes we fly.

Canary Connect Uses Aardvark Adapters with Time-Saving Results

I recently visited Canary Connect, an all-in-one security system startup that provides an innovative solution for home safety. They are known for their intelligent security system and easy-to-use camera devices that protect and notify homeowners about changes in their home environment, anywhere and anytime. Canary is a heavy user of our Aardvark I2C/SPI Host Adapter; they use the Aardvark for testing all the sensory components that communicate over I2C in their security device.

Canary has released a one-of-a-kind product with the help of the Aardvark I2C/SPI Host Adapter – the Canary Flex, the first weatherproof and Wi-Fi-enabled security camera with a sleek and compact design. The Aardvark adapter was used extensively in the development of the new product, including testing and qualifying vendor sensors for ambient lighting, air quality, and battery life – all of which are imperative elements of an effective and high-quality security camera.

I spoke with Canary’s Electrical Engineer, David Ye, about his experience using the Aardvark adapter for prototyping the Canary Flex. He described the Aardvark adapter as an “embedded screw driver,” an essential and reliable tool for I2C that saves time and makes his job easier.

It’s Not Just the Aardvark Adapter – It’s all the Software that Comes with It Too.

One of the main advantages of using the Aardvark adapter, David mentioned, is the software package that comes with it. He uses the Control Center Serial Software’s batch mode to test the sensor components all in one go, as well as in conjunction with a scope to replay and debug troublesome signals. The ease of use of the software interface makes the Aardvark adapter a convenient tool that significantly reduces an engineer’s development time.

In addition to the Aardvark adapter, David also uses the Beagle I2C/SPI Protocol Analyzer for analyzing and monitoring I2C data. He added that another reason that he likes using Total Phase tools is the cross-platform capability, as he mainly works in a Linux environment.

 aardvark-250  Beagle I2C/SPI Protocol Analyzer

Canary’s use of the Aardvark adapter is a prime example of how the versatility and convenience of Total Phase tools help embedded engineers with their projects. It’s always rewarding to learn that our tools are contributing to the development of innovative products, and in this case, helping to protect home safety.

How can Total Phase products work with your innovations? You are welcome to contact us and request a demo that applies to your application, as well as ask questions about protocol analyzers and other Total Phase products.

Request a Demo

By Annie Lu, International Sales Manager

How Can I Best Capture MDIO Bus Transactions with Total Phase Tools?

$
0
0

Question from the Customer:

I need a protocol analyzer to capture MDIO bus transactions. I have a Total Phase 10-Pin Grabber Split Cable on hand, but I don’t see any markings for MDC and MDIO signals. Which pins should I use, and which Beagle protocol analyzer do you recommend?

Response from Technical Support:

Thanks for your questions! For your use, we recommend the Beagle I2C/SPI Protocol Analyzer and Data Center Software version 2.20. Used together, they can easily display and capture MDIO bus transactions.

Beagle I2C/SPI Protocol Analyzer Data Center Software

About the Beagle I2C/SPI analyzer MDIO support:

  • Non-intrusively monitors MDIO up to 2.5 MHz
  • Monitors clause 22 and clause 45 MDIO
  • Pin 8 is the bidirectional management data input/output (MDIO signal), which is used to transfer data between the STA and the MMD.
  • Pin 7, is the management data clock (MDC signal), which is a control line that is driven by the STA and synchronizes the flow of the data on the MDIO line.

To capture MDIO signals, the sampling rate must be set properly: the minimum requirement for the sampling rate is twice the bus bit rate. To customize a program for your setup requirements, we recommend using Beagle Software API. Functional examples are provided, which you can use as-is or modify as needed.

The Beagle I2C/SPI analyzer signal level is 3.3V.  If you need to monitor a lower voltage MDIO bus, you can use the Level Shifter Board.

For additional information, please refer to the knowledge base article MDIO Background and the following sections of the Beagle Protocol Analyzer User Manual:

  • MDIO Background
  • Beagle I2C/SPI/MDIO Protocol Analyzer
  • MDIO API

We hope this answers your questions. Additional resources that you may find helpful include the following

More questions? You can also contact us and request a demo that applies to your application, as well as ask questions about the Beagle  protocol analyzers and other Total Phase products.

Request a Demo

Viewing all 822 articles
Browse latest View live