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

Support Question of the Week: Controlling Data Center Software with a Remote Terminal and a Python Script

$
0
0

Q: I am trying to control Data Center Software using Python Popen and writing commands to the Data Center Software stdin. However, stdin seems to be closed on startup.  I am not able to write commands to the Data Center Software.

  1. I start Data Center Software with the command line option, -c
  2. After that, I try to execute commands in Data Center Software’s command line.
  3. However, only every other command seems to reach Data Center Software’s command prompt. The other is interpreted by Windows’ console.

Here are the details:

  1. I run the command “Data Center.exe” –c.
  2. The command line instantly returns to the system’s prompt C:\temp\dc>.
  3. Meanwhile, the Data Center Software starts and the output until 1> is printed to the console.
  4. I enter dir [RETURN].
  5. This command is interpreted by windows command line (the directory content is printed).
  6. I enter dir [RETURN] again.
  7. Command is interpreted by Data Center à name ‘dir’ is not defined is printed.
  8. I enter dir [RETURN] again.
  9. Again, it’s interpreted by Windows console.

The screenshot below shows an example. My inputs are shown in red.

The original commands the customer used Example of Customer Commands and Results

Any suggestions?

A: Thanks for your question! We recommend using the remote console to control the Data Center Software from an external process. This enables a telnet terminal for other applications (or computers) to connect to and control the software. The remote terminal takes the same commands as the internal command line interface. For more information, see section 4.1.5 of the Data Center User Manual.

This feature will allow you to use a script to send each command as you would from within the application. Here is an example:

The following Python script uses the telnet module to connect to the Data Center running on the same machine. It then sends the command to start the capture, waits for 3 seconds, and then sends commands to stop, save, and clear.

import time
import telnetlib

# Connect to the remote telnet port of Data Center.  This requires
# Data Center to be started with the "-r 6000" command line
# argument.
tn = telnetlib.Telnet('localhost', 6000)

def send (cmd, ret, timeout=10):
# Send the command tn.write("%s\n" % cmd) # Wait for the return value tn.read_until(ret, timeout) # Additional delay - prevents strange behavior time.sleep(1)
SAVE = "save(u'/tmp/output%d.tdc', {'no_timing': False, 'filtered_only': False},     True)" index = 0 while 1:
send('run', 'started') time.sleep(3) send('stop', 'stopped') send(SAVE % index, 'saved') send('clear_all(True)', 'cleared') index += 1

For more information about Data Center Software and other Total Phase products, please refer to:

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 support@totalphase.com.


Support Question of the Week: Queue Batch and Clear Slave Select Commands on SPI Bus with Cheetah SPI Host Adapter

$
0
0

Q: I'm using the Cheetah SPI Host Adapter to send slave select commands across the SPI bus. I referred to your API examples, but I seem to be missing something. The commands I entered:

ch_spi_queue_ss ( cheetah,0x07);
ch_spi_queue_ss (cheetah,0x00);
ch_spi_queue_ss (cheetah,0x07);
ch_spi_queue_ss (cheetah,0x00);

After executing the commands, I don't see any changes on the port. Please advise.

Thanks for your question! ch_spi_queue_ss does control SS (slave select) signals, but to execute the command queue it needs to be "batched". Commands are accumulated in a queue until a call is made to batch shift all of the queued commands. Also, to make sure only the commands you need are executed, the command queue should cleared before running the desired commands.

Cheetah SPI Host Adapter for Queuing Commands on SPI Bus Figure 1: Cheetah SPI Host Adapter - Queuing Commands on SPI Bus

Following is an example of an SPI transaction:

  1. Call ch_spi_queue_clear to clear the command queue.
  2. Call ch_spi_queue_oe to add a command to the queue to enable the Cheetah device’s outputs on the SPI bus.
  3. Call ch_spi_queue_ss to add a command to the queue to enable the slave select signal.
  4. Call ch_spi_queue_byte and ch_spi_queue_array to queue data send across the SPI bus.
  5. Call ch_spi_queue_ss to queue a command to disable the slave select signal.
    • If you prefer to disable the outputs of the Cheetah SPI Host Adapter, you can instead call ch_spi_queue_oe for the command queue.
  6. Call ch_spi_batch_shift to send the queued commands across the SPI bus.

Notes:

  • The command queue is not cleared after it has been executed. This allows the same queue to be repeatedly executed times without re-queuing the commands. To clear a queue,  ch_spi_queue_clear must be called.
  • Only after you perform ch_spi_batch_shift command, the accumulated commands (including SS enable command and SS disable command) are sent across the SPI bus. You can then see the SPI signals (SS, MISO, MOSI, SCLK) toggle according to the accumulated commands.

For more information about using API functions, please refer to section 5 of the Cheetah SPI Host Adapter User Manual.

For more information about Cheetah and other Total Phase products, please see the following:

Cheetah SPI Host Adapter
Cheetah SPI Host Adapter User Manual
Software downloads for Cheetah
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 support@totalphase.com.

Support Question of the Week: Control Target Power from an SPI Host Adapter to a Target Device

$
0
0

I am programming memory chips and I am providing power to the target device from a separate power supply. I will not be using USB power because the memory chips use 3.3V. I have a voltage regulator installed before the chip power pins, which seems to interfere with using the Cheetah SPI Host Adapter.

My question - do I need to isolate Cheetah adapter pins 4 and 6 from the power source?  If there's another way to do this, please tell me how.

Thanks for your question! You do not need to physically isolate Cheetah SPI Host Adapter pins 4 and 6 from your target devices. You have the option of powering the target device with the Cheetah SPI Host Adapter or an external power source.  You can disable or enable power from the Cheetah SPI Host Adapter with our software tools - Cheetah GUI Software, Flash Center Software or Cheetah Software API.

With Flash Center Software, you can set target power on or off (see Figure 1). For more information, please refer to section 3.2.3 of the Flash Center Software User Guide.

Using Flash Center to Control Target power from a Cheetah SPI Host Adapter Figure 1: Flash Center Software Host Adapter Panel

You can also control target power using Cheetah GUI Software (see Figure 2).  For more information, please refer to section 3.2.7 of the Cheetah GUI Software User Guide.

Using Cheetah GUI to control target power from a Cheetah SPI Host Adapter Figure 2: Cheetah GUI Software Control Panel

API software examples are available, which you can download and then modify as you wish. For information about using API software, please refer to chapter 5 of the Cheetah Host Adapter User Manual.

We also provide Level Shifter boards, which can used to interface our Host Adapters and Protocol Analyzers to target devices with the selected voltage level of 1.2V, 1.5V, 1.8V, 2.5V, 3.0V or 3.3V.

For more information about the Cheetah SPI Host Adapter, support software and other tools, please refer to the following:

Flash Center User Guide
Cheetah GUI Software User Guide
Cheetah SPI Host Adapter
Cheetah Host Adapter User Manual
Level Shifter Boards
Total Phase Products

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 support@totalphase.com.

Support Question of the Week: Optimize Communication with an Aardvark I2C/SPI Host Adapter and a Slave Device

$
0
0

Q: I am using the Aardvark I2C/SPI Host Adapter  while testing slave devices. I enable the I2C or SPI slave and start receiving messages. After I disable the slave device, I receive the status code  AA_COMMUNICATION_ERROR. It seems I cannot disable the slave device  - can you advise how to remedy this?

Thanks for your question! The status code AA_COMMUNICATION_ERROR indicates that after the computer sent the disable request to the slave, the computer did not receive an acknowledgment from the Aardvark I2C/SPI Host Adapter. In the scenario you described, the master was probably sending large amounts of data that saturated the host PC receive buffer for the Aardvark I2C/SPI Host Adapter. Most likely the slave was disabled, but the acknowledgement from the Aardvark adapter was not received.

Optimize communications with Aardvark I2C/SPI Host Adapter set up as a Slave Device Figure 1: Aardvark I2C/SPI Host Adapter

If the Aardvark I2C/SPI Host Adapter did disable the slave, there would be no more incoming data to saturate the link. In this case, if you send another call to disable the slave, the slave should return without error.

To improve your setup, following are suggestions to optimize communication with the I2C/SPI slave device.

  • Reduce the amount of traffic that is sent by the master. Note - this requires configuring the offending master device.
  • Regularly poll the slave to obtain pending asynchronous messages that may occur. Note - each call to read pending messages can result in a timeout, possibly up to 500 ms. If your script includes time critical code that must be executed simultaneously, it is best to employ a threading model.  Aardvark API calls alone are not thread-safe, but they can be used when wrapped with appropriate thread synchronization calls.
  • For performance critical development environments,  we advise using two Aardvark I2C/SPI Host Adapters:
    • Set up one Aardvark I2C/SPI Host Adapter to receive the asynchronous I2C/SPI slave messages.
    • Set up the other Aardvark I2C/SPI Host Adapter for synchronous I2C/SPI master communication.
With this setup, one thread in the application can execute a tight loop to process the slave messages and another thread can process the synchronous operations.

For more information about the Aardvark I2C/SPI Host Adapter and other products, please refer to the following:

Aardvark I2C/SPI Host Adapter
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, API and software tools or other Total Phase products, feel free to email us at sales@totalphase.com  or support@totalphase.com.

Support Question of the Week: Translate Signal Levels for an Embedded I2C Device and a Beagle Protocol Analyzer

$
0
0

Q: I'm using the Beagle I2C/SPI Protocol Analyzer to analyze the bus traffic of an embedded I2C device that runs on 1.2V. It looks like I can use the Level Shifter Board - do I need to power the target I2C with the Beagle analyzer or can I use an external 1.2V power supply?  Also, do I need to add pull-up resistors for the Beagle I2C/SPI Protocol Analyzer as well as the target device?

Thanks for your questions! The Beagle I2C/SPI Protocol Analyzer provides built-in resistors, and you have the option to power the target device with the Beagle analyzer's power source or an external source. The Level Shifter board can be configured to translate signal levels for 1.2V, 1.5V, 2.5V, 3.0V and 3.3V devices.

Use the Level Shifter Board to Translate Signal Levels between an Embedded I2C Device and a Beagle Protocol Analyzer Figure 1: Level Shifter Board

To interface with an I2C device that runs on 1.2V, ensure the analyzer side is powered with 5V and the target side of the board is powered at 1.2V.

Providing 5V to the Level Shifter Board:

  • The Beagle I2C/SPI Protocol Analyzer can provide 5V directly to the Level Shifter Board through the ANALYZER Socket.

Configuring 1.2V signal levels and selecting the target power source:

  1. Connect a jumper across the 1.2V pins. This translates the signal level to 1.2V. It also shifts the supply voltage provided by the Beagle I2C/SPI Protocol Analyzer to 1.2V.
  2. Powering the target device:
    • To use the Beagle analyzer voltage output to power the target I2C device, connect a jumper across the TPWR pins .
    • To use an external power source instead of the Beagle analyzer, remove the jumper from TPWR jumper, and connect the external 1.2V power source to the TPWR pin on the EXT TGT header.
  3. To confirm the configuration, verify that both the POWER and TARGET LEDs are turned on the Level Shifter Board.

The Level Shifter Board does not provide pull-up resistors for either side. However, pull-up resistors can be provided by the Protocol Analyzer as well as the target board.

Pull-ups for the Beagle Protocol Analyzer:

  • You can use the internal pull-ups of the Beagle I2C/SPI Protocol Analyzer. For each I2C line that is used as a digital input line (GPIO) to the Adapter/Analyzer side, a pull-up resistor is required on the Adapter/Analyzer side.

Pull-ups for the target I2C device:

  • For the target device, we assume pull-up resistors are provided on the target board. The devices may communicate without the pull-ups, but for optimum performance, pull-ups should be used to ensure the signals of the target device operate at the correct voltage levels.

For more information about the Level Shifter Board, Beagle Protocol Analyzers and other Total Phase products, please refer to the following:

Level Shifter Board
Level Shifter User Manual
Beagle I2C/SPI Protocol Analyzer
Beagle Protocol Analyzer User Manual
Total Phase Products
Product Selector Guide

We hope this answers your questions. If you have other questions about our host adapters, API and software tools or other Total Phase products, feel free to email us at sales@totalphase.com  or support@totalphase.com.

Support Question the of Week: Send and Monitor CAN Interface Channels with Komodo Interface

$
0
0

Q: I'm looking to use two Komodo Duo Interfaces to send and monitor CAN data on two separate computers, and I'd like to use Komodo GUI software to send data and Data Center Software to monitor the data over CAN interface channels. Can you recommend how to set this up?

Thanks for your question! In the following example, two computers are used with one Komodo Duo Interface per computer. Channel A will be used from each Komodo Duo Interface. Note—the same setup can be used with two Komodo Interfaces connected to the same computer. For more details about this setup, please refer to our Support Knowledge Base.

Overview:

  • Komodo-1 channel A, on PC-1,  is connected to Komodo-2 channel A on PC-2.
  • Komodo-1 channel A sends 11 22 33 44 55 and Komodo-2 channel A monitors the data.

Instructions:

  1. Connect Komodo-1 to PC-1 via the USB connector, and connect Komodo-2 to PC-2 via the USB connector.
  2. Connect the Komodo-1 DB-9 connector channel A to Komodo-2 DB-9 connector channel A.
  3. Connect 1K OHM resistor between CAN+ and CAN- in Komodo channel A block screw terminal.
  4. Launch the Komodo GUI software on PC-1.
  5. Launch the Data Center software on PC-2.
  6. Connect Komodo-1 port 0 to the Komodo GUI software. To do so, on the GUI panel:
    1. Click "Analyzer".
    2. Click "Connect".
    3. Select the Komodo port 0.
    4. Click "OK "to connect to the Komodo interface.
  7. Connect Komodo-2 port 0 to the Data Center software. To do so, on the Data Center panel:
    1. Click "Analyzer".
    2. Click "Connect to Analyzer".
    3. Click "OK" to connect to the Komodo interface.
  8. Configure the Komodo GUI software on PC-1:
    1. Click Mode ➝ General CAN.
    2. Enable "Active CAN Mode". Configure to Bitrate: 125 Khz, CAN ID: 0x123, DLC: 5, Message: 11 22 33 44 55, Ch A.
    3. Click Analyzer ➝ Run.
  9. Configure the Data Center software on PC-2:
    1. Click Analyzer ➝ Device Settings ➝ CAN.
    2. Disable "include packets from this device." Disable Monitor Bus B.
    3. Enable Monitor Bus A, Make Active Node, and Configure Bus A Settings.
    4. Disable Target Power. Configure to Bitrate: 125000. Disable Enable GPIO Configuration.
    5. Click Analyzer → Run Capture.
  10. On the Komodo GUI software click "Send Message".
  11. Verify that Komodo-1 sends the data correctly (see Figure 1), and that Komodo-2 monitors the data correctly (see Figure 2).
View of Komodo CAN Interface Sending Data via Komodo GUI Software Figure 1: Komodo CAN Interface Sending Data—Komodo GUI Software

 

View of Komodo CAN Interface Monitoring Data via Data Center Software Figure 2: Komodo CAN Interface Monitoring Data—Data Center Software

For more information about Komodo Interface, GUI and Data Center Software and other Total Phase tools, please refer to the following:

Komodo Interface User Manual
Komodo GUI Software User Manual
Data Center Software User Manual
KB article: Sending CAN Messages Between Two Komodo Duo Interface Channels Using Komodo GUI
Total Phase Products

We hope this answers your question. If you have other questions about our host adapters, API and software tools or other Total Phase products, feel free to email us at sales@totalphase.com  or support@totalphase.com.

Support Question of the Week: Selecting the SPI Host Adapter for High Bit Rate Constant Audio Streaming

$
0
0

Q: I have an application that requires constant audio streaming at a high bit rate. I need a host adapter to send 524,288 bits approximately every 0.6 seconds. Would this work with the Cheetah SPI Host Adapter? The Aardvark I2C/SPI Host Adapter has been perfect with other applications, but due to pauses between bytes, it looks like something faster is needed.

Thanks for your question! The Cheetah adapter supports up to 50 MHz SPI data, which is 52,428,800 bits/sec., or 26,214,400 bit/0.5 sec. This exceeds the bit rate that you need, which is 524,288 bits/0.6 sec.

Cheetah SPI Host Adapter for Queuing Commands on SPI Bus Figure 1: High Speed Cheetah SPI Host Adapter

The high-speed Cheetah SPI Host Adapter will be very effective for your application. The Cheetah SPI Host Adapter actively communicates on the bus, operates at higher speeds up to 50 MHz, can provide gapless shifting, and provides more control over the timing of the data that is shifted out.

Regarding the pauses between bytes — delays rarely occur across the USB bus, even within a transaction. There will be a delay in the outgoing SCLK while the Cheetah adapter is paused, waiting for more data to shift out. However, the average throughput will not be appreciably diminished as such events are infrequent.

Cheetah software and hardware are designed to maximize the average throughput over the USB bus. For example, if the SPI clock rate is set to 30 MHz, the average data rate across an entire transaction will be nearly 30 Mbps, end-to-end from host PC to SPI target device. This property holds up for very large transactions ranging from hundreds of kilobytes to many megabytes long. This high throughput feature is possible within a single transaction. With multiple transactions, USB bus latencies do occur. The best throughput is achieved with single transactions, each transfer carrying a large number of bytes.

General Purpose Aardvark—Master Slave I2C/SPI Host Adapter Figure 2: Aardvark I2C/SPI Host Adapter

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 with its SPI/I2C features.

For more information about the signaling characteristics of these host adapters, please take a look at the following sections of the user manuals:

For more details about our products, please refer to:

Cheetah SPI Host Adapter
Cheetah Host Adapter User Manual
Aardvark I2C/SPI Host Adapter
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 support@totalphase.com.

Using Data Center Configuration Management to Customize Configuration Descriptors for Captured USB Devices

$
0
0

Q: Your Beagle USB 480 Protocol Analyzer works really great for us. I'm starting a new project - what software tool do you recommend to specify configuration descriptors for captured USB devices?

Thanks for your question! The Configuration Management feature in our Data Center Software tool allows specifying the descriptors for a captured device. This feature can override descriptors that were already seen for a particular device, or specify new descriptors when the enumeration was not captured.

For additional information, take a look at Data Center Software Manual section 6.11.3. Following are some points from the manual that are related to what you are asking about.

Configuration Management: By default, Data Center software uses the configuration descriptor information captured during the enumeration phase to configure class-level decoding of USB traffic. However, with the Configuration Management interface, you can apply arbitrary configuration descriptors to the captured USB device data. This provides a custom class-level decoding experience within the set of USB classes that are supported by Data Center software.

Using Data Center Software to Specify and Customize Configuration Descriptors for Captured USB Devices Figure 1: Data Center Software - USB Configuration Management Panel

The Configuration Management interface provides the following capabilities:

  • Create, Edit, and Delete custom configuration descriptors that persist either on the user’s machine or in the active capture file.
  • Assign a custom configuration descriptor to an arbitrary bConfigurationValue of any device on the bus, which can change the way data is parsed during a capture.
  • Remove one or all previously assigned custom configuration descriptors from a device on the bus, exposing the originally enumerated configuration descriptor where available.

For more information about our USB hardware and software tools, please see the following:

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

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


Support Question of the Week: Beagle USB Protocol Analyzer Support for Full Speed LPM Transactions

$
0
0

Q:  We would like to use a USB protocol analyzer for monitoring Link Power Management (LPM) transactions at Full Speed only - not High Speed or Super Speed. Which USB protocol analyzer models do you recommend?

Thanks for your question! For your application, many Total Phase USB protocol analyzers can monitor LPM transactions at full speed (12 Mbps).

Beagle 480 Power Protocol Analyzer for Power Measurement and Monitoring Capabilities Figure 1: Beagle 480 Power Protocol Analyzer

Following is a summary of USB models and their attributes:

For USB 2.0:

  • The Beagle USB 12 Protocol Analyzer is a non-intrusive monitor for Full/Low-speed USB (1.5 Mbps/12 Mbps). The Beagle USB 12 analyzer has real-time USB descriptor parsing, and real-time data capture and display. The Beagle USB 12 analyzer can also watch USB packets as they occur on the bus.
  • The Beagle USB 480 Protocol Analyzer is a non-intrusive monitor for High-speed, Full-speed, and Low-Speed USB 2.0 (480 Mbps / 12 Mbps / 1.5 Mbps) and a more robust and faster device. The Beagle USB 480 analyzer has real-time USB class-level decoding with the Data Center Software, two capture modes: real-time and delayed-download, high-speed USB chirp detection, robust automatic speed detection, hardware-based packet suppression, and digital inputs and outputs for synchronizing with external logic. The Beagle USB 480 analyzer can also detect suspend/resume events and unexpected signals.  We also have two models of the Beagle USB 480 analyzer for measuring current and voltage: Beagle USB 480 Power Protocol Analyzer Standard Edition and Beagle USB 480 Power Protocol Analyzer Ultimate Edition.
Beagle USB Protocol Analyzers support LPM transactions at various speeds Figure 2: Beagle USB 5000 Protocol Analyzer

For USB 2.0 and USB 3.0:

  • The Beagle USB 5000 v2 SuperSpeed Ultimate Protocol Analyzer is a non-intrusive monitor for USB 3.0 (Super Speed 5 Gbps) and USB 2.0 (High-speed 480 Mbps, Full-speed 12 Mbps, and Low-Speed 1.5 Mbps) and a more robust and faster device. This Beagle analyzer also monitors USB 3.0 and USB 2.0 simultaneously, and enable advanced sync to monitor applications requiring multiple analyzers. This model also has 4 GB on-board buffer with live data streaming to the analysis computer; real-time USB class-level decoding with the Data Center Software; precise timing down to 2 ns resolution; match/action trigger and filter system; USB 3.0 downlink enables longer captures; automatic support for data scrambling, spread spectrum clocking, polarity inversion, and receiver detection; and multiple digital inputs and outputs for synchronizing with external devices. In addition, if ultimate capability is not required, the Beagle USB 5000 standard model can be configured - ask our sales team.

For more information about Total Phase USB protocol analyzers and related products, please refer to the following:

Protocol Analyzers
USB Products
Beagle Protocol Analyzer User Manual
Total Phase Products
Product Selector Guide

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

USB-IF: Hub compliance, Power measurement and more

$
0
0

Aloha from Honolulu, Hawaii.
We're in town for the USB-IF annual meeting and a compliance workshop.

Total Phase USB-IF test suite in action Great view and enjoyable work

As you see from the picture, Tom and I drew a pretty nice assignment this week.  In this particular case (inset photo), we were using two Beagle USB 5000 v2 Protocol Analyzers - Ultimate Edition to measure performance for a customer with two new products - A new high performance USB 3.0 hub and  high performance USB 3.0 mass storage device.  The hub had performance that was easily within spec for hub re-transmission (wHub delay), and it handled a blistering 110MB/sec read/write to the mass storage device.  After those initial tests it was easy to use our Data Center Software to disable re-transmission and force the devices into a USB 2.0 only state and repeat the tests.  Once again, great performance.  Next, we switched to the Beagle USB 480 Power Protocol Analyzer - Ultimate Edition to measure power consumption when the hub and memory device were powered by the USB's VBUS.  Our one click correlation feature helps customers identify operations that are consuming higher power and enables them to optimize their design for power efficiency.

We've testing a variety of new hosts, other hubs, and new advanced automotive media systems (the 2015 models will be fun), as our customers gear up for their USB-IF certifications.

The annual meeting was very informative, as we learned more about the USB Power Delivery specification, Media Agnostic USB, and new new USB C connector that's coming soon.  We also saw a demonstration of a USB 3.1 mass storage device and controller.

See you at DesignCon2014 in Santa Clara, California next week.

Support Question of the Week: Filtering Komodo Can Duo Interface data with Data Center Software for Effective Troubleshooting

$
0
0

Q: We just purchased the Komodo CAN Duo Interface and CAN / I2C Activity Board Pro, and we're using Komodo GUI Software. Everything seems OK when we connect the CAN / I2C Activity Board to the Komodo CAN Duo Interface.

However, when connecting our development board to the activity board without the Komodo, there is a "flood" of CAN messages that makes is difficult to debug our development board software. What we have noticed:

  • The activity board constantly transmits CAN messages (0x3A w/data 0x04). It appears that without the Komodo, the activity board is not receiving an ACK and thus runs continuously, retransmitting the same message.
  • The PCA  IC for the joystick is OK, nothing is stuck high or low, which usually causes such behavior.

How do we correct this behavior - the activity board continuously transmitting when the Komodo is not attached?

Thanks for your question! Based on your description, the CAN/I2C Activity Board Pro is functioning normally.  The activity board is a great accessory for developers as it has multiple sensors and devices: a 3-axis accelerometer, light sensor, joystick, LEDs, and more.  Most likely, the CAN bus is pinging the sensors on the board, causing the sensors to broadcast their data continuously.

Our recommendation is to filter the data: only view what is needed from the protocol analyzer function of the Komodo interface.  The Komodo GUI Software provides an easy-to-use interface. However, for detailed, real-time analysis of bus transactions, we recommend using the Data CenterTM Software, which provides real-time analysis for monitoring CAN, as well as USB, I2C and SPI protocols.

With the Data Center software set to CAN mode, the CAN bus can be monitored without intrusion. Search fields in the Navigator pane can be set to filter data by ID, Data Length Code, and other metrics.  This setup allows focusing the analysis on a particular CAN node, or even a specific data pattern.  This should provide more visibility to the bus activity and provide more effective troubleshooting information to help identify bugs in your CAN application.

Use Data Center Software to Filter Komodo CAN Duo Interface Data Figure 1: Data Center Software

For more details about using the Komodo CAN Duo Interface, as well as Data Center Software and the CAN / I2C Activity Board Pro, please refer to the following documents:

Komodo CAN Duo Interface
Komodo CAN Duo Interface User Manual
Data Center User Manual
Komodo GUI Software User Manual
CAN / I2C Activity Board
CAN / I2C Activity Board Pro User Manual
All Total Phase Products

We hope this answers your question. If you have other questions about our USB protocol analyzers or other Total Phase products, feel free to email us at sales@totalphase.com or submit your Technical Support Request.

Support Question of the Week: How to Use One Aardvark I2C/SPI Host Adapter to Read and Write to I2C and SPI Devices

$
0
0

Q: I have a project that needs a host adapter to simultaneously communicate with an I2C device and an SPI device. Both devices are sensors and I need to collect time stamped data from them. I plan to use Python and the Rosetta language bindings.

Can I achieve this with one AardvarkTM I2C/SPI Host Adapter?

Thanks for your question! Yes - the Aardvark I2C/SPI Host adapter can operate as an I2C master and an SPI master for polling I2C and SPI sensors - read and write to I2C and SPI devices. The Aardvark adapter supports functioning as an I2C master up to 800 kHz and as an SPI master up to 8 MHz. For your application, the following software tools can be used with your Aardvark adapter: Control CenterTM Software and the Aardvark API. Python is one of many languages supported.

Aardvark 12C/SPI Host Adapter simultaneously supports master I2C and master SPI Figure 1: Aardvark I2C/SPI Host Adapter

 

  • The Control Center Software provides full access to all Aardvark adapter functionalities and can eliminate the need to write custom software to control the Aardvark adapter. It has also an XML batch scripting capability to help simplify repetitive commands, such as writing a series of commands to your sensors or performing multiple reads.
  • The Aardvark API comes in handy when a customized solution is required.  The API is more flexible than the Control Center Software, but does require some more programming knowledge.  However, it can be a very powerful tool for creating your own applications.  The API is cross-platform (supports Windows, Linux, and Mac) and supports multiple languages (C, Python, Visual Basic, and C#). API examples are provided that show how our API works, which can be modified and applied for your specific applications.

If higher speed is needed for reading and writing SPI data, consider using the CheetahTM SPI Host Adapter. The Cheetah SPI adapter actively communicates on the bus, operates at speeds up to 40+ MHz, can provide gapless shifting, and provides control over the timing of the data that is shifted out.  To compare signaling characteristics, please refer to section 2.4  of the Aardvark Adapter User Manual and section 2.5 of the Cheetah Adapter User Manual.

Cheetah SPI Host Adapter for Queuing Commands on SPI Bus Figure 2: Cheetah SPI Host Adapter

For additional information, please refer to the following documents:

Aardvark Getting Started
Aardvark Host Adapter User Manual
Control Center Software User Manual
Flash Center Software User Manual
Aardvark API
Cheetah Host Adapter User Manual
Total Phase Products
Product Selector Guide

We hope this answers your questions. 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: What Software Should I use with the Cheetah SPI Host Adapter Software to Program Large Files to SPI Flash Memory?

$
0
0

Q: How can I use the Cheetah GUI Software with the CheetahTM SPI Host Adapter to program a SPI Flash memory with a large file? I have large FPGA image files to load to different addresses within the SPI Flash memory. Thanks for your question! For your programming need, we recommend using the Flash CenterTM Software, which is the most suitable for programming SPI flash memory devices. The Cheetah GUI works best as a method to utilize the Cheetah adapter as a general purpose SPI master. Following are descriptions of the free Total Phase software applications that can be used with the Cheetah host adapter.

sing the Cheetah SPI Host Adapter to program SPI Flash Memory with large files Figure 1: Cheetah SPI Host Adapter

 

  • Flash Center Software provides mechanisms to quickly erase, program, and verify SPI-based EEPROM and flash memory Chips. It also has an extensible XML parts library with built-in support for EEPROMs and serial flash chips from major manufacturers. When needed, these XML files can be modified to use with devices that are not supported.
  • Cheetah GUI Software provides full access to all Cheetah adapter functionality, and eliminates the need to write custom software to control the adapter.
  • Cheetah Software API is used write a custom programs to fulfill user-specified requirements. The API comes with support for multiple OSs (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 is a good option for scripting.

For a detailed example of programming SPI Flash, please refer to our knowledge base article Programming a Single Sector of an SPI Flash Using the Cheetah Adapter and Flash Center. For more information about the Cheetah SPI Host Adapter and other Total Phase products, please refer to the following documents: Getting Started - Cheetah SPI Host Adapter Cheetah Host Adapter User Manual Flash Center Software User Manual Cheetah API Software reference Cheetah GUI 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 request technical support.

Support Question of the Week: Using the Cheetah SPI Host Adapter Software to Insert Delays in SPI Traffic

$
0
0

Q: We are developing a system to log SPI data transfers with an embedded system. We are using the CheetahTM SPI Host Adapter to generate SPI traffic. So far, it works with single data transfers.  The system requirements:

  • The length of each data package is 128 bytes.
  • We need a 0.1 millisecond pause before sending the next package.
  • During the pause, the chip select (active low) will be HIGH, the SPI-Clock is idle (LOW) and transmission restarts for the next package.

However, to generate traffic, it looks like we need to insert a delay, such as "delay idle 1024 clock cycles". How can we do that?

Thanks for your question! Data transfer delays can added by using the Cheetah GUI software or the Cheetah API software to configure the delay.

Using the Cheetah GUI to add delay between the transfers (packages), configure the Delay field as highlighted below.  For information about delays, please refer to section 3.3.3 of the Cheetah GUI Software Manual.

How to configure data transfer delay using Cheetah GUI Figure 1: Cheetah GUI - Set Delay

 

  • When you use the Cheetah adapter with the Cheetah API, you can add delay between the transfers (packages) by configuring the tud (User Insertable Delay). For more information, please refer to section 5.5 of the Cheetah SPI Host Adapter User Manual.
User Insertable Delay for SPI Data Transfers Figure 2: User Insertable Delay

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

For more information about the Cheetah Host Adapter and other Total Phase products, please refer to the following documents:

Cheetah SPI Host Adapter
Cheetah Host Adapter User Manual
Cheetah GUI Software
Total Phase products

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 request technical support. 

Support Question of the Week: What Software Should I use with the Cheetah SPI Host Adapter Software to Program Large Files to SPI Flash Memory?

$
0
0

Q: How can I use the Cheetah GUI Software with the CheetahTM SPI Host Adapter to program a SPI Flash memory with a large file? I have large FPGA image files to load to different addresses within the SPI Flash memory.

Thanks for your question! For your programming need, we recommend using the Flash CenterTM Software, which is the most suitable for programming SPI flash memory devices. The Cheetah GUI works best as a method to utilize the Cheetah adapter as a general purpose SPI master. Following are descriptions of the free Total Phase software applications that can be used with the Cheetah host adapter.

Using the Cheetah SPI Host Adapter to program SPI Flash Memory with large files Figure 1: Cheetah SPI Host Adapter

 

  • Flash Center Software provides mechanisms to quickly erase, program, and verify SPI-based EEPROM and flash memory Chips. It also has an extensible XML parts library with built-in support for EEPROMs and serial flash chips from major manufacturers. When needed, these XML files can be modified for devices that are not supporte­d.
  • Cheetah GUI Software provides full access to all Cheetah adapter functionality, and eliminates the need to write custom software to control the adapter.
  • Cheetah API Software is used write custom programs to fulfill user-specified requirements. The API comes with support for multiple OSs (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 is a good option for scripting.

For a detailed example of programming SPI Flash, please refer to our knowledge base article Programming a Single Sector of an SPI Flash Using the Cheetah Adapter and Flash Center.

For more information about the Cheetah SPI Host Adapter and other Total Phase products, please refer to the following documents:

Getting Started - Cheetah SPI Host Adapter
Cheetah Host Adapter User Manual
Flash Center Software User Manual
Cheetah GUI 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 request technical support.


Support Question of the Week: Which is the Right Host Adapter for In-Circuit Programming of SPI Flash Memory with (or without) GPIO?

$
0
0

I am starting a new project that will use SPI flash memory. Which is the better choice for in-circuit programming, the AardvarkTM I2C/SPI Host Adapter or the CheetahTM SPI Host Adapter? I used the Aardvark adapter previously for the I2C bus, but not for in-circuit programming.

Also, do you have a document that describes the hardware setup for SPI programming? For example, the design has an on-board microprocesser, and I will need to hold that in reset while programming. I presume I can use a GPIO for this, but I would like the details.

Thanks for your questions! Fast and Easy Flash and EEPROM Programming illustrates the hardware connections for SPI programming using either the Aardvark host adapter or the Cheetah host adapter.

Using the Aardvark I2C/SPI Host Adapter for in-circuit programming SPI flash memory with GPIO Figure 1: Aardvark I2C/SPI Host Adapter

 

  • For in-circuit programming SPI flash memories with GPIO, we recommend using the Aardvark I2C/SPI Host Adapter. The Aardvark adapter is a general purpose device that can actively communicate on the I2C/SPI bus, and provide master and slave capability. The Aardvark adapter has two GPIO pins available when using the SPI/GPIO mode and can operate at up to 8 MHz as an SPI master. For details about Aardvark SPI signal characteristics, please refer to section 2.4 of the Aardvark Host Adapter User Manual.
Using the Cheetah SPI Host Adapter for in-circuit programming SPI flash memory without GPIO Figure 2: Cheetah SPI Host Adapter

 

  • For in-circuit programming SPI flash memories without GPIO, we recommend using the Cheetah SPI Host Adapter. The Cheetah adapter acts as an SPI master, 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.  However, the Cheetah adapter does not have GPIO functionality. For details about Cheetah adapter’s SPI signal characteristics, please refer to section 2.5 of the Cheetah Host Adapter User Manual.

For programming SPI flash memory devices, we recommend using the Flash CenterTM Software, which can be used with both Aardvark and Cheetah adapters.

  • Flash Center allows you to quickly erase, program, and verify I2C and SPI based EEPROM and Flash memory chips. For more information, please refer to the Flash Center Software User Manual.

We provide other free software applications for our host adapters. For the Aardvark adapter:

  • Control CenterTM Software provides full access to all Aardvark adapter functionality, and eliminates the need to write custom software to control the Aardvark adapter. It has also a batch scripting capability with the Aardvark XML Batch Script Language.
  • Aardvark Software API is used create custom programs for user-specified requirements. 

For the Cheetah adapter:

  • Cheetah GUI Software provides full access to all Cheetah adapter functionality, and eliminates the need to write custom software to control the adapter.
  • Cheetah Software API, like the Aardvark API, is used to create custom applications for user-specified requirements.

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

Flash Center User Manual
Getting Started - Aardvark I2C/SPI Host Adapter
Aardvark Adapter User Manual
Getting Started - Cheetah SPI Host Adapter
Cheetah 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: Which Software Tools Work Best with the Beagle USB Protocol Analyzer for Analyzing Raw Data Packets?

$
0
0

Q: I am troubleshooting a microcontroller USB host device, which is supposed to check two endpoints one at a time, one after the other. I am analyzing the data with the BeagleTM USB 12 Protocol Analyzer.

The IN-NAK records shown by the Data CenterTM Software are collapsed as follows:

  • 100 IN-NAK for the first endpoint
  • 176000 IN-NAK for the second endpoint
  • 2000 SOF

This collapsed data is not sufficient – I need to analyze raw data packets. How can I expand each token? I need to see if the data is evenly distributed and timed between each NAK.

Thanks for your question! To acquire and analyze the detailed information that you need, we recommend using the Beagle Software API. Many API software examples are available, which can be modified for your use. Following is an overview of the free software that is available for Beagle USB  protocol analyzers.

 

Beagle USB 12 Host Analyzer for Analyzing Raw Data Packets Figure 1: Beagle USB Protocol Analyzer

 

 Data Center Software supports many features, including capture views: Packet, Transaction and Class. All three views are supported for the Beagle 5000 and Beagle 480 protocol analyzers; Transaction and Class views are supported for the Beagle 12 protocol analyzer.

  • Packet – 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 records are in timestamp order. Only captures run in Sequential Mode can be viewed in Packet View. For more information, please refer to section 6.2 of the Data Center Software User Manual.
  • Transaction – Protocol-level decoding is performed. Records may not be in time-order. Collapsed groups are not broken up for time-order preservation. Since there is no time-order restriction, captures generally appear more compact in this view than in Packet View.
  • Class – Class-level parsing is performed. Records may not be in time-order. Captures generally appear high-level and compact in this view. For more information regarding class-level parsing, see Section 6.9.

For additional information, please refer to section 6.7 of the Data Center Software User Manual.

Note - Packet View is not supported for the Beagle USB 12 Protocol Analyzer, which is why we recommend using the API software when using the Beagle USB 12 Protocol Analyzer.

Beagle Software API can be used to control the Beagle 12 analyzer, and to write a custom program for your specifications. The API comes with support for multiple OS (Windows, Linux, and Mac), multiple languages (C, Python, Visual Basic, and C#), and includes examples. We recommend using the Python bindings - a simple language and a good option for scripting. For additional information, please refer to section 6 of the Beagle Protocol Analyzer Data Manual.

For more information, please refer to the following:

Beagle Protocol Analyzer User Manual
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 does the Aardvark I2C/SPI Host Adapter indicate ACK and NACK in I2C mode?

$
0
0

I am using the AardvarkTM I2C/SPI Host Adapter.  I am trying to understand the symbols in a captured trace from the I2C Monitor :

(2013-11-21 11:35:12) [S] <50:w> 00 [P]
(2013-11-21 11:35:12) [S] <50:r> aa aa 55 55 [P]
(2013-11-21 11:35:12) [S] <50:w> 0a 00* [P]
(2013-11-21 11:35:12) [S] <50:w> 04 [P]
(2013-11-21 11:35:12) [S] <50:r> 00 00 00 00 00 00 [P]

I have three questions:

  • [s] - I assume this is the start bit – is that correct?
  • What is [P] ?
  • How can I see if the ACK is high or low?

Thank you for your questions! When the Aardvark I2C/SPI Host Adapter is running in I2C monitor mode, S is start bit, P is stop bit, and there is no indication for ACK bit.

 

Using the Aardvark I2C/SPI Host Adapter in I2C Mode Figure 1: Aardvark I2C/SPI Host Adapter

 

Because there is no ACK on data bits, the character “*” during the acknowledge (ninth) clock pulse indicates acknowledged or not acknowledged as follows:

  • Acknowledge: When the Aardvark adapter is in I2C monitor mode and the SDA remains low during the ninth/acknowledge clock pulse on data transfer. In this case, the signal is defined as Acknowledge (ACK) and there is no “*” in the end of the data bits.
  • Not acknowledge: The Aardvark adapter is in I2C monitor mode and the SDA remains high during the ninth/acknowledge clock pulse data transfer. In this case, the signal is defined as Not Acknowledge (NACK) and there is an “*” in the end of the data bits.

For additional information, please refer to section 3.1.6 of the I2C Bus Specification and User Manual.

For monitoring the I2C with greater detail, we recommend using the Beagle I2C/SPI Protocol Analyzer. The Beagle I2C/SPI analyzer is a non-intrusive bus monitor, and a more robust and faster device.

 

Beagle I2C/SPI Protocol Analyzer for SPI Signal Monitoring Figure 2: Beagle I2C/SPI Protocol Analyzer

 

The Beagle I2C/SPI analyzer monitors I2C up to 5 MHz The Aardvark adapter I2C monitoring is a legacy feature and up to 125 KHz. Moreover, the Aardvark adapter is a more general purpose device that can actively communicate on the bus, and provides master and slave capability along with SPI/I2C features. For more information, please refer to the following documents:

Aardvark I2C/SPI Host Adapter
Aardvark Adapter User Manual
Beagle I2C/SPI Protocol Analyzer
Beagle Protocol Analyzer 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 do I use the Beagle Protocol Analyzers as a Single Data Logger for Multiple I2C buses?

$
0
0

I am trying to find a data logger solution that is capable of logging multiple I2C buses in parallel. The buses are separate; they are not eight slaves on a single I2C bus. Of course, we will need to store the data from all eight I2C buses to a single drive. Which product(s) do you recommend?

Thanks for your question! For your logging application, data can be captured from eight separate I2C buses with eight BeagleTM I2C/SPI Protocol Analyzers and eight Data CenterTM Software instances.  The Data Center Software is a graphical user interface that provides access to all the features of the Beagle protocol analyzers, including the capture, display, and filtering of USB, I2C, and SPI serial bus data. A Data Center transaction log can be saved as a Data Center *.tdc file and can also be exported as a *.csv file after the capture is stopped.  As the Beagle I2C/SPI analyzers do not have GPIOs, to correlate data across the eight different Data Center transaction logs, we recommend configuring the masters on your bus to send a specific data pattern at the same time. You can easily use the search and filtering functions to find the data used for synchronization and then start your analysis.

Using eight Beagle I2C protocol analyzers for logging eight separate I2C serial buses. Figure 1: Beagle I2C/SPI Protocol Analyzer

 

To connect and configure the Data Center Software to the Beagle protocol analyzers, please refer to the Beagle I2C/SPI Protocol Analyzer Quick Start Guide. The Quick Start Guide also provides information about capturing data, and then exporting the data as a CSV file.  For more information about exporting data,  please refer to section 3.2.4 of the Data Center Software User Manual. As you will be using eight Beagle analyzers and eight instances of Data Center Software, using the Beagle API Software may optimize your application.

The Beagle API Software can be used to control the Beagle analyzer, and to write a custom program for your specific setup. Our 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 more information, please refer to section 6 of the Beagle Protocol Analyzer User Manual.

Beagle I2C/SPI Protocol Analyzer Quick Start Guide
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 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 Software Should We Use with the Komodo CAN Duo Interface to Collect Real-Time Data?

$
0
0

We are working on an automotive application, and we will be using the KomodoTM CAN Duo Interface. We also have the Data CenterTM Software that was provided with the Komodo.

This purpose of the application is to trouble-shoot the radio outside of the vehicle.  A module that is integrated in the vehicular system controls the radio.  We need to operate the radio in a setup that duplicates the conditions inside the vehicle.  To do so, we need to reproduce the CAN data on the vehicle at both high speed and low speed, so that we can turn the radio on and off under various test conditions.  To reproduce the CAN data, we need to analyze and filter the data while the radio is installed in the vehicle.

What we plan to do:

  1. Cut the radio CAN line and then interface the Komodo between the radio and the control module.
  2. Listen to the bus line on port 1 of the Komodo.
  3. Save, filter and resend the data on port 2 to the radio in real-time.
  4. Listen to the reply from the radio on port 2, and both save the radio reply and return the reply to port 1.

Can this be done with the Data Center Software, or do we need a different tool?

Thanks for your question! What you are suggesting is very possible.  There are two main ways to utilize the Komodo interface for working with your application.

You can use our GUI applications. For example, use the Data Center Software to record the data on port 1, and then use the same software to export it as a *.kba (Komodo GUI Batch File).  Using the Komodo GUI Software, open the exported *.kba file and replay the captured data on port 2.

However, for a more automated solution and to do this for near real-time data, we recommend writing an application with our Komodo API or LabVIEW drivers.  Our Komodo API Software allows you to create many scenarios, and can be used with the C, C#, and Python programming languages. Many software examples are provided, which you can modify for your requirements.

 

Using the Komodo CAN Duo Interface and API software to analyze and filter CAN data. Figure 1: Komodo CAN Duo Interface

 

There are some factors to consider. The two interfaces on the Komodo Duo are treated as separate adapters connected to the same USB connection. Also, The limitations to the response speed are related to your software's ability to process the information and then send it back to the Komodo. Our USB interface can handle 40 MB/s of data transfer, which is much faster than the CAN rate, and brings the data much closer to real-time.

The other factor is the USB interface turn-around time of 2ms (1ms out and 1ms back). For more details, please refer to section 3.8.4 of the Komodo Interface User Manual.

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

Komodo Interface User Manual
Komodo GUI Software
Komodo GUI Software 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 Host Adapters 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