CAMAC Quad Ramp Controller (CAMAC Module C453) A. Franck, J. Gomilar, B. Hendricks June 23, 2000 I. Purpose The C453 is a programmable ramp controller capable of generating four semi-independent analog outputs which are based on: Time into cycle Current (MDAT value) Change in current (MDAT value) These outputs are updated at a 720 Hz rate. The C453 also contains digital control capabilities to turn on (relay and TTL), turn off (relay and TTL), change the polarity, and reset (relay and TTL) a bulk power supply as well as to turn on and off four regulator power supplies. It can also return sixteen status bits from the bulk supply and four status bits from each of the regulator supplies (with an additional ramp enable bit). Note: The current firmware version number at the time of this writing is 1.40. II. Device Descriptions The ACNET device descriptions for this module are contained in a separate document. III. Features A) Output Function The ramp outputs will have the form: output = sf1*m1*f(t) + sf2*m2*g(M1) + sf3*m3*h(M2) where: sf1, sf2, sf3 are constant scale factors having a range of -128.0 to +127.9 m1, m2, m3 are raw MDAT readings divided by 256 f(t) is an interpolated function of time which is initiated by the 'or' of up to 8 TCLK events g(M1) and h(M2) are interpolated functions of selected MDAT parameters B) MDAT MDAT parameters are decoded and stored in hardware registers where software can then access the data. All currently defined MDAT parameters plus new parameters up to a total of 16 are supported. Parameters represented by bipolar, signed, 2's complement numbers (typecodes 11,21,31,41,61,71,81) are used directly in calculations and range in value from -32768 to 32767. Parameters represented in unipolar, unsigned form (typecodes 10,20,30,40,50,51,60,70,80) are shifted down by one bit (divided by two) before they are used in calculations, and they range from 0 to 32767. C) Scale Factors Scale factors are 16 bits long. The upper byte is interpreted as the whole number part and the lower byte is interpreted as the fractional part of the scale factor. Positive and negative scale factors are allowed. The largest negative scale factor is -128.000, the largest positive scale factor is approximately 127.996. Fifteen scale factors are presently supported with an additional special 'null' scale factor. Any scale factor can be applied to any of the terms, and any scale factor can be used any number of times. There is a separate set of scale factors for each output waveform. Changes to active scale factors are updated at the start of the next ramp. Scale factor pointer changes are also updated at the start of the next ramp. D) Overflow Errors The firmware checks for overflow errors following each calculation and maintains the previously calculated value if one is detected. An overflow error counter is also incremented. E) Ramp Output The outputs are provided in analog format. (12 bits, +/- 10.000V) F) Tables Each term in the output function will have fifteen possible tables with a maximum of 64 entries each. Additionally, there is a table for each term which is defined as a zero or null function. Table selection is effected by an interrupt. Thirty two interrupt levels are available, each is asserted by the 'or' of up to 8 programmed TCLK events. No one given TCLK event can trigger multiple interrupt levels at the same time. (The module does not guard against this. It must be prohibited by the applications program). Interrupt levels can also be asserted via an F(17)A(10) CAMAC command. The complete list of TCLK events can be found in the TCLK Event Definitions document. Upon assertion of an interrupt, the module will begin using three user specified tables (one for each term in the output function) for each of the four output waveforms. The null function is specified for unused terms. The g(i) I table and the h(i) I table are shared by all four output waveforms. The f(t), g(i) value, and h(i) value tables are all unique to each waveform. The g(i) and h(i) values are all directly individually accessible. For the f(t) table the value entries are also directly accessible, but the delta t values must be accessed by first accessing its accompanying value entry. Tables are selected via pointers with values of 1 to 15 indicating ramp numbers 1 through 15. A value of zero indicates the 'null' ramp. Any changes to an active table are implemented immediately. However, changes to table pointers are updated at the start of the next ramp. G) MDAT multipliers MDAT multipliers presently consist of the raw 16 bit MDAT readings taken from the link divided by 256. They are updated at a 720 Hz rate. They are accessed via pointers with a value of 1 indicating MDAT code 10 all the way through to a value of 16 which indicates MDAT code 81. A pointer value of zero indicates that no MDAT multiplier is desired, and a constant multiplier of 1 is inserted. The MDAT pointers are updated at the start of a ramp. H) STOP/CONTINUE Mode This module can be configured in such a way that the STOP ($62) and CONTINUE ($63) TCLK events can be used to freeze and unfreeze the output waveform. When in this mode the thirty first interrupt level is redefined to function as a 'stop' interrupt, and the thirty second interrupt level becomes the 'continue' interrupt. When this mode is selected, event $62 is loaded into the clock event array for the thirty first level, and event $63 is loaded in for the thirty second level. These events can be subsequently replaced by any other TCLK events if so desired. The 'stop' and 'continue' interrupts can also be performed via CAMAC. I) Power Supply Turn Off Mode The C453 can be placed in a mode which will cause it to send an off command to its associated bulk power supply as a result of a clock event. If this mode is selected, event $4E is loaded into the thirtieth clock interrupt level. This event can be replaced by any other TCLK events if so desired. Any clock event which triggers the thirtieth interrupt level will then result in a power supply off command being sent. J) Copy Time Table to G(I) Table Mode There are situations under which one might want to switch modes from time dependency to MDAT dependency. This can be done automatically by the C453 by setting it up for copy time to G(I) mode. Under this mode, any TCLK event which triggers interrupt level twenty nine will cause the time component of the present waveform to be copied into the presently playing G(I) value table at the slots surrounding the most recently decoded MDAT value. (Note: If the last MDAT slot decoded was slot zero, the new values will be copied to slots zero and one.) This copying will not take place if the time table is still playing or there is no active G(I) table. In any case, the original time table will remain unaffected. K) Copy Time Table to H(I) Table Mode (*) This mode works in exactly the same way as the copy time to G(I) table described above. The only difference is that this mode operates on interrupt level twenty six and that the original H(I) table values can be restored by an F(26)A(11) CAMAC command. L) Ramp Down Mode When a C453 module is following an MDAT table it produces a specific output for a specific MDAT value. Therefore, if the MDAT signal happens to be the energy of a given accelerator, it will produce the same output for the upward portion of a ramp as on the downward portion except that it is reversed in time. Since there are usually no particles in the accelerator during the downward portion of the ramp, this behavior is not always useful and is sometimes harmful to power supplies. The ramp down mode when selected loads event $26 into interrupt level twenty eight. As with other special operation modes, events for that level can be changed to whatever the user desires. If one of the events for interrupt level twenty eight is then detected, the C453 module will calculate new MDAT and MDAT value tables to bring the output of the card back to the value of slot zero by following MDAT directly. This mode will not take effect if the MDAT tables are already at slot zero. In that case the command is ignored. (Note: When this mode is selected for one waveform it is selected for all waveforms since new MDAT tables are loaded.) M) Archive data mode (*) When this mode is activated interrupt level twenty seven is reassigned to trigger it. If one of the eight events for that level is subsequently detected, the module will automatically store away pertinent information concerning its present output and the values used in calculating that output. This buffer of data can then be read out via an F(3)A(3) CAMAC command. A complete listing of the archival data structure can be found in section VII. N) Copy table mode (*) When this mode is activated, interrupt level twenty five is activated to trigger it. If one of the eight events for that level is subsequently detected, the module automatically copy the entire F(T), G(I), and H(I) tables which were selected by earlier F(20)A(4) CAMAC commands. Choosing a table number of zero disables copying for the corresponding table type. Copies can be set up to occur only once or until a change in the copy table setup is made. Table copies can also be manually triggered via an F(25)A(4) command. O) Add table mode (*) When this mode is activated, interrupt level twenty four is activated to trigger it. If one of the eight events for that level is subsequently detected, the module automatically adds the entire F(T), G(I), and H(I) tables which were selected by earlier F(21)A(4) CAMAC commands. Choosing a table number of zero disables adding for the corresponding table type. Adds can be set up to occur only once or until a change in the add table setup is made. Table adds can also be manually triggered via an F(25)A(5) command. Note that the tables which are being added from are not modified. P) Special LAM Status The LAM register has one status bit to indicate a power supply status error for each of the four individual power supplies (bits 0-3). Bit #8 is set whenever the end of an MDAT I table is reached without finding an appropriate I value. The previous MDAT components to the waveforms are maintained in this event. Bit #15 being set indicates that a CAMAC write command has been received by the module containing erroneous data. The CAMAC command is discarded in this event. Bits 12 and 13 indicate the absence of TCLK and MDAT signals respectively. Finally, bit 10 indicates the absence of an external permit signal, and bit 11 indicates a bulk power supply status error. Q) Special Power Supply Status The number of bits of power supply status available for each power supply depends upon the external permit input. If this input is high, the module will return four bits of power supply status for each supply. If the external permit input is low, the module will return eight status bits for each supply. The module then appends two additional internal status bits as described below. 4 bit mode (external permit input high): The lower four bits of the individual power supply status words contain the digital status from the power supply. The module appends two more status bits to these. Bit #4, if set, indicates that the ramp for that power supply is enabled, and bit #5, if set, indicates that a calculation error has occurred for the ramp for that power supply. The upper ten bits are presently unused. 8 bit mode (external permit input low): The lower eight bits of the individual power supply status words contain the digital status from the power supply. The module appends two more status bits to these. Bit #8, if set, indicates that the ramp for that power supply is enabled, and bit #9, if set, indicates that a calculation error has occurred for the ramp for that power supply. The upper six bits are presently unused. R) Initialized State When the module is powered up or reset all scale factor pointers will be set to the null scale factor and all scale factor values will be set to 0.0. Also, all table pointers will be set to the null table and all table values will be set to zero. The clock event table will be filled with NOOP (FE) clock events, and all special operation modes will be deselected. S) Clock Interrupt Disable The module can be made to ignore clock event interrupts by sending it an F(24)A(4) command. Clock interrupts can be reenabled with an F(26)A(4) command or by resetting the module. IV. CAMAC Functions ('A' board) A) Read Functions (1) F0A0 - return f(t) table data (f(t), t order) (1) F0A1 - return g(i) table data (1) F0A2 - return h(i) table data (1) F0A3 - return g(i) i data (1) F0A4 - return h(i) i data (2) F0A5 - return ramp table map data (nibble #2=f(t) table (0-15), nibble #3=g(i) table (0-15), hi nibble = h(i) table (0-15)) (2) F0A6 - return MDAT multiplier map data (0-16) (2) F0A7 - return scale factor map data (0-16) (2) F0A8 - return scale factor data (3) F0A9 - return clock event data (0-255) (4) F0A10 - return the f(t) end of table flag (0 --> time ramp in progress, 1 --> end of table reached) (4) F0A11 - return the current f(t) segment # (0-63) (4) F0A12 - return the current g(i) segment # (0-63) (4) F0A13 - return the current h(i) segment # (0-63) (4) F0A14 - return the current calculation error (overflow) count F0A15 - return the # of MDAT interrupts F1A0 - return bulk power supply status ('A' board) (Note: If 8 bit status is selected, this function returns a value of zero.) F1A1 - return composite power supply status ('B' board) For 4 bit status mode: (low nibble --> regulator #1 status, nibble #2 --> regulator #2 status, nibble #3 --> regulator #3 status, nibble #4 --> regulator #4 status) For 8 bit status mode: (low byte --> regulator #3 status, high byte --> regulator #4 status) (4) F1A2 - return most recent DAC setting F1A3 - return main MDAT selections (g(i) pointer in high byte (0-15), h(i) in low byte (0-15)) (5) F1A4 - return raw MDAT readings F1A5 - return power supply status nominal F1A6 - return power supply status mask (4) F1A7 - return individual power supply status nominal (4) F1A8 - return individual power supply status mask F1A9 - return LAM mask F1A10 - read and clear bulk PS status error (4) F1A11 - read and clear individual PS status error F1A12 - read and clear LAM (bit 15=invalid CAMAC function, bit 13=MDAT is missing, bit 12=TCLK is missing, bit 11=bulk PS status error, bit 10=external permit, bit 08=MDAT table search error, bit 03=PS #4 status error, bit 02=PS #3 status error, bit 01=PS #2 status error, bit 00=PS #1 status error) F1A13 - return the last CAMAC command received by the module (low byte --> subaddress, high byte --> function) (read in hex) F1A14 - return the last TCLK event # (0-255) F1A15 - return the # of TCLK interrupts (6) F2A0 - return TCLK interrupt level count F2A1 - return front panel LED status (bit 00=heartbeat status, bit 01=PS #1 ramp enable, bit 02=PS #2 ramp enable, bit 03=PS #3 ramp enable, bit 04=PS #4 ramp enable, bit 05=external permit status, bit 06=MDAT present status, bit 07=TCLK present status) (4) F2A2 - return current ramp table set (nibble #2=f(t) table (0-15), nibble #3=g(i) table (0-15), hi nibble = h(i) table (0-15)) (4) F2A3 - return current scale factor set (4) F2A4 - return current MDAT multiplier set (4) F2A5 - return the special configuration word (bit 0 set --> STOP/CONTINUE mode enabled, bit 1 set --> power supply off mode enabled, bit 2 set --> copy time to g(i) mode enabled, bit 3 set --> ramp down mode enabled, bit 4 set --> data archival mode enabled, bit 5 set --> copy time to h(i) mode, bit 6 set --> copy table(s) mode, bit 7 set --> add table(s) mode) (4) F2A6 - return the stop/continue word (0 --> ramping, FFFF --> stopped) (4) F2A7 - return the time component of the output value (4) F2A8 - return the MDAT component of the output value (4) F2A9 - return the time remaining in the current segment (in 720 Hz ticks) (4) F2A10 - return the remainder from the last f(t) interpolation F2A11 - return the last g(i) MDAT value F2A12 - return the last h(i) MDAT value (4) F2A13 - return the last f(t) MDAT multiplier (4) F2A14 - return the last g(i) MDAT multiplier (4) F2A15 - return the last h(i) MDAT multiplier (4) F3A0 - return the last interpolated f(t) table value (4) F3A1 - return the last interpolated g(i) table value (4) F3A2 - return the last interpolated h(i) table value (10) F3A3 - return archived data (21 word buffer) (*) (4) F3A8 - return ramp enable request status (*) F3A10 - return active MDAT table number (0 --> normal MDAT table, 1 --> ramp down MDAT table) F3A11 - return the # of TCLK interrupt errors F3A12 - return the status from a digital status test (a non-zero returned value indicates an error occurred) F3A13 - return the # of MDAT table search errors F3A14 - return the # of 1 Hz interrupts F3A15 - return the # of CAMAC interrupts F4A0 - return status bits per power supply (4 or 8) (*) (4) F4A1 - return individual power supply status For 4 bit status mode: (bits 0-3=power supply status, bit 4=ramp enable/disable status, bit 5=calculation error (overflow) status) For 8 bit status mode: (bits 0-7=power supply status, bit 8=ramp enable/disable status, bit 9=calculation error (overflow) status) F4A2 - return currently active interrupt level (*) (9) F4A4 - return current copy table information (*) F4A6 - return last invalid TCLK event detected (*) F4A7 - return last ignored TCLK event detected (*) F4A8 - return last invalid CAMAC function code detected (*) F4A9 - return TCLK FIFO buffer (*) (12) F4A10 - return TCLK event mask data (*) (12) F4A11 - return TCLK event image table data (*) F4A12 - read (but do not clear) LAM (bit 15=invalid CAMAC function, bit 13=MDAT is missing, bit 12=TCLK is missing, bit 11=bulk PS status error, bit 10=external permit, bit 08=MDAT table search error, bit 03=PS #4 status error, bit 02=PS #3 status error, bit 01=PS #2 status error, bit 00=PS #1 status error) (4) F4A14 - return the table copy error (overflow) count F4A15 - return clock event interrupt disable flag (*) (0 --> clock interrupts enabled, 1 --> clock interrupts disabled) (9) F5A4 - return current add table information (*) (4) F5A7 - return maximum output value (4) F5A8 - return maximum output increment F6A0 - return module ID number F6A1 - return firmware version number (low byte --> minor version, high byte --> major) (read in hex) (7) F6A2 - return a word in memory (7) F6A3 - return a block of memory (8) F6A4 - return diagnostic counter data F6A5 - return background count high word F6A7 - CAMAC I/O diagnostic read F8A0 - return LAM status (handled by hardware) F9A0 - reset the module (handled by hardware) B) Write Functions ('A' board) (1) F16A0 - write f(t) table data (f(t), t order) (1) F16A1 - write g(i) table data (1) F16A2 - write h(i) table data (1) F16A3 - write g(i) i data (1) F16A4 - write h(i) i data (2) F16A5 - write ramp table map data (2nd nibble=f(t) table # (0-15), 3rd nibble=g(i) table # (0-15), hi nibble=h(i) table # (0-15)) (2) F16A6 - write MDAT multiplier map data (0-16) (2) F16A7 - write scale factor map data (0-16) (2) F16A8 - write scale factor data (3) F16A9 - write clock event data (0-255) F16A10 - write table type pointer (0-2) (*) F16A11 - write clock event table pointer (0-127) F16A12 - set up pointer for ramp data read/write (16 bits - 0-1 (waveform #), 2-4 (table type), 5-9 (table #), 10-15 (table entry #)) (table types - 0 = f(t), 1 = g(i), 2 = h(i), 3 = g(i)(I), 4 = h(i)(I)) F16A13 - set up pointer for map and scale factor data read/write (16 bits - 0-1 (waveform #), 2-4 (table type), 5-11 (table entry #), 12-15 (unused)) (table types - 0 = ramp table map, 1 = MDAT multiplier map, 2 = scale factor map, 3 = scale factor table) F16A14 - set diagnostic memory pointer F16A15 - set up CAMAC I/O diagnostic values F17A0 - write TCLK interrupt level counter pointer (0-31) (4) F17A2 - write directly to DAC F17A3 - write main MDAT selections (g(i) pointer in high byte (0-15), h(i) in low byte (0-15)) F17A4 - write diagnostic MDAT pointer (0-15) F17A5 - write bulk PS nominal status value F17A6 - write bulk PS status mask value (4) F17A7 - write individual PS nominal status value (4) F17A8 - write individual PS status mask value F17A9 - write LAM mask value F17A10 - trigger a new output waveform (0-31) F17A12 - write term-wise data pointer (0-2) (*) (4) F18A5 - write special configuration word (bit 0 set --> stop/continue mode enabled, bit 1 set --> power supply off mode enabled, bit 2 set --> copy time to g(i) mode enabled, bit 3 set --> ramp down mode enabled, bit 4 set --> data archival mode enabled, bit 5 set --> copy time to h(i) mode, bit 6 set --> copy table(s) mode, bit 7 set --> add table(s) mode) (4) F18A6 - write stop/continue word (0 --> continue, FFFF --> stop) F19A0 - turn on/off front panel LEDs F19A1 - write waveform pointer (0-3) F19A2 - write diagnostic counter pointer (0-20) (0=reserved fault cnt, 1=trace fault cnt, 2=operation fault cnt, 3=arithmetic fault cnt, 4=floating fault cnt, 5=constraint fault cnt, 6=protection fault cnt, 7=machine fault cnt, 8=type fault cnt, 9=spurious interrupt cnt, 10=background cnt, 11=undefined CAMAC interrupt cnt, 12=CAMAC interrupt count, 13=TCLK interrupt count, 14=MDAT interrupt count, 15=time (720 Hz) interrupt count, 16=periodic (1 Hz) interrupt, 17=TCLK error count, 18=MDAT search table error count, 19=copy table overflow count, 20=ignored TCLK event count) F19A3 - set archived data pointer (0-20) (*) (9) F20A4 - write copy table information (*) F20A11 - write generic clock event table diagnostic pointer (0-255) (*) (9) F21A4 - write add table information (*) F24A0 - disable LAM F24A1 - turn off bulk power supply F24A3 - toggle polarity of bulk power supply F24A4 - disable clock event interrupts (*) (4) F24A5 - disable one of the four waveforms (4) F24A6 - turn off one of the four regulator power supplies F25A0 - decrement the DAC (*) F25A1 - increment the DAC (*) F25A3 - trigger a module data archive (*) F25A4 - trigger a table copy (*) F25A5 - trigger a table add (*) F26A0 - enable LAM F26A1 - turn on bulk power supply F26A4 - enable clock event interrupts (*) (4) F26A5 - enable one of the four waveforms (4) F26A6 - turn on one of the four regulator power supplies F26A7 - reset bulk power supply (4) F26A8 - reset one of the four regulator power supplies F26A9 - reset pointer for loading diagnostic memory address (*) F26A10 - restore g(i) table after copy from f(t) table (*) F26A11 - restore h(i) table after copy from f(t) table (*) F26A12 - clear clock event table (This takes ~1 second.) F26A13 - clear all diagnostic counters F26A15 - create a table update interrupt 1 --> should be preceded by F16A12 2 --> should be preceded by F16A13 3 --> should be preceded by F16A11 4 --> should be preceded by F19A1 5 --> should be preceded by F17A4 6 --> should be preceded by F17A0 7 --> should be preceded by F16A14 8 --> should be preceded by F19A2 9 --> should be preceded by F17A12 10 --> should be preceded by F19A3 11 --> should be preceded by F16A10 12 --> should be preceded by F20A11 V. CAMAC Functions ('B' board) A) Read Functions F0A0 - return reference for waveform 0 F0A1 - return reference for waveform 1 F0A2 - return reference for waveform 2 F0A3 - return reference for waveform 3 F1A0 - read analog reference mux setting (0-3) B) Write Functions F16A0 - set analog reference mux for MADC (0-3) VI. MDAT Mapping MDAT Frame MDAT Multiplier Code Main MDAT Code __________ ____________________ ______________ 10 Prog Tev I 1 0 U 11 Prog Tev I dot 2 1 B 20 Meas Tev I 3 2 U 21 Meas Tev I dot 4 3 B 30 Prog MI P 5 4 U 31 Prog MI P dot 6 5 B 40 Meas MI I 7 6 U 41 Meas MI I dot 8 7 B 50 Tev FT intensity 9 8 U 51 Tev Coll intensity 10 9 U 60 MI intensity 11 10 U 61 MI FT intensity 12 11 B 70 Unassigned 13 12 U 71 Unassigned 14 13 B 80 Recycler A marker 15 14 U 81 Recycler end cold beam 16 15 B (The complete list of MDAT signals can be found in the BD Controls - MDAT document.) VII. Archived Data Buffer Position Value Description ________ _________________ 1 DAC value 2 time (f(t)) component of DAC value 3 MDAT (g(i) + h(i)) component of DAC value 4 set of active table numbers 5 g(i) MDAT index (0-15) 6 h(i) MDAT index (0-15) 7 MDAT value used to interpolate g(i) table 8 MDAT value used to interpolate h(i) table 9 f(t) term MDAT multiplier index (-1-15) 10 g(i) term MDAT multiplier index (-1-15) 11 h(i) term MDAT multiplier index (-1-15) 12 f(t) term MDAT multiplier 13 g(i) term MDAT multiplier 14 h(i) term MDAT multiplier 15 f(t) term scale factor 16 g(i) term scale factor 17 h(i) term scale factor 18 f(t) interpolated table value 19 g(i) interpolated table value 20 h(i) interpolated table value 21 interrupt level VIII. References Schematic Number (A board) 0812 - ED - 218512 Schematic Number (B board) 0812 - ED - 218510 Front Panel 0812 - MC - 218511 IX. I/O Connections "A" Board Viking Connector 1L - MDAT digital ground 1R - TCLK digital ground 2L - TCLK output 2R - TCLK input 3L - MDAT output 3R - MDAT input 4L - analog output (used on C465 only) 4R - analog ground (used on C465 only) 5L - output control contact (NO) "ON" 5R - output control contact (NO) "ON" 6L - output control contact (NC) "OFF" 6R - output control contact (NC) "OFF" 7L - output control contact (NO) "RESET" 7R - output control contact (NO) "RESET" 8L - "POLARITY" low = normal, high = reverse 8R - "ON" TTL pulse, active high 9L - "OFF" TTL pulse, active low 9R - "RESET" TTL pulse, active high 10L - opto coupler anode supply, 5 volts 10R - permit input (pull low for 8 bit status, high for 4 bit) 11L - status 14 input, pull low for active state 11R - status 15 input, pull low for active state 12L - status 12 input, pull low for active state 12R - status 13 input, pull low for active state 13L - status 10 input, pull low for active state 13R - status 11 input, pull low for active state 14L - status 8 input, pull low for active state 14R - status 9 input, pull low for active state 15L - status 6 input, pull low for active state 15R - status 7 input, pull low for active state 16L - status 4 input, pull low for active state 16R - status 5 input, pull low for active state 17L - status 2 input, pull low for active state 17R - status 3 input, pull low for active state 18L - status 0 input, pull low for active state 18R - status 1 input, pull low for active state "B" Board Viking Connector 1L -- digital ground 1R -- anode supply 1, 5 volts 2L -- status input 1-1, (pull low for active state) 2R -- status input 1-2 3L -- status input 1-3 3R -- status input 1-4 4L -- anode supply 2, 5 volts 4R -- status input 2-1 5L -- status input 2-2 5R -- status input 2-3 6L -- status input 2-4 6R -- anode supply 3, 5 volts 7L -- status input 3-1 7R -- status input 3-2 8L -- status input 3-3 8R -- status input 3-4 9L -- anode supply 4, 5 volts 9R -- status input 4-1 10L -- status input 4-2 10R -- status input 4-3 11L -- status input 4-4 11R -- digital output 1, active high 12L -- digital output 2 12R -- digital output 3 13L -- digital ground 13R -- digital output 4 14L -- analog reference ground 1 14R -- analog reference output 1 15L -- analog reference ground 2 15R -- analog reference output 2 16L -- analog reference ground 3 16R -- analog reference output 3 17L -- analog reference ground 4 17R -- analog reference output 4 18L -- multiplexed reference ground to MADC 18R -- multiplexed reference signal to MADC (*) --> feature added in most recent version of firmware