This is the technical FAQ. Click here for the FAQ on buying.
Logic Analyzer FAQs
Q15. How fast is USB?
Logic Analyzer FAQs
A Logic Analyzer is essentially a multi-channel version of a digital oscilloscope. One difference is that the logic analyzer only recognises two logic levels - 0 and 1. Also logic analyzers usually implement much more complex triggering than oscilloscopes. (top)
An oscilloscope can look at the same digital signals as a logic analyzer, but its essential role for most users is analog measurements such as rise-times, fall-times, and peak amplitudes. You use an oscilloscope when you need to see small voltage changes and when you need very accurate time interval measurements.
You use a logic analyzer when you need to see signals the same way your digital circuit sees them, when you need more complex triggering, and when you need more channels. (top)
When a logic analyzer is running it continuously samples the input signals and writes the values to its memory buffer, looping round and round from the start to the end of memory. It stops this process when it triggers, the trigger moment being the point at which a desired event occurs. The event could be a rising or falling edge or a pattern of zeroes and ones across the signal wires.
Edge triggering is usually set by the logical OR of various signal edges. For instance, trigger when the write strobe falls or the read strobe rises. In practice logic analyzers spend the majority of their lives responding to edge triggers on a single channel.
Pattern triggering is set by the logical AND of various signals. For instance, trigger when chip select is high, the write strobe is low, and the other signals are in any state. (top)
This is the next stage beyond pattern triggering. The same events are defined as in the previous answer - ORs of various edges, ANDs of various levels. But these events are used to drive a state machine within the logic analyzer. The state machine moves between states and eventually arrives at the trigger state.
An example may clarify this:
- start in state 0
- move from state 0 to state 1 when you see a certain pattern
- move from state 1 to state 2 when the pattern goes away
- go back from state 2 to state 1 when an edge occurs
- trigger when you enter state 1 for the 500th time.
Notice that complex triggering introduces one more feature - a counter. This example illustrates all the essentials of a complex triggering capability - a few states, a few pattern or edge recognisers, and at least one counter.
Usually complex triggering state machines cannot run at the highest acquisition speeds. For instance, consider a state machines that runs at a maximum of 125MHz. At 250MHz it will respond to every second input sample, and at 500MHz it will respond to every fourth input sample. (top)
For some applications, you can never have too many channels, and logic analyzers are available with several hundred channels. Typically these systems are used to debug complex microprocessor buses and it is lots of work to connect the myriad probes involved.
A more common debugging scenarios is when you want to see exactly what is happening on a few signals - most debugging is done this way. In this case a logic analyzer is hooked up to a few signals to give a trigger source, and to one or two signals which are being debugged.
For instance, when debugging a first-in/first-out (FIFO) memory you could look at full and empty indicators, read and write strobes, and a few other signals for reference. (top)
As you would expect, the maximum sampling rate can never be too fast. BX analyzers have a maximum sampling rate of 1000MHz which gives a timing resolution down to 1ns. This means very accurate sampling of incoming signals which are over well 100MHz. And that is important - when debugging it is often important to discover whether signal A is truly active before signal B.
Of course, the sample buffer fills up quite quickly at these speeds, so for slower signals the sampling speed can be stepped down in stages to a minimum of 100Hz, which gives a timing resolution of 10ms.
The laws of Physics apply - when sampling fast signals, you need short probe leads to give an accurate result. (top)
The standard scheme for logic analyzers is to store samples in a circular buffer. Even if consecutive samples are identical, they are still stored in the buffer. For systems with continuous activity on the input signals, this makes sense. But for systems which exhibit intermittent bursts of activity, the standard scheme can result in very inefficient use of storage.
With sample compression, the analyzer stores a count along with each sample. During bursts of activity, just about every sample will be stored, along with a count value which will typically be 1. In the gaps between bursts, a single sample will be stored, along with a count value. This sample compression scheme is implemented in the BX analyzers.
We can compress even more. If only a few signals are changing we can implement per-nybble run length compression, with a variable-length count. When sampling bursty signals, this sample compression scheme increases the effective buffer depth of the BX analyzers to a million or more samples. (top)
BX logic analyzers are not galvanically isolated. They are connected to the host PC (or other host device) via the power, ground, and signal wires in the USB lead. A degree of isolation can be achieved by running a BX instrument from an isolated laptop computer or from Android tablet, or by using an optical USB extender. But fundamentally BX logic analyzers are not suitable for applications which indicate a need for galvanic isolation. (top)
There are myriad solutions for connecting logic analyzers to the target circuit. The simplest is to use a ribbon cable terminated in a socket which connects to a plug on the target circuit board. But this needs planning. Even if the plug on the target circuit is designed in, it may be wired up to the wrong signals. The fallback is to use grabber clips. In modern designs, you often have to hook the grabbers to tiny wires soldered onto surface mount devices or soldered into vias in the circuit board. The main requirement for high-performance logic analysis is that the probing wires be very short. You have to minimise the loading on the circuit.
Probes are not included as standard with BX analyzers, though we do offer low-cost probe solutions.
Your local distributor may offer other probing solutions. (top)
Hardware: You need a USB port in your computer. Most computers build since 1998 have at least two built in USB connectors.
Our products are developed and tested on various versions of Windows and Linux. We also have limited support for OS-X and Android. (top)
USB is hot swappable. This means you can walk up to a computer, plug in a new device using USB, and use it right away. Like plugging into a serial port or an Ethernet port.
Bugblat instruments are hot-swappable. (top)
Plug and play (PnP) refers to the ability to use a new peripheral without going through an elaborate configuration process.
Even so, newer types of USB devices may need additional drivers installed. Bugblat instruments are definitely not standard peripherals, so they needs special drivers. However, driver installation should be relatively painless. When a Bugblat module is plugged in, the computer reads the vendor ID (VID) and product ID (PID) from the module, then searches in the computer's database for a matching driver. First time round, there will be no matching driver and the user is prompted for the driver disk. Next time the device is plugged in, the driver will be loaded automatically in seconds. (top)
Most computers have two or more USB ports, often many more. Phones and tablets usually have a single USB port. If you need to plug in more USB devices you do so by using a USB hub. A hub plugs into your USB port and usually provides either four or seven ports. Many USB devices have built-in hubs - most USB keyboards have another USB port in them for daisy-chaining a mouse, joystick, or other USB device. (top)
USB cables distribute power as well as data - up to 500mA at 5V on each cable, 900mA for USB 3.x. This is enough for low-power devices, they do not need separate power supplies.
An unpowered hub uses some of the power coming to it for it's own operation, and passes the remainder along to devices plugged in. This is OK for small hubs with low power devices plugged into it. A good example is this is a keyboard with an unpowered hub built in. There is plenty of spare power for a mouse or a track pad.
Powered hubs have their own power supplies and can supply full power to all the devices that can physically plugged into them. Of course, they do have an extra wire and power block plugged into the wall.
Some hubs can operate powered or unpowered. If they don't have their power supply plugged-in, they operate as an unpowered hub - with a limited ability to power additional USB devices. When you plug-in their power supplied, they function as powered hubs.
BX instruments are low power but for reliable operation they need either a direct connection to a computer or tablet, or a connection via a powered hub. (top)
The USB 1.1 standard specifies low speed (1.5 Mbit/s) and full speed (12 Mbit/s) modes. USB 2.0 adds hi-speed (480 Mbit/s), USB 3.0 adds SuperSpeed (5 Gbit/s), and USB 3.1 adds SuperSpeed+ (10 Gbit/s).
Bugblat instruments are compatible with USB 1.1 and above. They make bursty use of the full speed mode and place a very low average load on the USB bus. (top)
Five meters is the maximum cable length allowed by USB. For a longer run you need to insert a hub every five metres, or use one of the specialist extender solutions which reach up to 300 metres! (top)
This is Logic Analyzer in the US. In most of the rest of the world it is Logic Analyser. We use Logic Analyzer because that is what HP/Agilent/Keysight and Tektronix use. (top)