Contents
Introduction
Some embedded systems feature embedded USBs, and it is common for these systems to have no standard USB connectors.
This article explains how a Beagle USB protocol analyzer can be used to monitor embedded USB traffic.
Setup
The D+/D- signal path of a USB does not have to be broken to be monitored by a Beagle USB protocol analyzer. The VBUS, GND, D+, and D- lines can be connected to either the Type A or Type B connector on the Beagle analyzer using "T" connections.
Figure 1: Connecting a Beagle USB analyzer to and embedded USB
The method of connecting the Beagle analyzer to the embedded bus will vary depending on how accessible the signals are on the target system. A USB cable will likely need to be cut up so the wires can be attached to the target system.
If the signal lines are easily accessible through a header or test pads, then connecting to it is straightforward. If the signals are not easily accessible, the wires may need to be soldered directly to IC pins or copper on the PCB. Please exercise extreme caution if this is required, and note that Total Phase cannot be held responsible if equipment is damaged from such activities.
Other Considerations
Signal Integrity
To minimize reflections due to impedance mismatches, a 20-40 Ohm series resistor should be added to D+ and D- between the target system and the Beagle analyzer.
It is also recommended to use a twisted pair between the Beagle analyzer and the target system, and to keep these wires as short as possible. IC-USB was intended for situations where the host and device are very close together, and using long wires may cause signal integrity issues.
Supplying VBUS
The Beagle analyzer needs to see 5V on VBUS in order to recognize that a host is present. If the target system cannot provide 5V to the Beagle analyzer, it will need to be provided from an external source. Alternatively, this requirement can be overridden in software. To enable Data Center to capture traffic without VBUS, enter the following in the Command Line window,
device({'usb.vbus_override': True})
The same can be achieved at the API level by calling bg_usb480_capture_configure() or bg_usb5000_usb2_target_configure() with the BG_USB2_VBUS_OVERRIDE flag (for more information please refer to the API documentation section of the Beagle Protocol Analyzer User Manual).
References
- Inter-Chip USB Supplement - USB-IF