Difference between revisions of "Gate generator (GATEGEN)"

From LogicBox
Jump to: navigation, search
(LabVIEW Vi)
(Example VIs)
 
(One intermediate revision by the same user not shown)
Line 144: Line 144:
 
=== Example VIs ===
 
=== Example VIs ===
  
SU7XX_XX_test.vi
+
LP_GateGen_Test.vi:

Latest revision as of 10:16, 10 May 2016

LogicPool (TEMPLATE)

This module will created a Pulse after the arrival of a trigger. The pulse width and delay can be set. After the pulse was created , the module can trigger it self again. This feature can be used to create CLOCKs. It Does not need any Hardware submodule to work.

Models

There is three model, the only diferent is the width of an internal counter.

Model 0 -> 32 Bits

Model 1 -> 24 Bits

Model 2 -> 16 Bits

Model 3 -> 32 Bits

Model 4 -> 24 Bits

Model 5 -> 16 Bits


CBUS Address

Register Map

Module Address: 'G' or Ox47

Read register

Read registers
Register Address Name Data
0 VERSION, MODEL and Driver if any
Bit 31..25: VERSION HI
Bit 24..16: VERSION LOW
Bit 15..8 : MODEL
Bit 7: Status
Bit 6..0: Driver
1 STATUS Bit 7..0 is the counter active? is running?
2 COUNTER_VALUE Bit 31..0 Counter value, the width depends on Model

Write register

Write registers
Register Address Name Data
0 TRIGGER Bit 7..0: Select the input driver of the trigger
1 ENABLE Bit 7..0: Select the input driver of the enable signal of the counter
2 DELAY Bit 31..0: Set the value of the delay after the trigger, after writing this register the counter will be reseted, the width depends on Model
3 DURATION Bit 31..0: Set the width of the pulse, after writing this register the counter will be reseted, the width depends on Model
4 RETRIGGER Bit 0: If a new trigger arrives and the gate ganerator is still runnig, abort the current pulse and generate a new pulse, if not set the trigger will be ignored. After writing this register the counter will be reseted

LabVIEW Vi

GATEGEN.vi

GATEGENc.png


Pulse generator (GateGenerator) with programable Delay and Duration.

The meaning of almost inputs and outputs of this Vi depends on the input "Function". The global inputs and outputs does not depend on the "function" input:

Glogal Inputs

GATEGEN#: number of gate generator to be accesed (1..255).

USB In: Handle to the LogicBox (create by open.vi), if not connected will take a global. parameter, this only works with one LogicBox at a time.

error in: error handling input

Global Outputs

USB out: Handle to the LogicBox.

error out: error handling output

Functions

 Connect: enable, configurate and set the trigger driver signal.
   Inputs:
        "Params" set the Pulse delay and duration, width depends on model
        "Enable" enable or disable the module 
        "TRIG" set the signal number which will drive the trigger. This signal can be set or clear manually using the module "B_S.vi" (Bool to Signal).
        "Mode" Non retrigger: Ignore the trigger until the gate generator is free.
               Retrigger: If a new trigger arrives and the gate ganerator is still runnig, abort the current pulse and generate a new pulse 
     Outputs:
        "Gate" signal number in which the pulse is generated         
 Set Trig: set the signal number which will drive the trigger.
   Input:  "TRIG" set the signal number which will drive the trigger. This signal can be set or clear manually using the module "B_S.vi" (Bool to Signal).
 Set Enable: enable or disable the module
   Input: "Enable" enable or disable the module 

 Get Gate: get the gate (Pulse) value and the signal number in which the pulse is generated.
   Output: "Gate" signal number in which the pulse is generated 
 Read Busy: get the status of the module (Running or waiting for trigger)
   Output: "Busy" status of the module
 Write Params: set the Pulse delay and duration.
   Input: "Params" set the Pulse delay and duration, width depends on model
 Read Counter: read the value of the internal counter used to generated the pulse:
   Output: "Gate" contains the current value of the counter.  
 Write Triggermode & Clear Counter: set Triggermode &  resets counter to 0.
   Input: "Mode" Non retrigger: Ignore the trigger until the gate generator is free.
                 Retrigger: If a new trigger arrives and the gate ganerator is still runnig, abort the current pulse and generate a new pulse

Example VIs

LP_GateGen_Test.vi: