The Fabulous Logic Analyzer #1

Bernhard Walle

This manual was distributed with version 0.5.0 of TFLA-01. Only minor differences are present in TFLA-16 (modifications by Kevin Koster, 2018).

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. The complete license text is available from the Free Software Foundation.

August 2010

Table of Contents

Introduction to TFLA-01
What is a logic analyzer?
What's special about TFLA-01?
System requirements
Getting started
Installing the software
Building the hardware
Now try it out
Hardware description and configuration
Extended usage
Data measuring settings
Open and save
Save plot image
Export data
Bus protocol analyzers
Color settings
Parallel port
About TFLA-01

Introduction to TFLA-01

What is a logic analyzer?

A logic analyzer is a device which can monitor the high and low states of several input lines of a digital logic. It is useful for debugging digital circuits such as bus transfers, etc. You can imagine a logic analyzer to be something like a digital oscilloscope.

Normally, a logic analyzer is a external device with a own controller that has a own display or is connected to a PC via USB or serial line. The PC or the display then shows the data, e. g. some waveforms.

What's special about TFLA-01?

This logic analyzer is designed to be cheap, somehing like a logic analyzer for poor men, which means not for industrial use but for hobbyists. It simply consits of a schematic which is attached to the PCs parallel port. Therefore, 8 Bit (i. e. 8 data lines) can be monitored simultaneously.

There's no real external device which collects the data: The schematic just protects the parallel port and converts RS232 level (+/- 12 V) to 5 V TTL level on two pins configurable with jumpers. The schematic is described later in this manual. The measuring is done by the PC software using the parallel port.

This means that the speed depends on your PCs parallel port and on the operating system. The data ist just collected by a user process to be portable against different operating system. However, with my setup I get on Linux data rates about 1 MHz which is quite well for I˛C, RS-232, SPI and some other stuff.

The software has following features:

  • Triggering

  • Zooming

  • Two markers for which the (estimated) times are displayed

  • Application runs completely in userspace, libieee1284 is used for parallel port access. This means that the installation is easy and the system stays stable.

  • Integrated decoder for the I˛C and SPI protocols.

System requirements

TFLA-01 is designed to be portable against various operating systems. It is written in C++, uses Qt as cross-plattform API mostly for the graphical user interface and libieee1284 to access the parallel port. This means that it is possible to run TFLA-01 on following systems:

  • Linux

  • Windows

  • OpenBSD (i386 only)

  • FreeBSD /i386

  • Solaris/x86

On hardware side, you need a parallel port. Use the port of your mainboard or a additional PCI card. Forget about USB adapters, they are normally designed for printers and for nothing else and if it would work, the speed would be insuitable for a logic analyzer. (Of course, USB is faster than a parallel port, but that does nothing say about the speed of such adapters.)

Starting with version 0.3.0 it's also possible to create a viewer-only version of TFLA-01. This version doesn't need libieee1284 and cannot collect data from the parallel port. It just can open TFLA-01 files that have been saved by another version of TFLA-01 (with parallel port access). If no libieee1284 is available, the build system warns about missing functionality but automatically builds such a version. However, such binaries are not distributed at the TFLA-01 website. This version also works on Mac OS.