Home
Digitizers User Manual
Contents
1. Time in ms 250 MHz Pentium 500 MHz Pentium 800 MHz Pentium of Samples T T R T T R T T R Segments Segment 1 200 0 20 0 22 1 10 0 10 0 12 1 13 0 06 0 08 1 17 1 1K 0 21 0 25 1 17 0 11 0 13 1 20 0 07 0 09 1 22 1 10K 0 30 0 52 1 72 0 20 0 31 1 56 0 16 0 23 1 45 1 100 K 1 20 3 22 2 68 1 10 2 11 1 92 1 06 1 70 1 60 1 1M 10 2 30 2 2 96 10 1 20 1 1 99 100 16 3 1 62 10 200 2 02 043 0 21 1 02 0 26 0 25 0 65 0 19 0 30 10 1K 2 10 0 67 0 32 1 10 0 42 0 38 0 73 0 32 0 45 10 10K 3 00 3 37 1 12 2 00 2 22 1 11 163 1 79 1 10 10 100 K 12 0 30 4 2 53 11 0 20 2 1 84 106 164 1 54 10 1M 102 300 2 94 101 200 1 98 101 163 1 62 100 200 20 2 2 47 0 12 10 2 1 67 0 16 6 45 1 337 0 21 100 1K 21 0 4 87 0 23 11 0 3 27 0 30 7 25 2 67 0 37 100 10K 30 0 31 9 1 06 20 0 21 3 1 06 16 2 17 3 1 06 100 100 K 120 302 2 52 110 202 1 83 106 164 1 54 1000 200 202 22 9 0 11 102 15 8 0 16 64 5 13 2 0 20 1000 1K 210 46 9 0 22 110 31 8 0 29 72 5 26 2 0 36 1000 10K 300 317 1 06 200 212 1 06 163 170 1 06 8000 200 1616 182 0 11 816 126 0 15 516 105 0 20 Programmer s Guide Page 106 of 107 acqiris Time in ms 250 MHz Pentium 500 MHz Pentium 800 MHz Pentium 8000 1K 1680 374 0 22 880 254 0 29 580 209 0 36 8000 2K 1760 614 0 35 960 414 0 43 660 339 0 51 Comments e We assume a 2 GS s digitizer running at the highest sampling rate direct connection of the digitizer to the host PCI bus or th
2. Sample tmax Sample tmax 1 Sample tmax 2 Sample tmax 3 Sample tmax 4 Sample tmax 3 Sample tmax 2 Sample tmax 1 Peak region block 16 points 31 24 8 bits 23 16 8 bits 15 8 8 bits 7 0 8 bits Flag 00010010 0x00 Valid Left Valid Right 31 0 32 bits Peak Position tmax 31 24 8 bits 23 16 8 bits 15 8 8 bits 7 0 8 bits Sample tmax 4 Sample tmax 5 Sample tmax 6 Sample tmax 7 Sample tmax Sample tmax 1 Sample tmax 2 Sample tmax 3 Sample tmax 4 Sample tmax 3 Sample tmax 2 Sample tmax 1 Sample tmax 8 Sample tmax 7 Sample tmax 6 Sample tmax 5 The peak position is counted relative to the beginning of the first segment of the acquisition Thus the position also gives the segment number of the peak The sample data value is the raw data value Valid Left and Valid Right give the number of valid data points lt tmax and gt tmax respectively Sample tmax validLeft and Sample tmax validRight are the first and last valid points respectively If you need to know the segment time stamps you can read the gated data If the user or threshold gate parameters are set appropriately the amount of unwanted data can be minimized 3 9 7 3 Reading the peaks The results for all of the peaks in the current event can be read out using readMode ReadModePeak 4 The waveform descriptor structure contains the value actualData
3. axStartDelay Purpose Start delay in samples Prefixes Access Type Values RW integer Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcqrsD1_configAvgConfig id channel StartDelay amp start Discussion May assume values between 0 and 33554400 16777216 in steps of 16 32 as explained below The limit is StepSize 1024 1024 1 The granularity is 16 for the AP100 AP101 and the AP240 AP235 in Dual Channel mode and 32 for the AP200 AP201 and the AP240 AP235 in Single Channel mode axStartVetoEnable Purpose Select the functionality for the Control I O Trigger enable Input Prefixes Access Type Values RW string Trigger enable Start Veto Models AP100 AP200 ONLY Traditional API equivalent AcqrsD1_configAvgConfig id channel StartVetoEnable amp start Discussion This must be used in conjunction with ctrllO ASignal or ctrIIOBSignal being set to Trigger enable If set to Start Veto an Average Accumulation will only start after the computer starts the acquisition if the signal is high or if it goes high Programmer s Guide Page 69 of 107 acqiris axStopDelay Purpose Stop delay in samples Prefixes Access Type Values RW integer Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcgqrsD1_configAvgConfig id channel StopDelay amp stop Discussion
4. 3 8 Data Acquisition Digitizer operation is preceded by configuring the instrument parameters and then starting the acquisition sequence New settings are only loaded into the module when the acquisition is started there is one exception to this rule as discussed for analyzer user gate definition in section 3 5 2 Readout configuration Similarly you initiate an averaging operation by configuring the instrument parameters including those that control the averaging and then starting the combined acquisition averaging sequence The Averager module resets the accumulation buffers and then acquires the requested number of waveforms each preceded by a front panel trigger signal without any software intervention The AcqrsD1_acquireEx function allows an AP100 AP200 Averager to acquire additional data without resetting the accumulation Until the operation is terminated your application is free to execute other tasks There are several methods of detecting when the acquisition averaging operation has ended Finally you read the averaged waveform with the function AcqrsD1_readData as described below If you want to acquire several averaged waveforms under the same conditions there is no need to call the AcqrsD1_config functions again It is sufficient to execute a loop over the start wait read functions In principle a subsequent start will happen considerably faster than the first one that was required to load the full configuration
5. 3 8 1 Starting an Acquisition Use the following line of code for starting an acquisition AcqrsD1_acquire instrID start the acquisition One such command is required for each module in use However if several digitizers are combined to a single Multilnstrument with ASBus only a single command is needed for the combined instrument 3 8 2 Checking if Ready for Trigger If many modules are being used it may be useful to know when they are all ready to accept a trigger This can be done by verifying that they are all finished with their pre trigger phase PreTrigger 0 by using the call below to all instruments or the last instrument started Programmer s Guide Page 32 of 107 acqiris AcgqesDl getinstrimentinfo instrid lsPretriggerRunning amp PreTrigger 3 8 3 Waiting for End of Acquisition Waveforms cannot be read from the digitizer until the acquisition is terminated The application may wait for an acquisition to end either by polling or by waiting for interrupt A Simple Polling use the following code fragment for polling the interrupt status int done 0 long timeoutCounter 100000 while done amp amp timeoutCounter gt 0 AcqrsD1_acqDone instrID done poll for status if timeoutCounter lt 0 timeout stop acquisition STOP ACQUISITION NOTE The code above has the disadvantage of wasting CPU time while checking the instrument status during the entire acquisition period In
6. ALL Traditional API equivalent AcqrsD1_configVertical id channel offset AcqrsD1_getVertical id channel amp offset Discussion The mid range ADC value corresponds to the offset This is the opposite of the convention in the traditional API Programmer s Guide Page 79 of 107 acqiris chScale2ndF actor Purpose Functions as an additional multiplier for the conversion of raw ADC values to volts or other user units Prefixes Access Type Values channel RW double Models ALL Traditional API equivalent NONE Discussion See the MATLAB discussion in the Programmer s Guide section 2 5 or section 6 2 4 of the SP201 Manual chScaleF actor Programmer s Guide Purpose Functions as an additional multiplier for the conversion of raw ADC values to volts or other user units Prefixes Access Type Values channel RW double Models ALL Traditional API equivalent NONE Discussion See the MATLAB discussion in the Programmer s Guide section 2 5 or section 6 2 4 of the SP201 Manual Page 80 of 107 acqiris chScaleOffset Purpose Functions as an additive constant for the conversion of raw ADC values to volts or other user units Prefixes Access Type Values channel RW double Models ALL Traditional API equivalent NONE Discussion See the MATLAB discussion in the Programmer s Guide section 2 5 or sect
7. AcqrsD1_getNbrChannels instrID amp nbrChannels Channel corresponds to channel 1 of module 0 Channel numbers increase first through module 0 then through modules 1 2 etc For Acqiris CC10x crates when a Multilnstrument is defined with AcqrsD1_multiInstrAutoDefine module 0 is always closest to the controller slot whereas with AcqrsD1_multilnstrDefine it corresponds to the first module in the initializing list The Acqiris CC121 crates have a different ordering please refer to the Acqiris CC121 CompactPCI Crate User Manual E g when combining 3 DC270 4 channel digitizers you would use channel number 10 in the function calls config get_MultiInput config get_Vertical and readChar RealWform if you wanted to refer to Input 2 of the third DC270 Channel numbering does not depend on which module is the actual clock or trigger master 3 15 2 Trigger Source Numbering with ASBus Acgqiris digitizers do not necessarily have as many internal triggers as channel inputs nor exactly one external trigger You should retrieve for every Multilnstrument additional information with the following calls AcqrsD1_getInstrumentInfo instrID NbrinternalTriggers amp nbrintTrigs AcgqrsD1_getInstrumentInfo instrID NbrExternalTriggers amp nbrExtTrigs AcgqrsD1_getInstrumentInfo instrID NbrModulesInInstrument amp nbrModules nbrintTrigsPerModule nbrIntTrigs nbrModules nbrExtTrigsPerModule
8. HighFreq S it d Models ALL Traditional API equivalent NONE Discussion Identifies the kind of hardware available for the channel chUnits Purpose Allows the RW client to set the vertical units string for data values of a channel for the use of all clients Prefixes Access Type Values Channel RW string any string Models ALL Traditional API equivalent NONE Discussion Digitizer data in volts can be subject to a linear transformation which also changes the units of the result This attribute stores the string associated with the new unit so that it is available to all client applications See the discussion in section 2 5 MATLAB or section 6 2 4 of the SP201 Manual Programmer s Guide Page 83 of 107 acgiris ckDelay Purpose Control the total number of samples digitized in a Continuous External clock acquisition Prefixes Access Type Values RW integer Models ALL Traditional API equivalent AcqrsD1_configExtClock id delayNbrSamples AcqrsD1 getExtClock id amp delayNbrSamples Discussion See section 3 11 of the Programmer s Reference manual ckThreshL vl Purpose Control the threshold level for External clock or Reference operation Prefixes Access Type Values RW double Models ALL Traditional API equivalent AcqrsD1 configExtClock id inputThreshold AcqrsD1 getExtClock id amp
9. gt Generate 20 bursts of 2000 clock pulses at 33 3 MHz At the end you need to inform the host computer to terminate the acquisition and AcgqrEsDl stopAcquisition instrib ACGESD readxXxxWformtinstrID di Note that the sampling rate and the time between bursts have no incidence on the configuration parameters of the digitizer i e they appear nowhere Example for Termination 2 if you wanted to acquire 5000 waveforms of 200 data points each you would write AcgrsD1_configMemory instrID 100000 1 xtClock instriD 1 Enreshold 0 0 0 0 015 AcgrsDl1_acquire instrID start the acquisition El AcqrsD1_configl gt Generate 5000 bursts of 200 clock pulses at the required frequency At the end you need to generate 2 160 320 640 additional clock pulses AcqrsD1 waitForEndOfAcquisition instrID timeOut Acgrsepl readXXXWtormiinstriD 7 The 320 640 on 2 GS s or 1280 on 4 GS s digitizers extra clocks could be generated by 1 or more extra bursts of 200 clock cycles or a special burst There is no risk of overwriting the earliest data since the memory is not circular in this mode Comments valid for both termination mechanisms Although the function AcqrsD1_acquire sets it to the ready state the digitizer cannot actually record data while the external clock is idle The clock burst must start after the digitizer has been started and it must start in a very clean way 1 e the first pu
10. Trigger settings chBandwidthLimit trCoupling trSlope TrThres2 trTVLine Control IO settings ctrllOASignal ctrllOPxiStar channelEnable chType fcMeasure input Averager settings axDitherRange axP1Signal axSegments axStopDelay chAxInvertData chAxTDCHistoEnable chAxThreshold Not applicable chComment instrSetupName tbComment Programmer s Guide chTime2ndOffset ckDelay extCkRatio extSparsing samplingFreq time Window chFullScale trRelThres1 trSrcEnabled trThresUnit trTVStandard ctrllOBSignal ctrllOTrOutLevel channelName convertersPerChan fcSignalChannel name axNbrRoundRobins axP2Signal axStartDelay axTrigAlways chAxNoiseBase chAxTDCHistoIncr chAxThresholdEnable chSetupName mode trComment acqiris chTime3rdOffset ckThreshLvl extInputFreq memoryUsage samplingIntv trDelay trClass trRelThres2 trThres 1 trT VField ctrllOPxiRefl0MHz ctrllOTrOutResync channelUse fcApertureTime fcTargetValue axNbrWaveforms axSamples axStartVetoEnable axTrigResync chAxNoiseBaseEnable chAxTDCHistoMinTOT instrComment modeOption trSrcComment Page 63 of 107 4 3 Traditional API grouping of attributes acqiris Old API Uage AcqrsD1 Attribute equivalent _configA vgConfig axDitherRange axNbrRoundRobins axNbrWaveforms axP 1 Signal axP2Signal axSamples axSegments axStar
11. 1 samples In this case the trigger timestamps of the sequence acquisition mode are not available Depending on the ratio of sampFrequency inputFrequency a waveform is sampled either on negative going transitions of the external clock signal through the user defined threshold or when the ratio is gt 1 on both of the transitions NOTE First generation digitizers that have more than one converter channel DC240 DP210 and DP211 will generate two data samples for each sampling interval You must dimension your acquisition and readout for twice the normal amout of data and can then either drop every other data sample from the record or average the two data values which could enhance the signal to noise ratio 3 14 3 External Clock Start Stop The start stop external clock mode clockType 4 permits the application of a variable external clock It should not be used for the 10 bit or 12 bit digitizers The clock can be setup to give bursts during which the frequency is between 10 MHz and 500 MHz The first sample of each burst may have to be ignored The waveform is sampled on positive going transitions of the external clock signal through the user defined threshold Thus the sampling rate is equal to the input frequency There is no concept of trigger for this mode and therefore all trigger parameters will be ignored This also means that there is no concept of sequence acquisition Operation in a channel combined mode is not
12. 15 OTHER INT Other internal trigger channels within a module up to 16 TRIGS 16 19 MODULE Module Number running from 0 to nbrModules 1 In single digitizers this field must be zero In Multilnstruments the trigger source number must be broken into a module number and a trigger channel number within the module 20 29 OTHER EXT Other external trigger channels within a module up to 12 TRIGS 30 EXT 2 External trigger channel 2 31 EXT 1 External trigger channel 1 In future digitizers with trigger pattern capabilities several trigger bits could be set simultaneously However no trigger pattern capabilities between different modules can be coded i e only a single module in a MultiInstrument can be the trigger source although the source in the single module might be a pattern For these reasons the module number must be coded explicitly To translate a trigger channel number trigChan into a trigger source pattern use the following code if eragthan gt 0 Internal Trigger long moduleNbr trigChan 1 nbrIntTrigsPerModule long inputNbr trigChan 1 nbrIntTrigsPerModule srcPattern moduleNbr lt lt 16 0x1 lt lt inputNbr else if trigChan lt 0 External Trigger trigChan trigChan long moduleNbr trigChan 1 nbrExtTrigsPerModule o long inputNbr trigChan 1 nbrExtTrigsPerModule srcPattern moduleNbr lt lt 16 0x80000000 gt gt inputNbr else PR
13. e Enter the command cd usr src e Run make to compile and link the program e Note that the include and library paths are defined in the Makefile The GetStarted cpp file contains a simple user program which e has globally allocated buffers to achieve optimal readout performance e finds the Acqiris digitizers on the target machine e initializes the first or only one e configures some acquisition parameters and rereads them for checking e loops 100 times over a cycle that starts the acquisition waits for it to terminate reads the waveform Programmer s Guide Page 17 of 107 acqiris 3 Programming an Acgiris Digitizer 3 1 Programming Hints When programming an Acgiris digitizer it is important to remember that the Acqiris driver must be freshly loaded this is usually automatic by any process that uses the modules This means that each process starts over with a completely clean view of the system and no knowledge of any previously determined calibration constants or settings Thus a calibration ought to be done before the modules are used for any acquisitions Of course the system may have to be recalibrated later if the temperature of the modules is changing Users cannot expect to control Acqiris modules with a succession of process invocations with each one executing a single command Only one process on a machine can have loaded the Acqiris driver at any given moment Most of the AcqrsD1 driver functions are re
14. every file that will access Acqiris Device Driver functions e The project should include the AqDrv4 lib file 2 3 LabVIEW Getting Started Application Example Configuration Status Action Data Utility a al Had We Close Saa tit i EUA ke BOLO a ral a bares The AqDx Acqiris Digitizer driver for LabVIEW conforms to National Instruments Instrument Driver Standard If LabVIEW is installed on the target machine when the Acqiris software is installed the AqDx driver interfaces will be copied to the LabVIEW n Instr lib directory The driver function VI s can then be found on the Functions palette block diagram Instrument Drivers subpalette There is also a Getting Started VI as well as some example VI s The standard API help file is available from within LabVIEW The Revision Query VI gives information on the current version There are actually two llb files the AqDx llb containing the routines shown above and the AqDx_obs llb with deprecated but still usable routines Programmer s Guide Page 9 of 107 acqiris 2 3 1 Getting Started VI File Edit Operate Tools Browse Window Help gt al Ofu it Application Font 1 tor Tar Resouce Name Channel Horizontal Settings Vertical Settings error out dataDesc c 4 a a OO E A FECUINSTRO an Number of Segments ull Scale status code returnedSamplesPerSeq x Trigger Settings ae ol 5 00 E aT E label as Trigger Source Trigger Coupling va sit beta
15. in us Extra Number of overhead data points per segment Cpy Time to copy a sample in us The formulas above assume that M and N correspond to the number segments and samples set with the function AcqrsD1_configMemory If fewer segments or samples are transferred the timing might be somewhat less favorable than estimated by the formula 1 The transfer time X is typically 0 009 to 0 01 us 9 10 ns per 8 bit sample for digitizers directly inserted on the PCI bus of the host computer or connected through the SBS Bit3 interface Acqiris model number IC200 If a digitizer is connected through the National Instruments MXI 3 interface Xp is typically 0 012 us 12 ns Of course these times would get larger if there was considerable additional I O traffic on the PCI bus 2 The DMA overhead time Ovhdpya is approximately 50 000 usec Pentium CPU speed in MHz Thus for a 250 MHz Pentium Ovhdpma is 200 us and for a 500 MHz Pentium it is 100 ps With applications running under Windows 95 or 98 Ovhdpma has been observed to be 20 lower Programmer s Guide Page 104 of 107 acqiris 3 The circular buffer analysis overhead time Ovhdpuffer is 2 500 us Pentium CPU speed in MHz Thus for a 250 MHz Pentium Ovhdpuffer is 10 us and for a 500 MHz Pentium 5 pus 4 An Extra number of data samples must be transferred to the host computer with the memory image It depends on the sampling interval in ns and on the digitizer typ
16. nbrExtTrigs nbrModules In a Multilnstrument composed of 4 DC240 2 channel 2 GS s digitizers you would get 8 internal trigger sources 4 external trigger sources and 4 for the value of nbrModules Thus nbrIntTrigsPerModule would be 2 and nbrExtTrigsPerModule would be 1 as expected for a DC240 Internal triggers are associated to the input channels and follow the same numbering rules External triggers follow similar rules i e extTrig 1 corresponds to external trigger 1 of the first module extTrig 2 corresponds to external trigger 2 of the first module if nbrExtTrigsPerModule gt 1 or to external trigger 1 of the second module etc The externalTrigger 2 is the name used for the PXI Bus Star Trigger The functions AcqrsD1_configTrigSource and AcqrsD1_getTrigSource use the explicit trigger channel number with the internal trigger channel running from 1 to nbrIntTrigs and the external trigger running from 1 to nbrExtTrigs Note that 0 is an invalid trigger source resulting in an error code The functions AcqrsD1_configTrigClass and AcqrsD1_getTrigClass encode the trigger source in a 32 bit source pattern 31 30 20 29 16 19 5 15 4 3 2 1 0 Ext 1 Ext2 Other Ext Trigs Module Other Int Trigs In 5 In 4 In 3 In 2 In 1 0 IN 1 Internal trigger channel 1 Programmer s Guide Page 56 of 107 acqiris 1 IN2 Internal trigger channel 2 2 4 Internal trigger channels 3 4 5 IN 3 IN 4 IN5 5
17. AN ACQIRIS DIGITIZER provides information on using the device driver functions to operate an Acqiris digitizer Chapter 4 ATTRIBUTES contains reference information about attributes The attribute interface to the driver can be used with AcqirisMAQS the MATLAB interface and the SP201 Software Development Kit Programmer s Guide Page 7 of 107 acqiris The accompanying Programmer s Reference manual is divided into 2 sections Chapter 1 INTRODUCTION describes what can be found where in the documentation and how to use it Chapter 2 DEVICE DRIVER FUNCTION REFERENCE contains a full device driver function reference This documents the traditional Application Program Interface API as it can be used in the following environments LabWindowsCVI Visual C LabVIEW MATLAB Visual Basic Visual Basic NET 1 3 Conventions Used in This Manual The following conventions are used in this manual This icon to the left of text warns that an important point must be observed WARNING Denotes a warning which advises you of precautions to take to avoid being electrically shocked CAUTION Denotes a caution which advises you of precautions to take to avoid electrical mechanical or operational damages NOTE Denotes a note which alerts you to important information Italic text denotes a warning caution or note Bold Italic text is used to emphasize an important point in the text or a note mono text is used for sections of code
18. AcqrsD1_configMode instrID 3 0 memoryBank AcqrsD1_acquire instrID Acquire into bank 0 AcqrsD1_waitForEndOfAcquisition instrID timeout At this point you should check the return value Programmer s Guide Page 47 of 107 acqiris bool finished false while finished memoryBank memoryBank 1 8 0x1 switch to other bank AcqrsD1_configMode instrID 3 0 memoryBank AcgrsDl1_acquire instrID start new acquisition AcgrsDl_processData instrID 0 0 start processing AcqrsD1_waitForEndOfProcessing instrID timeout At this point you should check the return value readParams dataType ReadReal64 readParams readMode ReadModePeak readParams nbrSegments 1 readParams firstSampleInSeg 0 readParams segmentOffset 0 readParams firstSegment 0 Read first segment readParams nbrSamplesInSeg 2 nbrPeaks pos and neg peak readParams dataArraySize 2 sizeof double nbrPeaks readParams segDescArraySize 0 readParams flags 0 readParams reserved 0 readParams reserved2 0 0 readParams reserved3 0 0 AcgrsD1_readData instrID channel amp readParams waveformArray amp dataDesc NULL analyse and store data AcqrsD1_waitForEndOfAcquisition instriID timeout read original data if desired check on loop termination conditions and set finished The returned waveformArray contains exactly 2 nbrGates peaks each
19. Command to lt AcqirisDxRoot gt MATLAB or the file from that directory to the directory of your choice GetStarted Filename Aq_GetStarted m Argument No Argument This first example shows you how to perform a single acquisition The desired configuration is loaded You then start the acquisition and read and plot the acquired data 2 6 Phar Lap ETS The sample program is written for the Microsoft Visual Studio environment Open the project file GetStartedETS dsp The GetStartedETS cpp file contains a simple user program which e finds the Acqiris digitizers on the target machine e initializes the first or only one e configures some acquisition parameters and rereads some of them for checking e starts the acquisition e waits for it to terminate e reads the waveform e saves a binary disk file on the target with the data The program can be built downloaded and executed debugged from Visual Studio If FPGA bit files are required for the instruments installed they can be transferred to the target s hard disk using the pharemb monitor utility makehd The current version appears to work for Acqiris PCI modules only Programmer s Guide Page 16 of 107 acqiris 2 7 Wind River VxWorks Tornado The VxWorks sample program is written for the Tornado environment The GetStartedVxW cpp file contains a simple user program which e spawns a process with a large stack as needed by the Acqiris driver e finds the Acqiris digitizers
20. Discussion For a channel the gain LSB is the full scale divided by the number of bits in the output data representation This is not always the same as the ADC gain that is calculated using the actual number of bits of the ADC For an external trigger this attribute is used to control the full scale range of the allowed trigger level Studying the current range of the attribute may be needed to understand all of the possible values chImpedance Purpose Control the input impedance of a channel Prefixes Access Type Values channel amp ext RW string 50 IM Gnad Models ALL Traditional API equivalent AcgrsD1_configVertical id coupling AcgrsD1_getVertical id amp coupling Discussion Studying the current range of the attribute may be needed to understand all of the possible values Programmer s Guide Page 78 of 107 acqiris chInput Purpose Control the choice of input BNC for some single channel units Prefixes Access Type Values channel RW string A or B Models DP111 DP211 Traditional API equivalent AcgrsD1_configMultInput id channel input AcgrsD1_getMultInput id channel input Discussion This command is only of interest for single channel units allowing the choice of A or B inputs chOffset Purpose Control the DC offset of a channel Prefixes Access Type Values channel RW double In V Models
21. E ENEE sane audit eiA 57 3 16 2 Starton Trigger ii atada dee 58 3 16 3 EU WE A A a it 59 3 17 Readout of Battery Backed up Memories ccceccceseessesesceeeceecesecsecsecseecaeecaeeeseeneeeeseeereees 60 3 17 1 Preparations before Power Offf ccccesseesseesceesceeeecesecseecaeecaeeeseeeaeeeeeeeeeeeeeeeeeeeneensees 60 3 17 2 Recovery after Power Oi iii iii 60 3 18 Reading the Digitizer Temperature ccccecccesecsceesseeseesesceseceseesecaecasecaaecaeecaeseseeneeeeeeeenees 60 de ATTRIBUTES sicssississsssoasessiscessasenessessosspsvascasssesseasnsvanseonscaseaogavavsnsssessencosuavdnooncasecepssassnsonessenconeay nonss 4 1 Attribute dependencies and coerced Values ccceecceescessceeeceseceseceneceeeeseeeseeeeeeneeereeeeenereneenaees 4 2 Functional grouping of attributes 0 cccccccseesseescesecesscesecesecesecaecaecseecaeecaeeeeeeneeeeeeseeeeerenteensees 4 3 Traditional API grouping of attributes ccccccecsceescessceeeceseceseceeecaeecaeeeaeeeeeeneeeeeeeeeneeneensees 4 4 Detailed description of attributes Alphabetically ordered axDithetRange schist patient ta axNbrRoundRobins AxNbrWaveforms a aaar axP1Signal axP2Signal axSamples AR OM id a A A AAA PA iii ge toes AKS tartDelay votada dr a olaa ide lada lidera Programmer s Guide Page 4 of 107 acqiris AKS tart V etOH Nab le senesinden a o edad 69 AKS COPD OR RR 70 ATACA WS ds sI Satie ond HE ee BEARS ent a aa 7
22. May assume values between 0 and 2097120 1048560 in steps of of 16 32 as explained below The limit is StepSize 64 1024 1 The granularity is 16 for the AP100 AP101 and the AP240 AP235 in Dual Channel mode and 32 for the AP200 AP201 and the AP240 AP235 in Single Channel mode axTrigAlways Purpose Control whether the trigger out signal should be generated only for accepted triggers or for all of them Prefixes Access Type Values RW string Off or On Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcgqrsD1_configAvgConfig id channel TrigAlways amp always Discussion Programmer s Guide Page 70 of 107 axTrigResync Purpose acqiris Controls whether the trigger should be used to resynchronize the sampling clock Prefixes Access Type Values RW string NoResync Resync or FreeRun Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcqrsD1_configAvgConfig id channel TrigResync amp sync Discussion The TrigResync values NoResync and Resync require a valid trigger while FreeRun requires no trigger useful for background acquisition banks Purpose Controls whether multiple banks of data are to be used in some of the 10 bit FAMILY digitizers Prefixes Access Type Values RW integer 1 to 12500 Models DC222 DC252 DC282 Traditional AP
23. Operation The ASBus and ASBus are intended to synchronize a number of similar CompactPCI modules in order to make them appear as a single instrument with more channels After a number of digitizers have been Programmer s Guide Page 55 of 107 acqiris combined with the functions AcqrsD1_multiInstrAutoDefine or AcqrsD1_multiInstrDefine for ASBus only each combined instrument can be controlled when using its instrumentID with the same functions as single digitizers Acqiris recommends the use of the automatic function unless you need special control over the order in which the digitizers are numbered within the Multilnstrument Please refer to the function AcqrsD1_multiInstrAutoDefine for details If you mix modules of the same model number with different memory lengths you must make sure that you never use more than the shortest memory length available Otherwise you will get invalid data on the short memory modules Under ASBus the automatic function always assigns the clock master role to a module with the shortest memory with the result that the function AcqrsD1_configMemory refuses to accept memory lengths beyond the shortest When configuring manually you might want to do the same Otherwise you need to explicitly check your requested memory lengths 3 15 1 Channel Numbering with ASBus In a Multilnstrument input channels are numbered from 1 to nbrChannels The number of channels can be retrieved with the function call
24. VExamples c2 cewek Ah iho Been A we etd ee RR es RA E E 105 5 3 Comparison Chart for Typical Transfers 0 ccccesccesecesecesecsceeeeeeneeeeeeseceeceseenseeeseeeaeenaeenseenes 106 Programmer s Guide Page 6 of 107 acqiris 1 Introduction 1 1 Message to the User Congratulations on having purchased an Acqiris data conversion product Acqiris Digitizers are high speed data acquisition modules designed for capturing high frequency electronic signals To get the most out of the products we recommend that you read the accompanying product User Manual this Programmer s Guide and the Programmers Reference manual carefully We trust that the product you have purchased as well as the accompanying software will meet with your expectations and provide you with a high quality solution to your data conversion applications 1 2 Using this Manual This guide assumes you are familiar with the operation of a personal computer PC running a Windows 95 98 2000 NT4 XP or other supported operating system In addition you ought to be familiar with the fundamentals of the programming environment that you will be using to control your Acqiris product It also assumes you have a basic understanding of the principles of data acquisition using either a waveform digitizer or a digital oscilloscope The User Manual that you also have received or have access to has important and detailed instructions concerning your Acqiris product You should consult i
25. counterparts to these functions AcqrsD1_getHorizontal AcqrsD1_getMemory AcqrsD1_getVertical AcqrsD1_getTrigClass and AcqrsD1_getTrigSource which you can interrogate The function AcqrsD1_configTrigClass configures the trigger class control parameters of the digitizer On current Acqiris products the edge trigger class is the only class available For this class the available source patterns are Channel 1 through 4 or the external trigger The AcqrsD1_configTrigSource function configures the source parameters coupling slope and level as shown in the example above Notice that the functions AcqrsD1_configTrigClass and AcqrsD1_configTrigSource must always be used together in order to complete the setup of the trigger configuration Refer to chapter 2 DEVICE DRIVER FUNCTION REFERENCE of the Programmer s Reference Manual for a detailed description of these two functions The helper functions AcqrsD1_bestSampInterval and AcqrsD1_bestNominalSamples are sometimes useful for deciding on the nominal number of data points and the sampling interval to use for a given time window to cover If you ask for a nominal number of samples the system actually needs some additional samples for reasons of data alignment acquisition stop time overhead and other reasons In some cases the additional invisible samples can exceed the number of visible ones The helper functions take such memory overheads into account when advising you on the recommended sampling
26. inputThreshold Discussion See section 3 11 of the Programmer s Reference manual Programmer s Guide Page 84 of 107 acqiris ckType Purpose Control the type of External clock or Reference operation Prefixes Access Type Values RW string Internal ExtCkContinuous ExtRef10MHz ExtCkStartStop Models ALL Traditional API equivalent AcqrsD1_configExtClock id clockType AcqrsD1_getExtClock id amp clockType Discussion See section 3 11 External Clock and Reference of the Programmer s Reference manual convertersPerChan Purpose Returns the number of ADC converters used for each channel Prefixes Access Type Values RO integer 1 2 4 Models DC135 DC140 DC152 DC241 DC241A DC252 DC271 DC271A DC271 AR DC282 DP235 DP240 AP235 AP240 Traditional API equivalent AcqrsD1_getChannelCombination id amp nbrConvertersPerChannel Discussion Use input to control both this number and the choice of active channels Programmer s Guide Page 85 of 107 acqiris ctrllO ASignal Purpose Control the functionality of the CtrlI O A connector Prefixes Access Type Values RW string Models DC271 FAMILY 10 bit FAMILY 12 bit FAMILY Traditional API equivalent AcgrsD1 _configControlIo0 id 1 AcqrsD1_getControll0 id 1 Discussion Studying the current rang
27. near as possible to the center module in order to minimize propagation delays ASBus 6U digitizers e The master module is chosen as near as possible to the center module in order to minimize propagation delays There can be at most 5 modules in the MultilInstrument ASBus 3U digitizers e The master module will be the rightmost of up to 3 modules The function AcqrsD1_getInstrumentData will return the information about the master module If you want control over which module is the master and in which order they should appear use the manual definition described in the next section 3 2 7 Manual Definition of Multilnstruments The function AcqrsD1_multilnstrDefine permits a manual definition of how to combine multiple digitizers with the ASBus It cannot be used for ASBus instruments Programmer s Guide Page 21 of 107 acqiris Use a code fragment like the following one for the manual combination of digitizers ViSession instrumentID 10 idList 6 long nbriInstruments Vistatue status ViString options cal 0 since calibration will be performed explicitly later status AcgrsD1 _getNbrPhysicalInstruments amp nbrinstruments Initialize the digitizers for long i 0 i lt nbrinstruments i char resourceName 20 sprintf resourceName PCI INSTR d i status AcgrsD1 InitWithOptions resourceName VI_FALSE VI_FALSE options amp instrumentID i Now combine the fir
28. of which is described by 2 double precision floating point values The first pair of doubles contains the positive peak position within the gate in units of samples and the amplitude in codes The second pair of doubles contains the negative peak position and its amplitude The peak amplitude is a signed number in the range 128 0 127 0 with the two extreme values indicating underflow overflow conditions The peak position is normally positive Negative values are used for warnings In particular the value DBL_MAX indicates that no peak was found The define of DBL_MAX can be found in the float h include file Each peak contains the following two words 0 63 Peak Position in samples from start of gate 0 63 Peak Amplitude in ADC units Use the following code to obtain the peak positions for the i th gate double positivePeakPos amp waveformArray 0 8 i double negativePeakPos amp waveformArray 4 8 i Programmer s Guide Page 48 of 107 acqiris 3 10 Trigger Delay and Horizontal Waveform Position When using a digitizer the user has 3 instrument setup variables with which to position the acquired waveform in time e samplnterval the sampling interval inverse of the sampling frequency e nbrSamples the number of samples to acquire e delayTime the nominal trigger delay sampInterval Trigger delayTime nbrSamples By convention the nominal trigger delay is taken relative to the beginning o
29. on the target machine e initializes the first or only one e configures some acquisition parameters and rereads them for checking e loops 100 times over a cycle that starts the acquisition waits for it to terminate reads the waveform 2 7 1 Compiling This file can be compiled as is within the GetStartedVxW wsp Tornado workspace However please make sure to run an update to the project dependencies You may need to change the directory paths for the Tornado include files and the Acqiris include files if you move the Tornado directory or use a different development environment In the latter case you must verify that the debug flags D_VXWORKS D_ACQIRIS are present 2 7 2 Loading First download the Low Level kernel mode VxWorks Device Driver file VxWorksDriverPCLout to the target machine followed by the VxWorks Digitizer Driver file AcqirisVxWUMode out Finally you should download the VxWorks application GetStarted VxW out 2 7 3 Running the Program It is recommended that you follow the code with the debugger since it is the only way to see the response of the function calls immediately 2 8 Linux The AcqirisDemo program can simply be run from the AcqirisLinux directory by entering Demo AcqirisDemo The library usr lib libAnDBSLib a is compiled with the gcc 3 2 The Linux GetStarted sample program is provided ready to run It can also be created without the need of an additional development application
30. possible The AC SC Analyzers can be used in this mode A continuous clock frequency of up to 800 MHz to give 800 MS s sampling will work In this mode the horizontal control parameters sampInterval and delayTime are completely ignored as well as the value of delayNbrSamples The waveform length is as usual controlled by the number of samples in the function AcqrsD1_configMemory Careful synchronization between the function calls to the driver and the generation of the clock burst is required There are 2 ways of terminating an acquisition in the start stop mode 1 Generate a number of clock transitions that corresponds exactly to the requested number of samples and stop the acquisition with the function AcqrsD1_stopAcquisition This requires that the host computer obtain some external signal when the clock sequence is terminated 2 Generate some extra clock transitions which will fully terminate the acquisition You can then use the functions AcqrsD1_acqDone or AcqrsD1_waitForEndOfAcquisition to detect the end of acquisition Programmer s Guide Page 54 of 107 Pp P acqiris Example for Termination 1 if you wanted to acquire 20 waveforms of 2000 data points each at a sampling rate of 33 3 MHz and a time distance of 5 us between the waveforms you would use AcqrsD1_configMemory instrID 40000 1 AcgrsD1 _contigExtClock instrib 4 threshold 0 33 366 33 366 AcgrsDl1_acquire instrID start the acquisition
31. return the configuration values to be used for the next acquisition Use the following short code fragment for a device configuration Configure double sampInterval 1 e 9 delayTime 0 0 long nbrSamples 10000 nbrSegments 1 long channel 1 coupling 1 bandwidth 0 double fullScale 2 0 offset 0 0 long trigCoupling 0 trigSlope 0 double trigLevel 20 0 in of vertical Full Scale AcqrsD1_configHorizontal instrID sampInterval delayTime AcqrsD1_configMemory instrID nbrSamples nbrSegments Acgrsabl contigvertical instrib channel fullScale af set coupling bandwidth AcgrsD1_configlrigClass instrID 0 0x00000001 0 0 0 0 0 0 AcgrsD1l configlrigSource instrID channel trigCoupling trigSlope trigLevel 0 0 Comments Channel numbers run from to nbrChannels not from 0 Segment numbers however run from 0 to nbrSegments 1 Specifying more than 1 segment in AcqrsD1_configMemory implies the use of Sequence mode The 10 bit FAMILY instruments offer additional functionality through AcqrsD1_configMemoryEx For 10 bit units with extended memory there is the possibility of restricting memory use to the internal memory to reduce the maximum dead time between segments of a sequence acquisition The 5 main configuration functions are protected against illegal or incoherent values Thus the system might adapt the values you ask for There are 5 query
32. that directory to the directory of your choice Single Acquisition Filename Aq_SingleAcquisition m Argument No Argument This first example shows you how to perform a single acquisition The desired setup file is loaded You then create your AnalogInput object start the acquisition and then get and plot the acquired data Multiple Acquisition Filename Aq_MultipleA cquisition m Argument No Argument In this m file the main difference with the Single Acquisition example is that we put the acquisition sequence into a loop In that way you can manage multiple acquisitions and store data in the MATLAB Workspace Mode Live Filename Aq_ModeLive m Argument InstrumentID Default 0 Programmer s Guide Page 12 of 107 acqiris Use gt gt Aq ModeLive Select default digitizer ID 0 gt gt Aq ModeLive 2 Select digitizer with InstrumentID 2 This MATLAB program displays your signal in a live mode An Instrument Settings module that can be used during acquisition has been added There is also a menu that gives the possibility to load an existing setup file or to save to a new setup file You can modify the function applied to the selected channel You should look for the function named ProcessFen and modify it You can also add arguments if necessary 2 5 1 2 Setup and Settings Manipulating Attributes In the example called Aq ModeLive we offer the possibility to open an Instrument Settings windo
33. the current acquisition segment is normally terminated The digitizer then automatically initializes another acquisition into the next memory segment until all requested segments are filled 3 13 Timestamps The 10 bit Family of digitizers implements a timestamp to measure the time of the trigger for each acquisition segment These timestamps can be used to calculate the time between any two triggers for any pair of triggers over multiple acquisitions Programmer s Guide Page 50 of 107 acqiris The other older Acqiris digitizers feature a timestamp in order to measure the time between the triggers of consecutive segments in the same acquisition In fact the timestamp counter is started when the Sequence acquisition is started and keeps counting during the entire sequence The difference between the timestamps of any pair of not necessarily adjacent segments is the time between their respective triggers The timestamp value is returned as a 64 bit integer in units of picoseconds with a resolution identical to that of the trigger time interpolator see the appropriate product User manual The waveform readout function AcqrsD1_readData returns the timestamp value as 2 32 bit values In order to do time differences you should transform them into a 64 bit integer e In Visual C C use the 64 integer __int64 as follows _ int64 timeStamp timeStampHi timeStamp timeStamp lt lt 32 unsigned long timeStampLo Arithmetic o
34. time will mark the beginning of each segment Segment timestamps are mixed in with the data and not available through the usual segDesc array The entire time stamp is a 56 bit integer counting in units of 100 ns Here is the Time Stamp format Marker block 31 24 8 bits 23 0 24 bits Flag 00000100 0x04 Time Stamp MSB TimeStamp LSB The time stamp may be followed by a variable number of blocks of data with the following format Gate block 31 24 8 bits 23 0 24 bits Flag 00000000 Gate position from the origin of the acquisition not the segment 31 0 Gate length number of Data bytes always a multiple of 4 31 24 23 16 15 8 EN Data3 Data2 Datal Data0 Data4 When reading such data you should carefully check that you terminate correctly and do not read beyond the end of the transmitted data nor generate unphysical time coordinates for the data 3 9 6 4 Waveform storage requirements When using the routine AcqrsD1_readData you must allocate waveform storage and inform the driver about the number of bytes available Raw data readout requires exactly the number of bytes corresponding to the number of segments times the number of data points per segment User gate readout for each segment requires 8 bytes for the time stamp and an overhead of 8 bytes for each gate This must be added to the total number of samples in all of the gates to get the required length
35. trCoupling Purpose Control the trigger coupling of a trigger source signal Prefixes Access Type Values channel RW string DET AC HERO Models ALL Traditional API equivalent AcgrsD1 _configTrigSource id channel trigCoupling AcgqrsD1_getTrigSource id channel amp trigCoupling Discussion This attribute controls the coupling of the trigger source signal to the trigger discriminator Studying the current range of the attribute may be needed to understand the current range Programmer s Guide Page 97 of 107 acqiris trDelay Purpose Control the pre or post trigger delay time for an acquisition Prefixes Access Type Values RW double In seconds Models ALL Traditional API equivalent AcqrsD1_configHorizontal id delayTime AcqrsD1_getHorizontal id amp delayTime Discussion Studying the current range of the attribute may be needed to understand the current range trRelThres1 Purpose Control the trigger discriminator level for triggering Prefixes Access Type Values channel RW double in of full scale Models ALL Traditional API equivalent AcgrsD1_configTrigSource id channel triglevell AcqrsD1_getTrigSource id amp delayTime amp trigLevell Discussion The values for this attribute must be given in FS and where 0 0 corresponds to the middle of the input range The trigger discriminator level can
36. 0 CHAK Ver tates v izscces verve costes A A daca cabal aust eds nea tit bettas ea ies 72 CHAK NOISE BAS ini anal E EE 72 ChAXNoiseBasekinabl Cre iiesec eee aisha ead Sat ea ee aie Gah OGRA a ee es 73 chAxTDCHistoEnable ae T3 CHAXTDCHistolnicries thik de o taba Para ib a eon dea aes 74 ChAXTDCHistOMinTO Tis critico dildo ia bball tab d iia drid leales badness 74 CHA D aTa Aao le PEA tata AOA i e o SRA 75 ChAxXThresholdEnable iii A a A ass 75 channelUse chAttenuation ChBandwidth Limit sis civcces coscsesesescossecevces secstconsescbvsess cobcensecstccs sii din cegvvesncebceutacsbcus devedeandecebdeedecudcentesctveasestds 77 CHCOOUPLING iia iii cuveds dadetens cost cdds adi sees 77 CHEUNS E RO 78 CAMPESINA a 78 COMPU A E A Ad AE asii 79 O RO 79 Cl ed Ge a8 80 CHS CALE ACL cis cosccsseceucendecetovegesevecsss cas densecu cendescbuvedscedeen acasccssecttcaade ssduve dia din anda CRD SDE Adenda 80 ChScaleOPsetcs c cvccdssccvcsssectveadasscessse cavecesecehens ce ctbeatde ccbced de cutccs doscuestcu danna de cebces deduces de ddbushen cebean dando dedetocadesees 81 CHT Ime 2nd OHSC ts wetetecet coves tes tetassiesbde clades dlls ele dai edeatiasbes tects Taatuachgciad ind sdhosh os Toc ea ei n e Sanae 81 chTimesrdO sti A Ak La ehes 82 chTimeOffset AMO Ad a Aa Rd aaa aaa 86 AN oo eee cesecsseeccssecesecseessceseceaecseeseeesecsaecseeeeeseceaecseeeeesecaaecaeeeeeseceaecaeeeseeseceaecseeeseeeeaecneeesenaees 8
37. 0 sampInterval The true time reference for any waveform is the trigger point not the sampling times because the trigger is attached to a given feature of the waveform e g a transition at a predetermined level For highly Programmer s Guide Page 49 of 107 acqiris stable displays it is important to know the time between the trigger and the next sampling clock to within a fraction of the sampling interval and to place the displayed data points in such a way that the trigger point stays at a constant position This is particularly important for persistence displays or highly zoomed random interleaved displays as generated from overlaid segments where a single waveform or waveform segment contributes only a few data points to the display Acgqiris digitizers feature a Trigger Time Interpolator TTI which measures the time between the trigger event and the next sampling clock to a fraction of the sampling interval It permits very precise positioning of the acquired trace in highly zoomed displays particularly when multiple acquisitions of the same signal are used In many other applications this value can be ignored The following drawing completes the description of a real life waveform yore Origin sampInterval First data point f horPos Trigger delayTime nbrSamples e The value of delayTime positions exactly the left edge of the display or the exact nominal beginning of the waveform with r
38. 1_configMemory are replaced by NbrSamples and NbrSegments e The values nbrSamples startDelay and stopDelay must be integer multiples of the averaging block size which is always 16 in the AP100 or AP240 AP235 Dual channel mode and 32 in the AP200 or AP240 AP235 Single channel mode If the supplied value is not an integer multiple of the averaging block size it is truncated to the next lower integer multiple Thus nbrSamples 250 will be truncated to 240 15 16 on an AP100 and to 224 7 32 on an AP200 You can query the actual value with the function AcqrsD1_getAvgConfig e The value startDelay controls the time between the trigger and the first data sample that is to be added to the averager sum It is expressed in samples and must be an integer multiple of the Programmer s Guide Page 25 of 107 acqiris averaging block size which is always 16 in the AP100 or AP240 AP235 Dual channel mode and 32 in the AP200 or AP240 AP235 Single channel mode e The stopDelay permits the addition of an extra delay to the dead time between the averaging of subsequent waveforms Its minimum value may be zero It also is expressed in samples and must be an integer multiple of the averaging block size e The ditherRange value may be between 0 no dithering and 15 max dithering Please refer to the next section for further explanations 3 4 2 Dithering Dithering reduces the effect of non ideal differen
39. 1_stopAcquisition This mode is useful when only the last N out of many occurrences of a signal are of interest E g if you search for a rare event out of many occurrences and you only can determine its interest after the event has occurred then the Sequence Wrap mode is applicable While this mode even works for nbrSegments 1 in practice the value of nbrSegments should be at least 2 It is important to note that after the acquisition of a segment the digitizer automatically advances to the next memory section and immediately with a dead time of 1 us starts recording into it Thus the very last memory segment will necessarily contain uninteresting data since it will not be stopped with a trigger but be terminated with the software command AcqrsD1_stopAcquisition Use this code to use the Sequence Wrap mode AcgrsD1_configXXX configure other parameters AcgrsD1_configMode instrID 0 0 2 AcqrsD1 acquire instrID AcqrsD1_ stopAcquisition instrID The time at which the sequence is terminated with the function AcqrsD1_stopAcquisition depends on an external event e g operator intervention When reading the segments the segment number should take on the values 0 nbrSegments 1 They correspond to the memory section numbers in the digitizer not the time order of the acquired segments Example if nbrSegments 8 the time order of the acquired segments might be depending on when the sequence w
40. 2 DC222 DC252 DC282 since their behavior in this mode is quite different AP200 AP201 APIO0 APIO1 Averagers and Analyzers are considered to be first generation modules The horizontal control parameters samplnterval and delayTime as defined by AcqrsD1_configHorizontal are ignored You need to give the driver the current input frequency and the requested sampling frequency with the variables inputFrequency and sampFrequency of the function AcqrsD1_configExtClock The input frequency inputFrequency must be between 10 MHz and 500 MHz in the first generation models while it must be between 20 MHz and 2000 MHz for the second generation DC271 FAMILY or AP240 AP235 signal analysis platforms or for the 12 bit FAMILY between 100 MHz and the value for the maximum allowed sampling frequency Note that for normal operation of the 12 bit FAMILY digitizers the sFmax for each converter should be kept above 50 MHz The acceptable values for sampFrequency are dividers sFmax n of the maximum allowed sampling frequency sFmax where n 1 2 4 8 20 40 80 200 The sFmax depends on the model and on the number of combined channels nbrConvertersPerChannel of AcqrsD1_configChannelCombination Programmer s Guide Page 52 of 107 acqiris Model Input sFmax vs nbrConvertersPerChannel Frequency range MHz 1 2 4 DC122 100 2000 2 x inputFrequency DC135 20 2000 Y x inputFrequency x inputFrequency DC140 20 2000 1 x inputFrequency 1 x inputFrequenc
41. 6 CHIIOPXiREf OMA Zs asses eset hii hei ek te A ei hades 87 ctrllOPxiStar ctrllOTrOutLevel ctrl lOTrOUtResyOC iiss ives cepecece cdi castse causes sirios asik E E E ddesecebceuvacibedsdeseteasdadecoesadebceatesenerasest s 88 EXtEkKRatOwe iG ecyivkd cece inane e hn A behead seu 89 SA EN 89 extSamplingRate 90 AU ai 90 foA perture Time ii das 91 CMT A Rea Re a tt Biase A aie te 91 FeSignalChannel ive cedscccsadesesesssacecensecitcstsecadeasdetebseedece centesdbevase sdb ecdsecucessecstcendescdbetdecebdeetacstcenteciteetensevstsse cuss 92 foTarcety alue isis aan Mima se ndeeirn i hice 92 INPUts seiteess dra dl dai dd leia memoryUsage NAME concnccncncnnons samples samplinghreq E NN 95 SAMPlNYQ NEV iesire tsriscori ri sists sistis siete covebennde cebdeudscuNcenteschvececdverese cebdde decu cesdesddsaasacsdensacabcende eiii i 95 a E is deraes steed Seni eRe MEA Beh AS Ane RAR Rae ees 96 timeWindow 96 EAS er a A AAEE SC RO ee EDEN eT 97 tr OUP LI A A IA A au beets aaa eta ab ogee isan thes 97 NO 98 Programmer s Guide Page 5 of 107 acqiris trRelThres diiniita aa ad cuvecs a doccbaes a ds Ada dsd RAT dais ISP a IS ii A o be trSrcEnabled trThres1 trThres2 trThresUnit trTVField trTVLine A NR NN 5 APPENDIX A ESTIMATING DATA TRANSFER TIMES cscsssssssssssssesssssssessessesesseeseees 104 Sale Principles Formulas Hi ed eee Sa Mads ds ee eee he ee AR 104 52
42. Cxxx In these modules the on board FPGA s field programmable gate arrays contain processor logic needed to efficiently execute several crucial functions For Windows and Linux users they will be automatically programmed at startup before calibration The standard initialization using AcqrsD1_Init can be used The name for the FPGA program file is a synthesis of model FPGA destination and option information The file name suffix is always bit The automatic initialization mentioned above will load the FPGA files as follows e For the first time inititalization of a module needing an FPGA file the desired file will be searched for in the working directory of the application e Then the working directory will be searched for a file AqDrv4 ini e Finally the directory pointed to by the environment variable AcqirisDxDir will be searched for a file AqDrv4 ini e The AgDrv4 ini file should contain the name of a directory which will also be searched for the appropriate FPGA files Here is a typical example of its contents Acqiris fpgaPath C Program Files Acqiris firmware GeoMapPath C Program Files Acqiris bin The GeoMapPath entry will be described later in this chapter e The final path used will be remembered and used for all subsequent demands for this module In particular this applies if AcqrsD1_configMode is used to change functionality Additional Phar Lap ETS VxWorks Instructions For ETS and VxWorks users the nor
43. D timeout Read out data etc before calling again AcgrsD1_ acquire Note that the function AcqrsD1_acquire is still needed However it behaves somewhat differently in that is does not start data recording but waits until a trigger signal is received Due to some circuit delays the waveform recording starts approximately 20ns after the receipt of the trigger signal Furthermore the first data points may be invalid For the DC271 family this means that the first 8 ns worth of data should be ignored for sampling rates 4 GS s gt SR gt 500 MS s and the first 4 ns 16 points for SR 4 GS s 3 16 3 Sequence Wrap The normal operation of the digitizer requires that it stop recording waveforms when the pre defined number of segments has been acquired Thus nbrSegments triggers are needed to acquire the requested number of segments into the same number of different memory sections After the acquisition has terminated all of the waveform segments are finally available for readout The Sequence Wrap mode also pre defines the desired number of different memory sections but it permits a larger number of triggers After the first nbrSegments waveform segments are acquired the digitizer wraps around to the first memory segment and keeps on recording waveforms This sequence can go on indefinitely since no hardware condition will stop it The only way to terminate this infinite loop is to stop it with the function AcqrsD
44. D1_acquire Here is some sample code long g_gateLengthSum 3 long g_lastGate 3 long channel 1 gate 1 AcqrsD1_configAvgConfig instrID channel GateType amp gate Programmer s Guide Page 29 of 107 acqiris you can define up to 4095 gates GatePos and GateLength must both be multiples of 4 AgGateParameters configSetupData 100 long configObj SSR Default long gateSize 1000 this will be the size we want to read g_gateLengthSum channel 0 g_lastGate channel 1 a very simple example for int q 0 q lt q lastGate channel pgtt the first gate starts with the first point configSetupData g GatePos g gateSize configSetupData g GateLength gateSize g_gateLengthSum channel configSetupData g GateLength 8 status AcqrsD1_ configSetupArray instrID channel configObj g_lastGate channel configSetupData For threshold gate readout you have to define the threshold value in volts Data values greater than this will be selected for readout If desired you can use AcqrsD1_configAvgConfig with the InvertData parameter to choose data values less than the threshold In addition you can define the number of data values before and after each selected value that you always want to see This number is in the range 0 to 16 However the value will always be rounded up to the next highest multiple of 4 If two consecutive selected values are 32 or more samples apart a new gat
45. EndOfAcquisition must be used For all other cases the AP Analyzers implement an autoswitch mode that allows the dead time between acquisitions to be reduced to the minimum consistent with the readout of the data As usual the first acquisition must be initialized with a call to AcqrsD1_acquire instrID To allow the second acquisition to start as soon as possible a call to AcqrsD1_processData instrD processType 1 follows immediately Thereafter data can be read as soon as the processing is terminated and then the go ahead for the next acquisition can be given as desired 3 8 5 1 Sequence of actions for Autoswitch with event readout The AutoSwitch semaphore is set by the software and cleared by the FPGA If the readout process is longer than the acquisition process the AutoSwitch occurs directly after the software raises the AutoSwitch semaphore At the moment that the ProcessingEnd interrupt occurs the FPGA has already cleared the AutoSwitch Programmer s Guide Page 34 of 107 acqiris ia disabled int acqBanhkO f CSAC Ge int aca Bank 1 Y y GX J int ProcessingO L int Processing a readout J 1 Autoswitch O l S Description Software implementation The software configures the mode the AcqrsD1_configMode acquisition parameters and the readout AcqrsD1_configAvgConfig 1 The software starts the first acquisition AcqrsD1_acquire instrID 2 The s
46. I equivalent AcqrsD1_configMemoryEx id nbrSamplesHi nbrSamplesLo nbrSegments nbrBanks flags Discussion This attribute is needed to access the new features of some of the 10 bit FAMILY digitizers The SSR mode can be activated by setting banks gt 1 Programmer s Guide Page 71 of 107 acqiris chAxInvertData Purpose Indicate whether the data of the channel should be inverted Prefixes Access Type Values channel RW string OEE or on Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcqrsD1_configAvgConfig id channel InvertData amp invert Discussion If the data is inverted the most significant bit of the raw data will be flipped the threshold will select data values with voltages below the desired value chAxNoiseBase Purpose Value in Volts of the value to be added in Noise Supressed Averaging Prefixes Access Type Values channel RW double In Volts Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcgqrsD1_configAvgConfig id channel NoiseBase amp base Discussion The value will be transformed into the ADC raw data equivalent of the voltage value Programmer s Guide Page 72 of 107 acqiris chAxNoiseBaseEnable Purpose Allows the Noise Base value to be added to the data in Noise Supressed Averaging Prefixes Access T
47. ID 0 NbrSamples amp nbrSamples AcqrsD1_ configAvgConfig instrID 0 NbrSegments amp nbrSegments AcqrsD1_ configAvgConfig instrID 0 StartDelay amp startDelay 0 AcqrsD1_configAvgConfig IASEFTD StopDelay amp stopDelay Comments e The value of the third and fourth argumenta to AcqrsD1_configMode must always be 0 e When in AutoSwitch mode the following digitizer parameters are ignored e delayTime of the function AcqrsD1_configHorizontal is replaced by StartDelay and StopDelay e nbrSamples and nbrSegments of the function AcqrsD1_configMemory are replaced by NbrSamples and NbrSegments in the function AcqrsD1_configAvgConfig e The values nbrSamples startDelay and stopDelay must be integer multiples of the block size which is always 16 in the AP240 AP235 Dual channel mode and 32 AP240 AP235 Single channel mode If the supplied value is not an integer multiple of the averaging block size it is truncated to the next lower integer multiple Thus nbrSamples 250 will be truncated to 240 15 16 for a Dual channel acquisition and to 224 7 32 for a Single channel acquisition You can query the actual value with the function AcqrsD1_getAvgConfig e The value startDelay controls the time between the trigger and when the first digitized data sample is stored It should also be noted that when startDelay is 0 the first few data points 5 in the case of Du
48. In dB Models ALL Traditional API equivalent NONE Discussion The raw integer data will be converted into a real value using several factors This one is in dB Programmer s Guide Page 76 of 107 acqiris chBandwidthLimit Purpose Control the setting of the bandwidth limiter of a channel or external trigger input Prefixes Access Type Values channel amp ext RW double discrete In Hz 0 0 off Models ALL Traditional API equivalent AcqrsD1_configVertical id bandwidth AcgrsD1_getVertical id amp bandwidth Discussion The bandwidth is either given as 0 0 for no limit or a frequency value corresponding to the upper limit chCoupling Purpose Control the coupling of a channel or external trigger Prefixes Access Type Values channel amp ext RW string Gnd AC DC Models ALL Traditional API equivalent AcqrsD1 configVertical id coupling AcqrsD1_getVertical id amp coupling Discussion The chCoupling is only part of the coupling of the old API chImpedance is also needed Programmer s Guide Page 77 of 107 acqiris chFullScale Purpose Control the full scale of a channel Prefixes Access Type Values channel amp ext RW double discrete In V Models ALL Traditional API equivalent AcqrsD1_configVertical id channel fullScale AcqrsD1_getVertical id channel amp fullScale
49. In this case the background data points are simply subtracted from the averaged waveform However if you read the background and the averaged waveforms as 32 bit sums with the function Programmer s Guide Page 27 of 107 acqiris long bckGndWform nbrPoints Background as 32 bit sum AcgrsD1_readData instrID channel amp readParams waveformArray wfDesc amp segDesc you must correct the average as follows corrWform i waveformArray i bckGndWform i 128 nbrAvgWforms The last term corrects for the fact that the 32 bit data are unipolar and that for display purposes the corrected waveform should be in the middle of the vertical range if the averaged waveform is the same as the background 3 4 4 Configuring Noise Suppressed Accumulation NSA As discussed in the User Manual Family of Averagers the module can be configured to only accept data above a fixed threshold and if desired to shift the data in that case Since these two values are expressed in Volts and used as ADC counts they have to be converted before use The User Manual describes this transformation that depends on whether Data Inversion has been enabled The NSA threshold functionality must be enabled and a threshold defined If this has been done the NSA base subtraction can also be enabled and will be activated using the defined base value The order of the calls to AcgqrsD1_configAvgConfig is not important since the final decision is taken when t
50. MILY Traditional API equivalent AcqrsD1_configTrigTV id channel line AcqrsD1_getTrigTV id channel amp line Discussion Studying the current range of the attribute may be needed to understand all of the possible values Programmer s Guide Page 102 of 107 acqiris trT VStd Purpose Control the standard to be used for the TV trigger Prefixes Access Type Values ext RW string 650 50Hz 525 60Hz Models 12 bit FAMILY Traditional API equivalent AcgrsD1_configTrigIV id channel standard AcqrsD1_getTrigTV id channel amp standard Discussion Studying the current range of the attribute may be needed to understand all of the possible values Programmer s Guide Page 103 of 107 acqiris 5 Appendix A Estimating Data Transfer Times The time to transfer a waveform may be a significant part of the execution time of a program and thus becomes an important design consideration for new applications We present here a simple timing model with the aim of predicting the transfer time for digitizer readout as a function of the number of segments number of samples CPU speed and the operating system 5 1 Principles amp Formulas The function AcqrsD1_readData for readMode 0 executes a direct waveform transfer from the digitizer memory to the user allocated buffer for a single segment at a time Since direct to memory access DMA is used this is the most time efficient
51. OBLEM Note that moduleNbr and inputNbr start from 0 An industrial strength implementation should contain some checks on the range of trigChan and or inputNbr 3 16 Special Operating Modes Some Acqiris digitizers offer alternative operating modes which are controlled with the function AcqrsD1_configMode The default state of any digitizer is mode 0 and flags 0 corresponding to the normal digitizer operation as described in the other sections of this manual 3 16 1 Frequency Counter This is an option available for the DC140 and DC135 digitizers It is implemented with a signal counter that counts trigger signals from the user requested channel A time counter generates the user programmed aperture time during which the measurement is performed The user requested signal channel has to be programmed for the expected signal characteristics the standard config functions should be used to set the full scale coupling offset and trigger threshold The HF trigger mode may be set by the driver software on the basis of the user supplied target frequency value In order to obtain the best results it is recommended to adjust the full scale and offset so that they span the expected input signal In addition the trigger threshold should be set to approximately the center of the signal voltage range Calls to AcqrsD1_configVertical and AcqrsD1_configTrigClass are needed If an external time base reference is desired AcqrsD1_configEx
52. Offset source AddrFirstPoint t 1 078E 9 Sinternal Ela z200 t 30 000 o timeStampLo TrigLevel1 TrigLevel2 Tigger Slope Samelina Interval ee samptime 797121082 30 000 p 000 Positive aDC 1 MOhm 2 5005 9 timeStampHi Delay Time R lode oT 0 o0E 0 ety E S 4 YGain E Acquired Waveform limited to 10 segments A aoc TUNE qm 7 63E 5 Seg 0 voffset 10 00 segDesc rray out Seg 1 AA A Seg 2 Nbrsegments 2 Seg 3 Seg Seg5 Seg Seg Seg 8 Seg9 Nbr vgwforms io reserved 9 881E 324 reserved2 0 000E 0 reserved3 0 000E 0 This VI demonstrates how to use some of the basic components of the AqDx Acqiris Digitizer Driver It finds and initializes a digitizer sets the basic parameters according to the controls on the front panel and then acquires one waveform Note that the front panel controls should be set to their desired values before the VI is run 2 3 2 Example Scope VI AqDx Example Scope vi File Edit Operate Tools Browse Window Help Digitizers r 3 eK i Horizontal Settings Vertical Settings error out annel PCI INSTR1 ar Number of Segment Full Scale status code o la II 45 000 db Trigger Settings 24 _ z gls Trig Source Trig Channel Trig Slope E Internal El 1 El Positive Trig Level 1 TrigLevel2 Trig Coupling 0 000 30 000 pc Number of Samples Of
53. PCLs DC110 VI FALSE VI FALSE simulate TRUE amp instrumentID The first function call sets the instrument options that you want to obtain e g M2M for the long memory option of a DC110 In the second call you must specify simulate TRUE without any spaces The device driver creates a simulated device of your choice The resource name string is always of the form PCI aannn where aanmn is a valid digitizer module name The simulation options will apply to all subsequent calls to AcqrsD1_InitWithOptions until they are reset with AcqrsD1_setSimulationOptions 3 2 10 Terminating an Application For an orderly shut down of your application we recommend the following sequence Stop the digitizers for long i 0 i lt nbrInstruments itt status AcgqrsDl stopAcquisition instrument ib i j AcgrsD1_ closeAll Stopping the acquisition of all digitizers ensures that there is no further activity that could for example generate an interrupt The function AcqrsD1_closeAll shuts down the driver components in the correct order and thus helps avoid crashes of the application during closing 3 3 Device Configuration As a general rule it should be remembered that new values to be used by the modules as set with the AcqrsD1_ config functions are remembered by the driver software but not immediately acted upon They will only really be loaded into the instrument s registers a
54. Size giving the total number of data bytes read There may be a variable number of blocks of data with the following format Peak block 31 24 8 bits 23 19 4 16 bits 3 0 4 bits Flag 00010000 Unused 0x10 Peak amplitude with ADC resolution Interpolated fractional part of amplitude 1 16 LSB 29 4 26 bits 3 0 4 bits Interpolated fractional part of position 1 16 sample interval Peak Position with sample rate resolution The peak position is counted relative to the beginning of the first segment of the acquisition Thus the position also gives the segment number of the peak The peak amplitude is the value acquired after baseline substraction Programmer s Guide Page 43 of 107 acqiris When reading such data you should carefully check that you terminate correctly and do not read beyond the end of the transmitted data nor generate unphysical time coordinates for the data If you need to know the segment time stamps you can read the gated data If the user or threshold gate parameters are set appropriately the amount of unwanted data can be minimized 3 9 7 4 Reading the histogram The accumulated histogram can be read out using readMode ReadModeHistogram 9 The dataType and dataArraySize must be selected to correspond to the size of the histogram and its bins The waveform descriptor structure contains the value actualDataSize giving the total number of data bytes rea
55. Wform AcqrsD1_readRealSequence AcqrsD1_accumulateWform You should use the function AcqrsD1_readData for all new programs The older functions will not give support for new instruments or new functionality All variables of the AqReadParameters structure should be initialized 0 can be used for the reserved words For the readout of the averager data the read function AcqrsD1_readData described in 3 9 1 Reading Digitizer Waveforms with the Universal Read Function should be used with readMode 2 For reading data from analyzers please refer to 3 9 6 Reading SSR Analyzer Waveforms or 3 9 7 Reading AP101 AP201 Analyzer Waveforms 3 9 1 Reading Digitizer Waveforms with the Universal Read Function For the general case which includes the reading of more complex waveforms we provide a universal read function AcqrsD1_readData Control of the read parameters is passed through the input structure AqReadParameters For the description of the output data an array of segment descriptors AqSegmentDescriptor and a waveform descriptor AqDataDescriptor are returned These structures are defined in the header file AcqirisDataTypes h The following parameter setting can be used for reading a single waveform segment in 8 bit representation Programmer s Guide Page 36 of 107 acqiris static long nbrSegments 1 readMode 0 requires this value const long nbrPoints 1000 char dataArray nbrPoints 32 AqReadParameters readPar new AqRe
56. _readData for readMode 0 Transferring 100 segments of 1000 samples recorded at 2 GS s M 100 N 1000 Xfr 0 01 Cpy 0 00625 Ovhd py 62 5 Ovhd yyy 3 125 Extra 480 192 672 T M Ovhd pua M N Xfr 100 62 5 100 1000 0 01 7250 us T Ovhd py M Ovhd q M N Extra Xfr M N Cpy 62 5 100 3 125 100 1672 0 01 100 1000 0 00625 2672 us The function AcqrsD1_readData for readMode 1 is about 2 7 times faster Programmer s Guide Page 105 of 107 acqiris B DC270 connected to a 500 MHz Pentium with a MXI 3 interface Transferring single records of 100 000 samples recorded at 100 MS s M 1 N 100000 Xfr 0 012 Cpy 0 01 Ovhd py 100 Ovhd 5 Extra 240 10 96 120 buffer T M Ovhd pya M N Xfr 100 1200 1300 us T Ovhd pua M Ovhd yg M N Extra Xfr M N Cpy 100 5 100120 0 012 100000 0 01 2306 us It is therefore more favorable to use the function AcqrsD1_readData for readMode 0 Transferring 1000 segments of 500 samples each recorded at 500 MS s M 1000 N 500 Xfr 0 012 Cpy 0 01 Ovhd pu 100 Ovhd 5 Extra 240 2 96 216 T M Ovhd yy M N Xfr 100000 6000 106 000s T Ovhd pu M Ovhd y M N Extra Xfr M N Cpy 100 1000 5 1000 716 0 012 1000 500 0 01 18692us The function AcqrsD1_readData for readMode 1 is about 5 times faster 5 3 Comparison Chart for Typical Transfers
57. acific Acqiris SA Acgiris LLC Acqiris Pty Ltd 18 chemin des Aulx 234 Cromwell Hill Rd Suite 7 Level 1 CH 1228 Plan les Ouates P O Box 2203 407 Canterbury Road Geneva Monroe NY 10950 1430 P O Box 13 Switzerland USA Surrey Hills 3127 Australia Tel 41 22 884 33 90 Fax 41 22 884 33 99 Tel 845 782 6544 Fax 845 782 4745 O Copyright January 2006 Acqiris SA All rights reserved Programmer s Guide Tel 61 3 9888 4586 Fax 61 3 9849 0861 Page 2 of 107 acqiris CONTENTS 1 AS O O 7 1 1 gt Message to the User ui a ds 7 L2 Using this Manual senesine a wie veers Ae ee we 7 1 3 Conventions Used in This Manual cccccesccsseessecseeeseeeseeseecnsecesecseceaecaaecaaecneeeaeeeneeseeeeneeeeeeas 8 1 4 Warning Regarding Medical Use 00 ceccesccesecsseeeseceeeseeeseeeeeeseeeceeseenseeeseesaeesaecnseceecseeeaeeeaeeaes 8 Des A AN 8 1 6 Warranty and Repair Return Procedure Assistance and SUpPOlTt cccococonccnnnnnconcnnconnnncononnnoncnnninnon 8 Toy System REUS A deni tae ee ee ds 8 2 PROGRAMMING ENVIRONMENTS amp GETTING STARTED o cccicciccnnosoonososocnossococsoccoosocos 9 Zl Vista O 9 22 LabWindows CVI cesc ss cccecseceesccscaceiesien nanni en a A e a ad 9 PAN EE E A l DAE S E E E AA EEE 9 2 3 1 Getting Started Vi E dde RN dd O te slope he 10 2 3 2 Example Scope Vii sncsin anak en een e to lO o hee 10 2 3 3 Accumulated Waveform Example V1 ccscccssessscessceeecesecenecaecseee
58. acqiris XZ130 ACQIRIS PROGRAMMER S GUIDE Programmer s Guide ZM020130E Rev B acqiris January 2006 The information in this document is subject to change without notice and may not be construed in any way as a commitment by Acqiris While Acqiris makes every effort to ensure the accuracy and contents of the document it assumes no responsibility for any errors that may appear All software described in the document is furnished under license The software may only be used and copied in accordance with the terms of license Instrumentation firmware is thoroughly tested and thought to be functional but it is supplied as is with no warranty for specified performance No responsibility is assumed for the use or the reliability of software firmware or any equipment that is not supplied by Acqiris SA or its affiliated companies Any versions of this manual which are supplied with a purchased product will be replaced at your request with the latest revision in electronic format At Acqiris we appreciate and encourage customer input If you have a suggestion related to the content of this manual or the presentation of information please contact your local Acqiris representative or Acqiris Technical Support support acqiris com or come visit our web site at http www acqiris com Trademarks product and company names listed are trademarks or trade names of their respective companies Acqiris Headquarters Acgiris USA Acqiris Asia P
59. adParameters AqDataDescriptor dataDesc new AqDataDescriptor AqSegmentDescriptor segDesc new AqSegmentDescriptor nbrSegments 0 0 byte readPar gt readMode 0 0 standard waveform readPar gt dataType readPar gt nbrSegments nbrSegments readPar gt firstSamplelnSeg 0 readPar gt segmentOffset 0 unused parameter readPar gt firstSegment 0 readPar gt nbrSamplesInSeg nbrPoints readPar gt dataArraySize sizeof dataArray readPar gt segDescArraySize sizeof AqSegmentDescriptor nbrSegments readPar gt flags 0 readPar gt reserved 0 readPar gt reserved2 0 0 readPar gt reserved3 0 0 status AcqrsDl _readData instrID channel readPar dataArray dataDesc segDesc Comments e The segment numbers run from 0 to nbrSegments 1 e The value of segDesc gt horPos is the time interval in seconds between the first data point and the nominal time origin of the trigger delay It is always in the range sampTime 0 It is useful for a very precise positioning to a fraction of the sampling interval of the waveform In many applications it can be ignored Refer to section 3 11 HORIZONTAL PARAMETERS IN ACQUIRED WAVEFORMS for a detailed explanation of horPosReturn values have to be interpreted in the same way as for the other readout functions e Refer to the section 3 12 SEQUENCE ACQUISITIONS for detailed explanations on the interpretation of segDesc gt
60. addition the timeout counter value should be set according to the expected acquisition time but the loop time depends on the CPU speed B More Efficient Polling use this code fragment to release the polling thread for short periods int done 0 long timeoutCounter 100 while done amp amp timeoutCounter gt 0 AcqrsD1_acqDone instrID amp done poll for status Sleep 1 if timeoutCounter lt 0 timeout stop acquisition STOP ACQUISITION This code puts the polling thread to sleep for periods of 1 ms at a time letting other threads of the application or other applications use the CPU time Setting the timeout counter to 100 means that a total timeout period of 100 ms is expected NOTE This method still has some drawbacks e depending on the operating system the Sleep method often has a granularity of 10 ms or more rounding any smaller number up to this minimum value e the response time of the application to the end of acquisition is 50 of the sleep time on average With a granularity of 10 ms the mean latency is therefore 5 ms Thus no more than 200 waveforms per second could be acquired because the application wastes time waiting for the acquisition to terminate C Waiting for Interrupt ViStetus status long timeOut 100 in ms status AcgrsD1 waitForEndOfAcquisition instrID timeOut if status ACQIRIS ERROR_ACQ TIMEOUT timeout stop STOP ACQUISITION This method c
61. aeecaeeeneeeeeeeeeesreneeeeeaees 39 3 9 4 Reading an Averaged Waveform from an Averaget esesseesereessreeesseseseesersreseerersesees 39 3 9 5 Reading a RT Add Subtract Averaged Waveform from an Averaget sseeeseeeeseeeee 41 3 9 6 Reading SSR Analyzer Waveforms oooconccoonconnconnconconncon nono nonononn nono non n oran nan nn nn rn nncnnnnnnnos 41 3 9 7 Reading AdvancedTDC Analyzer Data and HisStOgramS oooonocinocinonoonnoonconnconocanocnnnnn neos 42 3 9 8 Reading AP101 AP201 Analyzer Waveforms cccceccceseesseesseeeeeeeeeeeeeeeeeerenteeneensees 44 3 10 Trigger Delay and Horizontal Waveform Position c cccccescceseceseceseceeeeeeeaeeeseeneeenseeereees 49 3 11 Horizontal Parameters in Acquired Waveforms c ccccccessceseceseceseceseceeeseeeseeeseeseeeeeeenseees 49 3 12 Sequence ACQUISINONS illa Sti ad em adnate le 50 3 13 A cut evtens Coutts eneesthreeGurea Aaa 50 3 14 External Clock atid Referencias 51 3 14 1 External Reference ascetics pain liad oe ee 52 3 14 2 External Clock Continuous isnon nirani e E ables cote cece R acess 52 3 14 3 External Clock Start Sto A tee ee 54 3 15 ASBus Opetatiom sii A eee Dd eee 55 3 15 1 Channel Numbering with ASBUS snieni iini i E i 56 3 15 2 Trigger Source Numbering with ASBUS ccccesccessessseesceeseeeeceseceeecnaeeneeeeeeeeeneeeeeees 56 3 16 Special Operating Modes a sci 2 ted cose tte a lt dt de 57 3 16 1 Frequency Courter oil coche EN
62. age 64 of 107 acqiris _getTrigTV trTVField trTVLine trTVStd _getVertical chCoupling chBandwidthLimit chFullScale chImpedance chOffset 4 4 Detailed description of attributes Alphabetically ordered axDitherRange Purpose Defines the range of offset dithering in ADC LSB s Prefixes Access Type Values RW integer 0 15 in LSB s Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcqrsD1_configAvgConfig id channel DitherRange amp vdither Discussion The offset is dithered over the range v v in steps of 1 8 LSB axNbrRoundRobins Purpose Number of times to perform the full segment cycle during data accumulation Prefixes Access Type Values RW integer 1 to 65536 Models AP235 and AP240 with Averager option Traditional API equivalent AcqrsD1_configAvgConfig id channel NbrRoundRobins amp robin Discussion Programmer s Guide Page 65 of 107 acqiris axNbr Waveforms Purpose Number of waveforms to average before going to next segment Prefixes Access Type Values RW integer 1 ES 65935 Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcqrsD1_configAvgConfig id channel NbrWaveforms amp triggers Discussion axP1Signal Purpose Define how the P1 Control signal should be used Prefixes Access Type V
63. al channel mode and 10 in the Single channel mode will always be 0 e The stopDelay permits the addition of an extra delay to the dead time between the acquisition of subsequent waveforms Its minimum value may be zero e Although not shown here a call to AcqrsD1_configControllO can be made in order to set a trigger veto time to be respected after the receipt of a Prepare for Trigger signal on a Control I O connector This feature is for AP101 AP201 analyzers only e Also not shown is a call to the function AcqrsD1_configAvgConfig to set a timeout value for the automatic completion of a segment in case the real trigger never arrives This feature is for AP101 AP201 analyzers only 3 5 2 Readout configuration There are two possible ways of reading the data when in the SSR mode user gates and threshold gates In all three cases the entire acquisition must be read you cannot ask for fewer segments or points If you want to read all of the data you should define the appropriate gate These setting are also controlled through the AcqrsD1_configAvgConfig routine and therefore must be prepared before the acquisition is started They can be set independently for each channel if desired For user gate readout you have to define the groups of data samples that you want to read for each segment If needed new values for the gates can be defined during the acquisition process They will become effective after the next call to AcqrsD1_processData or Acqrs
64. also be set in volts This is done with trThres1 Programmer s Guide Page 98 of 107 acqiris trRelThres2 Purpose Control the second trigger discriminator level for window triggering Prefixes Access Type Values channel RW double in of full scale Models DC271 FAMILY 10 bit FAMILY Traditional API equivalent AcqrsD1_configTrigSource id channel trigLevel2 AcqrsD1_getTrigSource id amp delayTime amp trigLevel2 Discussion The values for this attribute must be given in FS and where 0 0 corresponds to the middle of the input range The second trigger discriminator level can also be set in volts This is done with trThres2 trSlope Purpose Control the slope or type of the transition to be used for the trigger Prefixes Access Type Values RW string Pos Neg WindowIn WindowOut HFDiv4 SpikeStretcher channel amp ext Models ALL Traditional API equivalent AcqrsD1 configTrigSource id channel trSlope AcqrsD1 getTrigSource id amp delayTime amp trSlope Discussion Studying the current range of the attribute may be needed to understand all of the possible values Programmer s Guide Page 99 of 107 acqiris trSrcEnabled Purpose Control which input should be used for the trigger Prefixes Access Type Values channel amp ext RW string OEE On Models ALL Traditional API eq
65. alues RW String Disabled In AddSubChl1 In AddSubCh2 In AddSubCh1ch2 In AvgrTrigEnable In AvgrStartVetoEnable Out Average Models AP235 and AP240 with Averager option Traditional API equivalent AcqrsD1_configAvgConfig id channel P1Control amp function Discussion The In AddSub choices allow the control of real time add subtract functionality for either or both of the channels The In AvgrStartVetoEnable configures the signal as a trigger enable If P1Signal and or P2 Signal are enabled for the Add Subtract mode then the data will be added if the signal or the or of both signals is in the high state The same rule holds if they are used for trigger enable The Out Average signal goes high after the first trigger is accepted for an average and drops back down when the last trigger s acquition is complete Programmer s Guide Page 66 of 107 acqiris axP2Signal Purpose Define how the P2 Control signal should be used Prefixes Access Type Values RW string Disabled In AddSubChi In AddSubCh2 In AddSubCh1ich2 In AvgrTrigEnable In AvgrStartVetoEnable Out Average Models AP235 and AP240 with Averager option Traditional API equivalent AcqrsD1_configAvgConfig id channel P2Control amp function Discussion The In AddSub choices allow the control of real time add subtract functionality for eithe
66. as stopped 5 6 7 0 1 2 3 4 Here the oldest good segment is the 5h segment followed by the 6 7 8 1 etc The youngest useful segment is the 3 one while the 4 segment corresponds to the segment that was being recorded when the stop command was received The 4 segment in this example typically does not contain any useful data Programmer s Guide Page 59 of 107 acqiris 3 17 Readout of Battery Backed up Memories Acgqiris digitizers with the battery back up option permit retaining acquired waveforms during periods of time when the power might be interrupted 3 17 1 Preparations before Power Off A digitizer only remembers the digitized data array but not all of the parameters that are needed to interpret the waveform These parameters are normally retained in the driver but are typically lost when power is lost or when the controlling application is terminated It is therefore necessary for the application to transfer the relevant parameters before power off typically to a disk in such a way that they are again available when restarting the application after power is restored The following parameters must be transferred to persistent storage for each instrument e Parameters of AcqrsD1_configHorizontal i e sampling interval and delay e Parameters of AcqrsD1_configMemory i e number of samples and number of segments e Parameters of AcqrsD1_configVertical i e Full Scale and offset the coupling is n
67. ays be 0 e When in buffered mode the following digitizer parameters are ignored e delayTime of the function AcqrsD1_configHorizontal is replaced by StartDelay and StopDelay e nbrSamples and nbrSegments of the function AcqrsD1_configMemory are replaced by NbrSamples and NbrSegments in the function AcqrsD1_configA vgConfig e The values nbrSamples startDelay and stopDelay must be integer multiples of the acquisition block size which is always 16 in the AP101 and 32 in the AP201 If the supplied value is not an integer multiple of the acquisition block size it is truncated to the next lower integer multiple Thus nbrSamples 250 will be truncated to 240 15 16 on an AP101 and to 224 7 32 on an AP201 You can query the actual value with the function AcqrsD1_getAvgConfig e The value startDelay controls the time between the trigger and when the first digitized data sample is stored The stopDelay permits the addition of an extra delay to the dead time between the acquisition of subsequent waveforms Its minimum value may be zero e Although not shown here a call to AcqrsD1_configControllO can be made in order to set a trigger veto time to be respected after the receipt of a Prepare for Trigger signal on a Control I O connector e Also not shown is a call to the function AcqrsD1_configAvgConfig to set a timeout value for the automatic completion of a segment in case the real trigger never arrives
68. bove the Threshold For SimpleTDC mode ONLY Programmer s Guide Page 74 of 107 acqiris chAxThreshold Purpose Value in Volts of the threshold for Noise Supressed Averaging Prefixes Access Type Values channel RW double In Volts Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcgqrsD1_configAvgConfig id channel Threshold amp thresh Discussion chAxThresholdEnable Purpose Control whether the threshold test will be applied to the data of the channel before accumulation Prefixes Access Type Values channel RW string OEE vor OR Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcqrsD1_configAvgConfig id channel ThresholdEnable amp enable Discussion Programmer s Guide Page 75 of 107 acqiris channelUse Purpose Allows the RW client to activate de activate a channel Prefixes Access Type Values channel RW string montor ori Models ALL Traditional API equivalent NONE Discussion Deactivation of a channel can speed up clients and the server Deactivated channels do not have to have their data read out nor transmitted over the network chAttenuation Purpose Functions as an additional multiplier for the conversion of raw ADC values to volts or other user units Prefixes Access Type Values channel RW double
69. c Note If you call a readout function while the acquisition mode is set to digitizer it will return the last acquired single waveform possibly with some unpredictable results Note The raw sums can be read directly with a different function call see next section The relationship between Volts and the raw sum is expressed by the following formula sum i volts i offset FS 2 0 256 nbrWforms FS with the following definitions sum i 32 bit integer sum at position i unipolar i e 0 or positive volts 1 floating point voltage at position i as returned by the code fragments above offset offset in Volts as set with AcqrsD1_configVertical FS full scale range in Volts as set with AcqrsD1_configVertical nbrWforms number of summed waveforms The value of nbrWforms must be known i e if the averaging process was interrupted before reaching the requested number of waveforms the formula above yields wrong results As a check that the correct value of nbrWforms was used the value of sum i before conversion to an integer must already be very close to an integer Use this code fragment for the legacy function long channel 1 segmentNumber 0 nbrSamples 20000 long returnedSamples tStampLo tStampHi double waveformArray 20000 horPos sampTime AcgrsD1_readRealWform instrID channel segmentNumber 0 nbrSamples waveformArray amp returnedSamples amp horPos amp sam
70. ction AcqrsD1_readRealWform 3 9 4 1 Averaged Waveforms in Volts You should use the general purpose function AcqrsD1_readData or the legacy function AcqrsD1_readRealWform As long as the mode is still set to averager either function automatically divides the accumulated waveform sum by the number of acquired waveforms and returns the result in Programmer s Guide Page 39 of 107 acqiris Volts They also return zero into the variables horPos tStampLo and tStampHi since they are irrelevant in the context of an averaged waveform Use this code fragment for the general purpose function AqReadParameters readParams Read Definitions AqDataDescriptor wfDesc Returned common waveform values AqSegmentDescriptorAvg segDesc Returned segment values long channel 1 nbrSamples 20000 double waveformArray 20000 readParams dataType ReadReal64 Request Volts readParams readMode ReadModeAvgW readParams nbrSegments 1 readParams firstSampleInSeg 0 readParams segmentOffset nbrSamples readParams firstSegment 0 Read first segment readParams nbrSamplesInSeg nbrSamples readParams dataArraySize sizeof waveformArray readParams segDescArraySize sizeof AqSegmentDescriptorAvg readParams flags 0 readParams reserved 0 readParams reserved2 0 0 readParams reserved3 0 0 AcgrsD1_readData instrID channel amp readParams waveformArray amp wfDesc amp segDes
71. d The individual histogram bins will be able to contains accumulated sums of either 2 32 as ViUInt32 or 2 16 as ViUInt16 Histogram bin is 32 bits wide 31 0 Bin0 Histogram bin is 16 bits wide 31 16 15 0 Bin 1 Bin 0 3 9 8 Reading AP101 AP201 Analyzer Waveforms 3 9 8 1 Reading a Buffered Waveform Sequence This section concerns AP101 AP201 Analyzers ONLY In normal mode you may read the acquired waveform s in the same way as with any other digitizer as described in the section 5 14 Data Readout in the Standard Manual In buffered mode you must use the functions AcqrsD1_readData to read out the accumulated waveform sequence as a single data record E g if you configured nbrSamples 5000 and nbrSegments 800 you should specify segmentNumber 0 and nbrSamples 40007000 Before reading the buffered data you must switch to the other memory bank Typically you also would start a new acquisition before readout but it is not required This is done automatically in the autoswitch mode as a consequence of the call to AcqrsD1_processData with a non zero flag value It can also be done with a call to AcqrsD1_configMode The read function returns zero into the dataDesc variables horPos tStampLo and tStampHi since they are unavailable in the context of a buffered waveform sequence With the function AcqrsD1_readData use this code fragment Programmer s Guide Page 44 of 107 acq
72. d digitizers have fixed simulated input signals sine waves triangle waves or square waves that cannot be modified through the supplied API Note The programming advice in the rest of this manual is given for the C language interface However it is equally valid for Visual Basic Refer to the file AcqrsD1Interface bas for the correspondence between the Visual Basic and C language names of the Acqiris driver functions 2 5 MATLAB MATLAB is a very powerful environment to analyse and display data Two interfaces from it to the Acqiris products have been implemented The first one to be described below uses the Data Acquisition Toolbox option of MATLAB The second one offers simple direct access to the Acqiris driver 2 5 1 Data Acquisition Toolbox The MathWorks Inc have developed a Data Acquisition Toolbox that can acquire data from digitizer cards The Acqiris Adaptor exchanges messages between the MATLAB Engine and the Acgiris instrument driver The Acqiris Adaptor lets you acquire data directly from the hardware without additional software It offers the possibility to start and stop the acquisition as well as to get data Windows based modules and command line shortcuts are used to configure the instruments 2 5 1 1 Examples These examples are in the directory lt AcqirisDxRoot gt MATLAB When you execute these examples either set the MATLAB current directory ed Command to lt AcqirisDxRoot gt MATLAB or copy all of the files from
73. dule settings can be read and or changed through the use of attributes The attribute interface to the driver can be used with AcqirisMAQS the MATLAB interface and the SP201 Software Development Kit This section of the manual will give details on all of the available attributes The full name of an attribute is often composed of a prefix before the name of the simple attribute itself In other words full_attribute_name lt prefix gt attribute prefix channel_prefix external_prefix channel_ prefix ch1 ch2 ch3 ch4 ch5 chnn where nn is the last channel number of the instrument external prefix ext1l ext2 extm where m is the last external trigger channel of the instrument The number of channels can be found from the channels keyword of the instrument identity Similarly the number of external triggers can be found from the confExtTr keyword Examples Full scale for channel 2 lt ch2 gt chFullScale Number of samples samples External trigger slope for single module noASBUs lt extl gt trSlope Attributes can either be modifiable or read only This is shown by the Access characteristic that is either RW read write or RO read only respectively Only the RW client of an instrument can actually write modify an RW attribute The type of an attribute shows what kind of value will be employed when an attribute is queried or modified Although the argument is always a string th
74. e Here are some rough values Extra Type 300 sampInterval 98 digitizers with lt 1 GS s maximum sampling rates 300 sampInterval 194 digitizers with 2 GS s maximum sampling rates or DC271 FAMILY instruments set for a combine channel mode allowing 2 GS s 300 sampInterval 386 DC271 FAMILY instruments set for a 4 GS s combine channel mode 5 The copying time Cpy per 8 bit sample is 5 us Pentium CPU speed in MHz Thus for a 250 MHz Pentium Cpy is 0 02 us and for a 500 MHz Pentium it is 0 01 us Benchmarks were run on 266 and 550 MHz Pentiums running under Windows 98 and NT The observed transfer times agreed with the formula within better than 20 e dataType 3 Add the conversion time T for conversion from ADC codes to Volts to Tz or T respectively T M N Conv where Conv is the conversion time per sample in microseconds It is 35 us Pentium CPU speed in MHz Thus for a 250 MHz Pentium Conv is 0 14 us and for a 500 MHz Pentium 0 07 us 5 2 Examples A DP210 in a 800 MHz Pentium Transferring single records of 100 000 samples recorded at 2 GS s M 1 N 100000 Xfr 0 01 Cpy 0 00625 Ovhdpua 62 5 Ovhd yyy 3 125 Extra 480 192 672 T M Ovhd yy M N Xfr 62 5 1000 1063 us T Ovhd pua M Ovhd pajer M N Extra Xfr M N Cpy 62 5 3 125 100672 0 01 100000 0 00625 1698 us It is therefore more favorable to use the function AcqrsD1
75. e block will be generated Otherwise the current block will be continued In all cases the data transferred will always be a multiple of 4 samples and it will start on a sample whose time position is a multiple of 4 Alternatively the number of data values before and the total number of values can be selected Furthermore a limit on the maximum number of gates per segment can be set long channel 1 gate 2 AcgrsDl configAvgConfig instrID channel GateType amp gate long preSamples 0 postSamples 0 maxGates 1 double threshold 0 0 in Volts long thresEnable 1 status AcqrsDl_ configAvgConfig instrID channel PreSamples amp preSamples status AcgrsD1 configAvgConfig instriID channel PostSamples amp postSamples status AcqrsDl configAvgConfig instrID channel Threshold amp threshold status AcgqrsDl configAvgConfig instrID channel NbrMaxGates amp maxGates 3 5 3 Time stamps The On board 10 MHz reference clock is used to increment a counter The value of the counter is stored after the trigger of each new segment The value of the counter can be read by the software as shown here double SSRtimeStamp AcqrsD1_getInstrumentInfo instrID SSRTimeStamp amp SSRtimeStamp Since each channel is controlled by its own FPGA the time stamps for the same segment are not necessarily the same for the two channels The command above works with the stamp o
76. e considered as signed values The relationship between Volts and the raw sum is expressed by the following formula sum i volts i 256 nbrWforms FS with the same definitions as before However the user has to understand if the final result corresponds to the desired signal or just half of it 3 9 6 Reading SSR Analyzer Waveforms 3 9 6 1 SSR Mode Readout Data Format In all cases data values are returned in the range 128 127 The relationship between Volts and the raw data is expressed by the following formula data i volts i offset 256 FS with the following definitions data i 8 bit signed ADC value at position i volts i floating point voltage at position 1 as returned by the code fragments above offset offset in Volts as set with AcqrsD1_configVertical Programmer s Guide Page 41 of 107 acqiris FS full scale range in Volts as set with AcqrsD1_configVertical In all cases you must readout the entire acquisition You cannot ask for a reduced number of segments 3 9 6 2 Raw data The complete data should only be read out using the gated data mode described below An appropriate User Gate can be defined to access all of the data 3 9 6 3 Gated data Data can be read for both user and threshold gate operation using readMode ReadModeSSRW 7 The waveform descriptor structure contains the value actualDataSize giving the total number of data bytes read A time stamp block measuring the trigger
77. e of the attribute may be needed to understand all of the possible values ctrllOBSignal Purpose Control the functionality of the CtrlI O B connector Prefixes Access Type Values RW string Models DC271 FAMILY 10 bit FAMILY 12 bit FAMILY Traditional API equivalent AcgrsD1 _configControll0 id 2 AcqrsD1_getControll0 id 2 Discussion Studying the current range of the attribute may be needed to understand all of the possible values Programmer s Guide Page 86 of 107 acqiris ctrITOPxiRef10MHz Purpose Control the use of the PXI Reference clock Prefixes Access Type Values RW string Ote On Models DC135 DC140 DC211 DC211A DC241 DC241A DC271 DC271A DC271AR 10 bit FAMILY Traditional API equivalent AcgrsD1 _configControll0 id 11 AcqrsD1_getControll0 id 11 Discussion The value On will set the instrument to use the PXI 10 MHz reference as the internal clock reference ctrllOPxiStar Purpose Control the use of the PXI Star trigger Prefixes Access Type Values RW string OLE lg La TrigOut Models DC135 DC140 DC211 DC211A DC241 DC241A DC271 DC271A DC271 AR 10 bit FAMILY Traditional API equivalent AcgrsD1 _configControll0 id 12 AcqrsD1_getControll0 id 12 Discussion The value TrigOut should be chosen when the instrument is the PXI Star Trigg
78. e positive and then the negative one some of which might be marked as invalid if no valid peak exists Thus you should define the gates in the same way as described in the previous section A typical acquisition processing readout sequence in autoswitch buffered mode would be 1 Configure the APXXX for appropriate channel timebase trigger and gate parameters Programmer s Guide Page 46 of 107 acqiris 2 Start the first acquisition 3 Give the order to switch banks and start the next acquisition and data processing on the current acquisition as soon as possible The processing can overlap with the data acquisition since it automatically deals with the memory bank that is not selected for acquisition If you need to read the original data choose the no processing option 4 Wait for the processing to be terminated read the processed result Note that the processing will not destroy the originally acquired data 5 You may now do any additional processing in your computer However you cannot read the original data at this point without perturbing the acquisition 6 Now that you have finished all work with the current data you can loop to 3 above A typical acquisition processing readout sequence in explicit buffered mode would be 7 Configure the APXO01 for appropriate channel timebase trigger and gate parameters 8 Start the first acquisition 9 Wait for the first acquisition to terminate 10 Switch the
79. e string will be a representation of an integer a double precision real or a string It also indicates whether the range of values will be described as discrete or not If the range is discrete the allowed values will be enumerated explicitly otherwise the full range will be described as a collection of triplets low value high value increment In the case where the increment is non zero a triplet defines allowed values of the attribute as follows low value low value increment low value 2 increment high value If the increment is 0 all values between the low and high values are allowed 4 1 Attribute dependencies and coerced values Changing certain attribute values can affect the ranges of other attributes This can cause the value of the dependent attribute to change For example changing the chFullScale of a channel can change the ranges for chOffset and trThres1 Similarly requested attribute values will not always be available In order to verify that all changes are consistent with your expectations you can always check final attribute values with the GetAttributeValue method 4 2 Functional grouping of attributes Channel vertical settings chAttenuation chBandwidthLimit chCoupling chFullScale chImpedance chInput chOffset chScale2ndFactor chScaleFactor chScaleOffset chUnits Programmer s Guide Page 62 of 107 Horizontal timebase settings banks chTimeOffset ckT ype extSamplingRate samples segments
80. e the waveform of interest In the Normal mode data recording begins at the time of arming with the function AcqrsD1_acquire The trigger occurs asynchronously to the sampling clock and thus will fall randomly anywhere within a sampling interval When averaging waveforms this will result in an effective bandwidth reduction since the waveforms are randomly shifted with respect to each other by up to 4 sampling interval In Start on Trigger mode the trigger occurs before recording starts It still occurs asynchronously with respect to the internal VCO which is always running However if the requested sampling rate is less than the VCO frequency e g 100 MS s while the clock runs at 500 MHz then the time correlation Programmer s Guide Page 58 of 107 acqiris between the trigger and the effective sampling clock is within Y VCO time interval not Y sampling interval Therefore when averaging the bandwidth reduction will be less than in the normal mode The value delayTime in the function AcqrsD1_configHorizontal is ignored As usual the digitizer requires some memory overhead for additional samples The function AcqrsD1_bestNominalSamples returns the maximum number of available samples Use this code to use the Start on Trigger mode AcgrsD1_configXXX configure other parameters AcgrsD1_configMode instrID 0 0 1 AcqrsD1 acquire instrID AcqrsD1_waitForEndOfAcquisition instriI
81. entrant After initialization they are protected against multiple calls from different threads The unprotected routines are AcqirisD1_init AcqirisD1_initWithOptions AcgirisD1_getNbrPhysicalInstruments AcqirisD1_close AcqirisD1_closeAll AcqirisD1_multilnstrAutoDefine AcqirisD1_multiInstrDefine AcqirisD1_multilnstrUndefineAll Be sure to read the comments in the header file AcqirisD1Interface h or AcqrsD1Interface bas or the function parameter discussions in chapter 2 DEVICE DRIVER FUNCTION REFERENCE of the Programmer s Reference Manual The examples below do not check the return value of the AcqrsD1_ functions In real applications you should always check the return values of functions 3 2 Device Initialization Before any real or simulated device can be used each device must be initialized with a separate call to the function AcqrsD1_InitWithOptions For real devices you can also use the slightly simpler function AcqrsD1_Init Both functions return the instrumentID whose value will be different for each device which must be subsequently used in any other function call The arguments IDQuery and resetDevice are currently ignored The use of the string arguments resourceName and optionsString are explained with the initialization scenarios in the following sections If you use modules that are connected via ASBus you need to configure them as Multilnstruments This lets you treat them as normal instruments with an increased number
82. er generator To trigger on the PXI Star signal the value TrigIn should be chosen Programmer s Guide Page 87 of 107 acqiris ctrllOTrOutLevel Purpose Control the offset of the Trigger Out signal Prefixes Access Type Values RW double In mV Models DC271 FAMILY 10 bit FAMILY 12 bit FAMILY Traditional API equivalent AcgrsD1 _configControll0 id 9 signal AcqrsD1_getControll0 id 9 signal Discussion Studying the current range of the attribute may be needed to understand all of the possible values ctrllOTrOutResyne Purpose Control the synchronization of the trigger out signal with respect to the sampling clock Prefixes Access Type Values RW string MOLE OA Models DC271 FAMILY 10 bit FAMILY 12 bit FAMILY Traditional API equivalent AcqrsD1_configControllO id 9 qualifierl AcgrsD1_getControll0 id 9 amp qualifierl Discussion Use this attribute to control if the trigger output is resynchronized to the clock or maintains a precise timing relation to the trigger input Programmer s Guide Page 88 of 107 extCkRatio Purpose acqiris Give the ratio of the maximum external continuous clock sampling rate to the external clock input frequency Prefixes Access Type Values RO double Aas Zas ads Oe 5 Models ALL Traditional API equivalent NONE Discussion This number ca
83. espect to the stable trigger time which is the real reference point We define the time trigger time delayTime as the time origin for the waveform which is equivalent to saying that the trigger always occurs exactly at the time delayTime e The first data point of the waveform is defined as the last acquired data point before the time origin It is indexed with i 0 in the formula below A NOTE Itis important to realize that if a single segment is read e g with AcqrsD1_readData the first data point will be dataArray readPar indexFirstPoint and that this is not necessarily the first point given e The exact position of the first data point with respect to the time origin is a negative number horPos It is by definition in the range sampInterval 0 e The time between the trigger and the first data point hOffset need not be recorded since it can always be computed as delayTime horPos Note delayTime horPos lt delayTime by definition e In order to obtain a very stable image even in a highly zoomed display the user only needs to position the acquired data points with the aid of horPos by using the following formula for the x position of point i with respect to the left edge of the display x i horPos i sampInterval 3 12 Sequence Acquisitions For digitizers in Sequence acquisition mode multiple waveforms are acquired autonomously with a single start command AcqrsD1_acquire Whenever a trigger is received
84. essing even if the processing mode is set to NO_PROCESSING 3 8 5 2 What happens when the AutoSwitch semaphore is not set After the processing of an acquisition if the semaphore is not set the FPGA waits for further instructions This feature ensures that the software has finished with the old buffer and gives full Programmer s Guide Page 35 of 107 acqiris compatibility with older software implementations If you make a call to AcqrsD1_stopAcquisition you shouldn t try to read the last acquisition s data 3 8 5 3 Changing acquisition settings while acquiring and reading events If you want to change any of the acquisition settings you must o terminate the current acquisition sequence AcqrsD1_processData instrID processType 2 do a bank switch but do not start status AcqrsD1_waitForEndOfProcessing instrID timeout usual wait finish reading the data associated with the old settings AcqrsD1_readData instrID channel amp readParams waveformArray amp wfDesc amp segDesc o configure the instrument for the new values and start the new set of acquisitions go back to step 0 in the table above AcqrsD1_configAvgConfig AcqrsD1_acquire instrID 3 9 Data Readout For the reading of standard waveforms the AcqrsD1_readData routine should be used The following older routines will remain available but will no longer be discussed AcqrsD1_readCharWform AcqrsD1_readCharSequence AcqrsD1_readReal
85. f Channel 2 In this release if the function is called before the first acquisition has been started the value returned will be 0 It is possible to reset the time stamp using a hardware signal on the P1 or P2 connectors This can be done with a call like Programmer s Guide Page 30 of 107 acqiris Long TSReset 1 status AcqrsDl configAvgConfig instrID channel PlControl amp TSReset 3 6 Configuring AdvancedTDC Analyzers Since AdvancedTDC processing can be viewed as an additional form of processing after SSR acquisition please refer to the discussion in 3 5 Configuring SSR Analyzers for that part of process In addition you will have to Configure peak detection long numberOfTriggersPerSeg 50 numberOfSegments 1 double startDelta 0 1 validDelta 0 2 AcqrsD1_ configMode instrID 5 0 0 AcqrsD1_configAvgConfig instrID 0 NbrRoundRobins amp numberOfTriggersPerSeg AcgrsD1_configAvgConfig instrID 0 NbrSegments snumberOfSegments AcgrsD1_configAvgConfig instrID 0 StartDeltaPosPeakV sstartDelta AcqrsD1l_configAvgConfig instrID 0 ValidDeltaPosPeakV amp validDelta Configure histogram long tdcMode 1 tdcDepth 1 tdcIncr 2 tdcType 1 AcgrsD1_configAvgConfig instrID 0 TdcHistogramMode amp tdcMode AcgrsD1_configAvgConfig instrID 0 TdcHistogramDepth stdcDepth AcgrsD1_configAvgConfig instrID 0 TdcHistogramIncrement stdcIncr Acq
86. f the trace i e relative to the left edge of a real or virtual display grid It can be interpreted as the time from the trigger to the start of waveform recording If this number is positive recording starts after the trigger post trigger acquisition If it is negative recording starts before the trigger pre trigger acquisition In reality the acquisition always runs before any trigger occurs and delayTime controls the time between the trigger and the stopping of the acquisition delayTime Time until Acquisition Stop Comments sampInterval 0 Trigger point is at the right edge of grid i e at the end of nbrSamples the nominal waveform 100 pre trigger lt 0 sampInterval nbrSamples Trigger point is at the desired point within the grid delayTime 0 sampInterval nbrSamples Trigger point is at the left edge of grid i e at the beginning of the nominal waveform 0 pre trigger gt 0 sampInterval nbrSamples Trigger point is to the left of the grid i e before the delayTime beginning of the nominal waveform post trigger Note that delayTime is not allowed to become more negative than sampInterval nbrSamples because it is impossible to stop the acquisition before the trigger occurs 3 11 Horizontal Parameters in Acquired Waveforms Triggers usually occur asynchronously with respect to the sampling clock Thus between similar events the time from the trigger to the next sampling clock varies randomly in the range
87. ffset nbrSamples readParams firstSegment 0 Read first segment readParams nbrSamplesInSeg nbrSamples readParams flags 0 readParams reserved 0 readParams reserved2 0 0 readParams reserved3 0 0 AcgrsD1_readData instrID channel amp readParams waveformArray amp dataDesc amp segDesc The returned data array contains the acquired waveforms as a contiguous array of dataDesc gt returnedSamples bytes Note Make sure that the waveformArray is large enough to hold the sum of all GateLength s times the nbrSegments As a rule the waveformArray has to have as a minimum size the sum of all the gate sizes times nbrSegments waveformArray gt 23 GateLength nbrSegments Note If for each gate the sum GatePos GateLength exceeds the nbrSamplesInSeg GatePos is reduced to satisfy GatePos GateLength lt nbrSamplesInSeg If this is not sufficient GateLength is shortened to satisfy that condition 3 9 8 3 Data Processing before Readout In buffered mode the AP101 offers the capability of processing the acquired data before readout This operation must be explicitly requested by the application after the data acquisition has terminated Depending on the processing algorithms used you may have to prepare the data processing by setting the appropriate parameters with the function AcqrsD1_configSetupArray In the peak detect mode the AP101 will return for each gate exactly 2 peaks first th
88. for each segment and multiplied by the number of segments to get the waveform array length For threshold gate readout the program should allocate the space needed for the worst case This means 8 bytes for the time stamp 8 bytes for a gate block header and space for the total number of samples segment This must be multiplied by the number of segments to get the waveform array length It should be noted that the FPGA will generate a single gate block if there are less than 32 data points below threshold between two desired data points 3 9 7 Reading AdvancedTDC Analyzer Data and Histograms 3 9 7 1 Reading the gated data The gated data of the current event can be read out as described in 3 9 6 3 Gated data This is the only output format that gives access to the segment time stamps Programmer s Guide Page 42 of 107 acqiris 3 9 7 2 Reading the data in the peak regions The data of the peak regions in the current event can be read out using readMode ReadModePeak 10 The waveform descriptor structure contains the value actualDataSize giving the total number of data bytes read There will be a variable number of blocks of data with the following format Peak region block 8 points 31 24 8 bits 23 16 8 bits 15 8 8 bits 7 0 8 bits Flag 00010001 0x00 Valid Left Valid Right 31 0 32 bits Peak Position tmax 31 24 8 bits 23 16 8 bits 15 8 8 bits 7 0 8 bits
89. from which the actual sampling clock is derived In the external clock mode a waveform is sampled either on transitions of the external clock signal through the user defined threshold We distinguish between continuous external clock operation and start stop external clock operation All external clock reference modes are configured with the function AcqrsD1_configExtClock The external clock reference signal should have a peak peak amplitude of at least e 0 5 V for the DC135 DC140 DC211A DC241A DC271A DC271AR and 10 bit FAMILY Programmer s Guide Page 51 of 107 acqiris e 1 V for the other DC271 Family digitizers the 12 bit Family the AC SC Analyzers and the AP Averagers and Analyzers e 2 V peak to peak for all other models The inputThreshold value should be set to the center of the signal 3 14 1 External Reference This external reference mode clockType 2 simply replaces the internal 10 MHz reference clock with an external one at the same or a similar frequency Alternatively for the DC135 DC140 DC211 DC211A DC241 DC241A DC271 DC271A DC271AR the AC SC and the 10 bit FAMILY the PXI 10 MHz System Clock can be used as the reference If you need a more precise timebase or want to ensure that the timebases of several modules are at exactly the same frequency you should use clockType 2 in the function and apply an external 10 MHz signal All other settings of the digitizer are exactly the same as with an internal refe
90. fset sourc El boo 30 000 i Sampling Interval Coupling 12 50E 9 SDC 1 MOhm Delay Time Bandwidth y0 00E 0 fo bandwidth limit ICE ay ar NOS Seg 0 Seg 1 Seg 2 Seg 3 Seg 4 Seg 5 Seg 6 Seq Error Message Acquired Waveform limited to 10 segments 0 3 Seg8 0 4 i 1 1 1 1 1 1 1 1 1 E 5699 O 0E 0 2 0E 7 4 DE 7 6 0E 7 i 1 0E 6 1 2E 6 146 6 1 6E 6 1 86 6 2 06 6 9 AAA 7 This VI presents a basic interactive virtual oscilloscope using the AqDx Digitizer Driver Not all the functionality of the Acqiris digitizers is supported in this program but most of the most commonly used functions are demonstrated in it Programmer s Guide Page 10 of 107 acqiris 2 3 3 Accumulated Waveform Example VI AqDx Accumulated Waveform Example vi File Edit Operate Tools Browse Window Help gt een Resouce Name Channel Horizontal Settings Vertical Settings 7 aj PCI INSTRO yl Number of Samples Full Scale Trigger Settings 1000 5 000 Trigger Source Trigger Coupling Sampling Interval Offset Sinternal pc 1 00 8 30 000 TrigLevel1 Trig Level2 Trigger Slope Delay Time Coupling o 000 80 000 Positive 0 00E 0 SDC 1 MOhm Mol conten vento TE Junio escamas MI 1 54 r y A y f This VI demonstrates how to use the Accumulate Waveform function of the Acqiris Digitizer Driver It finds and initializes a digiti
91. g zeros are accepted 3 2 3 PCI Identification by Bus Slot Number While initialization by serial number is easy to implement it has the drawback that anytime a digitizer is replaced by another one e g if a failure occurred the program has to be modified Acqiris offers the possibility of specifying the logical position of the device at initialization ViSession instrumentID AcgrsD1_ InitwWithOptions PCI BUSO02 SLOTO6 VI FALSE VI FALSE m Ssinstruimentlib Again the bus and slot numbers must be contiguous to the keywords BUS and SLOT leading zeros are accepted Unfortunately it is not obvious at all by simple inspection which bus and slot number a given PCI device occupies One way to find out is to use AcqirisLive and to observe the bus slot numbers that can be found under the Help menu selection in Instrument Information Another way is to use the auto identification initialization method and then to interrogate each device with Programmer s Guide Page 19 of 107 acqiris ViSession instrumentID char name 20 long serialNbr busNbr slotNbr AcqrsD1_getInstrumentData instrumentID name amp serialNbr amp busNbr amp SlotNbr 3 2 4 VXI Identification Digitizers in IX20x VXI Carrier modules will also be found by the driver The resource name will be in the form VXI board logical_addr INSTR like VXI0 1 INSTR 3 2 5 Firmware initialization AP FAMILY 12 bit FAMILY A Cxxx S
92. hat t0 value is different for each channel and horPos is different for each segment So if you want to access information for segment j on channel k Programmer s Guide Page 15 of 107 acqiris gt gt set AI channel k segmentDescrIndex j gt gt horPos get Al channel k horPos gt gt timeStampLo get AI channel k timeStampLo gt gt timeStampHi get AI channel k timeStampHi Similarly for the t0 value gt gt t0 get AI channel k t0 where t0 trDelay chTimeOffset chTime2ndOffset chTime3rdOffset You can use these values to create a real time vector where the time of the first data point with resepect to the trigger is given by t0 horPos and the time between samples is as before The timeStamp values can be combined and used to measure the time difference between any pair of triggers in the acquisition Free Resources gt gt delete AI It s very important to free allocated resources when they are no longer needed 2 5 2 MEX Interface The Acqiris driver can also be used directly in Matlab without the Data Acquisition Toolbox This is done by directly calling the routines that are documented in the Programmer s Reference Manual Entering a command as shown below will give help information for the routine Aq_acquire gt gt help Aq atquire 2 5 2 1 Examples This example is in the directory lt AcqirisDxRoot gt MATLAB To use it either set the MATLAB current directory ed
93. he acquisition is started Here is an example const long channelNbr 0 double fsr offset threshold base threshold offset place the threshold at the middle of the screen base threshold fsr 10 place the base one division below the threshold set the base and threshold voltage values AcgrsD1 configAvgConfig instrID channelNbr Threshold amp threshold AcqrsD1_configAvgConfig instrID channelNbr NoiseBase amp base enable the NSA functionality AcqrsD1_configAvgConfig instrID channelNbr ThresholdEnable 1 AcqrsD1_configAvgConfig instrID channelNbr NoiseBaseEnable 1 3 5 Configuring SSR Analyzers 3 5 1 Acquisition Parameters The AP235 AP240 SSR analyzers have 2 operational modes normal and AutoSwitch controlled with the function AcgrsD1 contigMode instrID mode 0 0 The value mode can be set to 0 normal or 7 AutoSwitch The AutoSwitch mode requires a number of additional configuration parameters that describe the requested acquisition and readout conditions Use the following short code fragment to configure a buffered acquisition sequence of 800 waveforms of 5000 data points with a start delay of 128 samples Programmer s Guide Page 28 of 107 acqiris Common Configure long nbrSamples 5000 nbrSegments 800 long startDelay 128 stopDelay 0 AcqrsD1_ configMode instrID 7 0 0 AcqrsD1_ configAvgConfig instr
94. he value of apertureTime determines the time window during which the input pulses are counted The frequency counter mode is set with the function AcqrsD1_configMode with mode 6 After configuring the instrument parameters the measurement sequence is started with the function AcqrsD1_acquire This function returns before the measurement is terminated The user must wait until it is terminated with the functions AcqrsD1_acqDone or AcqrsD1_waitForEndOfAcquisition For the case of Totalize by Gate the program must stop the acquisition by making a call to the function AcqrsD1_stopAcquisition FC results can be readout with the function AcqrsD1_readFCounter The result is always a single double precision number whose units are those appropriate for the type of measurement chosen 3 16 2 Start on Trigger The Start on Trigger mode begins data recording only upon receipt of a trigger signal and stops after nbrSamples data points are acquired Not all digitizers are capable of this mode those that never have it are the DC110 DC240 DC265 DC270 and the 12 bit digitzers others DP105 DP106 DP110 DP111 DP210 DP211 DP212 can have it as an option only It is useful in the special case where the sampling rate is less than the maximum possible and where an optimum time correlation between the trigger and the sampling clock is required typically when averaging waveforms This mode also requires that the trigger is available befor
95. ilInstrAutoDefine amp nbrinstruments Retrieve the digitizer identifiers for long i 0 i lt nbrInstruments itt char resourceName 20 sprintf resourceName PCI INSTR d i status AcgrsD1 InitWithOptions resourceName VI FALSE VI_FALSE options amp instrumentID i The calls to AcqrsD1_InitWithOptions are needed to obtain the instrumentID s The physical digitizers were already initialized when AcqrsD1_multiInstrumentA utoDefine was called The digitizers within a single Multilnstrument are numbered from 0 to NbrModulesInInstrument 1 In Acqiris CC10x compactPCI crates the module 0 is always closest to the controller slot i e module numbers increase with increasing front panel slot numbers This statement is also applicable to CC121 crate configurations with both an Acqiris acquisition module in one of the last 7 slots and with the PC running under Windows 2000 NT or XP Users of other systems or crates may need to provide AqGeo map files to give the driver needed information The GeoMapper application described in the Digitizer User Manuals can create this file For details on channel and trigger source numbering please refer to section 3 15 ASBus Operation The master module is automatically chosen according to these rules ASBus e If modules of different memory lengths are combined only modules with the shortest memory length can be master modules e The master module is chosen as
96. instrumentID 10 long nbriInstruments vistatus Status Vistring options M status AcqrsDl_ getNbrPhysicalinstruments amp nbrinstruments Initialize the digitizers for long i 07 i lt nbrinstruments 144 char resourceName 20 sprintf resourceName PCI INSTR d i status AcgrsD1 InitWithOptions resourceName VI_FALSE VI FALSE options amp instrumentID i The resource name must be of the form PCI INSTRO PCI INSTR1 etc This is true in spite of the fact that all PCI cPCI and VXI instruments will be found If there are several digitizers on the system the order in which they are found is not obvious It depends on the Windows 95 98 NT4 2000 XP Configuration Manager implementation on the PCI bus topology in your computer and possibly on the BIOS 3 2 2 PCI Identification by Serial Number All Acgiris digitizers are labeled with a unique serial number For PCI digitizers you will find it on the front panel and for CompactPCI digitizers it is on the right injector ejector handle This same serial number is coded into an on board EEPROM that is read by the Device Driver upon initialization You can therefore ask to initialize a specific digitizer by specifying its serial number ViSession instrumentID AcgrsD1 InitWithOptions PCI SER10047 VI FALSE VI FALSE amp instrumentID Note that the serial number must be contiguous to the keyword SER leadin
97. interval and number of samples You are free to ignore the advice but the system is likely to adapt your setup values if the requested number of samples does not fit the available memory Specifying the value 0 for delayTime sets the trigger point to the beginning of the waveform A negative value corresponds to pre trigger a positive one to post trigger Refer to the section 3 10 Trigger Delay and Horizontal Waveform Position for a detailed explanation of the use of delayTime For DC coupling the trigger levels in FS as needed by AcqrsD1_configTrigSource can be calculated as follows Programmer s Guide Page 24 of 107 acqiris TriggerLevelPercent 100 TriggerLevelVolts vOffset Fsrange e The granularity of a trigger value setting is limited by the hardware that uses an 8 bit DAC covering somewhat more than the desired range e To set the external trigger range for a DC271 FAMILY or a 10 bit FAMILY module or an AP240 AP235 signal analyzer platform add a call to AcqrsD1_configVertical with channel 1 before the call to AcqrsD1_configTrigSource 3 4 Configuring Averagers 3 4 1 Basic configuration The averagers have 2 operational modes digitizer and averager controlled with the function AcgrsD1_configMode instrID mode 0 The value mode can be set to 0 digitizer or 2 averager Oy The averager mode uses a number of additional configuration parameters which describe the requested averaging cond
98. ion the trigger does not arrive within the requested timeout after the beginning of the acquisition the function returns with an error code The second pair of functions AcqrsD1_accumulateData for any digitizer and the older AcqrsD1_accumulateWform for 8 bit digitizers only can be used for multi channel operation and can be called for each acquisition the user wants to accumulate It reads the waveform in the module and performs a sample by sample accumulation in the client array Here again the client must supply a working array dataArray or waveformArray for internal use and an accumulation array sumArray The client controls the acquisition and must reset the accumulation array appropriately In both cases the allocation of the memory for the working array dataArray or waveformArray has been left to the client for performance reasons Its size must be at least the requested number of samples nbrSamples 32 for reasons of data alignment The content of this working array is not meant to be used by the client Please note that in both cases sub sample timing information i e horPos see section 3 11 Horizontal Parameters in Acquired Waveforms is not taken into account 3 9 4 Reading an Averaged Waveform from an Averager Averaged waveforms can be read out either in Volts or as 32 bit accumulated sums In either case Acqiris recommends to use the general purpose read function AcqrsD1_readData rather than the legacy fun
99. ion 6 2 4 of the SP201 Manual chTime2ndOffset Programmer s Guide Purpose Functions as an additive constant to adjust the time of the data points of an acquisition Prefixes Access Type Values RW double In seconds Models ALL Traditional API equivalent NONE Discussion See the MATLAB discussion in the Programmer s Guide section 2 5 or section 6 2 4 of the SP201 Manual Page 81 of 107 acqiris chTime3rd Offset Purpose Functions as an additive constant to adjust the time of the data points of an acquisition Prefixes Access Type Values RW double In seconds Models ALL Traditional API equivalent NONE Discussion See the MATLAB discussion in the Programmer s Guide section 2 5 or section 6 2 4 of the SP201 Manual chTimeOffset Programmer s Guide Purpose Functions as an additive constant to adjust the time of the data points of an acquisition Prefixes Access Type Values RW double In seconds Models ALL Traditional API equivalent NONE Discussion See the MATLAB discussion in the Programmer s Guide section 2 5 or section 6 2 4 of the SP201 Manual Page 82 of 107 acqiris chType Purpose Allows the client to learn the kind of hardware available in the channel Prefixes Access Type Values channel RO string Trigger 1GHz 1GHz 2 input 2GHz 2 input 12BLES 1GHz 50 1M Ohm 2GHz
100. ion and the third waits for the end of the acquisition You can specify a timeout If the timeout occurs MATLAB terminates the file execution with an error message Read the Data Support for Adaptor properties is very limited The following properties are available from the Adaptor in read mode SampleRate SamplesPerTrigger Programmer s Guide Page 14 of 107 acqiris NOTE Its value corresponds to samples segments segments segmentDescrIndex Using the property segmentDescrIndex you can access horPos timeStampLo timeStampHi Refer to the section 3 11 Horizontal Parameters in Acquired Waveforms and section 3 12 Sequence Acquisitions For digitizers in Sequence acquisition mode multiple waveforms are acquired autonomously with a single start command AcqrsD1_acquire Whenever a trigger is received the current acquisition segment is normally terminated The digitizer then automatically initializes another acquisition into the next memory segment until all requested segments are filled Timestamps for detailed explanations on the interpretation of these values For averagers we provide nbrAveragedWaveforms from DataDescriptor The simplest way to read data for an acquisition with a single channel in a single segment is gt gt DataArray Time getdata AI gt gt set AI channel 0 segmentDescrIndex 0 gt gt trDelay CallAcgiris GetDouble ID trDelay gt gt Time Time get A
101. iris AqReadParameters readParams Read Definitions AqDataDescriptor dataDesc Returned waveform values AqSegmentDescriptor segDesc Returned segment values long channel 1 nbrSamples 4000000 char waveformArray 4000000 readParams dataType ReadInt8 readParams readMode ReadModeStdW readParams nbrSegments 1 readParams firstSampleInSeg 0 readParams segmentOffset nbrSamples readParams firstSegment 0 Read first segment readParams nbrSamplesInSeg nbrSamples readParams flags 0 readParams reserved 0 readParams reserved2 0 0 readParams reserved3 0 0 memoryBank memoryBank 1 amp 0x1 switch to other bank AcqrsD1_configMode instrID 3 0 memoryBank AcqrsD1_acquire instrID essential AcgrsD1_readData instrID channel amp readParams waveformArray amp dataDesc amp segDesc The returned data array contains the acquired waveforms as a contiguous array E g if you configured nbrSamples 5000 the data points waveformArray 0 4999 correspond to the first waveform the data points waveformArray 5000 99997 correspond to the second waveform etc 3 9 8 2 Reading Gated Waveforms For reading gated waveforms the actual desired gates should be set with the setup function AcqrsD1_configSetupArray This function should be called before AcqrsD1_acquire is invoked to acquire any data that needs to be read using these gates To read back the gate va
102. itions Use the following short code fragment to configure an average of 1000 waveforms of 20 000 data points with a dithering range of 15 ADC LSB s and a start delay of 128 samples for an AP100 Configure long channelNbr 0 nbrSamples 20000 nbrWaveForms 1000 long ditherRange 15 trigResync 1 long startDelay 128 stopDelay 0 AcqrsD1_configAvgConfig instrID channelNbr NbrSamples D1 configAvgConfig instrID NbrWaveforms DI configAvgConfig instrID DitherRange D1_ configAvgConfig instrID TrigResync D1 configAvgConfig instrID StartDelay D1 configAvgConfig instrID StopDelay Acqrs ACES Acgrs ACGES Acgrs Comments nbrSamples channelNbr nbrWaveForms channelNbr amp ditherRange channelNbr amp trigResync channelNbr amp startDelay channelNbr amp stopDelay e The value channelNbr is usually 0 However for AP240 AP235 Signal Analyzer platforms it can take on the value of the desired channel for some of the parameters e When in averager mode the following digitizer parameters are ignored delayTime of the function AcqrsD1_configHorizontal is replaced by StartDelay and StopDelay in future software versions the parameter samplnterval of the function AcqrsD1_configHorizontal is likely to be replaced by Samplnterval nbrSamples and nbrSegments of the function AcqrsD
103. ixes Access Type Values RW double In seconds Models ALL Traditional API equivalent AcqrsD1 configHorizontal id delayTime sampInterval AcqrsD1 configHorizontal id amp delayTime amp sampInterval Discussion Studying the current range of the attribute may be needed to understand all of the possible values Programmer s Guide Page 95 of 107 acqiris segments Purpose Control the number of segments in an acquisition Prefixes Access Type Values RW integer Models ALL Traditional API equivalent AcqrsD1 configMemory id nbrSegments AcqrsD1 getMemory id amp nbrSegments Discussion The number of segments chosen may coerce the number of samples per segment in the acquisition timeWindow Purpose Control the total time spanned by a segment in an acquisition Prefixes Access Type Values RW double In seconds Models ALL Traditional API equivalent NONE Discussion timeWindow samples samplingIntv Programmer s Guide Page 96 of 107 acqiris trClass Purpose Control the type of trigger Prefixes Access Type Values RW string Edge TV Models ALL Traditional API equivalent AcgrsD1_configTrigClass id trigClass AcqrsD1_getTrigClass id amp trigClass Discussion Studying the current range of the attribute may be needed to understand the current range
104. lI channel 0 horPos trDelay The first command returns all the data acquired together with a vector containing the time values for each sample acquired The DataArray will contain the measured values converted to the user units as follows valueInUserUnit userGain voltData userOffset voltData vGain rawData vOffset where userGain chScaleFactor chScale2ndFactor 10 PAttenuation 20 userOffset chScaleOffset vGain chFullScale 256 8 dataSize size in bytes of a rawData sample 1 or 2 depending on the instrument vOffset chOffset The original Time vector starts at 0 and increases in steps of 1 SampleRate The last line above shows the horPos and trDelay corrections to the Time vector so that the time of the trigger is 0 For segmented acquisition we decided to concatenate all segments in the same vector returned by the method getData For multichannel instruments the getData method returns a vector for each channel activated So if you have chosen to acquire on n channels m segments of p samples you will get a matrix with size m p n Using MATLAB commands you can easily extract only one segment from the matrix For example if you would like to extract the segment j on the channel k you can write gt gt vectorSeg DataAcquired j 1 p 1 3 p Kk The Time vector shown in the simple case above is not appropriate because the adaptor has no information about horPos correction and t0 value Note t
105. lows you to generate a trigger out signal which can be synchronized with the sampling clock if desired Use the following code fragment to replace STOP ACQUISITION in the previous section Acges bl forcerrig inserip if AcgrsDl waitForEndOfAcquisitionfinstrib timeout ACQIRI S ERROR ACO T IMEOUT AcgrsD1_stopAcquisition instrID SCREAM because a major error occurred Note that no timeout should ever occur when waiting for a forceTrig to terminate provided that the timeOut value was made large enough If a timeout does occur this would indicate a failure in the digitizer or the entire system For users generating triggers under software control it may be desirable to do the data readout in a way that just gives the acquired data points and ignores the correction of the data gotten from the horPos measurement of the time from the trigger to the next data sample This can be done using the flags parameter of the AqReadParameters structure 3 8 5 Analyzer and AdvancedTDC Autoswitch mode If with the AdvancedTDC mode the TdcHistogramMode parameter has been used to enable histogramming the desired number of acquisitions will be taken automatically As usual the acquisition must be initialized with a call to AcqrsD1_acquire instrID When the acquisition has terminated the histogram data and the peak or gate data of the last acquisition will be available for readout The routines AcqrsD1_acqDone or AcqrsD1_waitFor
106. lse must be already well over the threshold and its width must be gt Ins The digitizer sees the multiple clock bursts as a single acquisition It knows neither the sampling frequency nor the time difference between the waveforms It simply acquires a number of data points In termination mechanism 2 it also records the extraneous points and then stops When reading the data the multiple waveforms appear as a contiguous waveform The only way of distinguishing one waveform from the other is by counting samples i e the first 2000 samples belong to the 1 waveform the next 2000 to the 2 etc It is therefore imperative to exactly control the number of clocks in a burst NOTE If the time difference between 2 bursts is gt 100 ns the digitizer tends to drift into saturation from which it has to recover when the next burst resumes The first data sample of such a burst is thus invalid In many cases this first data sample is sufficiently different from the rest of the waveform that it can serve as a segment marker NOTE Digitizers that have more than one converter channel DC211 DC240 DC241 DP210 DP211 and DP214 will generate two four for theDC211 data samples for each sampling interval You must dimension your acquisition and readout for twice 4x the normal amout of data and can then either drop the extra data sample from the record or average the data values which could enhance the signal to noise ratio 3 15 ASBus
107. lues AcqrsD1_getSetupArray has to be used An example for the two routines is shown in the following code const int NbrGates 64 long channelNbr 0 long configObj AvgGate long lastGate NbrGates AgGateParameters gatePara NbrGates for int i 0 i lt NbrGates i gatePara i GateLength 256 gatePara i GatePos i gatePara i GateLength AcqrsD1_configSetupArray instrID channelNbr configObj gatePara lastGate The condition GateLength gt 4 is required Both GateLength and GatePos must be multiples of 4 You can read the gate parameters back with this code Programmer s Guide Page 45 of 107 acqiris const int NbrGates 64 long channelNbr 0 long configObj AvgGate long lastGate AgGateParameters gatePara NbrGates AcgrsD1_getSetupArray instrID channelNbr configObj gatePara amp lastGate Make sure to use a pointer to the last argument since it returns the number of gates lastGate cannot exceed the number of gates being written To read the gated waveforms use the function AcqrsD1_readData AqReadParameters readParams Read Definitions AqDataDescriptor dataDesc Returned waveform values AqSegmentDescriptor segDesc Returned segment values long channel 1 nbrSamples 20000 char waveformArray 20000 readParams dataType ReadInt8 readParams readMode ReadModeGatew readParams nbrSegments 1 readParams firstSampleInSeg 0 readParams segmentO
108. mal mechanism for finding the FPGA bit files will not work the driver has to be told explicitly where to find them This procedure is also shown in the GetStartedETS cpp ETS sample program and the GetStarted cpp VxWorks sample program Thus AcqrsD1_InitWithOptions has to be called with ViString options gal 0 status AcgrsD1 InitWithOptions resourceName VI_FALSE VI_FALSE options amp instrumentID i Then before using the desired module in any mode you should execute code like that shown below ViString FPGADirectoryName C firmware or C for ETS AcqrsD1_configLogicDevice instrumentID NULL FPGADirectoryName 2 As a final step you should now calibrate the instrument which will cause the FPGA files to be loaded status AcqrsDl calibrate instrument ID Programmer s Guide Page 20 of 107 acqiris 3 2 6 Automatic Definition of Multilnstruments The function AcqrsD1_multilnstrumentAutoDefine automatically searches for all sets of modules that are connected with ASBus and configures each such block as a single Multilnstrument It then reports the total number of instruments found including individual modules without ASBus connections You still need to retrieve the instrumentID for each instrument by calling the function AcqrsD1_InitWithOptions afterwards as shown below ViSession instrumentID 10 long nbriInstruments ViStatus status vistring options m status AcgrsDl_ mult
109. memory bank and start a new acquisition in the second bank Note that you must start the new acquisition to make the memory bank switch happen 11 Start data processing This can overlap with the data acquisition since it automatically deals with the memory bank that is not selected for acquisition 12 After processing has terminated read the processed result Note that the processing will not destroy the originally acquired data 13 You may now do any additional processing in your computer However you cannot read the original data at this point without perturbing the acquisition 14 Wait for the new acquisition to terminate 15 If you need to read the original data e g for diagnostics on the processing algorithm you may now do so 16 Loop to 4 above You need to implement a method to interrupt the infinite loop whenever required However you should make sure that you leave the acquistion in a well determined state for future operation The explicit acquisition processing readout sequence described above is shown in the following code AqReadParameters readParams Read Definitions AqDataDescriptor dataDesc Returned waveform values long channel 1 segmentNumber 0 long nbrPeaks 2 nbrGates nbrGates is defined by user long waveformArray 2 nbrPeaks long memoryBank 0 timeout 5000 timeout 5 seconds Insert whatever is required for Vertical and Trigger configuration
110. method for segments of 10 000 or more samples However each segment requires its own DMA setup When segments are very short the transfer overhead starts to dominate the overall transfer time After the transfer the data in the buffer is ready to be used The function AcqrsD1_readData for readMode 1 reduces the overhead time by transferring with a single DMA a complete digitizer memory image to the host computer memory The memory image is composed of a number of segments each of which is a circular buffer The first data point of interest in the circular buffer may be anywhere and its position usually changes randomly between acquisitions Thus after the DMA is terminated the driver must copy data from the image to the final linear buffer for each segment This method is therefore only interesting for relatively short segments However if timing is not an important consideration it offers the convenience of a single function call for the complete transfer of a waveform sequence Formulas for estimating the transfer times in ps are e AcqrsD1_readData for readMode 0 T M Ovhdpy M N Xfr e AcqrsD1_readData for readMode 1 T Ovhd py M Ovhd x M N Extra Xfr M N Cpy with the following definitions M Number of segments N Number of samples per segment Xfr Transfer time per sample in ps typically 0 01 Ovhd py DMA overhead time per segment in us Ovhd pfer Circular buffer analysis overhead time per segment
111. n depend on the model and the convertersPerChan value extInputFreq Purpose Inform the driver of the external continuous clock frequency Prefixes Access Type Values RW double In Hz Models ALL Traditional API equivalent AcqrsD1 config AcqrsD1 get Discussion ExtClock id amp inputFrequency ExtClock id inputFrequency wv See section 3 11 External Clock and Reference of the Programmer s Reference manual Programmer s Guide Page 89 of 107 acqiris extSamplingRate Purpose Control the desired sampling rate when in external continuous clock mode Prefixes Access Type Values RW double In Hz Models ALL Traditional API equivalent AcqrsD1_configExtClock id sampFrequency AcqrsD1_getExtClock id amp sampFrequency Discussion See section 3 11 External Clock and Reference of the Programmer s Reference manual extSparsing Purpose Alternate to control the desired sampling rate when in external continuous clock mode Prefixes Access Type Values RW double Models ALL Traditional API equivalent AcgqrsD1_configExtClock id sampFrequency AcgrsD1_getExtClock id amp sampFrequency Discussion The values are such that extSamplingRate extCkRatio extInputFreq extSparsing See also section 3 11 External Clock and Reference of the Programmer s Refe
112. nd where 0 0 corresponds to the middle of the input range trThresUnit Purpose Control whether the relative or the absolute trigger discriminator level attributes should be conserved when changing the input range fullscale and or offset Prefixes Access Type Values channel amp ext RW double Yi SES Models DC271 FAMILY 10 bit FAMILY Traditional API equivalent NONE Discussion When the value V is set for this attribute changing the input range of a channel i e changing the full scale and or the offset will keep the value in volts set for the trThres1 2 levels constant and adjust the corresponding relative values trRelThres1 2 On the other hand if the value FS is chosen a change in input range will imply a change in the value in volts set for the trThres1 2 levels Programmer s Guide Page 101 of 107 acqiris trT VField Purpose Control the field choice for the TV trigger Prefixes Access Type Values ext RW string Odd Even Models 12 bit FAMILY Traditional API equivalent AcqrsD1_configTrigTV id channel field AcqrsD1 getTrigTV id channel amp field Discussion Studying the current range of the attribute may be needed to understand all of the possible values trTV Line Purpose Control the line choice for the TV trigger Prefixes Access Type Values ext RW long Models 12 bit FA
113. ngs Files created with the AcqirisLive program can be used To load a setup gt gt CallAcgiris LoadConfiguration Prompt for file gt gt CallAcgiris LoadConfiguration Filename To save a setup gt gt CallAcgiris SaveConfiguration Prompt for file gt gt CallAcqiris SaveConfiguration Filename Calibration We added the possibility to do a calibration gt gt CallAcqiris Calibrate ID CalibrationType where ID is the module identifier 0 1 2 and CalibrationType can take one of the 3 values Programmer s Guide Page 13 of 107 acqiris 0 calibrate the entire instrument 1 calibrate only the current channel configuration 2 calibrate external clock timing Requires operation in External Clock Continuous 2 5 1 3 Process an acquisition Create the AnalogInput object gt gt AI analoginput aq 0 gt gt BUFFER_SIZE 1000 gt gt BUFFER_CNT 30 This command creates an AnalogInput object The first argument specifies that MATLAB should use the Acqiris Adaptor The second argument is the InstrumentID of the digitizer to use The two BUFFER constants are initialized for use in 0 below Alternatively the following arguments can be used and even combined with a separator e gt gt AI analoginput aq 0 cal false The option added tells the driver to skip the calibration e gt gt AI analoginput aq 0 forceTrigAf
114. o obtain the maximum available memory after setting these parameters The equivalent of delayTime is defined with the value delayNbrSamples which only applies to external clock operation The actual delay value is easily computed as follows delay delayNbrSamples nbrSamples sampFrequency Example In a 1 generation module with an external clock running at 200 MHz if you wanted to acquire 2000 data points at 50 MS s with the trigger point at the end of the first quarter of the time window you would use the code AcqrsD1_configMemory instrID 2000 1 AcgrsDl contigExtClock instrIib 1 threshold AcgrsaDbl acquire instriD 1500 2 0e 8 start the acquisition timeOut 5 0et7 AcqrsD1_waitForEndOfAcquisition instrID The value of delayNbrSamples is 1500 because 500 points need to be acquired before and 1500 points after the trigger in order to position the trigger point at the 1 quarter of the time window Programmer s Guide Page 53 of 107 acqiris Equivalently you could have computed the time window to be 2000 x 20 ns 40 us The delay would therefore have to be 10 us to get the trigger point to the 1 quarter of the time window Since nbrSamples 2000 and sampFrequency 5 0e 7 you would obtain delayNbrSamples 1500 Since the sampling frequency is known in this clock mode through the variable sampFrequency any read functions correctly return the value of the sampling interval In additi
115. oescebanceucesducstiessndtievetedet 18 3 2 De viceslinitializationss ON 18 3 2 1 PCI amp VXI Identification by Order Found ocooooccnoccnocococnnononononnnconoconono nooo ncon nono nonnnnnnonns 19 3 2 2 PCI Identification by Serial Number ooooocnncniconocononononcnoncconononono nono nonnonncnnnc nora nncnnnonnnos 19 3 2 3 PCI Identification by Bus Slot Number ccccsceeseesceeeeeeeceeeceeecesecnaeeeeeceeeseeeneenseees 19 3 2 4 VAL Identidad setas eel loo e e T 20 3 2 5 Firmware initialization AP FAMILY 12 bit FAMILY ACXxx SCxXXX oooccocccononccnnonnon 20 3 2 6 Automatic Definition of Multilnstrument oooooonocnnccconononcconcnnnono nono nono nonnnnnnonnnn nono nncnnnos 21 3 2 7 Manual Definition of MultiInstrument 0 ccccesccesecesececeeseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeensees 21 3 2 8 AqGeo map file positioning ccececsseessesseeesceeeeeeceseceseceaecaaecaeecaeeeneseeeeeeeseenaeeeseenaees 22 3 2 9 Simulated Devi tt ats Sa ee 23 3 2 10 Terminating an Application cccccceeseesceesceeeceseceseceseceeecaeecaeeeaeeeeeeeeeeeeeeeseeseeeneenaeeaees 23 3 3 De vice Confi guration dos 23 3 4 Configuring Averagers A 25 3 4 1 Basic configura iio dashed whee 25 Programmer s Guide Page 3 of 107 acqiris 3 4 2 Ditherihg oranie ssde see acia 26 3 4 3 Fixed Pattern Background Subtraction cccccesccsscceseeeeeeeeeeeeeseeeeeeseeeeeeeeeeeeeenteeeaees 26 3 4 4 Configuring Noise Su
116. of channels E g you can connect 3 DC270 s to form a single 12 channel 1 GS s digitizer If needed and before initializing the devices a call to either AcgirisD1_getNbrPhysicalInstruments can be used to learn how many instruments have been found However a side effect of this call will be to select the use of single instruments This can be manually circumvented as discussed below or AcqrsD1_multilnstrumentAutoDefin can be used to automatically combine as Multilnstruments modules that are connected via ASBus and return the total number of instruments found including individual modules without ASBus connections It automatically searches for all sets of modules that are connected with ASBus and configures each such block as a single MultiInstrument As an alternative to automatic Multilnstrument definition you can initialize each module individually with the function AcqrsD1_InitWithOptions and then combine some of them with the function AcqrsD1_multiInstrDefine This method provides better control over which modules are combined and in what order at the expense of careful book keeping of which instrumentID s are available For details please refer to the section 3 2 7 Manual Definition of MultiInstruments Programmer s Guide Page 18 of 107 acqiris 3 2 1 PCI amp VXI Identification by Order Found If you don t know which and or how many Acqiris digitizers are present on the machine use this code fragment ViSession
117. of the expected result Prefixes Access Type Values RW double Models Those with FreqCntr option Traditional API equivalent AcgrsD1_configFCounter id targetValue AcqrsD1 _getFCounter id amp targetValue Discussion See discussion in section 3 1 Configuration Programmer s Guide Page 92 of 107 acqiris input Purpose Control the active channels and number of converters per channel Prefixes Access Type Values RW string discrete Models DC135 DC140 DC152 DC241 DC241A DC252 DC271 DC271A DC271 AR Traditional API equivalent AcqrsD1_configChannelCombination id DC282 DP235 DP240 AP235 AP240 AcqrsD1_getChannelCombination id Discussion usedChannels amp usedChannels Studying the current range of the attribute may be needed to understand all of the possible values memoryUsage Purpose Allows the user to force the acquisition into internal memory Prefixes Access Type Values RW string Internal 71 External Models 10 bit FAMILY digitizer with Optional memory Traditional API equivalent AcqrsD1 configMemory id flags Discussion Allows the user to select internal memory and profit from the lower intersegment delay time Programmer s Guide Page 93 of 107 acqiris name Purpose Allows the RW client to
118. oftware sets the AutoSwitch semaphore AcqrsD1_processData instrID processType 1 To ensure the shortest response time this Sie arming function should be done on the order process ype Os used for SBR w advance TIE of 10 20 us before the expected acquisition 1 2 3 or 4 are for AP101 AP201 or end AdvancedTDC 3 When the acquisition has finish the FPGA automatically switches the banks starts a new acquisition a new processing and clears the AutoSwitch semaphore 4 Once the software receives the status AcqrsD1_waitForEndOfProcessing instrID ProcessingEnd interrupt it can start the timeout raadou AcqrsD1_readData instrID channel amp readParams waveformArray amp wfDesc amp segDesc Go to 2 to continue Here is a sample bit of code showing this principle status AcqrsD1 acquire instrID Start the acquisition processType 0 for loop forever status AcqrsDl processData instriD processType 1 status AcqrsDl waitForEndOf Processing instriD Limeout status AcqrsD1l readData instrID channel amp readPar sadcArray amp dataDesc amp segDesc To keep the same interface for the AP240 as was the case for the AP101 AP201 the processing step is kept but the dummy processing value is used Actually the software knows which processing is needed from the setup values sent to AcqrsD1_configA vgConfig Thus the software must wait for the end of proc
119. ogramming Environments amp Getting Started Acqiris supplies sample programs as a starting point for the development of user specific applications For Windows systems there are samples for the Visual C C Visual Basic LabWindows CVI LabVIEW and MATLAB For Phar Lap ETS and VxWorks real time systems there are sample programs for Visual Studio and Tornado respectively An Application Program Interface API hlp file with a shortcut named Acqiris Digitizer Driver Help is available and contains condensed descriptions of all of the interface functions Preliminary remark it is assumed in the following that the hardware and Acqiris software installations see User Manual chapter 2 have already been completed NOTE Visual C C VxWorks and LabWindows CVI all rely on the standard VISA types defined by VxIplug amp play Systems Alliance VISA The visatype h include file can be found in the include directory created at installation 2 1 Visual C e Open either the project file GetStartedVC dsp or GetStartedAvgVC dsp in VisualC and build the project e Note that you should insert the line include AcqirisDlImport h at the beginning of every file that will access Acqiris Device Driver functions e The project should link to the AqDrv4 lib file 2 2 LabWindows CVI e Open the project file GetStarted prj in LabWindows CVI and build the project e Note that you should insert the line include AcqirisDlImport h at the beginning of
120. om readPar gt dataArraySize nbrSamplesNom currentSegmentPad l nbrSegments here we show the malloc explicitly dataArrayP char malloc readPar gt dataArraySize readPar gt segDescArraySize sizeof AqSegmentDescriptor nbrSegments status AcgrsD1_readData instrID channel readPar dataArrayP dataDesc segDesc Comments The explicit malloc call will normally not be repeated for every acquisition Obviously a larger than needed allocation is perfectly acceptable Also any space allocated this way ought to be returned to the heap at some point 3 9 3 Averaging Waveforms in a Digitizer The driver includes 4 functions provided to improve performance when averaging waveforms The first pair of functions AcqrsD1_averagedData for any digitizer and the older AcqrsD1_averagedWform for 8 bit digitizers only are meant only for single channel single segment operation They average a predefined number of waveforms taking care of the acquisition loop internally The client must supply a working array dataArray or waveformArray for internal use and an accumulation array sumArray The accumulation array is reset automatically inside the function at the beginning of each call When the function returns successfully the accumulation array contains the sample by sample sum of the waveforms To get the average values the array elements must be divided by the number of acquisitions nbrAcq If for each acquisit
121. ombines low CPU usage with very good response time The function enables the digitizer s end of acquisition interrupt and sets up a semaphore that waits for this interrupt It then releases the thread by going to sleep thus letting other threads of the application or other applications use the CPU time The function returns as soon as the interrupt occurs or when the timeout expires Acqiris recommends using AcqrsD1_waitForEndOfAcquisition since it is the most efficient method The interrupt latency is of the order of several us and no CPU time is wasted Programmer s Guide Page 33 of 107 acqiris 3 8 4 Stopping Forcing an Acquisition The previous section shows a case where an ongoing acquisition must be stopped typically because there is no trigger Also in some situations you may want to use the digitizer to generate a system trigger under software control If you still would like to have a valid snapshot of the current input signal you should generate a trigger signal by software with the function AcqrsD1_forceTrig or AcqrsD1_forceTrigEx Typically the acquisition does not stop immediately since the digitizer may continue acquiring some additional data depending on the delayTime and the data acquisition time that were initially configured Thus the application should again wait for the acquisition to terminate Forcing a trigger does not make sense for averagers and analyzers and should not be done AcqrsD1_forceTrigEx al
122. on if the user supplied clock frequency inputFrequency is gt 800 MHz on DC271 FAMILY digitizers or in all cases for 10 bit and 12 bit digitizers the system correctly measures the value horPos and returns it with any waveform read function such as AcqrsD1_readData Thus the time position of the sampled data points can be known to within a small fraction of the sampling interval permitting very precise timing measurements as with the internal clock However the digitizer must be calibrated at the external clock frequency in use whenever inputFrequency or sampFrequency are changed Use this code We assume that a normal calibration has been done either during initialization or explicitly AcgrsD1_configExtClk Set to cont Ext Clk Make sure to apply the same external frequency as the value inputFrequency set in the function call above AegrsD1 calibrateEx instrIiD 2 0 0 17 The function AcqrsD1_calibrateEx with calType 2 readjusts some timing calibration constants but does not modify any vertical adjustment values such as gain or offset In first generation digitizers or when inputFrequency is lt 800 MHz in the second generation digitizers or AP AC SC analyzers in the digitizer mode the data read functions will return horPos 0 0 equivalent to a timing uncertainty of 0 5 samples For implementation reasons the acquired waveform in fact has a timing uncertainty that is twice as large i e
123. on instrID timeOut long nbrPoints Should be the current number of points long timeStampLo timeStampHi nbrReturnedSamples double horPos sampTime Read the Waveform directly to the Background buffer double bckGndWform nbrPoints AcgrsD1_readRealWform instrID 1 0 0 nbrPoints bckGndWform nbrReturnedSamples amp horPos sampTime amp timeStampLo amp timeStampHi Restore the settings of the averager AcgrsD1 contigvertical instriD 1 fsr offset coupl bwidth AcqrsD1_configAvgConfig instrID channelNbr TrigResync amp resync Use the following code fragment to acquire a fixed pattern background assuming that the external trigger can be used and is already set const long channelNbr 0 double fer offset long coupl bwidth reSync freeRun 2 AcgrsDl_acquire instriD long timeOut 1000 depends on conditions AcqrsD1_waitForEndOfAcquisition instrID timeOut long nbrPoints Should be the current number of points long timeStampLo timeStampHi nbrReturnedSamples double horPos sampTime Read the Waveform directly to the Background buffer double bckGndWform nbrPoints AcgrsD1_readRealWform instrID 1 0 0 nbrPoints bckGndWform nbrReturnedSamples amp horPos amp SsampTime amp timeStampLo amp timeStampHi The examples above assume that the background and the averaged waveforms are read in Volts
124. ot relevant for each channel of interest e Two calibrated delay parameters as obtained with the function calls Double delayOffset delayScale AcgrsD1_getInstrumentInfo ID DelayOffset amp delayOffset AcgrsD1_getInstrumentInfo ID DelayScale amp delayScale The functions AcqrsD1_getInstrumentInfo should be called just before the start of the acquisition i e before calling AcqrsD1_acquire but after all AcqrsD1_config functions 3 17 2 Recovery after Power Off In order to read a battery backed up waveform you need to execute a special sequence of initialization functions 1 Initialize the digitizer with the following function call AcqrsD1_InitWithOptions resourceName false false CAL FALSE amp instrID It is important to specify CAL FALSE to prevent any calibration in the digitizer which would destroy any retained data 2 Call the functions AcqrsD1_configHorizontal AcqrsD1_configMemory AcqrsD1_configVertical for each channel with the same parameters that were used in the original acquisition 3 Call the function AcqrsD1_restoreInternalRegisters with the parameters delayOffset and delayScale In case these parameters are not available e g due to earlier software versions you should use the values 20 0e 9 for delayOffset and 5 0e 12 for delayScale 4 Call the function AcqrsD1_readData to read the battery backed up data Failing to restore the originally used digitizer paramete
125. pTime amp tStampLo amp tStampHi Programmer s Guide Page 40 of 107 acqiris 3 9 4 2 Averaged Waveforms as 32 bit Sums You must use the general purpose function AcqrsD1_readData Use this code fragment AqReadParameters readParams Read Definitions AqDataDescriptor wfDesc Returned common waveform values AqSegmentDescriptorAvg segDesc Returned segment values long channel 1 nbrSamples 20000 long waveformArray 20000 readParams dataType ReadInt32 Request 32 bit sums readParams readMode ReadModeAvgW readParams nbrSegments 1 readParams firstSampleInSeg 0 readParams segmentOffset nbrSamples readParams firstSegment 0 Read first segment readParams nbrSamplesInSeg nbrSamples readParams dataArraySize sizeof waveformArray readParams segDescArraySize sizeof segDesc readParams flags 0 readParams reserved 0 readParams reserved2 0 0 readParams reserved3 0 0 AcgrsD1_readData instrID channel amp readParams waveformArray amp wfDesc amp segDesc The returned data values in waveformArray are unipolar i e the raw ADC values are coded as values between 0 and 255 so that the summed data values may run between 0 and 255 N N number of waveforms in the sum 3 9 5 Reading a RT Add Subtract Averaged Waveform from an Averager This case is significantly different than the normal averager case described above The raw sums now have to b
126. perations between such integers can be done as with shorter integers You also can convert a timestamp difference to an extended floating point number and do arithmetic operations as with other variables double deltaTime double timeStamp previousStamp e In Visual Basic use a decimal Variant variable as follows Const Twol6 As Variant 65536 Const Two32 As Variant Twol6 Twol6 Dim timeStamp As Variant previousStamp as Variant Dim timeDiff as Variant xStampLo as Variant If tStamplo 0 Then xStampLo Two32 Abs tStampLo A Else xStampLo End If timeStamp CDec tStampHi Two32 xStampLo tStampLo timeDiff timeStamp previousStamp Arithmetic operations between such decimal variants can be done as with other integer variables The manipulation of tStampLo is somewhat complicated because this variable is a signed 32 bit integer but must be added as an unsigned integer to the shifted tStampHi e In LabVIEW convert the timestamp to an extended floating point number and do arithmetic operations as with other variables e In LabWindows CVI the easiest way to manipulate timestamps is to convert them first to doubles ViReal64 dlow dhigh tstamp dlow ViReal64 low dhigh ViReal64 high tsamp dlow 4294967296 0 dhigh 3 14 External Clock and Reference The external reference mode replaces the internal 10 MHz reference clock with an external one at the same or a similar frequency
127. ppressed Accumulation NSA cccscecseeseeseeeseeereeereeteeeteensees 28 3 5 Configuring SSR Analyzers iii data 28 3 5 1 Acquisition Parameters cnica dada doce tudes 28 3 5 2 Readout configuration sonecon nii in a tev ee see ted A REEE REE E a 29 3 5 3 A e a i E e e aeeai ia 30 3 6 Configuring Advanced TDC Analyzers s sessesesessseeeesseseeseeseesessteresseseeseserstsseeresstseessesreseeseeee 31 3 7 Configuring AP101 AP201 Analyzers s sesseeseesssseeeessesersresersresreserstssteressesresseserstesresessreeessee 31 3 8 gt Data Acquisitions EAE ET 32 3 8 1 Starting an ACQUISITION mesecne e e e a e EE A R 32 3 8 2 Checking if Ready for Trigger sseesseeeesseserseeseesessteresseseesreseestsseeressesresesersesseeressesees 32 3 8 3 Waiting for End of Acquisition sssessseeeessesseseeseressseeressesetsreseesesseeresseseseesersesseeressesees 33 3 8 4 Stopping Forcing an Acquisition cccesccesecesecssecseeeseeeseeeeeeeeceeeeseenseeaeeaeenseceecseeenes 34 3 8 5 Analyzer and Advanced TDC Autoswitch MOde ooooooncccoconoccnonccononnnonn nono nonnconocanoro nono nooo 34 Js Data REE KOE AE EEE E E SA A E EEEE EE 36 3 9 1 Reading Digitizer Waveforms with the Universal Read Functi0M oooonncninnnnmmmmmm o 36 3 9 2 Reading Sequences of Waveforms cccccesscesseessccssecesecaeecaeeeseeeaeeeeeeeeeesenereneeneesees 37 3 9 3 Averaging Waveforms in a Digitizer ccceecceesceesceseceseceseceeec
128. programming examples and operating system commands Certain features are common to several different modules For increased readability we have defined the following families DC271 FAMILY DC135 DC140 DC211 DC211A DC241 DC241A DC271 DC271A DC271AR DP214 DP235 DP240 AP FAMILY AP240 AP235 AP100 AP101 AP200 AP201 12 bit FAMILY DC440 DC438 DC436 DP310 DP308 DP306 10 bit FAMILY DC122 DC152 DC222 DC252 DC282 1 4 Warning Regarding Medical Use The Digitizer cards are not designed with components and testing procedures that would ensure a level of reliability suitable for use in treatment and diagnosis of humans Applications of these cards involving medical or clinical treatment can create a potential for accidental injury caused by product failure or by errors on the part of the user These cards are not intended to be a substitute for any form of established process or equipment used to monitor or safeguard human health and safety in medical treatment WARNING The modules discussed in this manual have not been designed for making direct measurements on the human body Users who connect an Acqiris module to a human body do so at their own risk 1 5 Warranty Please refer to the appropriate User Manual 1 6 Warranty and Repair Return Procedure Assistance and Support Please refer to the appropriate User Manual 1 7 System Requirements Please refer to the appropriate User Manual Programmer s Guide Page 8 of 107 acqiris 2 Pr
129. quisition configuration has been established Similarly for dataType 3 the amount of memory needed in bytes is arraySize gt 8 segmentOffset nbrSegments 1 with segmentOffset nbrSamplesInSeg and arraySize gt 8 segmentOffset nbrSamplesNom currentSegmentPad nbrSegments dataTypeADC 1 where dataTypeADC is 0 for the 8 bit instruments and 1 otherwise The following code can be used for reading a waveform sequence in 8 bit representation long nbrSegments 10 long nbrPoints 1000 char dataArrayP long currentSegmentPad long nbrSamplesNom nbrSegmentsNom AqReadParameters readPar new AqReadParameters AqDataDescriptor dataDesc new AqDataDescriptor AqSegmentDescriptor segDesc new AqSegmentDescriptor nbrSegments readPar gt dataType 0 0 byte readPar gt readMode 1 1 sequence waveform readPar gt nbrSegments nbrSegments readPar gt firstSampleInSeg 0 readPar gt segmentOffset nbrPoints readPar gt firstSegment 0 readPar gt nbrSamplesInSeg nbrPoints readPar gt flags 0 readPar gt reserved 0 readPar gt reserved2 se O O readPar gt reserved3 se Programmer s Guide Page 38 of 107 acqiris status AcqrsD1 getInstrumentInfo instrID TbSegmentPad amp currentSegmentPad in this case the next call doesn t have any surprises status AcgrsDl_ getMemory instrID nbrSamplesNom amp nbrSegmentsN
130. r or both of the channels The In Average configures the signal as a trigger enable If P1Signal and or P2 Signal are enabled for the Add Subtract mode then the data will be added if the signal or the or of both signals is in the high state The same rule holds if they are used for trigger enable The Out Average signal goes high after the first trigger is accepted for an average and drops back down when the last trigger s acquition is complete Programmer s Guide Page 67 of 107 acqiris axSamples Purpose Number of data samples per waveform segment in Averager mode Prefixes Access Type Values RW integer Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcqrsD1_configAvgConfig id channel NbrSamples amp samples Discussion May assume values between 16 or 32 and the available memory length in multiples of 16 32 The granularity is 16 for the AP100 AP101 and the AP240 AP235 in Dual Channel mode and 32 for the AP200 AP201 and the AP240 AP235 in Single Channel mode axSegments Programmer s Guide Purpose Number of waveform segments to acquire Prefixes Access Type Values RW integer Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcgqrsD1_configAvgConfig id channel NbrSegments amp segments Discussion May assume values between and 8192 Page 68 of 107 acqiris
131. rence clock If you need to sample at a rate that deviates from the nominal values you may apply an external reference signal with a constant frequency in the range of e 9 97 10 03 MHz for the 10 bit FAMILY e 9 0 11 0 MHz for the 12 bit FAMILY e 9 0 10 2 MHz for all other modules You need to correct for the reference frequency difference in your application since the digitizer and the driver do not take the deviations into account NOTE A square wave with better than 5 ns risetime should be used This is needed to avoid false or multiple transitions on a slower risetime signal Alternatively a gt 2 V amplitude signal could be used 3 14 2 External Clock Continuous The continuous external clock mode clockType 1 permits the application to the digitizer of a continuous constant frequency external clock in order to sample at an arbitrary frequency This mode uses normal triggering from the input signal or through the external trigger input We need to distinguish between first generation digitizers models DP105 DP106 DP110 DP111 DP210 DP211 DP212 DC110 DC240 DC265 DC270 second generation digitizers of the DC271 FAMILY models DC135 DC140 DC211 DC211A DC241 DC241A DC271 DC271A DC271AR DP214 DP235 DP240 the AP240 AP235 signal analyzer platforms the AC210 AC240 SC210 SC240 analyzers and the 12 bit FAMILY DC440 DC438 DC436 DP310 DP308 DP306 and third generation digitizers models DC122 DC15
132. rence manual Programmer s Guide Page 90 of 107 acqiris fcApertureTime Purpose Control the minimum measurement time in Frequency Period modes or the time gate in Totalize by Time mode Prefixes Access Type Values RW double in seconds Models Those with FreqCntr option Traditional API equivalent AcgrsD1_configFCounter id apertureTime AcqrsD1_getFCounter id sapertureTime Discussion A call to getAttrRanges may be needed to understand all of the possible values fcMeasure Purpose Control the type of measurement Prefixes Access Type Values RW string Frequency Period TotalizeByTime TotalizeByGate Models Those with FreqCntr option Traditional API equivalent AcqrsD1_configFCounter id typeMes AcqrsD1l_getFCounter id amp typeMes Programmer s Guide Page 91 of 107 acqiris fcSignalChannel Purpose Control the signal input channel Prefixes Access Type Values RW integer Models Those with FreqCntr option Traditional API equivalent AcqrsD1 configFCounter id signalChannel AcqrsD1 getFCounter id amp signalChannel Discussion Typical values are 1 for channel 1 and 2 for channel 2 A call to getAttrRanges may be needed to understand all of the possible values fcTargetValue Purpose Control the estimate
133. rough the SBS Bit3 interface Acqiris model number IC200 Windows NT If R gt 1 0 a loop over AcqrsD1_readData for readMode 0 is faster than AcqrsD1_readData for R 1 T readMode 1 Time in ms 866 MHz Pentium of Samples T T R Segments Segment 1 200 0 03 0 04 1 22 1 1K 0 04 0 05 1 21 1 10K 0 12 0 17 1 45 1 100 K 0 98 2 12 215 1 1M 9 85 25 5 2 59 10 200 0 3 0 14 0 46 10 1K 0 35 0 27 0 76 10 10K 1 21 161 1 33 10 100 K 116 162 1 40 10 500 k 454 944 2 08 100 200 3 00 0 92 0 31 100 1K 427 2 37 0 56 100 10K 16 1 15 0 0 93 100 50K 447 742 1 66 1000 200 472 13 5 0 29 1000 1K 443 234 0 53 1000 5K 85 9 87 8 1 02 8000 200 457 648 0 14 8000 500 496 202 0 41 Comments Measured under the Linux OS Programmer s Guide Page 107 of 107
134. rs may result in erroneous data After data recovery and before using the digitizer for any new acquisitions don t forget to calibrate the instrument with the function AcqrsD1_calibrate 3 18 Reading the Digitizer Temperature The temperature of a digitizer can be obtained with the following code long temperature will be in degrees C AcgrsD1_getInstrumentInfo instrID Temperature temperature When multiple digitizers are combined via ASBus to a MultiInstrument use the strings Temperature 0 Temperature 1 to refer to the individual modules NOTE The returned temperature value corresponds to the ambient temperature on the main printed circuit board typically near the timebase circuit It cannot represent all possible temperature values that are present on the circuit Values gt 60 C indicate that the circuit is near its operational limit and a cooling failure occurred or better cooling should be installed Programmer s Guide Page 60 of 107 acqiris Acqiris recommends keeping the temperature as low as possible since a 10 C reduction in circuit temperature is expected to improve the mean time between failures MTBF by a factor of 2 Acqiris also recommends reading the temperature when the digitizer is stopped The read operation may generate small signal perturbations through cross talk if it is executed while an acquisition is in progress Programmer s Guide Page 61 of 107 acqiris 4 Attributes Mo
135. rsD1_configAvgConfig instrID 0 TdcProcessType stdcType if the acquisition has segments to be histogrammed independently long tdcOverlay 0 AcgrsD1_configAvgConfig instrID 0 TdcOverlaySegments tdcOverlay 3 7 Configuring AP101 AP201 Analyzers The models AP101 AP201 have 2 operational modes normal and buffered also called dual memory controlled with the function AcqrsD1 configMode instrID mode 0 flags The value mode can be set to 0 normal or 3 dual memory In mode 3 the parameter flags sets the memory bank into which to acquire 0 or 1 The buffered mode uses a number of additional configuration parameters that describe the requested buffered acquisition conditions Use the following short code fragment to configure a buffered acquisition sequence of 800 waveforms of 5000 data points with a start delay of 128 samples into memory bank 1 Configure long nbrSamples 5000 nbrSegments 800 long startDelay 128 stopDelay 0 AcqrsD1_ configMode instrID 3 0 1 AcqrsD1_configAvgConfig instrID 0 NbrSamples amp nbrSamples AcqrsD1_ configAvgConfig instrID 0 NbrSegments amp nbrSegments AcqrsD1_ configAvgConfig instrID 0 StartDelay amp startDelay AcqrsD1_ configAvgConfig instrID 0 StopDelay amp stopDelay Comments Programmer s Guide Page 31 of 107 acqiris e The value of the second argument to AcqrsD1_configAvgConfig must alw
136. seesaeeeeeeeeeeerenrensees 11 IE SA A On 11 D552 MATLAB a atan quelo do fuero plata lo O 12 2 5 1 Data Acquisition TOOlbx ccccceccsccesseesseeseeeeceescneeceseceecaeecaeeeseeeaeeeeeeeeeserenerenneeneenaees 12 Single Acquisitions ni a A Shieh da aia 12 Multiple ACUSA a A ita 12 Modera A dz 12 Manipulating Attributes ii 13 Loading and Saving a Setup cccccceessesscesecseesscescceaecaeeesceseceaecseesecseceaecseeeeeseceaecaeeesesaecaaecseeseeesenseeeaeeneeeeees 13 Calibre 13 Create the AnalogiNp tiobject pisue datado dn cincel sigo eae na diodo cebollas 14 View the Instrumento A id A asis 14 Configure and Add Channels c cccccccssccesseseesseesecesecseeescescceaecseesessecaaecaeeeeeseceaecaeeeeeeaeceaecaecaaeeeeeaeeeaecaeeeees 14 IN O EN 14 Read the Data unid A dla 14 A dle ovsseien seduces EE E dt steusden cbse Sa A EEEE ASTE E dds sdveeduans ated 16 2 5 2 MEX Interfacesn2 a at lot 16 A sacdtee The E sde ai EA E VSEE E E veesect SvesSecel oye EE savevceavescnvey eE 16 2 6 Phar lap EIS ee E NN 16 2 7 Wind River VxWorks Torn do eneen a E E E ER 17 2 7 Compil rsen ced ee ea a tee ee te ER 17 2 7 2 TO ACI G s A ne a o E E E R ao E a T E ihn E 17 273 Running the Programs sees A lazo 17 Dib O i cee ce A 17 3 PROGRAMMING AN ACQIRIS DIGITIZER cocccnconncnnocnnonononononinononoocnccnoconconoconococonoconoconocoss 18 3 1 Programming Hints 2 2322 csc sec cs cncgeckecieescacteeetessceaces caduceus deeduatlacsidudtesi
137. set the name of the instrument for the use of all clients Prefixes Access Type Values RW string any string Models ALL Traditional API equivalent NONE Discussion The RW client can set a name that can then be known by all the other clients e g for better human identification of the instrument samples Purpose Control the number of valid data points per segment in an acquisition Prefixes Access Type Values RW integer Models ALL Traditional API equivalent AcqrsD1_configMemory id nbrSamples AcqrsD1_configHorizontal id amp nbrSamples Discussion The maximum number of samples depends on the current number of segments in a sequence acquisition Studying the current range of the attribute may be needed to understand the current range Programmer s Guide Page 94 of 107 acqiris samplingFreq Purpose Control the time between two data points in an acquisition Prefixes Access Type Values RW double In Hz Models ALL Traditional API equivalent AcqrsD1_configHorizontal id delayTime sampInterval AcqrsD1_configHorizontal id amp delayTime amp sampInterval Discussion The samplingFreq is the inverse of the sampInterval Studying the current range of the attribute may be needed to understand all of the possible values samplingIntv Purpose Control the time between two data points in an acquisition Pref
138. st 3 digitizers in inverse order idList 0 instrumentID 2 idList 1 instrumentID 1 idList 2 instrumentID 0 ViSession multilnstriD ViSession masterIndex instrumentID 1 long nbriInList 3 status AcgrsDl multilnstrDefine idList nbrinlist masterindex multiInstrID status AcqrsDl calibrate multi instriD 7 The first part of the code above finds and initializes all individual digitizers as shown in section 3 2 1 PCI amp VXI Identification by Order Found Of course you could also use one of the other 2 methods of identifying individual digitizers After AcqrsD1_multilnstrDefine has executed successfully the instrumentID s in the list idList become unavailable for further operations You must use the returned multiInstrID to refer to the newly defined Multilnstrument You are responsible for making sure that e all participating digitizers are physically connected with ASBus bridges e the modules are of the same model type e the master module has no more memory than any other participating digitizer e an AcqGeo map file is available if needed by the driver If the master module has more memory than any other digitizer the combined instrument will work as long as you never request more memory than that available in the unit with the shortest memory The digitizers within the manually defined Multilnstrument are numbered from 0 to nbrInList 1 exactly as presented in the digitizer lis
139. t first You will find the following chapters there Chapter 1 OUT OF THE BOX describes what to do when you first receive your new Acgqiris product Special attention should be paid to sections on safety packaging and product handling Before installing your product please ensure that your system configuration matches or exceeds the requirements specified Chapter 2 INSTALLATION covers all elements of installation and performance verification Before attempting to use your Acqiris product for actual measurements we strongly recommend that you read all sections of this chapter Chapter 3 PRODUCT DESCRIPTION provides a full description of all the functional elements of your product Chapter 4 RUNNING THE ACQIRIS DEMONSTRATION APPLICATION describes either the operation of AcqirisLive 2 15 an application that enables basic operation of Acgqiris digitizers or averagers in a Windows 95 98 2000 NT4 XP environment the operation of AP_SSRDemo and in the following chapter APx01Demo applications that enable basic operation of Acqiris analyzers in a Windows 95 98 2000 NT4 XP environment This Programmer s Guide is divided into 4 separate sections Chapter 1 INTRODUCTION describes what can be found where in the documentation and how to use it Chapter 2 PROGRAMMING ENVIRONMENTS amp GETTING STARTED provides a description for programming applications using a variety of software products and development environments Chapter 3 PROGRAMMING
140. t idList For details on channel and trigger source numbering please refer to section 3 15 ASBus Operation 3 2 8 AqGeo map file positioning For ASBus Multilnstruments in some systems the driver will need additional information about the physical ordering of the modules This information is stored in a file named AqGeo map which the driver will load when an ASBus instrument is defined The driver will search for the AqGeo map file as follows e First the file will be searched for in the working directory of the application e Then the working directory will be searched for a file AqDrv4 ini Programmer s Guide Page 22 of 107 acqiris e Finally the directory pointed to by the environment variable AcqirisDxDir will be searched for a file AqDrv4 ini e The AqDrv4 ini file should contain the name of a directory which will also be searched for the AqGeo map file Here is a typical example of its contents Acqiris GeoMapPath C Program Files Acqiris bin 3 2 9 Simulated Devices If you want to work with simulated devices none of the methods above are applicable Any module supported by the driver can be simulated in its digitizer mode Any memory option available for the module can be used for a call to AcqrsD1_setSimulationOptions as shown in this code fragment ViSession instrumentID ViStatus status status AcgrsD1 setSimulationOptions M2M Initialize the digitizer status AcgrsDl InmatWithOptions
141. t the beginning of an acquisition when AcqrsDl_acquire is called At that time all necessary changes will be made and depending on the type of changes the driver will force itself to wait the appropriate settling time before it starts the acquisition This is done to ensure that the acquisition will occur in the desired state The program does not have to include ad hoc waits to allow the digitizer hardware to settle The settling times vary from none in the case of no change to 0 5 ms in the case of offset changes and to 5 ms for relay changes or changes between normal operation and External Clock Reference In the special case of switching from DC to AC coupling the settling time is 100 ms Time base setting changes also have associated settling times NOTE The special case of making transitions from low to high impedance is treated immediately to avoid the risk of damaging the front end circuitry of the digitizer When making transitions from high to low impedance you must ensure that large voltages are not applied before the change has really happened Therefore it is recommended to wait 5 ms after having asked for an impedance change and before applying any large voltages Impedance changes can also affect other devices in the signal path Programmer s Guide Page 23 of 107 acqiris Unneeded calls to the AcqrsD1_config functions should be avoided because they can delay the start of the next acquisition A NOTE The AcqrsD1_get functions
142. t with the value coupling 0 in the function AcqrsD1_configVertical e acquisition of an averaged waveform without a trigger signal with the value TrigResync 2 free run in the function AcqrsD1_configAvgConfig However you get a better measurement of the fixed pattern background if you acquire with the same trigger conditions as the averaged waveforms that will be corrected Typically it is better to continue using an external trigger signal rather than TrigResync 2 The fixed pattern background should be acquired in the same conditions as the averaged waveforms that will be corrected In particular the dithering range and the number of waveforms should be the same Use the following code fragment to acquire a fixed pattern background with a free running trigger const long channelNbr 0 double fsr offset long coupl bwidth reSync freeRun 2 Make an acquisition at the current conditions but with Grnd coupling and free running trigger AcgrsDl getVertical instrID 1 amp fsr amp o0ffset coupl amp bwidth Acgrsabl contigvertical 1mstriD 1 fsr offset 0 bwidth Programmer s Guide Page 26 of 107 acqiris AcqrsD1_ getAvgConfig instrID channelNbr TrigResync reSync AcgrsDl configAvgConfigl instrID channelNbr TrigResync amp freeRun AcgrsDl acquire instriID long timeOut 1000 depends on conditions AcqrsD1_waitForEndOfAcquisiti
143. tClock should be called If the Programmer s Guide Page 57 of 107 acqiris totalize in gate functionality is desired the source of the gate must be set with the function AcqrsD1_configControlIO with the parameters connector 1 I O A or 2 I O B and signal 9 Note that when this mode is in use the Enable trigger input signal 6 functionality of AcqrsD1_configControllO cannot be used The function AcqrsD1_configF Counter sets the parameters specific to the frequency measurements AcgrsDl conftigFCounter instrID channel type targetValue apertureTime 0 0 0 Comments e Channel numbers run from to the available number of signal channels in the digitizer e The value type is 0 for Frequency 1 for Period 2 for Totalize by Time and 3 for Totalize by Gate e The targetValue is an estimator of the expected result If no estimate is possible use the value 0 0 This value is only used to activate the HF trigger mode which extends the useable frequency range By default the frequency range is extended except type Measurement Divide by 1 0 Frequency if targetValue is smaller than 1 kHz 1000 0 and larger than 0 0 1 Period 1f targetValue is larger than 1ms 0 001 2 Totalize by Time always the HF mode is never used 3 Totalize by Gate always the HF mode is never used e The apertureTime defines the minimum time for a frequency measurement it may be longer if the frequency is very low In the Totalize by Time mode t
144. tDelay axStartVetoEnable axStopDelay axTrigAlways axTrigResync chAxInvertData chAxNoiseBase chAxNoiseBaseEnable chAxTDCHistoEnable chAxTDCHistoIncr chAxTDCHistoMinTOT chAxThreshold chAxThresholdEnable _configChannelCombination input _configControllO ctrllOASignal ctrllOBSignal ctrllOPxiRefl0MHz ctrllOPxiStar ctrllOTrQutLevel ctrllOTrOutResync _configExtClock ckDelay ckThreshLvl ckType extInputFreq extSamplingRate _configFCounter fcApertureTime fcMeasure fcSignalChannel fcTargetValue _configHorizontal trDelay samplingFreq samplingIntv _configMemory samples segments _configMemoryEx samples segments banks memoryUsage _configMultInput chInput _configTrigClass trClass trSrcEnabled _configTrigSource trCoupling trRelThresl trRelThres2 trSlope trThresl trThres2 _configTrigTV trTVField trTVLine trTVStd _configVertical chCoupling chBandwidthLimit chFullScale chImpedance chOffset _getChannelCombination convertersPerChan input _getControllO ctrllOASignal ctrllOBSignal ctrllOPxiRefl0MHz ctrllOPxiStar ctrlI OTrOutLevel ctrllOTrOutResync _getExtClock ckDelay ckThreshL vl ckType extInputFreq extSamplingRate _ getHorizontal trDelay samplingFreq samplingIntv _getMemory samples segments _getMemoryEx samples segments banks memoryUsage _getMultInput chInput _getTrigClass trClass trSrcEnabled _getTrigSource trCoupling trRelThres1 trRelThres2 trSlope trThres1 trThres2 Programmer s Guide P
145. ter 0 25 The option added tells the driver to generate a forced trigger forceTrigT ype 0 if no trigger occurs within 0 25 s A calibration is necessary when first using an AnalogInput object in a MATLAB session However since the calibration settings remain in effect until the driver is unloaded e g when closing MATLAB this can be used to avoid recalibration at each execution of an m file For best measurement quality the calibration should be repeated after any significant temperature drift Note that unless calibration is deactivated all detected instruments will be calibrated View the Instrument Information gt gt daghwinfo AI This call will display information about your digitizer Configure and Add Channels gt gt AddChannel AI i where i 1 n This command is used to create a channel You can create as many channel objects as there are channels on the given instrument Start an Acquisition gt gt SEL AI ButferingConfig BUFFER SIZE BUFFER CNT gt gt start Al gt gt waittilstop AI TIME OUT NOTE Although you don t need to understand the first command be sure that this command is present for each start Al because it is needed for engine buffer allocation and it must be done if samples or segments have been changed Appropriate values should be set once and subsequently reused The number of buffers must be at least 2 The second command starts the acquisit
146. tial non linearity of the analog to digital converter by adding or subtracting small offsets to the input signal The offset is constant during the acquisition of a single waveform and then modified to another value during the next waveform The dithering range N is programmable between 0 no dithering and 15 with the function AcqrsD1_configAvgConfig instrID channelNbr DitherRange N Dithering reduces the range of the ADC by N levels at the top and another N levels at the bottom In order to avoid any undesirable effects you should make sure that the signal range of interest is within the reduced ADC range 3 4 3 Fixed Pattern Background Subtraction If an averaging operation is executed while the input is open or no signal is applied the averaged waveform should tend to a constant value with a standard deviation Oavg O VN where N is the number of waveforms in the average and o is the standard deviation of a single waveform In reality only random noise sources are averaged out while those that are coherent with the sampling clock are not reduced The open input averaged waveform thus represents the fixed pattern background of the averager Subtracting this waveform from each subsequently acquired averaged waveform should result in more precise data In order to facilitate the acquisition of the fixed pattern background the Averager modules offer the following possibilities e disconnection of the inpu
147. timeStampLo Hi e Itis important to zero the unused parameters at the end of the readPar structure An incorrect value of flags can be very confusing 3 9 2 Reading Sequences of Waveforms In certain situations see APPENDIX A ESTIMATING DATA TRANSFER TIMES it can be more efficient in time to read Sequence Waveforms with readMode 1 This mode transfers all of the data from the digitizer to the local memory in a single DMA as opposed to calling AcqrsD1_readData many times thus using a transfer per segment The price to be paid is a higher memory requirement It can also be used to transfer blocks of segments in the case of very large memories For dataType 0 or 1 the amount of memory needed in bytes is arraySize gt segmentOffset nbrSegments 1 dataType 1 with arraySize gt nbrSamplesNom currentSegmentPad nbrSegments 1 dataType 1 Programmer s Guide Page 37 of 107 acqiris and segmentOffset gt nbrSamplesInSeg where e the currentSegmentPad depends on the acquisition configuration and can be determined using the following call AcqrsD1_ getInstrumentInfo instrID TbSegmentPad amp currentSegmentPad e the nbrSamplesNom is the nominal number of samples to record and may be different than what was asked for It can be determined using the following call AcqrsD1_getMemory instrID nbrSamplesNom amp nbrSegments You have to make sure that you ask for this information after the ac
148. uivalent AcqrsD1_configTrigClass id sourcePattern AcqrsD1_getTrigClass id amp sourcePattern Discussion The current trigger source can only be changed by turning On another source trThres1 Purpose Control the trigger discriminator level for triggering Prefixes Access Type Values channel amp ext RW double In V Models ALL Traditional API equivalent AcqrsD1_configTrigSource id channel triglevell AcqrsD1_getTrigSource id amp delayTime amp trigLevell Discussion For channels the trigger discriminator level can also be controlled relative to the current input range as defined by the full scale and offset This is done with trRelThres1 which takes values in FS and where 0 0 corresponds to the middle of the input range Programmer s Guide Page 100 of 107 acqiris trThres2 Purpose Control the second trigger discriminator level for window triggering Prefixes Access Type Values channel amp ext RW double In V Models DC271 FAMILY 10 bit FAMILY Traditional API equivalent AcqrsD1_configTrigSource id channel trigLevel2 AcqrsD1_getTrigSource id amp delayTime triglevel2 Discussion For channels the second trigger discriminator level can also be controlled relative to the current input range as defined by the full scale and offset This is done with trRelThres2 which takes values in FS a
149. w through which you can modify your instrument attributes The available attributes are presented in chapter 4 ATTRIBUTES Please note that not all attributes mentioned there are available for all instruments in all environments A file with the suffix AqSettings is provided together with the MATLAB examples and is used to define the format of the Instrument settings window Note that the Instrument Settings window is not a modal window so it can remain open during acquisitions Here is the code to display the Instrument Settings window gt gt CallAcgiris InstrumentSettings Attributes can also be read or modified with commands To get all instrument attribute names gt gt attributeList CallAcqiris AttributeList ID To get an attribute s range gt gt attrRanges CallAcqiris AttributeRange ID attrName To retrieve an attribute value gt gt value CallAcgiris GetString ID attrName gt gt value CallAcgiris GetInteger ID attrName gt gt value CallAcgiris GetDouble ID attrName To modify an attribute gt gt CallAcairis SetString 1D attrName value gt gt CallAcqiris SetInteger ID attrName value gt gt CallAcqiris SetDouble ID attrName value Loading and Saving a Setup The way offered by MATLAB to set Properties Settings is not very user friendly so we decided to offer you the possibility to use our software to configure the setti
150. y DC152 100 2000 1 x inputFrequency 2 x inputFrequency DC211 DC211A 20 2000 2 x inputFrequency DC222 100 2000 4x inputFrequency DC241 DC241A 20 2000 1 x inputFrequency 2 x inputFrequency DC252 100 2000 2 x inputFrequency 1 x inputFrequency DC271 DC271A 20 2000 14 x inputFrequency 1 x inputFrequency 2 x inputFrequency DC271AR DC282 100 2000 1 x inputFrequency 2 x inputFrequency 4 x inputFrequency DC436 100 200 1 x inputFrequency DC440 DC438 100 220 1 x inputFrequency DP214 20 2000 1 x inputFrequency DP235 AP235 20 1000 14 x inputFrequency 1 x inputFrequency DP240 AP240 20 2000 14 x inputFrequency 1 x inputFrequency DP306 100 200 14 x inputFrequency DP308 100 200 1 x inputFrequency DP310 100 220 1 x inputFrequency AC210 SC210 20 2000 1 x inputFrequency AC240 SC240 20 2000 14 x inputFrequency 1 x inputFrequency 1 generation 100 500 1 x inputFrequency Example When using a DC241 with 2 combined channels and an external clock frequency of 1800 MHz inputFrequency the possible sampling frequencies are 3 6 GS s 1 8 GS s 900 MS s and 450 MS s The ratio of sFmax to inputFrequency can also be learned at run time by using a call to AcqrsD1_getInstrumentInfo instrID ExtCkRatio amp ratio The system computes the required memory overhead in data samples on the basis of the current sampFrequency and nbrConvertersPerChannel Use the function AcqrsD1_bestNominalSamples t
151. y to permit a fairly complete operation of a digitizer many possible features were left out in order to keep the program simple to understand In order to run the Visual Basic sample program you must have installed the Visual Basic Version 5 0 or 6 0 but not NET e Start Visual Basic e Use the menu File gt Open Project to point to the AcqirisShowl vbp project file in the AcqirisLive VB directory and choose Open e After the project is loaded use the menu Run gt Start or F5 to start executing the project A waveform display window should pop up displaying a real or simulated waveform Programmer s Guide Page 11 of 107 acqiris e Use the button Digitizer Control to make a dialog box appear The top most control Digitizer permits the choice of one of several digitizers and to check how many were found If no physical digitizer was found the program initializes 3 simulated digitizers a DP110 DC240 and a DC110 with the 2MB option You can change the simulated digitizers in Sub Form_Initialize e The program is stopped by clicking on the Close button x on the upper right hand side of the waveform display window The waveform display window can be resized but the dialog box cannot The acquisition mode Norm really is another Auto mode with a slightly longer timeout period A real Norm mode without timeout would require a way for the user to regain control in situations where there is no trigger Simulate
152. ype Values channel RW string OEE Or On Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcqrsD1_configAvgConfig id channel NoiseBaseEnable amp enable Discussion chAxTDCHistoEnable Purpose Enable the simple TDC mode for the channel Prefixes Access Type Values channel RW string Ot or on Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcqrsD1_configAvgConfig id channel HistoTDCEnable amp enable Discussion Programmer s Guide Page 73 of 107 acqiris chAxTDCHistoIncr Purpose Define the increment to be used in accumulating a simple TDC histogram Prefixes Access Type Values channel RW Integer lor 2 Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcqrsD1_configAvgConfig id channel TdcHistogramIncrement amp style Discussion 1 means increment by 1 2 means increment by the ADCvalue NoiseBase equivalent chAxTDCHistoMinTOT Purpose Controls the desired minimum width of a peak in the waveform Prefixes Access Type Values channel RW integer Tirer Sp OL 4 Models AP235 and AP240 with Averager option AP100 AP200 Traditional API equivalent AcgqrsD1_configAvgConfig id channel TdcMinTOT amp width Discussion A peak is accepted if there are at least n consecutive data samples a
153. zer sets the basic parameters according to the controls on the front panel and then acquires and accumulates waveforms as the user requests Note that the front panel controls should be set to their desired values before the VI is run 2 4 Visual Basic Visual Basic support is available for Versions 5 0 or 6 0 with sample programs in the VB directory Basic NET support AcqrsD1Interface vb is also available but there are no sample programs yet The Visual Basic sample program comes in 8 bit and 12 bit versions The 12 bit programs can also be used for the 10 bit digitizers They each consist of 3 major parts 1 The AcqrsD1Interface bas file that contains the Visual Basic version of the interface to the Acqiris supplied driver dll s installed in the System directory This file is needed for all Visual Basic projects involving Acqiris digitizers 2 The AcqgirisShow8 frm or AcqirisShow12 frm file that contains all the basic functionality of the sample program such as initialization acquisition control and display 3 The DevCtrlForm8 frm or DevCtrlForm12 frm file with the code for a dialog box for the control of a complete digitizer The Visual Basic sample program is capable of managing several Acqiris digitizers attached to the computer and of displaying one channel of one digitizer at a time If no digitizer exists on the computer it initializes 3 simulated digitizers in Sub Form_Initialize While it has enough functionalit
Download Pdf Manuals
Related Search
Related Contents
indesit.sk advertencia Trust GXT 152 取扱説明書 Einbau- und Betriebsanleitung J132/J132a Guía del usuario - La Biblioteca de los 8 bits 679929R5 Tool Catalog 引出 取扱説明書 Wi-Fi DIGITAL MICROSCOPE USER MANUAL - Mic-Fi User Manual - IT-PEAK Copyright © All rights reserved.
Failed to retrieve file