`and Research, Inc.
`
`TRC004
`
`User's
`Manual
`
`2516 Matterhorn Drive, Wexford, Pennsylvania 15090-7962
`(412) 934-8348
`
`Page 1 of 27
`
`
`
`The information in this document is subject to change without notice.
`
`Trident Robotics and Research, Inc. does not guarantee the accuracy of the information contained in this document
`and makes no commitment to keep it up-to-date.
`
`Trident Robotics and Research, Inc. makes no warranty of any kind with regard to this material, including, but not
`limited to, the implied warranties of merchantability and fitness for a particular purpose.
`
`This device is not intended for use in life support equipment and should not be used in any medical or other
`application where intermittent malfunction or failure may directly jeopardize the health or well-being of an
`individual or individuals without adequate safeguards.
`
`Address comments concerning this document to:
`
`Trident Robotics and Research, Inc.
`User Documentation Dept.
`2516 Matterhorn Drive
`Wexford, PA 15090-7962
`(412) 934-8348
`
`Unimate, VAL, and PUMA are trademarks of Unimation, Inc.
`LSI/11 is a trademark of Digital Equipment Corp.
`
`Revised: April, 1994
`
`TRC004 User's Manual
`
`Page i
`
`Page 2 of 27
`
`
`
`Table of Contents
`1.0 Introduction......................................................................................................1
`1.1 General Information ..............................................................................1
`1.2 PUMA-Specific Information..................................................................1
`2.0 Specifications ...................................................................................................3
`3.0 Installation........................................................................................................3
`3.1 General Information ..............................................................................3
`3.2 VAL Card Removal ..............................................................................3
`3.3 Mounting the TRC004 ..........................................................................3
`3.4 Connections to Unimate Controller .......................................................5
`3.5 Adjusting Unimate Power Supply..........................................................6
`3.6 Connections to the Bus Interface...........................................................8
`3.7 Index Pulse Phasing ..............................................................................8
`4.0 Operations........................................................................................................9
`4.1 General Information ..............................................................................9
`4.2 Analog Outputs.....................................................................................9
`4.2.1 General Information................................................................9
`4.2.2 Gain Adjustment.....................................................................9
`4.2.3 Filter Adjustment....................................................................9
`4.2.4 Update Procedure...................................................................10
`4.3 Analog Inputs .......................................................................................11
`4.3.1 General Information................................................................11
`4.3.2 Update Procedure...................................................................11
`4.4 Discrete Output Register.......................................................................11
`4.4.1 General Information................................................................11
`4.4.2 Calibration Status ...................................................................11
`4.4.3 Bit 17 Preset...........................................................................12
`4.4.4 Encoder Index Mask...............................................................12
`4.4.5 A/D Conversion Mask ............................................................12
`4.4.6 PUMA-Specific Outputs.........................................................12
`4.4.7 Update Procedure...................................................................13
`4.5 Status Input Register.............................................................................13
`4.5.1 General Information................................................................13
`4.5.2 Encoder Index Status..............................................................13
`4.5.3 A/D Conversion Status ...........................................................13
`4.5.4 Calibration Status ...................................................................13
`4.5.5 Joint 6 Overflow.....................................................................14
`4.5.6 PUMA-Specific Inputs............................................................14
`4.5.7 Update Procedure...................................................................14
`4.6 Incremental Encoder Inputs...................................................................14
`4.6.1 General Information................................................................14
`4.6.2 Encoder Presetting .................................................................14
`4.6.3 Index Latch ............................................................................15
`4.6.4 Update Procedure...................................................................15
`
`TRC004 User's Manual
`
`Page ii
`
`Page 3 of 27
`
`
`
`4.7 Watchdog Timer ...................................................................................15
`4.7.1 General Information................................................................15
`4.7.2 Enabling/Disabling..................................................................15
`4.7.3 Update Procedure...................................................................15
`5.0 Troubleshooting ...............................................................................................16
`Appendix A: Kawasaki PUMA 760/Mark I.............................................................17
`Appendix B: Unimate PUMA 560 with 26-slot Backplane ......................................19
`Appendix C: Unimate PUMA 760 with Mark III Controller....................................21
`Appendix D: Schematics.........................................................................................23
`
`TRC004 User's Manual
`
`Page iii
`
`Page 4 of 27
`
`
`
`Trident Robotics and Research, Inc.
`TRC004
`PUMA Interface Card
`
`1.0 Introduction
`1.1 General Information
`The TRC004 is a general purpose interface board for servo applications. It provides eight
`channels of buffered analog output, eight channels of analog input, six quadrature shaft encoder
`channels, six bits of discrete input, six bits of discrete output, and a watchdog timer.
`The TRC004 is ideally suited for high-performance robotic applications including force-
`controlled manipulators and dextrous hands. It was specifically designed to replace the LSI/11
`VAL computer and servo cards in the Unimate PUMA manipulator to allow high-speed, direct
`access to joint motor torques and positions.
`Its unique design allows it to be placed remotely from the host computer's bus, closer to the
`noise-sensitive analog plant it is controlling. A generic digital address/data interface links the
`TRC004 to any one of a wide variety of host bus interface cards that plugs directly into your
`system. This permits flexibility in upgrading the host computer as technology advances, without
`incurring the cost of replacing the entire interface card. (Only the inexpensive bus interface must
`be replaced if a new system bus is chosen.)
`The TRC004 is constructed almost entirely of high-speed CMOS integrated circuits that
`provide rapid access with minimal power drain.
`1.2 PUMA-Specific Information
`When used as an interface to a Unimate PUMA 550/560 robotic manipulator (and certain
`7XX and 2XX series manipulators) with Mark II controller, the TRC004, in conjunction with the
`user's real-time computer, replaces the entire LSI/11 VAL computer and the joint servo cards.
`Figure 1.1 shows the VAL controller block diagram as shipped from the factory. Figure 1.2
`shows the controller block diagram after removal of the LSI/11 and subsequent installation of the
`TRC004.
`Physically, the CPU, RAM, EPROM, serial controller, interface cards, and joint servos are all
`removed from the controller backplane. In their place, the TRC004, a single twelve-inch by nine-
`inch (approximately) multi-purpose I/O card, is mounted and wired point-to-point to the
`backplane. The TRC004's encoder inputs are connected to the joint encoders of the PUMA for
`position acquisition. The analog outputs are connected to the power amplifiers for commanding
`motor torque. The analog inputs are used to measure the potentiometers during calibration.
`Finally, the discrete inputs and outputs are connected to various housekeeping functions including
`enabling arm power, controlling the pneumatic hand valves, and monitoring joint thermal sensors.
`The burden falls on the user to replace as much of the functionality of the VAL operating
`system as is desired, including, but not limited to:
`- power-on arm calibration
`- occasional calibration of the joint potentiometers
`- low-level joint position control
`
`TRC004 User's Manual
`
`Page 1
`
`Page 5 of 27
`
`
`
`Figures 1.1 and 1.2 go here showing the swap in the PUMA
`
`TRC004 User's Manual
`
`Page 2
`
`Page 6 of 27
`
`
`
`- arm kinematics
`- trajectory generation
`- joint limit monitoring
`The teach pendant, which is a serial peripheral of the LSI/11, becomes non-functional. Any
`attempt to duplicate its function, both in hardware and software, must be made by the user.
`
`2.0 Specifications
`Performance specifications and characteristics of the TRC004 appear in Table 2.1.
`
`3.0 Installation
`3.1 General Information
`This section of the manual assumes the TRC004 is to be installed in a Unimate PUMA 560
`robot with Mark II controller to replace the VAL computer and joint servos. Similar instructions
`apply to installations in other equipment and for generic lab use so this section should be read and
`understood by all users. Of course, specific mention to electrical or mechanical connections within
`the Unimate controller should be extended to analogous components within the user's system. For
`PUMA robots other than the 560/Mark II, check the appendices for model-specific information.
`3.2 VAL Card Removal
`Before deactivating the VAL controller, it is suggested that some registration marks be made
`on the arm to facilitate calibration. To do this, use VAL to put the arm in the ready position by
`issuing the command "do ready". Turn off arm power and then make two short, narrow marks
`across each joint from one link to the next. This can be done with a scratch awl or permanent
`marker. These marks can later be used for positioning the arm by hand to a known configuration
`for initializing the index pulses of the shaft encoders.
`The TRC004 is not designed to plug into the existing card cage of the Unimate controller but,
`instead, mounts directly on top of it. In order to accomodate this, nearly all of the VAL cards
`must be removed from the system. Furthermore, the wiring harness for the TRC004 merely
`parallels the existing wiring, which would result in short circuits if the cards were left in place. (If
`the user wishes to restore VAL, simply disconnect and remove the TRC004 and replace the VAL
`cards. The TRC004 wiring need not be removed.)
`The cards that must be removed include the entire LSI/11 computer and its peripherals, the
`interface card and the joint servo cards. The only two cards that remain in the Mark II controller
`are the Arm Cable Card (slot J58) and the Power Amplifier Control Card (slot J56). Remove all
`other cards from the Unimate card cage. In the case of a Mark I controller, keep the analog servo
`cards installed.
`3.3 Mounting the TRC004
`The TRC004 has nine #6 clearance holes for mounting inside the Unimate controller. At least
`six of these holes should be used to secure the board to the rails of the Unimate card cage. The
`recommended orientation is with all holes marked 1 and 2 fastened to the rails of the card cage
`with nylon screws and half-inch threaded nylon spacers (enclosed). Future revisions of the
`TRC004 will maintain compatibility with this mounting configuration. It is also desirable to
`support the overhanging edge of the printed circuit board, thus utilizing all nine of the mounting
`holes, and to keep the card covered to prevent damage.
`The four holes marked "1" form a square whose sides are 5.88 inches center-to-center.
`
`TRC004 User's Manual
`
`Page 3
`
`Page 7 of 27
`
`
`
`Buffered Analog Outputs
`D/A Converters
`Input Coding
`Output Range
`Resolution
`Settling time
`Linearity Error
`
`8
`
`Negative Offset Binary
`+/- 10 volts
`12 bits
`10 usec max to +/- 1/2 LSB
`+/- 3/4 LSB typical
`
`Op Amp Buffers
`Output Drive
`Gain
`Accuracy
`Rolloff Freq.
`
`10 mA
`user definable
`2% with standard resistors (user definable)
`user definable
`
`Analog Inputs
`Coding
`Input Range
`Resolution
`Input Impedance
`Input Capacitance
`Conversion Time
`
`8
`Positive True Binary
`0 - 5 volts
`8 bits
`2500 ohms
`15 pF
`128 usec
`
`Digital Inputs
`Signal Type
`
`6
` CMOS/TTL
`
`Digital Outputs
`Signal Type
`Pull-up Resistor
`Sink Current
`
`6
`TTL Open Collector ("UTIL6" is not open-collector buffered)
`1 K
`35 mA
`
`Encoder Inputs
`Input format
`Signal Type
`Counter resolution
`Count Rate
`
`6
`Bi-directional, phase quadrature with index
`CMOS/TTL
`16 bits (17 bits for joint 6)
`1 MHz max
`
`Operating Temperature
`
`0 - 60 C (performance may degrade near extremes)
`
`Power Requirements
`+5 volts (+0.1/-0.3)
`+12
`-12
`
`150 mA
`50 mA
`50 mA
`
`Table 2.1: Specifications of the TRC004
`
`TRC004 User's Manual
`
`Page 4
`
`Page 8 of 27
`
`
`
`TRIDENT ROBOTICS IS NOT RESPONSIBLE FOR MECHANICAL OR ELECTRICAL
`DAMAGE TO THE PRINTED CIRCUIT BOARD IN ANY APPLICATION.
`3.4 Connections to Unimate Controller
`All connections to the Unimate controller are made through connectors P5 and P6 on the
`TRC004. P6 carries all the logic signals including logic power while P5 carries all the analog
`signals and analog power. The connections to each mating connector must be made by hand by
`soldering the appropriate conductors of a ribbon cable to the designated points on the controller
`backplane. Tables 3.1 and 3.2, plus sheet 2 of the schematics, enumerate the necessary
`connections between the TRC004 and the Unimate controller while Figure 3.1 shows the layout
`of the backplane. It is necessary to make all these individual connections because the Unimate
`backplane is not a true bus architecture. Slots J39 through J58 are all unique, thus no single
`interface card can tap into all the signals necessary to take control of the sensors and actuators.
`Plug P6 mates with jack J6 which must be a 40-pin female header with center-tab polarization.
`Likewise, plug P5 mates with jack J5 which must be a 34-pin female header with center-tab
`polarization. Twisted pairs, which are recommended for the DAC lines, can be made from the
`ribbon cable itself after the J5 header has been attached. To do this, first mark the negative wire of
`each pair with an indelible pen. Next separate each pair of DAC wires from the adjacent
`conductors on both sides and simply twist them either by hand or with a low-speed electric drill.
`Avoid twisting them tighter than a few turns per inch to prevent shorts and broken conductors.
`
`Pin Signal
` # Name
`
`Backplane
`Location
`
`Pin
` #
`
`Signal
`Name
`
`Backplane
`Location
`
`J58A-F1
`1 POT_J1
`J58A-N1
`2 POT_J2
`J58A-V1
`3 POT_J3
`J58B-F1
`4 POT_J4
`J58B-N1
`5 POT_J5
`J58B-V1
`6 POT_J6
`J58B-H2
`7 POT_J7
`J58A-R2
`8 POT_J8
`9 ADGND J58A-E2
`10 AD+5V J58A-F2
`11 NC
`12 NC
`TB1-2F
`13 +12V
`TB1-2F
`14 +12V
`15 DAGND TB1-4F
`16 DAGND TB1-4F
`17 -12V
`TB1-3F
`18 -12V
`TB1-3F
`
`19
`20
`21
`22
`23
`24
`25
`26
`27
`28
`29
`30
`31
`32
`33
`34
`
`DAC+J1 J56A-E1
`DAC-J1
`J56A-E2
`DAC+J2 J56A-F1
`DAC-J2
`J56A-F2
`DAC+J3 J56A-H1
`DAC-J3
`J56A-H2
`DAC+J4 J56A-J1
`DAC-J4
`J56A-J2
`DAC+J5 J56A-K1
`DAC-J5
`J56A-K2
`DAC+J6 J56A-L1
`DAC-J6
`J56A-L2
`DAC+J7 J55A-E1
`DAC-J7
`J55A-E2
`DAC+J8
`DAC-J8
`
`Table 3.1: Wiring List for J5 to Unimate Backplane
`
`TRC004 User's Manual
`
`Page 5
`
`Page 9 of 27
`
`
`
`Pin
`#
`
`Signal
`Name
`
`Backplane
`Location
`
`Pin Signal
`#
`Name
`
`Backplane
`Location
`
`1 ENCA1
`2 ENCB1
`3 ENCI1
`4 ENCA2
`5 ENCB2
`6 ENCI2
`7 ENCA3
`8 ENCB3
`9 ENCI3
`10 ENCA4
`11 ENCB4
`12 ENCI4
`13 ENCA5
`14 ENCB5
`15 ENCI5
`16 ENCA6
`17 ENCB6
`18 ENCI6
`19 GND
`20 GND
`
`J58A-A1
`J58A-C1
`J58A-E1
`J58A-H1
`J58A-K1
`J58A-M1
`J58A-P1
`J58A-S1
`J58A-U1
`J58B-A1
`J58B-C1
`J58B-E1
`J58B-H1
`J58B-K1
`J58B-M1
`J58B-P1
`J58B-S1
`J58B-U1
`TB1-4F
`TB1-4F
`
`TB1-1F
`TB1-1F
`
`J56A-R2
`J58A-B1
`J58A-J1
`J58A-R1
`J58B-B1
`J58B-J1
`J58B-R1
`
`J56A-T1
`J39A-M2
`J39A-L2
`
`21 Vcc
`22 Vcc
`23 NC
`24 NC
`25 NC
`26 /STOP
`27 THERM1
`28 THERM2
`29 THERM3
`30 THERM4
`31 THERM5
`32 THERM6
`33 NC
`34 NC
`35 UTIL1
`36 UTIL2
`37 UTIL3
`38 UTIL4
`39 UTIL5
`40 UTIL6
`
`Table 3.2: Wiring List for J6 to Unimate Backplane
`
`/BRAKE
`HANDO
`HANDC
`SPARE1
`SPARE2
`SPARE3
`
`Figure 3.1: Unimate Backplane Layout: Solder Side
`
`3.5 Adjusting Unimate Power Supply
`Logic power, Vcc, must be 5V +0.1/- 0.3V. The analog supplies (positive and negative) must
`be between 12.0V and 14.0V. The TRC004 is equipped with fuses for all three of these power
`sources. The analog power lines are labeled AD+5V, +12V, and -12V. The logic power line is
`
`TRC004 User's Manual
`
`Page 6
`
`Page 10 of 27
`
`
`
`labeled Vcc. (AD+5V is the voltage reference for the A/D and is not fused.) It is important that
`AD+5V does not power up before Vcc or unpredictable A/D operation may result.
`The Unimate power supplies run a little high when the cards are removed so it is generally
`necessary to adjust the voltage levels downward before operating the TRC004. Four of the
`Unimate's voltage levels are provided by a single power supply and are adjusted by a single
`potentiometer. To determine if the supplies should be adjusted, use +5V as a reference. If this
`supply is below 5.0V, all supplies will be within the optimal operating range. If not, the supplies
`must be adjusted.
`To do this, first remove AC power and then remove the two power amplifier assemblies.
`These assemblies are adjacent to the card cage and are secured by four wing nuts. Keep track of
`all non-metal washers and spacers. The power amplifiers can be removed completely by
`disconnecting three connectors on each assembly. (Note which connectors go where -- they
`should be clearly marked.) Beneath the amplifiers is a metal cover which conceals the power
`supply in question. Lift this cover out of the controller.
`Only one potentiometer adjusts all four voltages of this supply. Locate this "pot" near the
`middle of the board (see figure 3.2). To make the adjustment, AC power must be applied to the
`controller.
`
`USE EXTREME CAUTION! 120V AC WILL BE PRESENT AND EXPOSED!
`
`Apply power and adjust the pot so the 5V supply is 4.85 - 4.90V. This will provide sufficient
`margin to accomodate supply variation.
`
`AC
`
`Gnd
`
`+5V
`
`Pot
`
`Figure 3.2: Unimate Low-Voltage Power Supply
`
`VERIFY POWER LINES HAVE PROPER VOLTAGE AND POLARITY BEFORE
`CONNECTING THE TRC004.
`
`DO NOT ATTEMPT TO OPERATE THE CARD WITH ONLY THE LOGIC SUPPLY
`CONNECTED (+5V). DAMAGE CAN RESULT TO U88, U94 AND U95 IF LOGIC POWER
`IS APPLIED WITH ANALOG POWER DISCONNECTED.
`
`TRC004 User's Manual
`
`Page 7
`
`Page 11 of 27
`
`
`
`3.6 Connections to the Bus Interface
`A 50-pin ribbon cable, as shown on sheet 3 of the schematics, is used for connections between
`the TRC004 and the bus interface card (TRC005 or equivalent). The length of this cable should
`be kept below 3 meters. All 23 ground lines are tied together on the TRC004 and at least one of
`the ground connections must be made on the bus interface side.
`3.7 Index Pulse Phasing
`The index pulses of each joint must be adjusted for proper phasing. To accomplish this, a
`dual-channel oscilloscope must be connected to the 74HC174 integrated circuit of each encoder
`channel while the corresponding jumper is moved to achieve the desired waveform. The chip and
`jumper designators for each channel appear in Table 3.3.
`
`ENCODER
`
`74HC174
`
`JUMPER
`
`Channel 1
`Channel 2
`Channel 3
`Channel 4
`Channel 5
`Channel 6
`
`U1
`U13
`U25
`U37
`U49
`U61
`
`JP1
`JP2
`JP3
`JP4
`JP5
`JP6
`
`Table 3.3: Encoder Phasing Components
`
`The two oscilloscope channels must be connected to pins 10 and 13 of the 74HC174 with the
`oscilloscope synched to pin 13. These pins are marked "TP1" and "TP2" on the circuit board.
`
`NOTE: TO PREVENT THE POSSIBILITY OF SHORTING THE PINS OF THE IC'S, AN IC
`TEST CLIP (not supplied) SHOULD BE USED TO PERMIT CONNECTION OF THE
`OSCILLOSCOPE PROBES.
`
`When the joint is moved manually, the index pulses from the encoder appear on pin 13 (TP2).
`The jumper should be positioned such that pin 10 (TP1) produces one and only one pulse for each
`pulse appearing on pin 13 and that pulse should be timed such that it is roughly centered with the
`index pulse (pin 13) as shown in Figure 3.3.
`
`Pin 13
`
`Pin 10
`
`Roughly centered
`
`Figure 3.3: Encoder Index Phasing
`
`TRC004 User's Manual
`
`Page 8
`
`Page 12 of 27
`
`
`
`NOTE: GROUND REFERENCE IS AVAILABLE ON PIN 8 OF THE 74HC174 TO
`FACILITATE ENCODER PHASING.
`
`4.0 Operations
`4.1 General Information
`To a host computer, the TRC004 is characterized as a block of 16-bit memory locations as
`shown in Table 4.1. These locations reside on 16-bit boundaries from the BASE address. THE
`TRC004 DOES NOT EXAMINE ADDRESS BIT A0 (LSB) FOR ADDRESS DECODING.
`Therefore, all data transfers must be word size and must be word-aligned. The BASE address is
`determined by the Bus Interface Card (i.e. TRC005 or equivalent) and is generally user-selectable.
`
`4.2 Analog Outputs
`4.2.1 General Information
`The TRC004 has eight bipolar, 12-bit analog output channels with op-amp buffers. The
`digital-to-analog converters (D/A) operate in a fixed +/-10 volt output range. However, the
`inverting op-amp buffers can be configured by the user to operate at any gain and to provide
`single-pole filtering if desired.
`The output command is encoded as a negative offset binary value. A command value of
`0000h results in the maximum positive output voltage, while a command value of 0FFFh
`results in the maximum negative output voltage. In the default configuration (gain = 1), the
`maximum positive voltage is +10V and the maximum negative voltage is -10V.
`
`4.2.2 Gain Adjustment
`To change the gain of the outputs, the user must physically replace resistor networks
`RP6 and/or RP7. These are precision resistor networks with eight individual resistors per
`network. The gain of the inverting op-amp buffer is calculated by:
`
`G = -RP6 / RP7
`
`and the worst-case gain tolerance is the square root of the sum of the absolute tolerances of
`the resistor networks. (Resistor network tolerance is typically 2%. Absolute tolerances as
`high as 0.1% are available.) For greater gain precision, the user can substitute matched
`resistor networks or resistors of greater absolute accuracy.
`
`NOTE: RESISTANCE VALUES MAY DIFFER FROM THOSE INDICATED ON THE
`SCHEMATIC.
`
`4.2.3 Filter Adjustment
`The single-pole, low-pass filter is configured by adding capacitors to HD8. (See sheet 10
`of the TRC004 schematics.) A removable discrete component carrier is provided for this
`purpose. The cutoff frequency of the filter is calculated by:
`
`w = 1/(RP6 * HD8) = radians per second
`f = 1/(2p * RP6 * HD8) = hertz.
`
`TRC004 User's Manual
`
`Page 9
`
`Page 13 of 27
`
`
`
`In the default configuration, no capacitors are included.
`
`4.2.4 Update Procedure
`An analog output value is updated by a write to the appropriate address (BASE + 30h +
`2*ChannelNumber). The D/A output updates immediately, so no additional update
`command is necessary.
`
`Register Description
`
`Joint 1 Index Count
`Joint 2 Index Count
`Joint 3 Index Count
`Joint 4 Index Count
`Joint 5 Index Count
`Joint 6 Index Count
`Status Input Register
`Unused
`Joint 1 Encoder Count
`Joint 2 Encoder Count
`Joint 3 Encoder Count
`Joint 4 Encoder Count
`Joint 5 Encoder Count
`Joint 6 Encoder Count
`A/D Value
`A/D Start Pulse
`
`Joint 1 Encoder Load
`Joint 2 Encoder Load
`Joint 3 Encoder Load
`Joint 4 Encoder Load
`Joint 5 Encoder Load
`Joint 6 Encoder Load
`A/D MUX Channel Select
`Discrete Output Register
`D/A Channel 1 Output
`D/A Channel 2 Output
`D/A Channel 3 Output
`D/A Channel 4 Output
`D/A Channel 5 Output
`D/A Channel 6 Output
`D/A Channel 7 Output
`D/A Channel 8 Output
`
`Offset from
`Base Address
`
`00
`02
`04
`06
`08
`0A
`0C
`0E
`10
`12
`14
`16
`18
`1A
`1C
`1E
`
`20
`22
`24
`26
`28
`2A
`2C
`2E
`30
`32
`34
`36
`38
`3A
`3C
`3E
`
`Read Only
`Locations
`
`Write Only
`Locations
`
`Table 4.1: TRC004 Memory Map
`
`TRC004 User's Manual
`
`Page 10
`
`Page 14 of 27
`
`
`
`4.3 Analog Inputs
`
`4.3.1 General Information
`The TRC004 has eight, 8-bit, single-ended analog input channels, multiplexed to a
`common analog-to-digital converter (A/D). The A/D uses an 8-bit, successive
`approximation conversion technique. The A/D operates in a fixed 0 - 5 volt input range and
`the value is encoded in positive binary. An input value of 00h represents a voltage of 0V at
`the A/D, while a value of FFh represents a voltage of +5V. The most significant 8 bits are
`undefined and should be stripped off during a read operation.
`
`4.3.2 Update Procedure
`An analog input channel is selected by a write to the A/D MUX Channel Select register
`(BASE + 2Ch). The conversion is then started by a fictitious read to the A/D Start Pulse
`register (BASE + 1Eh). After 128 milliseconds, when the conversion completes, the A/D
`value can be read from the A/D Value register (BASE + 1Ch). If the A/D Conversion Mask
`bit is enabled (logic "1"), the A/D Conversion Status bit is set to "0" to indicate end-of-
`conversion and the interrupt line goes high.
`There are three methods to detect the end-of-conversion:
`1.) polling the A/D Conversion Status bit in the Status Input Register
`2.) hardware interrupt, if supported by the bus interface card
`3.) delay for 128 milliseconds
`If polling is used, the A/D Conversion Status bit must be reset to "1" after reading the
`A/D value. Interrupt operation is generally not recommended for use with the Unimate
`PUMA because the A/D's are used only at power-up for calibration and are not time-critical.
`4.4 Discrete Output Register
`
`4.4.1 General Information
`The Discrete Output Register (BASE + 2Eh) is a 16-bit write-only register. (See Figure
`4.3.) The lower 5 bits (channels 0 - 4) have inverting, open-collector buffers on their
`outputs. Bit 5 is a standard CMOS compatible output. These are the only digital outputs for
`off-board use. The remaining bits provide internal housekeeping, with the exception of bit
`15 which controls the red LED, D2.
`Upon power-up or system reset, the Discrete Output Register is cleared to 0000h by a
`hardware timer. This assures that all interrupts and their corresponding status bits are
`masked. However, the off-board outputs go high when this occurs. In addition, the red LED
`(D2) turns on.
`
`4.4.2 Calibration Status
`Channel 6 is a write-through bit that is normally used to indicate whether or not the
`encoders have been calibrated. It is set and cleared by the user so its function can be
`redefined if desired. This bit can be read from the Status Input Register as channel 14. (Note
`it is shifted 1 byte.)
`
`TRC004 User's Manual
`
`Page 11
`
`Page 15 of 27
`
`
`
`4.4.3 Bit 17 Preset
`Channel 7 is a latched bit used to update the "17th bit" of the channel 5 (joint 6)
`encoder counter. During an encoder load operation on channel 5, this bit value is stored in
`both the 0th bit location and the 17th bit location. Which, if either, of these two bits is
`significant is determined by the user and the setting of jumper JP7. The value of this bit
`defaults to zero upon power up and reset.
`
`D15 D14 D13 D12 D11 D10
`
`D9 D8
`
`D7 D6 D5 D4 D3
`
`D2 D1
`
`D0
`
`Brake Release
`Hand Control
`Spare
`Calibration Status
`Joint 6, Bit 17 Preset
`Encoder 0 Index Mask
`Encoder 1 Index Mask
`Encoder 2 Index Mask
`Encoder 3 Index Mask
`Encoder 4 Index Mask
`Encoder 5 Index Mask
`A/D Conversion Mask
`LED D2
`
`Figure 4.3: Discrete Output Register: Bit fields.
`
`4.4.4 Encoder Index Mask
`Channels 8-13 are used to mask/unmask/clear interrupts and bits in the Status Input
`Register. A logic "0" in the appropriate bit location disables the corresponding interrupt and
`status bit. A logic "1" enables it. An interrupt is cleared by first disabling it and then re-
`enabling it.
`
`4.4.5 A/D Conversion Mask
`Channel 14 is used to mask/unmask/clear the interrupt and corresponding Status Input
`Register bit for the A/D Conversion. A logic "0" in the appropriate bit location disables the
`interrupt and status bit. A logic "1" enables it. An interrupt is cleared by first disabling it and
`then re-enabling it.
`
`4.4.6 PUMA-Specific Outputs
`For use with a PUMA, channel 0 controls the brakes while channels 1 and 2 control the
`pneumatic hand solenoids. Setting channel 0 low sets the brakes and disables arm power.
`Setting channel 1 low de-energizes the "hand open" solenoid while setting channel 2 low de-
`energizes the "hand closed" solenoid. Upon power-up or system reset, these bits are all set
`low, which sets the brakes and de-energizes both solenoids.
`Channels 6 and 7 have been provided specifically for use with the PUMA in a multi-
`processor, multi-user environment. Channel 6 is intended to be a flag that is updated by
`software, which indicates whether the arm has been calibrated. "Calibration", in this sense, is
`the pre-loading of the encoder counters with respect to some world reference frame. Logic
`"1" means the arm is calibrated. It is reset to zero on power up and system reset.
`
`TRC004 User's Manual
`
`Page 12
`
`Page 16 of 27
`
`
`
`Channel 7 determines the loading of the "17th bit" of encoder channel 5 and is described
`in section 4.4.3.
`
`4.4.7 Update Procedure
`The Discrete Output Register is written with a 16-bit value to address (BASE + 2Eh).
`No provisions for bit twiddling are provided and the current value of the register is not
`readable.
`
`4.5 Status Input Register
`
`4.5.1 General Information
`The Status Input Register (BASE + 0Ch) is a 16-bit read-only register. (See Figure 4.4.)
`Seven bits (channels 0 - 5 and 15) provide the only digital inputs for off-board use. The
`remaining bits provide interrupt status and internal housekeeping.
`
`4.5.2 Encoder Index Status
`Channels 8 - 13 indicate whether or not an index pulse occurred while the corresponding
`index mask was enabled. A logic "0" represents a pending interrupt, which means an index
`pulse occurred. These bits can only be cleared by disabling, then re-enabling the mask.
`
`D15 D14 D13 D12 D11 D10
`
`D9 D8
`
`D7 D6 D5 D4 D3
`
`D2 D1
`
`D0
`
`Therm 1
`Therm 2
`Therm 3
`Therm 4
`Therm 5
`Therm 6
`Calibration Status
`Joint 6 Overflow
`Encoder 0 Index Status
`Encoder 1 Index Status
`Encoder 2 Index Status
`Encoder 3 Index Status
`Encoder 4 Index Status
`Encoder 5 Index Status
`A/D Conversion Status
`Brake/Power Status
`
`Figure 4.4: Status Input Register: Bit fields.
`
`4.5.3 A/D Conversion Status
`Channel 14 indicates whether or not the A/D conversion completed while the mask was
`enabled. A logic "0" represents a pending interrupt, which means the conversion is
`complete. This bit can only be cleared by disabling, then re-enabling the mask.
`
`4.5.4 Calibration Status
`Channels 6 and 7 have been provided specifically for use with the PUMA in a multi-
`processor, multi-user environment. Channel 6 is a write-through bit intended to indicate
`whether the arm has been calibrated. "Calibration", in this sense, is the pre-loading of the
`encoder counters with respect to some world reference frame. This flag is updated by
`
`TRC004 User's Manual
`
`Page 13
`
`Page 17 of 27
`
`
`
`software. Logic "1" means the arm is calibrated. It is reset to zero on power up and system
`reset.
`The value of this bit is set by the user through the Discrete Output Register. The
`meaning of this bit can be re-defined by the user if desired.
`
`4.5.5 Joint 6 Overflow
`Channels 6 and 7 have been provided specifically for use with the PUMA in a multi-
`processor, multi-user environment. Channel 7 reflects the true value of the "17th bit" of the
`joint 6 encoder counter. It is jumper selectable to indicate bit 0 or bit 17. Encoder channel 6
`is logically shifted right one bit so that the 16 bits normally read are bits 1-16, rather than
`bits 0-15 as is the case for the other encoder counters. This effectively provides a divide-by-
`two function for joint 6, as required by the PUMA. If dividing by two is not desired, set
`jumper JP7 to "BIT0" and shift this status bit into the least significant bit in software. If
`additional range is desired, set jumper JP7 to "BIT17" and append this status bit to bit
`location 16 in software (sign extending if desired).
`Joint six of the PUMA produces more than 65,536 counts per revolution and, in fact,
`has no mechanical limit stops (allowing infinite rotation). The divide-by-two feature of
`encoder channel 6 allows the valid 540-degree rota