The Beagle USB 480 Protocol Analyzer: Advanced Debugging Using the Digital I/O Port

Introduction

USB is everywhere. The familiar ports can be found in wide variety of applications: from consumer devices like smartphones and laptops, to infotainment systems in newer automobiles, and of course, embedded systems.

With its growing presence in electronic devices, the popularity of USB is continuing to create a need for improved development, support, and testing processes. Developers are faced with the challenge of keeping up with these new demands – specifically supplying applications for debugging these USB applications more efficiently and with more detailed real-time data. Total Phase has kept up with demand and delivers the tools needed to meet your USB development challenges.

The Beagle USB 480 Protocol Analyzer monitors USB traffic at Low, Full and High Speeds. But that’s not all; it is designed to do much more  – utilizing the DIN 9 port will provide powerful, advanced troubleshooting by allowing you trigger debuggers and external logic, and correlate what’s occurring in USB with the data in your embedded system.

This application brief describes various trouble-shooting techniques applying the Beagle analyzer's USB monitoring capability with the digital I/O port with the Total Phase Data Center Software.

 Beagle USB 480 Protocol Analyzer  

 

Beagle 480 USB Protocol Analyzer - Digital Port Pinout

Figure 1: Beagle USB 480 Protocol Analyzer Figure 2: DIN 9 Port Details:
Pin 1-4 input; Pin 5-8 output; Pin 9 ground

How the Data Center Software Works with the Beagle Analyzer

The Data Center Software, connected to the Beagle analyzer, displays and filters captured USB traffic, all in real-time. The data can be parsed and filtered and for high-speed devices, class-level decoding can be applied. For advanced troubleshooting, triggers can be set up, which include synchronizing to external logic.

Tracking and Correlating USB and Non-USB Events

Here is an easy and straightforward example of how the I/O ports can be utilized to monitor the status of your USB code, with the additional visibility and feedback of what your code is doing.

Configure the firmware on the DUT to output signals or toggle when certain tasks start and when they end, such as specific data patterns or a series of packets. These signals can be set up for more than task, each assigned to a separate output pin. An example setup can include:

  • Assign one pin to a low-level USB task
  • Assign a second pin to the higher-level class
  • Assign another pin to the user software

Trigger the Debugger and Find the Code Problem

In the process of debugging USB applications, it can be difficult pinpoint the exact nature of errors.  If the embedded system is paused, the USB connection will be interrupted and your connection will be cut.

The Beagle analyzer, with the Data Center software, enables you to step through the code for the USB DUT, while seeing the USB traffic at the same time, giving you the tools you need to identify the issue and where it is in your code

Using the Data Center software, you can set up data match triggers and feed the triggers into your debugger to create break conditions, all in real-time.  This allows you to choose a specific USB event and associate it with a specific section of your code, all through the Beagle analyzer’s digital output.  In addition to data matches, you can trigger on other USB packet types such as SETUPs, ACKs, corrupted packets, and more.

Data Center Software View Panel
Figure 3: Data Center Software Viewing Panel

 Synching for Reverse Engineering

For reverse engineering, you can set up the analyzer to accept triggers, based on a specific data pattern from the target device. Using this pattern synchronized to the data on the bus, you will be able to "lock in" and start read messages that are sent and received.

Synching with External Test Systems

Not all problems are due to erroneous digital signals; problems can occur in the analog domain, such as voltage spikes or ground bounce that cause random failures, or failures that only occur at specific data rates. These problems are very difficult to troubleshoot – especially if your only debug tool is an oscilloscope. But synchronize the oscilloscope with the Beagle analyzer and lock into the details. For these challenges, the Beagle 480 analyzer can be used to trigger an oscilloscope when it sees an erroneous packet, allowing you to correlate the analog data on the oscilloscope to that problem. Having such details can help you repeat the condition of the problem, and then find the problem in a much tighter range, that is much easier to work with.

Conclusion

As you can see, the Beagle USB 480 analyzer provides USB debugging capabilities beyond that of just monitoring USB data.  Using the digital inputs and outputs give engineers additional visibility into their application by synching the analyzer with external test devices, such as debuggers and oscilloscopes.  With the complex embedded systems that engineers are designing today, USB is only part of the picture and advanced debugging tools and strategies are a requirement for developing solid products. The Beagle USB 480 analyzer satisfies this requirement by being able to correlate USB events with what is occurring with the rest of the system, drastically reducing development time and streamlining the debugging process.

Additional resources that you may find helpful include the following:

If you have other questions about our protocol analyzers or other Total Phase products, feel free to email us at sales@totalphase.com, or if you already own one of our devices and have a technical question, please submit a request for technical support.

Leave a Reply