Chapter 4 - Setup step three: triggering

Contents

The GoLogic software provides pre-defined TriggerForms™ that handle most triggering situations. The Custom TriggerForm allows access to the complete, low-level triggering capabilities in case the pre-defined forms do not meet your needs.


Window areas

 
Window areas
 
TriggerForm list

The pre-defined templates are listed in the tab's upper left corner…

 
 
For convenience, the TriggerForm list also appears in the Quick Setup toolbar…
 


 

Quick-Edit
The Quick-Edit list contains actions that affect the entire TriggerForm...
 

 
Only the active TriggerForm is affected by the selected action. Use the "Edit > Blank Triggering" menu command to blank all the TriggerForms at once.
 
TriggerForms
 
Never
The GoLogic does not trigger. The toolbar’s button must be used to end the sampling and download the trace data. No pre-store is used and the trigger marker is placed on the first sample in the data.

The never TriggerForm makes the GoLogic function like a data recorder. It is most useful when capturing very slow signals which you can control when the values change.

 
Immediate
The GoLogic triggers on the first sample it stores. It then fills its memory depth, stops running, and the data is downloaded. No pre-store is used and the trigger marker is placed on the first sample in the data.
 
The immediate TriggerForm is useful to take a quick trace just to examine the signals.
 
Simple
The GoLogic triggers on a single event. The event editing rules are described in the Custom TriggerForm section.


Simple
TriggerForm


The simple TriggerForm can be edited in the Triggering tab…
 

 
...or in the WaveForm window (see Chapter 6 - WaveForm window)…
 
 
Series
The GoLogic triggers on a series of events. The number of events in the series is selected in the drop-down list at the form's top. The GoLogic triggers when all events in the series are detected in proper order. The event editing rules are described in the Custom TriggerForm section.


Series
TriggerForm

The simple TriggerForm can be edited in the Triggering tab…
 


 
...or in the WaveForm window (see Chapter 6 - WaveForm window)…
 
 
TimeBetween
The GoLogic triggers when the time between two events is greater than (or less than) a certain time. In the following example, the GoLogic triggers when a high-pulse lasts less than 80 ns...


TimeBetween
TriggerForm

 

 
Click on the Event #1 and Event #2 buttons to define each event. The event editing rules are described in the Custom TriggerForm section...
 

 
Select the time between type from the list...
 

 
Enter the time parameters as needed. When the Outside/Inside limits are used, you must provide the upper and lower boundaries to define your requirements for Event #2. The reset limit is optional and tells the GoLogic how much time to wait before resetting the form.

In the following example, the GoLogic triggers if the trailing edge of a high-pulse occurs earlier than 160 ns or later than 400 ns measured from the initial edge. Trailing edges that occur within a 240 ns window do not cause the GoLogic to trigger. Anything outside that window is considered an error. The form resets if the trailing edge is 160 ns beyond the upper limit...
 

 
The TimeBetween TriggerForm can also be edited in the WaveForm window (see Chapter 6 - WaveForm window)…
 
 
Custom
All TriggerForms are limited versions of the Custom form. TriggerForms are composed of three nested elements: levels, If/Else blocks, and event lines...
 


Custom
TriggerForm

 
  • Levels are the custom form's basic building block. The maximum number of levels is 8, but this limit may be reduced if more trigger resources are used.

    When the button is pressed, the GoLogic always begins on the start level and jumps to other levels as required by the If/Else actions. Only the custom form permits more than one level.
     
  • Levels have one or more If/Else blocks. The maximum number of If/Else blocks per level is 3. This limit is reduced to 2 lines if an edge or range is used in the first two If/Else blocks. The third If/Else block can contain only a single edge or range event line.

    Each If/Else block has an action and a timer or counter. See the appendices for details on the counter and timer limits.
     
  • Each If/Else block is composed of one or more event lines. The maximum number of event lines per If/Else block is determined by the the number of channel groups defined. A channel group can be used only once in each If/Else block. This prevents contradictions in the If/Else block.

 

Levels should not be skipped and unused levels should be deleted. The software automatically maps the abstract TriggerForms to the available triggering resources in the hardware. The software automatically skips levels to deliver the requested trigger resources.

Event lines have two elements: the channel group name and the trigger value. The "anything" event is a placeholder which triggers if any input occurs on any GoLogic channel. The "anything" event is seldom used for this reason. Otherwise, select a channel group name and the trigger value for the event. For example, choosing the "RD*" group (which contains only one channel)...


 
...allows you to choose the signal's value or edge that triggers the GoLogic...

 

The "rising edge" and "falling edge" triggers are only available when a single-channel group is selected and timing analysis is active.

Selecting a group with 2 or more channels allows you to enter a trigger value...
 


 
In the above example, the GoLogic triggers when the channels associated with the "pod A" group equal "45xx". The "x" character is an "anything" placeholder. The channels associated with the lower 8-bits of the "pod A" group can equal any value and the GoLogic triggers. However, the channels associated with the upper 8-bits of the "pod A" group must equal "45" or the GoLogic won't trigger.

When State Analysis mode is active, and a group contains two or more channels, the qualifier allows triggering when the channels fall inside or outside a range of values...
 


 
A range event disallows the "x" character. All digits in the upper and lower boundary must be specified...
 

 
In the above example, the GoLogic triggers when the channels associated with the "pod A" group are less than or equal to "5000" and greater than or equal to "1000". The upper range boundary is the leftmost edit box and the lower range boundary is the rightmost edit box.

The "between" and "outside" range events are only available when State Analysis mode is active.
 

Level edit-actions are found under the "Level" buttons...


 
If/Else block edit-actions are in the "If/Else If" buttons...

 
Event line edit-actions are in the "the/and" buttons...
 
Serial bus triggers
Serial bus triggering is only available when I2C or SPI sampling modes are active. The GoLogic can only trigger on I2C and SPI bus types. For all other serial bus types, we recommend using the "Immediate" TriggerForm to capture all bus activity and then search the captured data using the serial bus search tools.

All serial bus parameters must be defined correctly in the Sampling tab for the trigger feature to work. See Chapter 2 - Setup step one: sampling for details on the Serial Bus Definitions.
I2C TriggerForm
Select the I2C trigger type from the list...

 


I2C TriggerForm

 
  • "Address" triggers on a single I2C address
  • "Address & data" triggers on a single I2C data value at an address.
  • "Address series" triggers on a series of I2C address values.
  • "Data series" triggers on a series of I2C data values at an address.
Fill out the selected I2C form type as needed. The following example triggers when the data value "AA" is written to address "12"...
 
 
SPI TriggerForm
Enter the SPI bus value you want to detect in the SPI form. The following example triggers when the "34" data value appears on the SPI bus MISO signal...


SPI TriggerForm


You can trigger on either the MISO or MOSI signal from the SPI bus defined in the Sampling tab. Other SPI buses can be captured and analyzed at the same time, but only one bus can be used for triggering.

The GoLogic hardware is limited to 8 trigger-states. This limitation determines the number of serial bits that can be detected. If the SPI Packets are separated… option is used, the GoLogic uses the first trigger-state to detect the space between packets. This means 7 states remain to detect the data bits.

Data bits which do not change use 1 trigger-state. Therefore, only 1 trigger-state is required to trigger on the SPI value 0xFFFFFFFF which uses 32-bits. In contrast, the 8-bit values 0xAA and 0x55 requires 8 unique trigger-states.

If an SPI trigger value is entered that exceeds the GoLogic trigger capabilities, all serial bits beyond the last trigger-state are ignored. The SPI TriggerForm displays a warning message when this occurs.

 
Ambiguous trigger values: "?"
When entering trigger values in any TriggerForm, hexadecimal or binary characters must be used. The "x" character is also allowed unless an "is between" or "is outside" range event is used. However, the "?" character may automatically appear in hexadecimal trigger values. This character represents ambiguous trigger values. Like the "anything" character, ambiguous digits match more than one input value. Unlike the "anything" character, ambiguous trigger values do not match all input values.

The "?" character is a placeholder that warns you the trigger should be viewed in binary rather than hexadecimal. Each hex character represents 4 channels. If you edit a trigger value in binary, set three channels to 0 or 1, leave the fourth channel "x", then switch to the hex display, the "?" character will be displayed for the ambiguous hex character...
 


 
In the above example, the "?" character matches both "E" and "F", but no other values. Since we cannot display both hexadecimal characters, the "?" character indicates that the trigger value matches more than one input value but not all input values.

The "?" character cannot be entered from the keyboard. The GoLogic software automatically displays this value when needed.

 
Trigger trouble
Check these items if the GoLogic never triggers...
  • Verify the channel connections are secure.
  • Connect at least one ground channel to the test circuit’s ground.
  • Verify the threshold levels are valid for the input signals.
  • Use the activity indicators to verify the input signals are changing.
  • The "Trigger" action must appear on at least one level if the Custom TriggerForm is used.
  • Be careful when using the "not equals" qualifier. For example, the "anything" trigger value and values which use only the "x" character matches all samples. A "not equals" qualifier used with an "anything" event matches no samples.
  • The GoLogic never triggers if a level jumps to itself and never reaches a trigger action...

    Another If/Else line on the level must use the trigger action or jump to another level which uses the trigger action...

    The Level flow-diagram to the right of the custom form is helpful to identify unreachable levels or levels which reach the trigger action...
  • Verify the trigger event does not occur while the GoLogic is pre-filling. See the Pre-fill section below for details.
 
Selective storage
When state sampling mode and the Custom TriggerForm is active, the GoLogic can store to memory only the incoming samples you want to see in the trace data. This feature is called selective storage.

Specific samples can be stored to memory before the trigger action is executed. This feature is called the level storage...

The GoLogic also allows specific samples to be stored to memory after the trigger action is executed. This feature is called the post-trigger storage and is discussed later.
 


Selective storage

Level storage

While the GoLogic is on any level, the selective storage feature can store all incoming samples to memory, store no samples, or store only samples which match specific "If/Else" blocks on that level.

The default setting is to store all incoming data while on a level. When selective storage is not allowed or is disabled, all samples are stored to memory.

To store no samples to memory while on a level, choose the "No samples" storage option...




The "No samples" storage option is useful when skipping a large block of incoming data. You can jump to a level when storage must be disabled, then jump to another level when storage must be enabled.
 
To store only samples which match specific "If/Else" block on a level, choose the "Only selected If/Else lines" storage option...
 

The above example stores samples where the "pod A" channels match "1234.

Only "If/Else blocks" which use the "Store sample" option are saved to the GoLogic trace memory. All other incoming samples do not appear in the captured trace data. In the following example, samples where the "address" channels match "1234 or "address" channels match "5678" or are stored to memory. All other incoming samples will not appear in the trace data while the GoLogic sequence is on this level...


 

Finally, the "Anything" placeholder can be used to store all samples while on a level...

 
In the above example, the GoLogic stores all samples to trace memory except when the "pod A" channels are "1234". This is just an example of how selective storage can be used creatively to capture only the data you need for analysis.
 
Post-trigger storage
All Custom TriggerForm levels are inactive after the trigger-action is executed. Once triggered, the GoLogic fills its memory with the incoming data and then stops running. However, the post-trigger storage feature allows you to store all incoming data or just specific patterns after the trigger-action is executed.
 

The post-trigger storage is not associated with any level. Instead, select the "Edit post-trigger storage..." item from the "Quick setup" action listbox...
After the trigger-action, the GoLogic can store all samples or only samples matching the events you define...
 

 
  • After the GoLogic detects the trigger and is still running, the "All samples" option stores all incoming channel data to memory. This is the default setting for the post-trigger storage option.
  • Choosing the "Only samples matching..." option allows you to specific which incoming channel data is stored to memory after the trigger is detected. In the above example, only incoming data where the "address" channels match "1234" are stored in the captured trace data.

When using the "Only samples matching..." option, the stored values are configured just like the TriggerForms, and just like the level storage options described above.

 
Pre-store

The pre-store define where the trigger sample is located in the trace data. This value is expressed as a percentage of the memory depth. 0% pre-store places the trigger sample at the trace data's start. 100% pre-store places the trigger sample at the trace data's end. 50% pre-store places the trigger sample at the trace data's middle.

The pre-store edit control is located on the right side of the Quick Setup toolbar.

Fractional and custom pre-store values can also be entered in the control's text section...
 
 
Pre-fill
The pre-fill period ensures that the requested trigger sample position is correct. When the button is pressed, the GoLogic initially disables its trigger circuits and cannot trigger. Trace data is captured until enough samples are stored to memory to satisfy the pre-store condition. For example, if the memory depth is 8K samples and a 50% pre-store is requested, then the GoLogic stores 4K samples to memory before enabling the trigger circuits. This prevents the GoLogic from triggering when only 1K samples have been stored to memory. If this occurs, the trigger sample would be positioned about 15% of the trace size instead of the requested 50%.

However, some tests demand that the trigger circuits be immediately activated even if this means the trigger sample is placed on the wrong sample. This usually is required when the trace data is stored very slowly and waiting for the pre-fill period to expire would take hours or even days. Transitional timing and selective storage are the two examples where the trace data might be captured very slowly.

Therefore, the GoLogic provides the "No pre-fill" option on the Quick Setup toolbar...
 


 
Check this option to disable the pre-fill period and active the trigger circuits immediately when the GoLogic starts running. Be aware that the trigger sample position and the total number of samples captured may not meet your requested values. We recommend using a 0% pre-store value when the "No pre-fill" option is enabled.

The No pre-fill option is hidden when the sampling modes does not allow the pre-fill to be disabled. For example, normal timing always uses a pre-fill period.

 
Copyright and trademark information
Contents