1445 System Controller

Product Description

Every 1440 high voltage mainframe requires exactly one controller. The controller issues all commands on the 1440 bus. The controller provides the systern clock and monitors the state of the power supplies. A 8085 processor in the 1445 controller manages a user interface and formats information for the operator, regarding the current status of the system.

Specifications

The microprocessor is a two megaherz Intel 8085. The microprocessor clock is the master clock for the entire 1440 system.

An 8251 UART provides the serial line for communications with the operator. The interface is either a RS232-C port, a 2132 CAMAC interface or the 1447 hand held.

One kilobyte of scratch pad RAM and one kilobyte "demand" RAM both with battery backup. The battery backup provides continuity over powerdown cycles.

One 14 bit DAC provides accurate measurements of analog voltages from the high voltage cards.

Controls and Connectors

A sixteen position front panel knob provides the "mainframe address" to the microprocessor. The microprocessor will execute commands only after the user has specified the correct address as selected by this knob. This allows up to sixteen mainframes be daisy chained to one terminal.

Three connectors are provided for serial communications. J1 (clearly marked on the front panel) is a 16 pin header which may be wired directly to a RS232 compatible terminal. The J2 connector may be connected to the J1 connector of another 1440 mainframe. This daisy chain allows both mainframes to be independently controlled from the same source. The third connector (J3) is specifically designed for the 1447 hand held module. Insertion of the hand held will override the normal RS232 operation.

The lemo connector labeled "FAULT" provides an open collector, active low, diode isolated signal. When this signal goes low it indicates that one or more of the AC power supplies has been shut down for either over temperature, over current or other similar reasons.

The lemo connector labeled "ERROR" is also an open collector, active low, diode isolated signal. This signal is under processor control and as such handled differently in different versions of the firmware. In general it is used to indicate that some output voltage is out of tolerance.

Consult the installation section regarding the setting of jumpers on the 1445 controller. The gain of the ADC and the baud rate of the serial connection can be adjusted.

Commands

Commands are given to the 1445 controller over it serial line. The format of commands and their effects are defined by the firmware of the 8085 microprocessor. More than one version of this firmware exists and all are described under operating instructions.

Installation

There are three jumpers on the 1445 board. J4 and J5 select the gain of the on board ADC. The gain should be set to 1 Volt per count. No other setting is compatible with the existing 1440 system. The jumpers should connect the upper most pair of pins in J4 and J5.

The J6 jumper selects the baud rate for the serial port. When shipped 1200 baud is selected. Reading from left to right (components up, edge connector to the left), the available baud rates are 9600, 7200, 4800, 3600, 2400, 1800, 1200, 600, 300, 200, 150, 135, 110, and 75. The jumper is simply moved to connect the pair of pins corresponding to the desired baud rate.

Every 1440 system has one unique slot for the 1445 controller. The controller slot is in the front (side with white power switch) and to the far right in the 1440 mainframe. With the power off, the 1445 controller is inserted in this slot and both the top and bottom thumbscrews engaged. The address selection knob is set to the desired address. The ribbon connector for the RS232 is inserted into J1 and any connection to the next mainframe inserted in J2.

Operating Instructions

When the power is turned on the microprocessor is reset and begins execution of its firmware. The firmware implements a set of commands to allow the user to examine and manipulate the high voltage output. One common setup uses a personal computer with a serial port connected to the J1 connector of the first 1440 mainframe. This allows one of a multitude of popular software packages to be used.

There are a few versions of firmware for the 1445. Each version has its own strength but all are bound by the internal architecture of the 1445. Basically there is an array in memory which the hardware copies continuously to the high voltage cards. This is called the demand RAM. Approximately six I/O ports on the processor monitor or control global features of the system including the global current limits, the power supply status, front panel information etc. Provisions are made to connect several mainframes at once but only one will accept commands at any given time. This particular mainframe is said to be "attached".

Version 2.0 firmware

Version 2.0 firmware was developed primarily to address two particular needs. The first is the need to provide support for the new 1444 series of high voltage cards. Some of the additional features of this product simply cannot be utilized with the previous firmware versions. The second need is that of testing of the new series as well as the older 1443 cards. Previous test procedures utilized hardware which, with age, has become unacceptable. As an extra benefit, version 2 implements a few additional features including more rigorous error checking, more functions, an informative prompt string, lower case characters recognition, and a more useful syntax for specifying channels.

In the following description, "s", "c", "v", and "n" refer to slot number, channel number, data value, and mainframe number respectively. The parantheses and commas shown are required syntax. Consult the examples at the end of this section for a few special cases of allowable syntax. These special cases are included for some level of compatibility with version 1.7 of the firmware.

All commands may be abbreviated to two characters. For example "show modules" and "sh mo" have the same effect. Misspelling of commands is not allowed. A command like "shw mo" will elicit the response "Unrecognized Command".

The comment character is the semicolon. Unlike version 1.7, all characters (except control characters) after a semicolon are ignored by the command interpreter.

WHO
This command causes all the mainframes to "sound off" in some what of a military fashion. First the currently attached mainframe disconnects temporarily. Next all mainframes check the setting of their front panel switch for their address and use this number as a delay. After the delay is up the mainframe will attach and output its address on the serial line and then disconnect. While the output is a little slow (about 5 sec), a list of all the mainframe addresses present will appear on the terminal.
MAINFRAME n
Cause the indicated mainframe to become attached. This command will not be echoed if no mainframe is attached. If a mainframe is attached the command will be echoed and the attached mainframe will deattach to make way for the new mainframe.
HELP
A simple list of the primary commands is output to the screen.
CHANNEL (s,c)
Select the default channels for reads and writes. This command is redundant as all commands using the channel information allow the user to specify the information on the same line. The format for specifying a channel is same for all commands. This format is a pair of numbers enclosed with parentheses and separated by a comma. For example, (2,4) specifies channel 4, in slot 2. If the channel number or the slot number is omitted, it defaults to zero. Note that "(2)" and "(2,)" specifies slot 2 channel zero and that "(,4)" specifies slot 0 channel 4. In the case of omitting a slot number the channel number may be in the range 0 to 255 and the slot is computed as if every slot had 16 channels.
This format for specifying channels also allows loops over both slots and channels independently. For example, "(0-2,0-7)" would specify a loop over the first three slots and the first 8 channels in each of these slots.
If a channel is not specified, then the current channel specification is used. This specification may be a loop.
READ (s,c)
Read and display the actual voltage, the demand voltage and the DC current (if the module is a 1444) for the specified channel or range of channels. All numbers are in volts or microamps as appropriate. Channels which do not exist because of empty slots or the presence of a 1444 are shown as vacant.
WRITE (s,c) v, v,...
Write the demand voltage(s) to the specified channel(s). Each successive value will be written to the next channel specified by the loop. Two consecutive commas indicate the corresponding channel is not to be modified. The last value in the list will be repeated to the end of the loop. The last value may be null, in this case the last character in the command would be a comma.
Currently the number of values listed on the command line is limited to 30 even though the loop may cover the entire crate. All values must have the same sign as the module being written. In other words, cards which produce negative voltage will accept only negative numbers. The one exception is zero, which may be written to modules of either polarity. This allows an entire crate to be zeroed with the command "WR (0-15,0-15) 0"
The write command will modify only voltage demand values. Writing the other functions of the 1444 is blocked. All numbers have units of volts. The difference between 1444s and 1443s treatment of numbers is masked by the firmware. The range of the number is not checked against the module type. Also note that even though writes to channels 8-15 of a 1444 are blocked these channels are counted as loops are executed.
ON
Turn on the High Voltage. Only after this command will the HV outputs produce any voltage. The demand voltages may be changed at any time. If the power supplies require, a reset is attempted and the operator notifed.
OFF
Turn off the High Voltage. None of the demand voltages will be modified, the output voltage will be ramped to zero. This command is somewhat slow as it waits until the high voltage has completed its ramp down. This prevents programming of the outputs when they are supposed to be ramping down.
SET AC-TRIP (s,c) v
 SHOW AC-TRIP (s,c)
The trip values for the channels specified will be set to the values given. This command is only useful for the 1444 HV card. Also note that trip values are grouped in pairs. Setting the trip value for channel 0 or 1 will apply to both. The same is true for channel pairs 2-3, 4-5, and 6-7.
The trip values cannot be read from the 1444 HV card. The show command will list the last values written (demand RAM).
CLEAR (s,c)
When the AC trip is activated it remains in effect until cleared. The channel numbers are ignored and each card containing the specified channels is reset if it is a 1444 type card.
SET RAMP (s) v
 SHOW RAMP (s)
The ramp rate on the 1444 HV card can be set for each card. The value is the rate in volts per second. Minimum and maximum rates apply. The ramp rate cannot be read from the high voltage card and the show command displays setting according to the demand RAM. The rate specified is just the maximum allowed rate. The rate may be slower depending on the load on the output and power supplies in the 1440 system.
SET DC-LIMIT +/- v
 SHOW DC-LIMIT
The current limit for positive cards and the current limit for negative cards in a 1440 system can be set independently. The value specifed must be in the range 0 to 255 which represents a current of 0 to 2.55 milliamperes for a 1443 type card. Note that the show command uses a slightly different format than the set command.
SET SHUTOFF v
 SHOW SHUTOFF
This command begins a continuous monitor of the channel voltages (shutoff demon). If the voltage readback for a particular channel sags by more than the value specified, the channel will be programmed to zero volts and a message generated. If the mainframe is attached the message will appear on the screen and sound the bell. In addition the error output on the front of the 1445 will go low. The programmed value applies to both negative and positive channels sagging toward zero.
A value of zero will terminate the shutoff demon. The show command provides a list of channels which have been shut off and the limit specified in the last set command. Whenever the set command is used the list is cleared and the error output is reset even though the channels shutoff previously are not restored to their original voltages. The demand values must be rewritten to these channels. Note that monitoring does not occur during the execution of commands with the exception of commands which continuously update the display.
Note that the SHUTOFF command should not be issued until all channels have reached full voltage. The shutoff demon cannot distinguish between a channel ramping up and one which sagging. Both will appear to be below the requested voltage. If a demand voltage must be changed, either stop and start the shutoff demon or change the demand voltage in sufficiently small steps as to avoid the shutoff.
SHOW VERSION
Print the current version of the firmware.
SHOW MODULES
The connected mainframe identifies the contents if its slots.
BACKUP
The content of the demand RAM is copied to the backup RAM.
COPY
The content of the backup RAM is copied to the demand RAM.
UPDATE
A new value for the demand voltage is computed based on the backup values and the difference between the actual and demand values. The computation is:
New Demand = Backup + Old Demand - Measured Voltage.
The effect of repeated use of the UPDATE command is to cause the measured voltage to match the backup value, assuming this is possible.
Checks are done to prevent the change in the demand from being more than 64 or less than 2, and to prevent the new demand from being less than zero.
This command is corrected from version 1.7 and correctly identifies and treats channels in 1444 cards correctly.

The following commands require VT100 emulation by the terminal for their displays (the command in Crosstalk is "em vt100"). These commands are intended for testing of HV cards and not for normal operations. Documentation is included here for completeness.

MONITOR (s,c)
Display the actual voltage repeatedly for the entire card in the slot specified. Loops are not allowed and the channel number is ignored. Terminate with striking any key. The display shows the last of eight samples, the minimum and maximum value for the entire test, and the average of the eight samples taken during each pass.
TEST 1
This command begins the "Smoke test" and DAC tests. The demand voltages will be set to zero and the HV turned on. All channels in the current slot will be monitored. The space bar exits the test as a panic off. All demands will be set to zero and the HV turned off. The Enter or Return key will advance to the next voltage.
TEST 2
This command starts the Crosstalk and DAC tests. All demand voltages will be set to zero and a single channel will be set to 2500 volts. Enter will advance the channel number. After the all channels have been tested this way, all channels will be set to 2500 volts and one channel set to 0 volts. Again enter advances to the next channel. The test will continue to cycle until the space bar is hit.

When the mainframe is turned on the 1445 controller should issue the prompt "5 >" (for mainframe #5). If this does not occur, the controller was not attached when it was last turned off. Use the command "WHO" to find out which mainframes can respond and then the command "MA 5" (or whichever address you choose) to cause one of the available mainframes to attach. Characters typed will not be echoed until a mainframe becomes attached.

For compatibility an alternate format for specifying channels is allowed. In place the channel specification syntax "(s,c)" any of the following may be used: "C200", "C3,5", "C4,8 DO 40". A leading and a trailing space is required, but the embeded spaces are not.

Version 2.0 does not support either the 1447 hand held interface or the CAMAC protocoll of version 1.7.

Demand voltage values for 1444 may be specified to the nearest one half volt. For example, "2001.5" will be accepted as a voltage if the card is a 1444. Unfortunatly the hardware in the 1445 controller is unable to read the actual voltage with this resolution. All actual voltages read from 1444s will be to the nearest two volts. The deficiency is corrected in the 1445a controller.

Examples:

Show Modules

A list modules and slots is displayed. We discover slots 0 contains a 1444N; slots 4 and 5 contain 1443Ns and the remaining slots are empty.

Write (0,0-7) 0

In slot zero, all the demand voltages are set to zero. The value zero has either sign, and it is repeated for the entire loop.

Write -4305.5,,-4304.5,,-4302.0,,-4301,

This command is quite complex but illustrates several important aspects of the syntax. First, note that there is no channel specification. The loop specified in the previous command will be used. The voltage requests must be negative since the target card (slot 0) produces negative voltage. Since the target is a 1444N, the voltage may be specified to the nearest one half volt. We also show the use of the null demand value. The two consecutive commas specify that the corresponding channel is not to be modified. Further since the last value in the list is repeated until the end of the loop, we must specify a null value (trailing comma) for the last channel if we do not want -4301 to be used for two channels.

Read

We can check what we have done. The loop will be used again showing us exactly channel zero through seven in slot zero.

Write (4-5,0-15) -1500

Again using a loop, we set 32 channels to the same value.

Write (4-5,2) 0

This time we turn off (set to zero volts) channels (4,2) and (5,2). This illustrates a loop spanning slots. In essence any rectangular subset of the array of output channels can be specified.

Set DC -90

Here we begin using some of the new commands for supporting the 1444. First we set the limit for negative DC currents. Unfortunately the number 90 does not have obvious units and the current represented by this number differs depending on the type of HV card. The default value is 255 which is the maximum allowed.

set Ramp (0,0-6) 4000

Next we set the ramp rate. Here we specify some channels but only the slot they exist in is important. The card in slot zero will be set for a ramp rate of 4000 volts per second.

Set AC 90

Next is the AC current trip value. Note that the loop from the previous command is used and that even though channel 7 is not specified, it is grouped with channel 6 and will have the same AC trip limit. The sign of the number specified is not important for this command.

On

Finally, we turn on the output. All the demand voltages we have set should now appear on the output channels. This of course assumes that nothing interferes with the output. Any particular channel may be limited by the DC current limit, the voltage limit on the front panel, or a previous AC trip may have occurred which has not cleared.

Set Shut 50

We also decide to use the "shutoff demon". This command affects all channels in the crate. If any channel droops toward zero by 50 volts, it will be programmed to zero. The drop is usually assumed to be caused by a DC current limit. This command is effective for both 1443s and 1444s.

Version 1.7 firmware

The version 1.7 firmware parses its commands very differently than version 2.0. The parser divides the ASCII characters into several groups. Letters are defined as "A" through "Z" upper case only. Lower case letters are ignored completely. Numbers are composed of "0" through "9" plus "-", "+", and ",". Note that the comma has a special function and does not delimit numbers. All other printable characters are considered delimiters.

Commands

M n Mainframe specifier
STStatus Request
EMEmpty HV Card Slot Request
NNon Updated Channel Request
RLReport both Current Limits
VERPrint Version number of Firmware
RRead
W vWrite
IWrite with Auto Increment of Channel Pointer
ONTurn High Voltage Output On
OFTurn High Voltage Output Off
LI +/- nCurrent Limit Specifier
SWSwap Demand and Backup Program Buffers
COCopy Demand into BAckup Program Buffers
UUpdate (Demand = Demand + Backup - Actual)
CLClear Faults
Pointer Modifiers:
C nChannel Specifier, Select Demand Programming Buffer
BBackup Programming Buffer. Must precede "C" if used in the same command.
PSpecifies Programming buffer, either Demand or Backup
VSpecifies Actual HV Output Value
Iteration Modifiers:
AModifies command to function on all channels or all mainframes.
DO nSpecifies a number of successive channels for command to operate on
Format Modifiers:
FSelects 8 column output format
ESelects output of Demand, Backup and Actual
Control Characters:
<^C>Abort Currently executing command
<^X>Clear command line
<^H>Rubout or Delete
<^S>Suspend printout
<^Q>Resume printout
<^Z>Reboot
;Begin or end comment characters
,Multiply preceding number by 16 and add next number, i.e. "C2,3" is equivalent to "C35".

Version 1.7 firmware (CAMAC)

Version 1.7 supports control through CAMAC with the 2132 CAMAC interface module. Commands use a different format in that every command is exactly one 16 bit number transmitted via the interface.

Commands:

111111
5432109876543210  
 
CCCCCCCCMMMM.000 Selects mainframe M as the receiver for further commands. When Channel C settles the turnon is assumed to be complete. Mainframe 16 is indicated with a zero.
 
CCCCCCCC...IB001 Write to channel C. B selects backup (1) or demand (0). I selects increment (1).
 
SVVVVVVVVVVVV010 V is the voltage data and S is the sign. Note S = 1 is positive and S = 0 is negative, contrary to computing conventions.
 
CCCCCCCCAAA..011 General read command. "A" selects the source of the data to be read
        000 Demand value of specified channel
        001 Backup value of specified channel
        010 Measured voltage of specified channel
        011 Non updated channel, "C" ignored
        100 Positive current limit
        101 Negative current limit
        110 Empty slots
        111 Status
 
DDDDDDDD.....100 Iteration count, 0 means 256
 
DDDDDDDDS..F.101 Set current limits. S indicates the sign where S = 1 indicates positive and S = 0 indicates negative.
 
........AAAFZ110 Command Specifier
        000 0 Turn off HV
        001 0 Turn on HV
        010 0 Clear faults
        011 0 Disable finished res.
        100 0 Swap
        101 0 Copy
        110 0 Update
        111 0 Enable finished res.
        ... 1 System Reboot
 
.............111 No operation
 
Responses:
 
000BBBBBMMMM0000 Status (one response)
       1 HV on
      1 enabled
     1 1441 fault
    1 1442 low fault
   1 1442 high fault
 
00000AAAMMMM0001 Finished command initiated with Command specifier
 
SVVVVVVVVVVVV010 Voltage, response to read request
 
CCCCCCCCMMMMB100 Buffer ID Demand (B = 0) or Backup
 
CCCCCCCCMMMM0100 Measured data, ID
    0000    1 Empty slot report
11111111    1 No empty slots
 
DDDDDDDDMMMMS101 Current limit
 
CCCCCCCCMMMM0110 Non-updatable channel number
DDDDDDDD    1 Total number of channels
 
0000000EMMMM0111 Receiver error 1440
XXXXXXXXXXXX1111 Receiver error 2132