196
Chapter 4: Concepts
Understanding Logic Analyzer Triggering
time. Two sequence levels can never be used to specify two events that
happen simultaneously.
For example, consider the following trigger sequence:
1. If ADDR = 1000 then Go to 2
2. If DATA = 2000 then Trigger
If the following samples were acquired, the logic analyzer would trigger
on sample #7.
Sample # ADDR DATA
1 1000 2000 <- This sample meets the condition in Sequence level #1
2 1010 3000
3 1020 4000
4 1030 5000
5 1040 6000
6 1050 7000
7 1060 2000 <- This is where the logic analyzer triggers
Note that the logic analyzer will not trigger on Sample #1 because a
new sample is acquired between the time that the condition in
Sequence level 1 is met and when the condition in Sequence Level #2 is
tested. A good way to think of this trigger sequence is “Find ADDR =
1000 followed by DATA = 2000 and then trigger”. Multiple sequence
levels in a trigger sequence imply a “followed by”.
Once a logic analyzer triggers, it does not trigger again. In other words,
even if more than one sample meets the trigger condition, the logic
analyzer still only triggers once. For example, using “ADDR=1000” as
our trigger, if the logic analyzer acquires the following samples, it will
trigger on Sample #2 and only on Sample #2.
Sample # ADDR
1 0000
2 1000 <- The logic analyzer triggers here
3 2000
4 1000 <- The logic analyzer does NOT trigger again here
5 1040
A frequently asked question is “What happens if the conditions in a
sequence level are not met?” For example, if there is a condition that
says “If ADDR = 1000 Then Trigger”, what happens if the current
sample has ADDR = 2000? The logic analyzer simply acquires the next
sample and tries to execute this sequence level again. In essence, if the
trigger condition is “ADDR = 1000”, this is equivalent to “Keep
acquiring more samples until you find one that has ADDR=1000”.
Therefore, if you set up a trigger condition that is never met, the logic