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

Security, Privacy, Legal