Skip to main content

Tools for the ITI1480A usb protocol analyser

Project description

User-space driver and tools for ITI1480A USB analyser.

Home: http://github.com/vpelletier/ITI1480A-linux

Disclaimer

I am not affiliated with International Test Instruments in any way. ITI kindly accepted that I start reverse-engineering their windows-only software so I could use with Linux the I bought from them. I had no privileged access to any documentation of any kind.

Dependencies

Firmwares

The ITI1480A analyser is composed of 2 programable chips:

  • A Cypress FX2, to be programmed on first device enumeration after connection to analysis computer. Its firmware transmits commands send by analysis computer to the main analyser chip and streams capture data back.

    This chip controls the “Host power” led: if the firmware is properly loaded, this led must be on.

  • An Altera Cyclone 2 FPGA, which produces data which is stored in capture files by listening to events from the link under test. Its firmware is loaded at the beginning of each capture session.

    This chip controls the “Link power” and “Link activity” leds.

Just for completeness, there is a small flash chip which merely contains power-on vendor and device identifiers so an unprogrammed ITI1480A FX2 can still be distinguished from any other device’s FX2.

FX2

A free software implementation of this firmware exists, so you have two options:

  • Either using the proprietary firmware from 1480A USB Protocol Analyzer Software, found under the name ITI1480A.spt in installation directory.

  • Or provided Free Software firmware, available pre-built or from source. If you want to build it you need:

Cyclone 2

No free software implementation exist (yet). Contributions welcome.

I the mean time, you need to use the proprietary implementation from 1480A USB Protocol Analyzer Software, found under the name ulpitest.rbf in installation directory.

4.1.0b ultitest.rbf (latest version as of this writing) has been released stand-alone.

Installation

Notes: paths and udev group are suitable for at least Debian. You may need to edit udev/ITI1480A.rules and adapt below paths.

python setup.py install
cp udev/ITI1480A.rules /etc/udev/rules.d/
cp udev/ITI1480A.sh /lib/udev/
wget -O /lib/firmware/ITI1480A.rbf http://www.internationaltestinstruments.com/Downloads/UlpiTest.rbf
  • ITI’s FX2 firmware:

    spt2hex /path/to/ITI1480A.spt
    cp ITI1480A_1.ihx /lib/firmware/ITI1480A.ihx

    spt2hex may generate several files (ITI1480A_0.ihx, ITI1480A_1.ihx, …), use the highest-numbered one.

  • Free Software FX2 firmware:

    To rebuild from source:

    FX2LIBDIR=/path_to/fx2lib/ make -C CY7C68013A

    To install:

    cp CY7C68013A/build/ITI1480A.ihx /lib/firmware/

To test installation, (re)plug your protocol analyser. If the “Host power” led turns on within a few seconds, your FX2 firmware was successfully installed and loaded, your analyser is ready to use.

Usage

To start a capture:

iti1480a-capture > captured.usb

Send signal SIGINT (^C) or SIGTERM to stop the capture, wait analyser to push all data to host and exit.

Send signal SIGTSTP (^Z) to pause the analyser, SIGCONT (fg) to resume.

To get a human-friendly text dump of a previos capture:

iti1480a-display -i captured.usb

To wath running capture without saving it:

iti1480a-capture | iti1480a-display -f

To watch running capture and save it for later analysis:

iti1480a-capture | iti1480a-display -ft captured.usb

By default, iti1480a-display hides a lot of verbose events, like NAK’ed and SOF transactions, or EOP events. You can tweak its filtering using -q (quieter) and -v (more verbose). Default verbosity level is 0, -q decrements it and -v increments it. Verbosity levels go from -1 (most quiet) to 4 (most verbose).

Example outputs: https://github.com/vpelletier/ITI1480A-linux/tree/master/examples

Red timestamps mean that output is detected as being non-chronological. This happens for implementation detail reasons, and is considered a bug (issue #4).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ITI1480A-linux-3.0.tar.gz (24.1 kB view details)

Uploaded Source

File details

Details for the file ITI1480A-linux-3.0.tar.gz.

File metadata

File hashes

Hashes for ITI1480A-linux-3.0.tar.gz
Algorithm Hash digest
SHA256 3b590a028ff05182c92e8fca5f7137019121afa6c7a5bf5cbd1d995b409e2047
MD5 4b698d6d56cec59d48d6143cd0e90654
BLAKE2b-256 3f553378b0f9a74c228e711051da3f21e5cb4f63d39d25983e60e5ed43ef17a5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page