|
fdhwlib
2.0.25
|
The interface to the DAQ hardware is defined by a number registers, bitfields and registers vectors.
The register model of the DAQ Electronics is implemented in the class Subrack. The class contains two members according to the two types of boards available for the Fluorescence detectors. The function of both boards, is controlled by a number of 32bit wide registers. The following table summaries the availble registers as well as the bit fields defined in the registers. Some registers are combined the 64bit entities. The length of the information in bits can be found in the column "Size".
Single registers and bitfield can be accessed with read and write functions.
unsigned long read(); void write(unsigned long data);
In some cases register vectors are used. This is necesssary to access properties of individual pixels or other items that occure more than once in single board. For these registers an addition element number "N" has to be specified.
unsigned long read(int elem); void write(int elem, unsigned long data);
In order to retrieve data from longer registers or memories the data is passed by reference. The memory of the required size has to be allocated in the calling function.
void read(unsigned long *data); void write(unsigned long *data);
Other access options can be found in the class documentation. Follow the links in the "Classes" column to find out about the specific register implementation.
To access the registers given in the register summary table all column in the "Instance" part have to be combined with C-like arrows.
Subrack *s; s = new Subrack(); // Check for all available slots s->checkSlots(); s->theSlt->status->read(); s->theSlt->status->powerFail->read();
| Slt | |||||
| Instance | Classes | N | Size | ||
| theSlt | SubrackBoard, Slt | --- | --- | ||
| control | BaseRegister, SltControlReg | 32 | |||
| triggerEnable | BaseRegisterItem | 6 | |||
| triggerSoftware | BaseRegisterItem | 1 | |||
| triggerRight | BaseRegisterItem | 1 | |||
| triggerLeft | BaseRegisterItem | 1 | |||
| triggerCamera | BaseRegisterItem | 1 | |||
| triggerGlobal | BaseRegisterItem | 1 | |||
| inhibitEnable | BaseRegisterItem | 4 | |||
| inhibitSoftware | BaseRegisterItem | 1 | |||
| inhibitPagesFull | BaseRegisterItem | 1 | |||
| inhibitGlobal | BaseRegisterItem | 1 | |||
| inhibitFront | BaseRegisterItem | 1 | |||
| ppsEnable | BaseRegisterItem | 1 | |||
| testPulseEnable | BaseRegisterItem | 2 | |||
| testPulseSoftware | BaseRegisterItem | 1 | |||
| testPulseFront | BaseRegisterItem | 1 | |||
| testPulseShape | BaseRegisterItem | 1 | |||
| runTest | BaseRegisterItem | 1 | |||
| testSlt | BaseRegisterItem | 1 | |||
| pciIntEnable | BaseRegisterItem | 1 | |||
| led | BaseRegisterItem | 1 | |||
| status | BaseRegister, SltStatusReg | 32 | |||
| fltIrq | BaseRegisterItem | 1 | |||
| watchDogError | BaseRegisterItem | 1 | |||
| pixelBusParityError | BaseRegisterItem | 1 | |||
| ppsError | BaseRegisterItem | 1 | |||
| clockError | BaseRegisterItem | 4 | |||
| gpsError | BaseRegisterItem | 1 | |||
| vttError | BaseRegisterItem | 1 | |||
| fanError | BaseRegisterItem | 1 | |||
| softwareIrq | BaseRegisterItem | 1 | |||
| eventReady | BaseRegisterItem | 1 | |||
| pageReady | BaseRegisterItem | 1 | |||
| pagesFull | BaseRegisterItem | 1 | |||
| fltTimeout | BaseRegisterItem | 1 | |||
| semaphore | BaseRegisterItem | 3 | |||
| inhibit | BaseRegisterItem | 1 | |||
| inhibitSource | BaseRegisterItem | 4 | |||
| inhibitSoftware | BaseRegisterItem | 1 | |||
| inhibitPagesFull | BaseRegisterItem | 1 | |||
| inhibitGlobal | BaseRegisterItem | 1 | |||
| inhibitFront | BaseRegisterItem | 1 | |||
| gps1 | BaseRegisterItem | 1 | |||
| pgs2 | BaseRegisterItem | 1 | |||
| fltStatus | BaseRegisterItem | 1 | |||
| irq | BaseRegisterItem | 1 | |||
| command | BaseRegister, SltCommandReg | 32 | |||
| setInhibit | BaseRegisterItem | 1 | |||
| clearInhibit | BaseRegisterItem | 1 | |||
| softwaretrigger | BaseRegisterItem | 1 | |||
| testPulseStart | BaseRegisterItem | 1 | |||
| configure | BaseRegisterItem | 1 | |||
| resetSlt | BaseRegisterItem | 1 | |||
| resetFlt | BaseRegisterItem | 1 | |||
| softwareInterrupt | BaseRegisterItem | 1 | |||
| clearCounter | BaseRegisterItem | 1 | |||
| enableCounter | BaseRegisterItem | 1 | |||
| disableCounter | BaseRegisterItem | 1 | |||
| interruptRequest | BaseRegister, SltInterruptReg | 32 | |||
| fltIrq | BaseRegisterItem | 1 | |||
| watchDogError | BaseRegisterItem | 1 | |||
| pixelBusParityError | BaseRegisterItem | 1 | |||
| ppsError | BaseRegisterItem | 1 | |||
| clockError | BaseRegisterItem | 4 | |||
| gpsError | BaseRegisterItem | 1 | |||
| vttError | BaseRegisterItem | 1 | |||
| fanError | BaseRegisterItem | 1 | |||
| softwareIrq | BaseRegisterItem | 1 | |||
| eventReady | BaseRegisterItem | 1 | |||
| pageReady | BaseRegisterItem | 1 | |||
| pagesFull | BaseRegisterItem | 1 | |||
| fltTimeout | BaseRegisterItem | 1 | |||
| interruptMask | BaseRegister, SltInterruptReg | 32 | |||
| fltIrq | BaseRegisterItem | 1 | |||
| watchDogError | BaseRegisterItem | 1 | |||
| pixelBusParityError | BaseRegisterItem | 1 | |||
| ppsError | BaseRegisterItem | 1 | |||
| clockError | BaseRegisterItem | 4 | |||
| gpsError | BaseRegisterItem | 1 | |||
| vttError | BaseRegisterItem | 1 | |||
| fanError | BaseRegisterItem | 1 | |||
| softwareIrq | BaseRegisterItem | 1 | |||
| eventReady | BaseRegisterItem | 1 | |||
| pageReady | BaseRegisterItem | 1 | |||
| pagesFull | BaseRegisterItem | 1 | |||
| fltTimeout | BaseRegisterItem | 1 | |||
| requestSemaphore | BaseRegister | 3 | 32 | ||
| version | BaseRegister, SltVersion | 32 | |||
| fpgaVersion | BaseRegisterItem | 8 | |||
| docVersion | BaseRegisterItem | 12 | |||
| project | BaseRegisterItem | 4 | |||
| pixelBusPError | BaseRegister | 32 | |||
| pixelBusEnable | BaseRegister | 32 | |||
| pixelBusTest | BaseRegister | 32 | |||
| auxBusTest | BaseRegister | 32 | |||
| debugStatus | BaseRegister | 32 | |||
| deadTime | BaseRegister, SltLongRegister | 64 | |||
| vetoTime | BaseRegister, SltLongRegister | 64 | |||
| runTime | BaseRegister, SltLongRegister | 64 | |||
| setSecCounter | BaseRegister, SltSetSecondCounter | 32 | |||
| secCounter | BaseRegister | 32 | |||
| subSecCounter | BaseRegister | 32 | |||
| pageManager | BaseRegister, SltPageManagementReg | 32 | |||
| release | BaseRegisterItem | 1 | |||
| oldestPage | BaseRegisterItem | 6 | |||
| ready | BaseRegisterItem | 1 | |||
| nextPage | BaseRegisterItem | 6 | |||
| full | BaseRegisterItem | 1 | |||
| freePages | BaseRegisterItem | 7 | |||
| reset | BaseRegisterItem | 1 | |||
| triggerTiming | BaseRegister, SltTimingReg | 32 | |||
| endPageDelay | BaseRegisterItem | 11 | |||
| triggerWindow | BaseRegisterItem | 3 | |||
| pageSelect | BaseRegister, SltPageSelectReg | 32 | |||
| pageNumber | BaseRegisterItem | 6 | |||
| setPage | BaseRegisterItem | 1 | |||
| numberOfPages | BaseRegister | 32 | |||
| pageNumbers | BaseRegister, SltByteRegister | 64 | 8 | ||
| eventStatus | BaseRegister, SltEventStatusMem | 64 | 128 | ||
| timeStampSec | BaseRegisterItem | 32 | |||
| timeStampSubSec | BaseRegisterItem | 24 | |||
| allTriggerSources | BaseRegisterItem | 5 | |||
| triggerTime | BaseRegisterItem | 11 | |||
| pageStart | BaseRegisterItem | 10 | |||
| firstTriggerSource | BaseRegisterItem | 5 | |||
| readoutControl | BaseRegister, SltReadoutControlReg | 32 | |||
| release | BaseRegisterItem | 1 | |||
| enable | BaseRegisterItem | 1 | |||
| reset | BaseRegisterItem | 1 | |||
| readoutStatus | BaseRegister, SltReadoutStatusReg | 32 | |||
| oldestBuffer | BaseRegisterItem | 6 | |||
| ready | BaseRegisterItem | 1 | |||
| newBuffer | BaseRegisterItem | 6 | |||
| noBuffer | BaseRegisterItem | 1 | |||
| dmaEnd | BaseRegisterItem | 1 | |||
| busy | BaseRegisterItem | 1 | |||
| enabled | BaseRegisterItem | 1 | |||
| bufferSelect | BaseRegister, SltPageSelectReg | 32 | |||
| pageNumber | BaseRegisterItem | 6 | |||
| setPage | BaseRegisterItem | 1 | |||
| readoutDefinition | BaseRegister | 2048x32 | |||
| tpTiming | BaseRegister | 128x32 | |||
| tpShape | BaseRegister | 512x32 | |||
| sensorStatus | BaseRegister, SltI2CCommandReg | 32 | |||
| data | BaseRegisterItem | 8 | |||
| command | BaseRegisterItem | 10 | |||
| writeRead | BaseRegisterItem | 1 | |||
| error | BaseRegisterItem | 1 | |||
| busy | BaseRegisterItem | 1 | |||
| epcsStatus | BaseRegister, SltEPCSCommandReg | 32 | |||
| data | BaseRegisterItem | 8 | |||
| command | BaseRegisterItem | 10 | |||
| error | BaseRegisterItem | 1 | |||
| busy | BaseRegisterItem | 1 | |||
| boardId | BaseRegister, BaseBoardIdReg | 64 | |||
| boardIdLow | BaseRegisterItem | 32 | |||
| boardIdHigh | BaseRegisterItem | 16 | |||
| slotId | BaseRegisterItem | 5 | |||
| crcOk | BaseRegisterItem | 1 | |||
| eepromControl | BaseRegister, SltEEPROMControlReg | 64 | |||
| offset | BaseRegisterItem | 16 | |||
| length | BaseRegisterItem | 8 | |||
| eepromBuffer | BaseRegister, SltByteRegister | 256 | 8 | ||
| pixelTrigger | BaseRegister | 14000x32 | |||
| multiplicity | BaseRegister | 500x32 | |||
| sltTrigger | BaseRegister | 4000x32 | |||
| unpackPixelTrigger | BaseRegister | 20000x32 | |||
| unpackMultiplicity | BaseRegister | 1000x32 | |||
| adcData | BaseRegister | 32768x32 | |||
| Flt | |||||
| Instance | Classes | N | Size | ||
| theFlt[n] | SubrackBoard, Flt | --- | --- | ||
| status | BaseRegister, FltStatus | 32 | |||
| powerFail | BaseRegisterItem | 1 | |||
| pll1Unlocked | BaseRegisterItem | 1 | |||
| pll2Unlocked | BaseRegisterItem | 1 | |||
| abType | BaseRegisterItem | 2 | |||
| interruptSources | BaseRegisterItem | 8 | |||
| interruptRequest | BaseRegisterItem | 1 | |||
| control | BaseRegister, FltControl | 32 | |||
| standby | BaseRegisterItem | 1 | |||
| led | BaseRegisterItem | 1 | |||
| testpulseEnable | BaseRegisterItem | 1 | |||
| command | BaseRegister, FltCommand | 32 | |||
| softwareInterrupt | BaseRegisterItem | 1 | |||
| tpReset | BaseRegisterItem | 1 | |||
| version | BaseRegister, FltVersion | 32 | |||
| fpgaRevision | BaseRegisterItem | 8 | |||
| fpgaVersion | BaseRegisterItem | 8 | |||
| docVersion | BaseRegisterItem | 12 | |||
| project | BaseRegisterItem | 4 | |||
| boardId | BaseRegister, BaseBoardIdReg | 64 | |||
| boardIdLow | BaseRegisterItem | 32 | |||
| boardIdHigh | BaseRegisterItem | 16 | |||
| slotId | BaseRegisterItem | 5 | |||
| crcOk | BaseRegisterItem | 1 | |||
| interruptMask | BaseRegister, FltInterrupt | 32 | |||
| configError | BaseRegisterItem | 1 | |||
| syncError | BaseRegisterItem | 1 | |||
| hitrateOverflow | BaseRegisterItem | 1 | |||
| parameterError | BaseRegisterItem | 1 | |||
| slotId | BaseRegisterItem | 5 | |||
| interruptRequest | BaseRegister, FltInterrupt | 32 | |||
| configError | BaseRegisterItem | 1 | |||
| syncError | BaseRegisterItem | 1 | |||
| hitrateOverflow | BaseRegisterItem | 1 | |||
| parameterError | BaseRegisterItem | 1 | |||
| slotId | BaseRegisterItem | 5 | |||
| hitrateMeasureEnable | BaseRegister | 32 | |||
| pixelTriggerSettings | BaseRegister | 64 | |||
| runControl | BaseRegister, FltRunControl | 32 | |||
| storeData | BaseRegisterItem | 1 | |||
| runADC | BaseRegisterItem | 1 | |||
| runFilter | BaseRegisterItem | 1 | |||
| runTrigger | BaseRegisterItem | 1 | |||
| deltaMax | BaseRegisterItem | 4 | |||
| filterLength | BaseRegisterItem | 6 | |||
| selfTestr | BaseRegisterItem | 1 | |||
| statisticSet | BaseRegister, FltStatisticControl | 32 | |||
| samples | BaseRegisterItem | 16 | |||
| offset | BaseRegisterItem | 12 | |||
| enable | BaseRegisterItem | 1 | |||
| accessTest | BaseRegister | 32 | |||
| hitrateControl | BaseRegister, FltHitrateControl | 32 | |||
| time | BaseRegisterItem | 4 | |||
| window | BaseRegisterItem | 9 | |||
| hitrateMargins | BaseRegister, FltHitrateMargins | 64 | |||
| marginL | BaseRegisterItem | 10 | |||
| marginLL | BaseRegisterItem | 10 | |||
| marginLLL | BaseRegisterItem | 10 | |||
| marginH | BaseRegisterItem | 10 | |||
| marginHH | BaseRegisterItem | 10 | |||
| marginHHH | BaseRegisterItem | 10 | |||
| offset | BaseRegister | 32 | |||
| gain | BaseRegister | 24 | 32 | ||
| hitrate | BaseRegister, FltHitrate | 24 | 32 | ||
| hitrate | BaseRegisterItem | 24 | 16 | ||
| overflow | BaseRegisterItem | 1 | |||
| testPattern | BaseRegister | 24 | 32 | ||
| periphStatus | BaseRegister, FltPeriphStatus | 3 | 32 | ||
| pageNumber | BaseRegisterItem | 3 | 6 | ||
| pageReceiverError | BaseRegisterItem | 3 | 1 | ||
| statisticUnitError | BaseRegisterItem | 3 | 1 | ||
| pll1Unlocked | BaseRegisterItem | 3 | 1 | ||
| pll2Unlocked | BaseRegisterItem | 3 | 1 | ||
| fid | BaseRegisterItem | 3 | 4 | ||
| statistic | BaseRegister, FltStatistic | 24 | 64 | ||
| sum | BaseRegisterItem | 24 | 25 | ||
| sumSq | BaseRegisterItem, FltSignedItem | 24 | 32 | ||
| threshold | BaseRegister, FltThreshold | 24 | 32 | ||
| actual | BaseRegisterItem | 24 | 16 | ||
| previous | BaseRegisterItem | 24 | 16 | ||
| adcStettings | BaseRegister, FltPeriphRegister | 3 | 32 | ||
| ramData | BaseRegister | 24 | 1024x32 | ||