|   |   | 
 
 
I wrote a program (call serial2) which can read in an
arcnet formatted file of MCM serial string bits
(sample file here),
read a series of commands to change some of the parameters,
then write a new file when you exit (command to exit is exit or quit).
You can get a copy of the program either by downloading
this "tar" file if that is useful to
you, or else by downloading everything in
everything in this directory.
If you take the tar file, "untar" it with
tar -xvf changes.tar
Build the program with
make serial2
You can find a brief description of the serial string and some suggested settings for the various parameters here. You can find a description of the order the serial string bits get sent here -- this link also contains additional links to some old tests of the serial string bits (i.e. do they do whhat they should?). Those tests are old -- more things have been tested since then. Also notice that those old notes count bits starting from 1 while the bits are numbered starting at 0 here.
When you first start the program, it may be helpful to use the "status" command. It shows the settings of the serial string bits in the input file.
The latest version of the program also writes an output file called response.rsp which is in the correct format to be compared to the data returned by the arcnet command to read back the serial string.
I wrote a script which attempts to setup a complete set of files to be used in the arcnet commands to download and then read-back the serial string. Here is the first version of that script. It is not a very clever script. The channels which must be turned off are given on this web page.
Here is the sequence of commands I use to setup the serial string files.
On phenix14, in mvdonl account in /usr1/mvdonl/serial/change_serial directory:
On phoncs0, in /export/software/oncs/online_configuration/Arcnet/mvd/hex directory:
Currently, the readback gives 6, apparently real, errors:
We plan to modify the relevant response files to show whatever these normally respond with. This is done in order to give "zero errors" as the normal readback value, which allows us to test this condition at startup.
Look here for powerpoint and ppt plots showing the current connections on the two arcnet interface module front pages.
General commands:
| command | purpose | status | prints a table summarizing the current settings of the serial string bits. | help | Does not give much in the way of instructions, but does give the url of
        this web page. |  | 
Commands related to the heap manager part of the serial string:
| command | bits used | purpose | hm lvl1 Ndelay | hmbit[0-3] | adjusts the assumed level-1 delay to Ndelay
        beam clock ticks (from 33 to 47) | -- | hmbit[4] | not used | hm prepost bitval | hmbit[5] | sets the separation between pre and post
       samples (in the amu cells) to either 1
       (bitval=0) or 2 (bitval=1) beam clock ticks. | hm phase iphase | hmbit[6-7] | level-1 phase adjust (1/4 beam clock units)
        iphase ranges from 0 to 3. Change is -iphase*(1/4). | hm test itest | hmbit[8] | when itest is 1, 
        all data packets contain data values of 1, 2, 3, ...
        Setting it to zero (normal running) turns this test mode off. | hm ren onoff | hmbit[9] | onoff=1 means enable internal preamp resets. In normal running,
        this should be zero -- the preamp resets come from the externally
        driven mode bits. | -- | hmbit[10-11] | these bits are used to set the number of
       bits used to digitize the ADCs. Because
       the MVD does not expect to ever use
       anything but 10 bits, no command was
       written to change these bits. They should
       always be hmbit[10]=1, [11]=0. | hm raw onoff | hmbit[12] | onoff=1 Set "raw" mode (2 packets per event), =0 correlator mode,
       normal running setting This command also sets the related amu
       serial string to the correct values. | hm calen onoff | hmbit[13] | Normally this bit is 0. When set to 1, the 
     calibration mode is enabled. | hm renfreq ifreq | hmbit[14-15] | ifreq is from 0 to 3, controls internal preamp reset
       frequency if iren=1. =0 means highest reset frequency, 
       =3 means lowest reset frequency |  | 
AMU/ADC commands.
All of these commands start with 
amu "command" ichip arg[s]
where "command" and "arg[s]" vary from one command to
the next. ichip is the "chip" number on the MCM. ichip ranges from
1-8 (not 0-7) in this command because 0 is reserved to mean "set the
same value for all 8 chips". The "ichip=0" option is not allowed for
the "mux" commands because you should never turn more than one of these
on at a time.
The html file below may format the command on more than one line, but the commands should be a single line when you type them.
| command | bits used | purpose | amu amumux ichip onoff chan | amubit[ichip-1][0], amubit[ichip-1][25], amubit[ichip-1][1-5] | Turn on a single AMU spy channel output
        This means setting amubit[ichip-1][0] and       
        amubit[ichip-1][25] to 1 (onoff value) to enable output for
        the selected channel or to 0 (onoff value) to turn it
        off. chan is the channel
        number (from 0 to 31) which is used to
        set bits 1-5.
        Note, only 1 AMU spy channel should be
        on at one time, so this command turns
        all other channels off. | -- | amubit[ichip-1][6] | correlator enable bit. This should have
        a value opposite to the heap manager's
        raw mode bit and therefore it is set via
        the heap manager command -- not here | amu vref ichip Volts | amubit[ichip-1][7-12] | max voltage in digitization "ramp".
        Vref ranges from 0.2Volts to 4.8Volts. | amu vcorr ichip Volts | amubit[ichip-1][13-18] | Set vcorr DAC. Vcor ranges from 0.1Volts to 2.5Volts. | amu iref ichip microamps | amubit[ichip-1][19-24] | Sets slope of ramp. Iref ranges from 2 to 70 microamps. | amu tgvmux ichip onoff chan | amubit[ichip-1][26], amubit[ichip-1][27], amubit[ichip-1][28-32] | Turn on a single Preamp spy chan output
        This means setting amubit[ichip-1][26] and
        amubit[ichip-1][27] to 1 (onoff value) to enable output for
        the selected channel or to 0 (on off value) to turn it
        off. "chan" is the channel
        number (from 0 to 31) which is used to
        set bits 28-32.
        Note, only 1 preamp spy chan should be
        on at one time, so this command turns
        all other channels off. |  | 
TGV's:
All of these commands start with 
tgv "command" ichip arg[s]
where "command" and "arg[s]" vary from one command to
the next. ichip is the "chip" number on the MCM. ichip ranges from
1-8 (not 0-7) in this command because 0 is reserved to mean "set the
same value for all 8 chips".
The html file below may format the command on more than one line, but the commands should be a single line when you type them.
| command | bits used | purpose | tgv csdis ichip chan onoff | tgvbit[ichip-1][1-32] | current sum (aka discriminator) disable, 1 means disable.
       chan = 0 means all channels on a chip,
       chan = 1-32 means a single channel.
       onoff=0 is on (normal), 1 is disable. | tgv dtwk ichip chan ithr | tgvbit[ichip-1][32-95] | Discriminator tweak bits.
       ithr ranges from 0 to 3 in the command.
       These bits are intended to provide a
       fine channel to channel adjust for the
       coarse threshold set for all 32
       channels on a chip via the Vthr DAC. | tgv predis ichip chan onoff | tgvbit[ichip-1][96-127] | Preamp disable , 1 means disable
       chan = 0 means all channels on a chip,
       chan = 1-32 means a single channel
       onoff=0 is on (normal), 1 is disable | tgv predisc chan onoff | tgvbit[0..7][96-127] | Preamp disable, similar to predis, but
       count channels from 0-255 and leave
       chip number out of the command.
       chan = 0-255, 
       onoff=0 is on (normal), 1 is disable. | tgv calen ichip chan onoff | tgvbit[ichip-1][128-159] | Bench cal eneable, 1 means on.
       chan = 0 means all channels on a chip,
       chan = 1-32 means a single channel
       onoff=0 is off, =1 is on | tgv vthr ichip Volts | tgvbit[ichip-1][160-165] | Set the VTHR  DAC -- sets threshold on 
        discriminator. This adjustment's
        sensitivitiy is controlled by Vgate.
        A lower setting means higher threshold
        Vthr=0 is the highest threshold.
        1 mip seems to be around 1.4V.
        It ranges from 0.00 to 1.86V. | tgv vmid chip volts | tgvbit[ichip-1][166-171] | Set the Vmid  DAC (I'm not real clear
       about this DAC. It sets an offset V,
       but I forgot on what.)
       It ranges from 1.71 to 4.50V. | tgv vgate ichip Volts | tgvbit[ichip-1][172-177] | Set the Vgate DAC (I'm not real clear
       about this DAC, but it is related to
       the discriminator performance --
       it controls the sensitivity of the
       threshold to the THRESH_DAC).
       It ranges from 0.006 to 3.68V. | tgv vfb ichip Volts | tgvbit[ichip-1][178-183] | Set the Vfb DAC (baseline restoration).
       It ranges from 0.006 to 5.02V.
       Around 3.0V seems to work best, higher
       number means return to baseline slower. | tgv vcal ichip Volts | tgvbit[ichip-1][184-189] | Set the Vcal DAC (for bench cal pulse).
       It ranges from 3.48 to 5.0V.
       3.48 corresponds to the biggest pulse |  |