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