C057 CAMAC Digital Control Module
W. R. Knopf, September 27, 1983
A) MECHANICAL SPECIFICATION:
-------------------------
MODULE IS A SINGLE WIDTH CAMAC MODULE IN FULL
COMPLIANCE WITH ALL CAMAC SPECIFICATIONS.
INPUTS AND OUTPUTS TO EXTERNAL DEVICES ARE PROVIDED
VIA A 36 PIN EDGE OUTPUT TO ACCEPT A VIKING TYPE EDGE
CONNECTOR.
FRONT PANEL L.E.D.'S TO GIVE VISUAL INDICATION OF:
1) MODULE ADDRESSED,
2) LAM PRESENT,
3) LAM ENABLED
4) OUTPUT PULSE ACTIVE.
RS-232 PORT FOR LOCAL CONTROL THROUGH A FRONT PANEL
4 PIN CONNECTOR.
B) ELECTRICAL SPECIFICATION:
-------------------------
I. POWER REQUIREMENT: +6V, +24V, -24V
II. OUTPUT SIGNALS: TTL-LEVEL OUTPUT DRIVERS, CAPABLE OF
SINKING 48 MA OF CURRENT, ACTIVE LOW OUTPUT.
INPUT SIGNALS: TTL-LEVEL, ACTIVE LOW INPUTS WITH ON-
BOARD PULL-UP RESISTORS TO +5V PROVIDED (2.2K).
C) GENERAL FEATURES:
-----------------
I. FULL CAMAC FUNCTION DECODING.
II. LAM FEATURE WITH ENABLE AND DISABLE LAM VIA CAMAC
FUNCTION CALLS.
III. MODULE I.D. PROVIDED THROUGH A F(6)*A(0) FUNCTION.
VI. FIRMWARE VERSION TO BE READABLE VIA CAMAC FUNCTION F(6)*A(1).
V. ON-BOARD FUNCTIONS TO PROVIDE SUPPORT FOR LOCAL CONTROL
THROUGH A 1200 BAUD SERIAL ASYNCHRONOUS RS-232 PORT.
IV. ON-BOARD 16-BIT MICROPROCESSOR ALLOWS FOR FLEXIBLE IMPLE-
MENTATION OF CAMAC FUNCTIONS AND I/O CONTROL.
LOCAL MEMORY CONSISTS OF 8 KB OF STATIC RAM AND 8 KB OF EPROM.
D) FUNCTIONAL SPECIFICATION:
-------------------------
THE FOLLOWING CONTROL LINES ARE USED TO IMPLEMENT THE
PARALLEL DATA TRANSFER BETWEEN MODULE AND DRIVER CRATE:
1. 16 BI-DIRECTIONAL DATA LINES
2. 6 ADDRESS SELECT LINES
3. READ/WRITE STATUS LINE
4. DATA STROBE
5. PULSE OUTPUT
DATA, ADDRESS AND READ/WRITE LINE TO BE STABLE AT LEAST
50 NS BEFORE AND AFTER THE DATA STROBE BECOMES ACTIVE.
IMPLEMENTATION AS A SEPTUM CONTROLLER (CAMAC 057 MODULE)
--------------------------------------------------------
THE MODULE SHALL PROVIDE CONTROLS FOR UP TO 16 STEPPING
MOTORS, ONE EXTERNAL POWER SUPPLY AND STATUS READ-BACK
FOR THOSE DEVICES.
I. CONTROLS:
1. SELECT (ENABLE) ANY ONE OR A COMBINATION OF UP TO 16
MOTOR DRIVE MODULES IN THE MOTOR DRIVE CRATE.
SENDING DRIVE SELECT FUNCTION RESETS ANY STEPPING
ACTION IN PROGRESS.
2. SELECT STEPPING RATE IN THE RANGE OF 1 HZ TO 10 KHZ.
3. SELECT NUMBER OF STEPS AND DIRECTION OF ROTATION.
RANGE IS 1 TO 32767 STEPS, TWO'S COMPLEMENT 16 BIT
NUMBER; NEGATIVE VALUE TO INDICATE CCW ROTATION,
POSITIVE VALUE TO INDICATE CW ROTATION.
THIS WILL INITIATE A PULSE OUTPUT TRAIN AND OVERRIDE
ANY PREVIOUSLY LOADED STEP COUNT.
5. MOTOR POWER SUPPLY CONTROL (ON-OFF-RESET).
6. RESET
II. STATUS READ-BACK:
UP TO EIGHT 16 BIT STATUS REGISTERS INDICATING THE CON-
DITION OF THE 16 STEPPING MOTORS AND POWER SUPPLY:
1. MOTOR DRIVES ENABLED,
2. UP-LIMIT,
3. DOWN-LIMIT,
4. HIGH VOLTAGE,
5. STEP RATE,
6. REMAINING NUMBER OF STEPS TO BE SEND OUT,
7. MOTOR DRIVE POWER SUPPLY STATUS
8. OVERCURRENT
Registers 2, 3 and 4 are internally updated at a 30 Hz
rate to provide packed data for fast CAMAC read-back.
This routine also checks for H.V. on enabled drives;
if the supply is on and a motor is enabled but no H.V.
is detected on that drive the controller will disable
all motors and raise the LAM flag. The status at this
time is saved and can be read back via a CAMAC F(0)*A(7).
*** External devices mapping. ***
The value of the address lines on the I/O connector
reflects access to he following external registers:
(Internal base address 'EXTCS' = 4000H)
XMOT0 = EXTCS + 00 ( Motor #1 address )
( Motor #2 - #15 addresses are 2 bytes apart )
XMOTF = EXTCS + 30 ( Motor #16 address )
XPSRES = EXTCS + 32 ( Power supply reset on write )
( Power supply status on read )
XPSOFF = EXTCS + 34 ( Power supply off )
XPSON = EXTCS + 36 ( Power supply on )
XMDSB = EXTCS + 40 ( Motor(s) disable )
XMENB = EXTCS + 42 ( Motor(s) enable )
XCWD = EXTCS + 60 ( Direction = CW / up )
XCCWD = EXTCS + 62 ( Direction = CCW / down )
CAMAC FUNCTIONS.
----------------
All CAMAC data transfer is done using the least significant
16 data lines ( R1-R16, W1-W16).
F(0)*A(0) - READ MOTOR DRIVES ENABLED
F(0)*A(1) - READ UP-LIMIT STATUS (BIT SET = LIMIT REACHED)
F(0)*A(2) - READ DOWN-LIMIT STATUS
F(0)*A(3) - READ HIGH VOLTAGE STATUS
F(0)*A(4) - READ MOTOR DRIVE POWER SUPPLY STATUS
F(0)*A(5) - READ STEP RATE IN HZ
F(0)*A(6) - READ STEPS REMAINING
F(0)*A(7) - READ OVERCURRENT REGISTER (SAVED AT LAM TIME)
F(6)*A(0) - READ MODULE NUMBER
F(6)*A(1) - READ VERSION NUMBER
F(8)*A(0) - READ LAM (Q=1 IF LAM IS SET)
F(9)*A(0) - RESET MODULE; THIS WILL DISABLE ALL MOTORS AND
TURN THE SUPPLY OFF. (HARDWARE RESET)
F(9)*A(1) - RESET MOTOR POWER SUPPLY
F(16)*A(0) - ENABLE MOTOR DRIVES ASSOCIATED WITH WRITE VALUE
(BIT SET = MOTOR ENABLED, BIT RESET = MOTOR DISABLED)
F(16)*A(1) - SELECT NUMBER OF STEPS AND SEND PULSE TRAIN
F(16)*A(2) - SELECT STEP RATE (IN HZ).
F(24)*A(0) - DISABLE MOTOR POWER SUPPLY (OFF)
F(24)*A(1) - DISABLE LAM
F(26)*A(0) - ENABLE MOTOR POWER SUPPLY (ON)
F(26)*A(1) - ENABLE LAM
LOCAL CONTROL.
--------------
IN ORDER TO PROVIDE LOCAL CONTROL AND STATUS READ-BACK
FOR CALIBRATION AND DE-BUGGING A FRONT PANEL RS-232 PORT
CAN BE CONNECTED TO A PORTABLE TERMINAL.
PRESENT IMPLEMENTATION PROVIDES FOR 1200 BAUD INTERFACE.
LOCAL COMMANDS:
COMMANDS ARE ENTERED ON THE KEYBOARD AND EXECUTED UPON A
CARRIAGE RETURN.
A SECOND CARRIAGE RETURN WILL RETURN THE TERMINAL TO THE
COMMAND MODE. SPACES AS DELIMITERS ARE INSIGNIFICANT.
THE FOLLOWING COMMANDS ARE PRESENTLY IMPLEMENTED:
'UP NN' - STEP UP NN PULSES (NN = DECIMAL IN RANGE 1 - 32736)
'DN NN' - STEP DOWN NN PULSES
'PR X' - SET PULSE RATE ( X = DECIMAL IN RANGE 1 - 10,000 HZ)
IF NO X ENTERED, UNIT WILL DISPLAY PRESENT RATE.
'EN Y' - ENABLE MOTOR DRIVE Y (Y IN RANGE 1-16)
'DI Y' - DISABLE MOTOR DRIVE Y
'ON' - TURN POWER SUPPLY ON
'OF' - TURN POWER SUPPLY OFF
'RS' - RESET POWER SUPPLY
'PS' - DISPLAY POWER SUPPLY STATUS
'UL' - DISPLAY UP LIMIT (16 BIT BINARY DISPLAY, EACH BIT
REPRESENTING ONE DRIVE)
'DL' - DISPLAY DOWN LIMIT
'HV' - DISPLAY HIGH VOLTAGE STATUS
'DS' - DISPLAY ALL ENABLED DRIVES
'DS Y' - DISPLAY STATUS OF DRIVE Y
CAMAC function response timing.
Each CAMAC function code and sub-address is handled by a dedicated
interrupt routine with its own vector and all routines are
mutually exclusive (no nested vectored interrupt routines).
A) READ functions:
All read functions require a no-Q retry to satisfy data pre-fetch.
Data is available in the read buffer ~13 usec. after the first
CAMAC read function appears on the CAMAC dataway.
All read function through-put is in excess of 50,000
CAMAC cycles per second, or approx. 17-18 usec.
A change in read function code or sub-address will always
invalidate pre-fetched data and result in a no-Q response.
B) WRITE functions:
All write functions will immediately accept the data and return
a Q = true unless the CAMAC write buffer has not been emptied yet,
in which case a no-Q is returned and the write buffer is not
overwritten.
Data is taken from the write buffer ~11 usec. after the
first write function appears on the dataway.
Total max. function processing time for write functions:
F(16)*A(0) - 22 usec
F(16)*A(1) - 29 usec
F(16)*A(2) - 57 usec
C) CONTROL functions:
1. F(9)*A(0) [hardware reset] - ~110 msec. (note: milliseconds)
2. F(8)*A(0) [test LAM] - immediate hardware response
3. F(24) and F(26) - ~18 usec total interrupt routine time.
AUX. CONNECTOR PINOUT
=====================
1L - GND 1R - GND
2L - D15 (MSB) 2R - D14
3L - D13 3R - D12
4L - D11 4R - D10
5L - D9 5R - D8
6L - D7 6R - D6
7L - D5 7R - D4
8L - D3 8R - D2
9L - D1 9R - D0 (LSB)
10L - A8 10R - A7
11L - A6 11R - A5
12L - A4 12R - A3
13L - A2 13R - A1
14L - PULSE OUT 14R - INITIALIZE
15L - R/W (WRITE ACTIVE LOW) 15R - DATA STROBE
Security, Privacy, Legal