For those of us who are semi electronically inept (i.e. can replace
components and burn eeproms, but not much else) what is a logic analyzer,
what is it used for, and what situatios would require tyou to have one? (or
when would it be helpful?)
A logic analyser is basically an oscilloscope for digital signals.
They have a number of input chanels (anything from 3 to over 100) that
you connect to various points of the device under test. The logic state
of all those points is recorded every so often (say every 50 ns), the
time being selectable of course. You can then display those recorded
states as a timing diagram, and sometimes as a table of values (you
'tell' the analyser that channels 0-15 are to be displayed as a 4 digit
hex number, that channels 16 to 23 as a 2 digit hex number, etc). Some
analysers even let you load a disassembler program for a particular
processor at which point you can display the result as a dissassembly
listing [1]
You can set the analyser to trigger on a particular combination of inputs
(that's the simplest case, many analysers have very complex trigger
modes) and then either start recording when you get the trigger, stop
recording when you get the trigger, or carry one recording for about half
the analysers memory size on the trigger (so the trigger event occurs
aproximately in the middle of the data that's been recorded).
As to why you'd want one, well, if you have a complex digital circuit,
and you need to see what's going on (either because you've just designed
it and need to find out what mistake you've made this time, or because
it's stopped working), a logic analyser will let you look at all the
signals in said circuit at once and display the relationship between
them.
[1] Personally, I think this is a somewhat useless feature. Of much more
use is the ability to link the analyser to a computer (e.g. via GPIB,
RS232 or these days I guess USB) and transfer the recorded data. Then you
can attack it with any program you like.
-tony