4 Streaming
146 Keysight M8195A Revision 2 – Arbitrary Waveform Generator User’s Guide
The hardware or software is not able to check this limitation. Obeying this rule is the
responsibility of the user. In order to meet this rule, the user can query the segment
number that is currently played by the M8195A.
The dynamic modes have some limitations. The main problem for streaming
applications is the fact that a pre-defined timing relationship is not always guaranteed
when switching from one sequence to another sequence. Therefore, especially in the
continuous modes, it might happen that the current sequence is played one or more
times before switching to the next sequence. This means the exact number of
repetitions of a certain sequence cannot be determined. I.e. streaming implementation
using dynamic modes is not entirely deterministic.
When the waveforms to be generated are not known in advance, the “Memory Ping-
Pong” feature allows applications to update the contents of a waveform segment during
active signal generation and then switch execution glitch-free to this updated segment.
One segment is played in a loop until execution is switched to the updated segment.
The total number of update operations and switches and therefore the total playtime is
unlimited.
4.3.1 Setup example using the SCPI API
This example shows the “Memory Ping-Pong” using the simplest configuration:
Continuous (non-triggered) mode, ARBitrary (no sequences). It also works in triggered
mode and with sequences.
Preparation:
Set the continuous mode.
:INIT:CONT ON
Set sequencing mode to ARBitrary.
:FUNC:MODE ARB
Set dynamic mode.
:STAB:DYN ON
Create two waveform segments.
TRAC:DEF 1,1280
TRAC:DEF 2,1280
Create two sequence table entries referring to the waveform segments.
:STAB:DATA 0, 0,1,1,1,0, #hFFFFFFFF
:STAB:DATA 1, 0,1,1,2,0, #hFFFFFFFF
Load first segment with data.
:TRAC:DATA 1,0,#41280<data_bytes>