Go to Triangle Digital Support Home Page TDS9092 TECHNICAL MANUAL
Hardware expansion
TDS971 IEEE-488/serial board
Live website search
Enter key words
 

TDS971 IEEE-488/RS232C
COMMUNICATIONS BOARD

DESCRIPTION

This product is obsolescent and should not be used for new designs with a long lifetime.

This is a Eurocard communications board for TDS2020F or TDS9092 computers (or earlier types). It contains an IEEE-488 Talker/Listener interface and two RS232 ports with all baud rates from 75 to 38400. A DIP switch on the board selects the IEEE address. The board comes complete with 45cm ribbon cable terminated in an IEEE-488 specification socket for mounting on your instrument.

ADDRESS DECODING

The facilities of the board are memory mapped with the following addresses:

 

Addr

Chip

Control Reg

Function

0100

IEEE

Write

Interrupt mask register

0100

IEEE

Read

Interrupt status register

0101

IEEE

Read

Command status register

0102

IEEE

Write

Address mode register

0102

IEEE

Read

Address status register

0103

IEEE

Read/Write

Auxiliary command register

0104

IEEE

Read

Address switch register

0104

IEEE

Write

Address register

0105

IEEE

Read/Write

Serial poll register

0106

IEEE

Write

Parallel poll register

0106

IEEE

Read

Command pass through register

0107

IEEE

Read/Write

Data in/out register

010E

ACIA  (front)

Read/Write

Control/Status registers

010F

ACIA (front)

Read/Write

Data input/output registers

0116

ACIA (rear)

Read/Write

Control/Status registers

0117

ACIA (rear)

Read/Write

Data input/output registers

USE OF TDS9092 WITH TDS971

The TDS971 addresses are already used on the TDS9092 for internal RAM. Interchange the signals to pins a4 and a5 of the TDS971 (address lines A8 and A9). This will change the address of the board from 01xx to 02xx, and examples in this section have been changed to reflect this.

PIN CONNECTIONS

The board is single Eurocard format (160mm x 100mm) and has a DIN 41612 type C connector (two rows of 32 pins 5.04mm apart). Its pin connections correspond with both the TDS2020F and TDS9092 and are given below. You will need the TDS9092-PLUG type to work with this board.

The IEEE-488 interface is brought to a 24-pin DIL socket on the solder side of the board into which the ribbon cable assembly provided with the board is plugged. The other end of the ribbon is an IEEE-488 24-pin socket for mounting on the case of the instrument. Put in the DIL plug so that the ribbon cable faces to the rear of the board. The IEEE-488 connections will then be correct on the other end of the ribbon cable.

A third connector is a 9-pin D-type socket on the front of the board. It carries one of the two RS232 ports and also power from the computer which can be led to a remote location. Two uncommitted signal wires go from this socket to the backplane. Pin connections are:

 

REAR DIN 41612 TYPE C PLUG

Pin

Function

Pin

Function

a1

Addr 14

c1

Addr 15

a2

Addr 12

c2

Addr 13

a3-a13

Addr 10 to 0

c3

Addr 11

a14-a21

Data 7 to 0

c7

Front D3

a22

E* clock input

c14

IEEE trigger out

a23

R/W* input

c22

E clock input

a24

+5V input

c23

Reset* input

a25

RS232 data input

c24

-12V input

a29

RS232 RTS output

c25

RS232 data out

a31

Front D6

c26

IRQ* output

a32

VIN (+12V)

c29

RS232 CTS input

   

c32

GND

 

FRONT 9-PIN D-SOCKET

Pin

Function

Pin

Function

D1, D2

+12V output

D3

Rear c7

D4, D5, D8

Ground

D6

Rear a31

D7

RS232 Data out

D9

RS232 Data in

SERIAL RS232C INPUT/OUTPUT

For full details of use of an ACIA see the manufacturer's data sheet (e.g. Motorola MC68A50 or Hitachi HD68A50). The following is an example of its use. There are two of these devices on the board implementing RS232 ports at both the front and rear of the board. In the initialisation sequence of the application it is essential to reset the serial chip. Note from the data sheet and circuit diagram that this device has a software, not hardware, reset. Then it is set up according to the desired protocol. For example:

 

HEX 0216 CONSTANT SERCTL ( Serial control & status

                         ( registers

0217 CONSTANT SERDATA ( Serial input & output

                      ( data regs

: INITIALISE ( . other initialisations .

   17 SERCTL C!   ( reset serial ACIA device

   15 SERCTL C! ; ( Initialise serial chip to

                  ( divide by 16, 8 bit serial

                  ( data, 1 stop bit, and

                  ( disable interrupts

 

Data can now be sent and received as follows:

 

: SENDBYTE ( b -  Send byte b from RS232C port

   BEGIN SERCTL C@ 2 AND

   UNTIL          ( Wait till last byte sent

   SERDATA C! ;   ( Send byte b

: RECEIVEBYTE ( - b  Get byte b from RS232C port

   BEGIN SERCTL C@ 1 AND

   UNTIL          ( Wait till data received

   SERDATA C@ ;   ( Get byte to top of stack

 

On the board are two DIL switches to set the baud rates of the serial ports. Only one of each switch must be closed and the associated rates are printed on the board alongside. One switch is for the front port the other for the rear one. Baud rates from 300 to 38400 can be set. They derive from the E* clock. These rates assume that the 68A50 was set for divide by 16. If divide by 64 is set then positions 1 and 2 make extra baud rates of 75 and 150 available respectively.

IEEE-488 (GP-IB) INTERFACE

This is implemented using a Motorola MC68A488 chip (or equivalent). See the manufacturer's data and application notes for full programming information. Some of the usual uses of the interface are shown in the following examples. In the initialisation routine executed after power-up note that the reading from the IEEE address switches has to be inverted to compensate for the inverting buffer connecting them to the data bus. The IEEE chip has a software reset and this has to be included in initialisations.

 

HEX

0200 CONSTANT IEEE.CTL  ( IEEE status register

0201 CONSTANT COMSTATUS ( IEEE command status reg

0203 CONSTANT AUXCMD    ( IEEE aux command reg

0204 CONSTANT ADDRREG   ( IEEE address switch reg

0205 CONSTANT POLL      ( IEEE serial poll reg

0207 CONSTANT IEEE.DATA ( IEEE data register

: INITIALISE ( . other initialisations .

   ADDRREG C@ FF XOR 1F AND

   ADDRREG C!       ( Set IEEE address

   80 AUXCMD C!

   0 AUXCMD C!      ( reset IEEE chip

   3 POLL C! ;      ( Set serial poll register

                    ( to desired default

: ?INIEEE ( - f   Flag true if data available

          (       from IEEE bus

   IEEE.CTL C@ 1 AND ;

: GETIEEE ( - c    Get latest char c from IEEE bus

   IEEE.DATA C@ ;

: @IEEE ( - c   Wait for character from IEEE bus

   BEGIN ?INIEEE UNTIL GETIEEE ;

: ?OUTIEEE ( - f   Flag true if ok to send byte

           (       to IEEE bus

  IEEE.CTL C@ 40 AND ;

: !IEEE ( c -   Send character c to IEEE bus

   BEGIN ?OUTIEEE UNTIL ( Wait till last char sent

   POLL C@ 40 OR POLL C! ( Issue service request

                         ( - optional

   IEEE.DATA C! ;

 

The above assumes that the IEEE bus controller is correctly programmed for the data expected from the Forth system. In practice the Forth system may try to send when the controller is not at a READ statement. It may therefore hold in ?OUTIEEE indefinitely. Alternatively the controller may be in the middle of sending a string when the Forth system wants to transmit. To avoid complicating the BASIC programming of the controller the following alternative definition of !IEEE can be used.

 

: SENT ( Waits till byte transmitted, or time-out

   1000 0 DO ?OUTIEEE IF LEAVE THEN LOOP ;

: !IEEE ( c -   Send character c to IEEE bus

   POLL C@ 40 OR POLL C! ( Issue service request

                         ( - optional

   BEGIN ?INIEEE WHILE @IEEE DROP

   REPEAT                ( reject input data

   IEEE.DATA C! SENT ;   ( Output character and

                         ( hold till gone

TDS971 circuit diagram

TDS971 circuit diagram
Click the diagram for more detail, or to save a copy:
1. in Internet Explorer right click on the picture and select "Save Target as..."
2. in Netscape double-click the picture to open the file, then under "File" select the "Save As" option.

Go to Triangle Digital Support Home Page Go to top   Next page