GtDio6xTimingSetMemoryWriteData

Applies To

GX5296, GX5961, GX5964, File

Purpose

Sets the phase and window settings of a timing set index sub group in the Timing Set memory.

Syntax

GtDio6xTimingSetMemoryWriteData (nHandle, nTimingSetIndex, nIndexSubset, dPhaseAssert, dPhaseReturn, dWindowOpen, dWindowClose, pnStatus)

 Parameters

Name
Type
Comments
nHandle
SHORT
Session identifier:

     Board handle is used when communicating with the hardware. The Board handle session identifier is returned by calling GtDio6xInitialize or GtDio6xSetupInitialization.

     File handle is used when communicating with a file. The File handle session identifier is  returned by calling GtDio6xFileOpen.

nTimingSetIndex
SHORT
Timing Set to access (0-255).
nIndexSubset
SHORT

Used to specify the timing set index subset to access within the timing set:

0. GTDIO6X_TIMING_SET_PHASE_WINDOW_0: GX5960/GX5296: First pair of Phase and Window in the specified Timing Set Memory Index.

1. GTDIO6X_TIMING_SET_PHASE_WINDOW_1: GX5960/GX5296: Second pair of Phase and Window in the specified Timing Set Memory Index.

2. GTDIO6X_TIMING_SET_PHASE_WINDOW_2: GX5960/GX5296: Third pair of Phase and Window in the specified Timing Set Memory Index.

3. GTDIO6X_TIMING_SET_PHASE_WINDOW_3: GX5960/GX5296: Fourth pair of Phase and Window in the specified Timing Set Memory Index.

4. GTDIO6X_TIMING_SET_PHASE_WINDOW_4: GX5296 (Firmware version > 0xAA03): 5th Phase in the specified Timing Set Memory Index, Window not supported.

5. GTDIO6X_TIMING_SET_PHASE_WINDOW_5: GX5296 (Firmware version > 0xAA03): 6th Phase in the specified Timing Set Memory Index, Window not supported.

6. GTDIO6X_TIMING_SET_PHASE_WINDOW_6: GX5296 (Firmware version > 0xAA03): 7th Phase in the specified Timing Set Memory Index, Window not supported.

    GTDIO6X_TIMING_SET_PHASE_WINDOW_7: GX5296 (Firmware version > 0xAA03): 8th Phase in the specified Timing Set Memory Index, Window not supported.

dPhaseAssert
DOUBLE
Used to specify the Phase Assert Time within the timing set index subset, see comments.
dPhaseReturn
DOUBLE
Used to specify the Phase Return Time within the timing set index subset, see comments.
dWindowOpen
DOUBLE
Used to specify the Window Open Time within the timing set index subset, see comments.
dWindowClose
DOUBLE
Used to specify the Window Close Time within the timing set index subset, see comments.
pnStatus
PSHORT
Returned status: 0 on success, negative value on failure.

Comments

Each Timing Set memory index is compos of four pairs of timing sets signals for a total of 16 as follows:

Timing Set Index number
TSet 0: First pair of Phase and Window in the specified Timing Set Memory Index
Phase Assert 0
Phase Return 0
Window Open 0
WindowClose 0
TSet 1: Second pair of Phase and Window in the specified Timing Set Memory Index
Phase Assert 1
Phase Return 1
Window Open 1
WindowClose 1
TSet 2: Third pair of Phase and Window in the specified Timing Set Memory Index
Phase Assert 2
Phase Return 2
Window Open 2
WindowClose 2
TSet 3: Fourth pair of Phase and Window in the specified Timing Set Memory Index
Phase Assert 3
Phase Return 3
Window Open 3
WindowClose 3

GX5961, GX5964:

The phase and window signals are programmed in master clock edges (rising and falling), i.e., 1/2 the master clock period.  For example, if the master clock is set to 500 MHz, then a setting of 5 would be: 5 * (1/2 (2ns)) = 5ns.

With a master clock of 100 MHz it would be: 5 * (1/2 (10ns)) = 25ns.

GX5296:

The phase and window values are combination of the system clock period and number of the step’s Clock Per Vector (see GtDio6xStepSetClock API). The system clock generates 8 phases and 8 windows by dividing equally the period to 8, giving us a resolution of 1/8 of the system clock period.

Step’s Clock Per Vector = 1:

The user can set each phase and window value to any of the 8 values, while keeping the basic rule that Phase Asset > = Phase Return, and Window Open >= Window Close.

E.g.; If the Clock Per Vector  =1, and the  system clock period = 100nSec (10MHz clock period), then the available Phase and Window values are: as follows:

12.5 nSec , 25.0 nSec, 37.5 nSec, 50.0 nSec, 62.5 nSec, 75.0 nSec, 87.5 nSec

Step’s Clock Per Vector > 1:

If the Step’s Clock Per Vector  is bigger then 1, then the user can set each phase and window value to any value within the range of 0 to  Step’s Clock Per Vector * system clock period, with the resolution of the system clock period divided by 8, while keeping the basic rule that Phase Asset > = Phase Return, and Window Open >= Window Close.

E.g.; If the Clock Per Vector  =2, and the  system clock period = 100nSec (10MHz clock period), then the available Phase and Window values are: as follows:

12.5 nSec , 25.0 nSec, 37.5 nSec, 50.0 nSec, 62.5 nSec, 75.0 nSec, 87.5 nSec, 100 nSec, 112.5 nSec, 125 nSec, 137.5 nSec, 150 nSec, 162.5 nSec, 175 nSec, 187.5 nSec.

Note: the function rounds the timing set values to the nears valid value as defined by the system clock period.

Example

The following example writes to the Timing Set memory offset 2 and index subset 1 with a phase assert of 0, phase return of 500, window open of 200, and window close of 300:

 

DOUBLE dPhaseAssert, dPhaseReturn, dWindowOpen, dWindowClose;

SHORT nStatus;

 

GtDio6xTimingSetMemoryWriteData (nHandle, 2, GTDIO6X_TIMING_SET_PHASE_WINDOW_1, 0, 500, 200, 300, &nStatus);

GtDio6xTimingSetMemoryReadData (nHandle, 2, GTDIO6X_TIMING_SET_PHASE_WINDOW_1, &dPhaseAssert, &dPhaseReturn, &dWindowOpen, &dWindowClose, &nStatus);

 

See Also

GtDio6xTimingSetMemoryReadData, GtDio6xStepSetTimingSetIndex, GtDio6xStepGetTimingSetIndex, GtDio6xGetErrorString