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.
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.
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 |
ST | Status Request |
EM | Empty HV Card Slot Request |
N | Non Updated Channel Request |
RL | Report both Current Limits |
VER | Print Version number of Firmware |
R | Read |
W v | Write |
I | Write with Auto Increment of Channel Pointer |
ON | Turn High Voltage Output On |
OF | Turn High Voltage Output Off |
LI +/- n | Current Limit Specifier |
SW | Swap Demand and Backup Program Buffers |
CO | Copy Demand into BAckup Program Buffers |
U | Update (Demand = Demand + Backup - Actual) |
CL | Clear Faults |
Pointer Modifiers: | |
C n | Channel Specifier, Select Demand Programming Buffer |
B | Backup Programming Buffer. Must precede "C" if used in the same command. |
P | Specifies Programming buffer, either Demand or Backup |
V | Specifies Actual HV Output Value |
Iteration Modifiers: | |
A | Modifies command to function on all channels or all mainframes. |
DO n | Specifies a number of successive channels for command to operate on |
Format Modifiers: | |
F | Selects 8 column output format |
E | Selects 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 |