Page 2
PASCAL SUPPORT PACKAGE USER’S MANUAL This documentation and software routines contained in the PCLS-848-P software diskette are copyrighted 1989 by the Advantech Co., Ltd. All rights are reserved. Advantech Co., Ltd. reserves the right to make improvements in the products described in this manual at any time without notice.
Page 3
CHAPTER 1. GENERAL INFORMATION ..........1 CHAPTER 2. INSTALLATION ..............5 CHAVIJER 3. PROGRAM~NGREFERENCE ........15...
Page 4
CHAPTER 4. PROGRAMMINGEXAMPLES ........51 CHAPI.ER 5. ADVANCEDPROGRAMMINGTECHIQUES ....67 CHAPTER 6. DIGITAL OUTPUT ............73 CHAPTER 7. THEORY OF OPERATION..........75 CHAPTER 8. TROUBLE SHOOTING ........... 79 CHAPTER 9. BUS TUTORIAL ............... 83 CHAPTER 10. ASCO TABLE ..............93 CHAPTER 11.
Page 5
CHAPTER 12. SUMMARYOF PROCEDURES AND FUNCIIONS ... 97...
Page 7
The PCL-848A/B MULTIFUNCTION IEEE-488 INTERFACE CARD is a valuable addition to your PC that allows you to communicate with over 2000 products, made by over 200 manufacturers, in over 14 countries. The IEEE-488-1978 standard that this IEEE-488 card implements is the most widely used international standard for information transfer between computer and electronic instruments.
Page 8
With a solid understanding of the basic IEEE-488 concepts, followed by returning to the PROGRAMMING REFERENCE, and the PROGRAMMINGEXAMPLES, you should be able to program almost any IEEE- 488 bus system without interface problems. PCLS-848-P User's Manual...
Page 9
If you are familiar with the basic concepts of the IEEE-488 bus you may want to begin reading Chapter 3 PROGRAMMINGREFERENCE. This chapter describes the statement syntax and techniques to use the IEEE-488 driver. Chapter 4 PROGRAM- MINGEXAMPLES will show you how the procedures are used in typical applica- tions and also provide you with useful program examples for your own applications.
Page 11
When unpacking, check the unit for signs of shipping damage (damaged box, scratches, dents, etc). If there is any damage to the unit or it fails to meet specifications, notify your local sales representative immediately. This IEEE-488 interface card has two DIP switch (SW1 and SW2), one slide switch (SW3) and three jumpers (JP1, JP2 and JP3).
Page 12
- 1..8 are switch position - W0..W1 correspond to wait state - A4..A8 correspond to address lines of the PC bus - * means factory setting Switch position (SW1) Occupied Addresses 200-20F 210-21F • • • 2B0-2BF • • 3E0-3EF 3F0-3FF PCLS-848-P User's Manual...
Page 13
Switch position (SW1) Wait state(s) The IEEE-488 interface driver routine is stored in the on-board EPROM. The memory address of this firmware can be selected by SW2. The memory segment of the firmware can be from hex 8000 to hex FC00. Factory setting is hex D000. The range of these locations is out of the 640K system memory of the IBM PC, PC/ XT and PC/AT.
Page 14
However, for new software developing, mode “A” is recommended to get all the benefit of PCL-848A/B. The PCL-848A/B does not offer the software driver to use mode “N” and this manual offers the information for mode “A” operation only. PCLS-848-P User's Manual...
Page 15
The PCL-848A/B is designed to permit DMA(Direct Memory Access) data transfer between IEEE-488 bus and the system RAM of the PC. The DMAlevel is set by JP1 and JP2. The JP1 is for DACK signal 3! path while the JP2 is for DRQ. The settrugs of JP1 and JP2 must be coincident.
Page 16
Press the board firmly into the socket. 7. Replace the screw in the expansion slot retaining bracket. 8. Replace the system unit cover. Connect the cables you removed in step 2. PCLS-848-P User's Manual...
Page 17
Confirm proper operation by connecting an IEEE-488 instrument to the bus and attempting to operate it with a demo program written in Pascal. Here is an example that uses an HP3478A digital voltmeter and a short Pascal program. If an HP3478A is not available and you have p~another IEEE-488 instru- ment, you need to modify the instrument programming code in the program source.
Page 18
:= 23; ieseg(16#D000); ioport :=16Y2B8; myaddr :=21; setting :=0; ieinit(ioport,myaddr,setting); outstr := ‘FlTlNSRA’; ieoutput(addr,outstr); for i := 1 to 10 do begin ieenter(addr,instr); writeln(i,’ ‘,instr); end; end. PCLS-848-P User's Manual...
Page 19
Demo Program for Turbo Pascal program demol(input,output); {$I TBPGPIB.INC} outstr,instr: str; addr,i,ioport,myaddr,setting: integer; begin addr := 23; ioport :=$2B8; myaddr :=21; setting :=0; ieinit(ioport,myaddr,setting); outstr := ‘FlTlNSRA’; ieoutput (addr,outstr); for i := 1 to 10 do begin instr:=’ ieenter(addr,instr); writeln(i,’ ‘,instr); end;...
Page 21
This IEEE-488 interface card contains resident firmware and the library of IEEE-488 procedures those provide IEEE-488 language extensions for the Pascal programs on your PC. The firmware (software programmed into a ROM) appears transparent to the users and the code inside is called by the IEEE-488 procedures. All of the firmware routines are written in assembly language to insure maximum data transfer rates.
Page 22
Section 3.3. and Turbo Pascal users should skip Section 3.2. The IEEE-488 library procedures and functions for Microsoft Pascal (MSPGPIB.LIB ) can be thought of as an extension to the libraries that Microsoft offered, such as PASCAL.LIB and ALTMATH.LIB. PCLS-848-P User's Manual...
Page 23
The extension consists of the procedures and functions ieabort, iedevclr, iedevice, ieenter, ieentera, iecol, icinit, iello, ielocal, icoutput, icouta, ieppoll, ieppollc, ieppollu, ieremote, ieseg, iesend, iespoll, iestatus, ietimout and ietrig. These procedures and functions allow the PC to perform the IEEE-488 BUS activities through the IEEE-488 interface card.
Page 24
The default firmware segment is set to hex D000. Therefore, every procedure has the statement inline($9A/$yy/$xx/$00/$D0); These machine codes represents call ODOOOH:OxxyyH If the firmware segment is changed to hex D80O, then the statement must be changed inline($9A/$yy/$xx $00/$D8) PCLS-848-P User's Manual...
Page 25
Using the IEEE-488 procedures requires three steps. 1. Define the IEEE-488 procedures those will be called later. If you can not sure which procedures wil1 be used, just key in the statement {$I TBPGPIB.INC} to include all the +EEE-488 procedures. Following is the list of TBPGPIB.INC. {Start of definition of IEEE-488 procedures} Type lstring = string[255];...
Page 26
2. Develop the program with the IEEE-488 procedures and functions that you need. 3. Run the program. The following twenty-one procedures can be called by programs written in Pascal language to access the IEEE-488 interface. Turbo Pascal does not use procedure ieseg( PCLS-848-P User's Manual...
Page 27
NAME: icabort — Aborts all activities on the interface bus. SYNTAX: ieabort; DESCRIPTION: This procedure aborts all activities on the interface bus by pulsing the IFC line. BUS ACTIVITY: IFC is pulsed for 100 microseconds. REN is set true. ATN is set false. CAUTION: This procedure can be called only in system controller mode.
Page 28
- If 0 <= addr <= 30 ATN is set true. UNL is sent. LAD is sent. MTA is sent. SDC is sent. - If addr < 0 or addr > 30 ATN is set true. DCL is sent. PCLS-848-P User's Manual...
Page 29
NAME: iedevice — Installs an IEEE-488 device in place of the output device of MS-DOS. SYNTAX: iedevice(addr,portno); addr:integer; The address of the device which is assigned to LPTn: or COMn:. If addr<0 or addr>30, the replacement of LPTn: or COMn: is disabled. portno:integer;...
Page 30
ATN is set false. Data string is entered. - If addr < 0 or addr > 30 ATN is set false. Data string is entered. REMARK: The length of the string entered can be checked by iestatUs( ). PCLS-848-P User's Manual...
Page 31
NAME: ieentera — Enters a long string from a specified device or from the interface. SYNTAX: ieentera(addr,dataseg,maxlen); addr:integer; The address of the device the entered string comes from. If 0< =addr< =30, the specified device is the taLker. Otherwise, the talker is the previously defined one.
Page 32
- If addr < 0 or addr > 30 ATN is set false. String is entered. PCLS-848-P User's Manual...
Page 33
NAME: iecol — Sets the terminators for the specified device. SYNTAX: iecol (addr,outeol,ocolstr,ineol,ineolb); addr:integer; Address of device to be assigned the terminators. The range is from 0 to 30. outeol:integer; Terminator type appended to output string. The default value is 0. 0 Terminated with both oeolstr and EOI.
Page 34
DESCRIPTION: This procedure sets the terminators of input and output strings for the specified device. The terminators of all devices are set to default values if this procedure is not called. BUS ACTIVITY: None. PCLS-848-P User's Manual...
Page 35
NAME: ieinit — Initializes the interface card. SYNTAX: icinit(ioport,myaddr,setting); ioport:integer; I/O port address of NEC7210, from hex 208 to hex 3F8 by increment of hex 010. The value is t the setting of SW1 plus 8. Therefore, the default value is hex 2B8. myaddr:integer;...
Page 36
Set operation mode to: System controller, No IRQ, DMA2 with block transfer, fast speed. Bus address is 21. I/O port address is 0x2B8 Hex. • • loport,myaddr,setting : integer; ioport:=16#2B8; {or $2B8 for Turbo Pascal} myaddr:=21; setting:=16#5002; { or $5002 for Turbo Pascal, bit 1,12,14:=1} PCLS-848-P User's Manual...
Page 38
This procedure execUtes a Local Lockout (LLO) to disable a device’s front panel. It is received by all devices on the bus, whether or not they are addressed to listen. BUS ACTIVITY: ATN is set true. LLO is sent. PCLS-848-P User's Manual...
Page 39
NAME: ielocal — Localizes a device or all devices. SYNTAX: ielocal(addr); addr:integer; The address of the device to be set local. If 0 <= addr <=30, then it executes a Go To Local (GTL) command to the specified device. Otherwise, it sets the REN line false (High). DESCRIPTION: This procedure executes a Go To Local (GTL) or clears the REN line to enable a device’s front panel controls.
Page 40
ATN is set false. Data string (outstr) is output. EOL string and/or EOI is output. - If addr < 0 or addr > 30 ATN is set false. Data string (outstr) is output. EOL string and/or EOI is output. PCLS-848-P User's Manual...
Page 41
NAME: icouta — Outputs a long string. SYNTAX: ieouta(addr,dataseg,length); addr:integer; The address of the device which the output string is sent to. If 0 <= addr <= 30, then the specified device is the listener. Otherwise, the listener(s) is(are) the previously defined one(s). dataseg:integer;...
Page 42
- If addr < 0 or addr > 30 ATN is set false. Long string is sent. PCLS-848-P User's Manual...
Page 43
NAME: ieppoll — Parauel poll. SYNTAX: p:=ieppoll;— Microsoft Pascal. ieppoll(p); — Turbo Pascal. RETURN VALUE: p: integer; An integer equals to the result of parallel polling. Value 0-255 of an eight-bit byte represents the parallel poll response of the devices of the interface bus. DESCRIPTION: This procedure conducts a parallel poll of the interface bus.
Page 44
In general, it enables you to configure a parallel poll response byte to reflect the response of a desired arrangement of devices. You can define the bits to reflect the responses of particular instruments or the logical-OR of several instrument responses. PCLS-848-P User's Manual...
Page 45
BUS ACTIVITY: - If O <= addr <= 30 ATN is set true. UNL is sent. LAD is sent. MTA is sent. PPC is sent. PPE is sent. - If ADDR%< 0 or ADDR%> 30 ATN is set true. PPC is sent. PPE is sent.
Page 46
- If 0 <= addr <= 30 ATN is set true. UNL is sent. LAD is sent. MTA is sent. PPC is sent. PPD is sent. - If addr < 0 or addr > 30 ATN is set true. PPU is sent. PCLS-848-P User's Manual...
Page 47
NAME: ieremote — Places a device into Remote Mode. SYNTAX: ieremote(addr); addr:integer; The address of the device to be set to remote. If 0 <= addr <= 30, the specified device is set to remote. Otherwise, just the REN line is set true. DESCRIPTION: This procedure places a device in Remote Mode.
Page 48
This procedure defines the memory segment where the firmware ) is located. This location is determined by the on-board DIP switches SW1. BUS ACTIVITY: None. CAUTION: This procedure must be executed before any other IEEE-488 procedures or functions. PCLS-848-P User's Manual...
Page 49
NAME: iesend — Sends user-specihed IEEE-488 Interface commands to the interface. SYNTAX: iesend(cmdstr); cmdstr:lstring; string of standard mnemonic IEEE-488 interface commands. The following mnemonics can be used: LISTEN TALK DATA UNL UNT GET DCL GTL PPC PPD PPE PPU REN SDC SPD SPE TCT MrA MTA IFC CMD LLO SEC EOI Example: cmdstr:="UNL UNT MTA LISTEN 9 10 SEC 3 DATA";...
Page 50
Take following values as talker address. DATA Set ATN false. Set EOI true at last data byte. Take following values as Parallel Poll Config. Pulse IFC true for 100 microseconds. Set ATN true. Take following values as secondary commands. PCLS-848-P User's Manual...
Page 51
NAME: iespoll — Serial poll. SYNTAX: s:= iespoll(addr); — Microsoft Pascal. addr:integer; The address of the device to be serial polled. Must be within 0 and 30. RETURN VALUE: s: integer; An integer with the value 0-255 of an eight-bit byte represent- ing the status of the device specified.
Page 52
An integer represents interface status. DESCRIPTION: This procedure reads the status from the interface and returns it to the calling statement. BUS ACTIVITY: None. CAUTION: The error number returned with condition 8 represents different types of errors. PCLS-848-P User's Manual...
Page 53
Error Number Error Type No error Handshake timeout Interface error Call ABORT when non-system controller Invalid passed parameter(s) CHAPTER 2 INSTALLATION 47...
Page 54
CPU, the unit is less. 2. The timeout period is set to 10000 units each time the procedure ieinit is called. 3. The name of this procedure is “ietimout”. It is NOT “ietimeout”. PCLS-848-P User's Manual...
Page 55
NAME: ietrig — Trigger. SYNTAX: ietrig(addr); addr:integer; The address of the specified device to be triggered. If 0 <= addr <= 30, the specified device is triggered. Otherwise, all the listeners of the bus are triggered. DESCRIPTION: This procedure sends a Group Execute Trigger (GET) to a device or to the interface bus.
Page 57
A. Example in Microsoft Pascal { FILE NAME: EX1 MS.PAS { INTERACTIVE DATA TRANSFER { Purpose : This program outputs data strings entered by the user and enters data string from the IEEE-488 bus. { Language : Microsoft Pascal Program examplel(input,output); {$INCLUDE : 'MSPGPIB.INC’} Procedure iochk;...
Page 58
3 : EXIT’); writeln; write(‘ Select a function :’); readln(sel); writeln; if (sel<4) and (sel>0) then begin case sel of outputdata; enterdata; otherwise writeln(‘******* SOMETHING WRONG ! *******’); end; end; until sel=3; end. (End of program) PCLS-848-P User's Manual...
Page 59
B. Example in Turbo Pascal { FILE NAME: EX1 TB.PAS { INTERACTIVE DATA TRANSFER { Purpose This program outputs data strings entered by the } user and enters data string from the IEEE-488 bus. { Language : Turbo Pascal Program examplel(input,output); {$I TBPGPIB.INC} Procedure iochk;...
Page 60
Select a function :’); read(sel); writeln: if (sel<4) and (sel>0) then begin case sel of 1 : outputdata; 2 : enterdata; 3 : ; else writeln(‘******* SOMEThING WRONG ~ *******’); end; end; until sel=3; end. (End of program) PCLS-848-P User's Manual...
Page 61
A. Example in Microsoft Pascal { FILE NAME. EX2 MS.PAS { SET IEEE-488 PRINTER { Purpose : This program converts an IEEE-488 printer to a { PC system printer. { Language : Microsoft Pascal Program example2(input,output); {$INCLUDE : ‘MSPGPIB.INC’} addr,portno integer;...
Page 62
? (y/n)’); read(s); writeln; if(s = ‘y’) then begin write(‘Enter the string : ‘); read(outstr); writeln; writeln(‘Sending string ‘); writeln(Lst,outstr); writeln(‘Donel,); end; end. (End of program) PCLS-848-P User's Manual...
Page 63
A. Example in Microsoft Pascal { FILE NAME : EX3 MS.PAS VOLTAGE MEASUREMENT WITU DVM { Purpose : This program measures 10 voltage readings and dlsplays them. { Remark : This program is written for the UP3478A DMM. If another model of voltmeter is used, please check the operating manual and make necessary modifi- cation to this program.
Page 64
: integer absolute $D000:$201A; begin case errno of writeln(‘TIME OUTI!’); else writeln(‘INTERFACE ERRORII’); end; end; dvmstr,instr lstring; i,addr,code integer; real; begin clrscr; ieinit($2B8,21,0); ioabort; addr:=23; writeln(‘ Voltage Measurement :’); { Set the DVM } dvmstr:=’FlT3RAN5'; ieoutput(addr,dvmstr); iochk; PCLS-848-P User's Manual...
Page 65
{ Measurement start } for i:=1 to 10 do begin ietrig(addr); { Trigger the DVM. instr:=’ ‘. ieenter(addr,instr); { Enter DVM reading iochk(); { Error check if instrtl]=’+’ then delete(instr,1,1); val(instr,v,code); writeln(‘ ‘,i:4,’ ‘,v:4:7,’ VOLTS’); end; end. (END of Program) CHAPTER 2 INSTALLATION 59...
Page 66
{ main hp3478:=23; adS00:=9; v_lmt:=3; { Voltage limit } oeolstr:=chr(13); ieseg(16#D000); ieinit(l6X2B8~2l~o) for i:=1 to 24 do writeln; { Clear screen ieabort; for i:=1 to 10000 do dum:=dum+1-1; { Delay for ADS00 reset } PCLS-848-P User's Manual...
Page 67
ietimout(30000); { Setting timeout S sec. ieeol(adS00,2,oeolstr,0,10); { Init ADSOOA terminator { Set the DVM and Multiplexer } outstr:=’FlT3RANS’; ieoutput(hp3478,outstr); { Send DVM setting string iochk; { Error check outstr:=’DW0,16;DW1,0'; icoutput(adS00,outstr); { Open Mux & Actuator iochk(); { Error check { Measurement start } for meas:=1 to 10 do begin...
Page 68
: integer; begin hp3478:=23; { main adSOO:=9; v_lmt:=3; { Voltage limit oeolstr:=chr(13); clrscr; iainit($2B8,21,0); ieabort; for i:=1 to 10000 do i:=i+1-1; { Delay for ADSOO reset ietimout(30000); { Setting timeout S sec. ieeol(adS00,2,ooolstr,0,10); { Init ADSOOA terminator PCLS-848-P User's Manual...
Page 69
{ Set the DVM and Multiplexer } outstr:=’FlT3RAN5'; ieoutput(hp3478,outstr); { Send DVM setting string iochk; { Error check outstr:=’DWO,16;DW1,0'; ieoutput(adSOO,outstr); { Open Mux & Actuator iochk; { Error check { Measurement start } for meas:=1 to 10 do begin alarm:=0; for i:=0 to 1S do begin str(i:2 chstr);...
Page 71
cmdstr=’UNL UNT MTA LISTEN 23 24 GET’; for i:=1 to 10 do begin iesend(cmdstr); { Trigger the DVN’s. ieenter(dvml,instrl); { Enter DVN #1 reading iochk; { Error check ieenter(dvm2,instr2); { Enter DVN #2 reading iochk; writeln(i:4 ‘ V1 : ‘,instrl,’ V2 : ‘,instr2); end;...
Page 72
{ Trigger the DVM’s. instrl:=’ ‘. ieenter(dvml,instrl); { Enter DVM #1 reading iochk; { Error check instr2:=’ ‘. ieenter(dvm2,instr2); { Enter DVM #2 reading iochk; writeln(i:4,’ V1 : ‘,instrl,’ V2 : ‘,instr2); end; end. { End of Program PCLS-848-P User's Manual...
Page 73
Direct memory access (DMA) improves system performance by allowing external devices to directly transfer information to or from the system memory without operation of the system CPU. Any memory location can source data for DMAand any read-write memory location can receive data. The IEEE-488 interface data transfer can be programmed to proceed with or without DMA.
Page 74
In block-transfer mode, transfers are activated by a request for service and continue until the number of bytes specified by the programmer are transferred. In block- transfer mode control of the system bus is returned to the microprocessor only after all data is transferred. PCLS-848-P User's Manual...
Page 75
Demand-transfer mode and Cascade mode are not supported by this interface. The IEEE-488 interface disables the auto-initialization function and uses only the address register increment direction on the 8237 chip because of the natUre of IEEE- 488 bus data transfer. Bit 14 of <setting>...
Page 76
Microsoft Pascal offers some ways to handle interrupts. To use these procedures to handle the SRQ interrupt from the IEEE-488 bus, you must call the procedure ieinit( ) to set the IRQ channel. IRQ channel to Vector Number PCLS-848-P User's Manual...
Page 77
(vecuo) relation is: Vector No.(hex) 10 (0xA) 11 (0xB) 13 (0xD) 15 (0xF) The steps to program interrupt handling for an IEEE-488 bus SRQ ft is as follows: 1) Call ieinit( ) procedure to set IRQ channel. 2) Set the vector and service routine. 3) After returning from the service routine, program the following statements to enable the next SRQ interrupt.
Page 78
UNT MTA LISTEN 23 SEC 03 DATA’+chr(39) +’ABCD’+chr(39); The iesend( ) procedure allows you to program all the bus activities. The IEEE-488 interface does not have special functions to handle PASS CONTROL and secondary addressing. They are done by calling ‘; iesend( ). PCLS-848-P User's Manual...
Page 79
The PCL-848A/B provides 16 digital output channels. These digital output channels use the I/O port registers at address BASE+0 and BASE+1. The register’s data format is listed below. BASE + O (write port) D/O low byte BASE + 1 (write port) D/O high byte D015 D014 D013 D012 DO11 DO10 DO9 It is fairly straight forward to use your PCL-848A/B digital output functions.
Page 81
This section describes the operation theory of this IEEE-488 interface card. A thorough understanding of the theory will increase its usefulness and help avoid future problems. Figure 7-1 is the block diagram of this interface card. This interface transfers data in a bidirectional fashion between the PC-Bus and the IEEE-488 instrument bus.
Page 82
IEEE-488 rnterface controller chip to accept data and waits for the handshake to be completed. The data byte is received via the bus driver/receiver and then is put into the system memory. PCLS-848-P User's Manual...
Page 83
Figuree 7-1 PCL-848A/B Block Diagram CHAPTER 7 THEORY OF OPERATION 77...
Page 85
This section provides information on maintaining, troubleshooting and repairing the IEEE-488 interface card. The IEEE-488 interface card has no internal adjustment and does not require periodic calibration. However, the following actions are grecommended for preventive maintenance on a once-a-year basis (or more often, in high humidity environments). The IEEE-488 bus connector (J1) and the golden fingers for the PC I/O slot should be cleaned to prevent wax and dirt build-up.
Page 86
Instrument hangs-up Instrument output Send instrument a when sending data control not reset Selective Device Clear Instrument output Use EOL procedure terminates on wrong to change termi characters nator Change instrument terminator if possible PCLS-848-P User's Manual...
Page 88
GPIB Interface Controller NEC7210C SN75160 TI or NS SN75162 TI or NS 74LS138 74LS08 74LS02 74LS126 MM58167 real time clock volt lithium battery SONYCR2032 or Equ. DIP Switches (16pins) 24 Pin Ribbon Connector 12 Pin Jumper Connector PCLS-848-P User's Manual...
Page 89
The IEEE-488 bus is a carefully defined instrumentation interface which simplifies the integration of instruments, peripherals and computers into systems. It minimizes compatibility problems between devices and has sufficient flexibility to accommodate future products. The bus has been formally accepted by the International Electrotech- nical Commission (I.E.C.), as an international standard, and by the Institute of Electrical and Electronic Engineers (I.E.E.E.) as an American standard.
Page 90
MANAGEMENT Lines Pin No. ---------------------- ----------------------------- DIOI DI02 DI03 DI04 DI05 DI06 DI07 HANDsuAKE Lines Pin No. DI08 ------------------------------ NRFD NDAC The IEC-625 standard uses 25 pin D type connector as the standard and the signal assignment is: PCLS-848-P User's Manual...
Page 91
DATA Lines Pin No. MANAGEMENT Lines Pin No. ---------------------- ----------------------------- DIO1 DI02 DI03 DI04 DI05 DI06 DI07 BANDSBAKE Lines Pin No. ----------------------------- DI08 NRFD NDAC The active controller manages all bus communications. The state of the ATN line, driven by the controller, determines whether the data on the data lines will be interpreted as a bus command or received by other devices as data.
Page 92
Address Parallel Poll Configure. Config- ure a device to respond to parallel poll. : Address Take Control. Transfer control to another device. Unaddress UNL Unlisten. Unaddress the current listeners Unaddress UNT Untalk. Unaddress the current talker. PCLS-848-P User's Manual...
Page 93
Some IEEE-488 devices have the ability to request service from the controller. A device may request service when it has completed a 2 measurement, or when it has detected a critical condition, or for other reasons. An IEEE-488 device requests controller service by setting the SRQ line low.
Page 94
The set of codes labeled “Primary Command Group” are the codes commonly used to communicate on the bus. The “Secondary Command Group” is used when addressing extended listeners and talkers, or enabling the Parallel Poll Mode (PPE). PCLS-848-P User's Manual...
Page 96
LISTENER. A device addressed to listen in the data mode. The handshake lines have the following name and meaning: Data Valid NRFD Not Ready For Data NDAC Not Data Accepted The handshake timing sequence is shown as following: PCLS-848-P User's Manual...
Page 97
Handshake Timing Sequence CHAPTER 7 THEORY OF OPERATION 91...
Page 98
The maximum cumulative length of the IEEE-488 bus cable in any system must not exceed more than 2 meters of cable per device or 20 meters, whichever is less, unless bus Expanders or Extenders are used. For more information about the IEEE-488 bus, please refer to the IEEE reference document. PCLS-848-P User's Manual...
Page 101
Read Register Bit Contents Data In DI5 DI4 Interrupt DET END Status 1 Interrupt SRQI LOK REM LOKC REMC ADSC Status 2 Serial Poll PEND Status Address SPMS LPAS TPAS MJMN Status Command Pass CPT7 CPT6 CPT5 CPT4 CPT3 CPT2 CPT1 CPT0 Through Address 0 DL0 AD50...
Page 103
Procedures and Parameters Activity ieabort; Aborts all bus activity by pulsing the IFC line. iedevalr(addr); Device clear or selective device clear. iedevice(addr,portno); Replaces an LPTn: or COMn: port with an IEEE-488 device. ieenter(addr,instr); Enters data from a device. ieentera(addr,dataseg,maxlen); Enters a long string from a device.
Page 104
Procedures and Parameters Activity iesend(cmdstr); Sends the IEEE-488 mnemonics commands to the bus. p:=iespoll(addr); Serial Poll. p:=iestatus(cond); Reads the status of thet interface. ietimout(tout); Sets timeout interval. ietrig(addr); Triggers a device or devices. PCLS-848-P User's Manual...
Page 105
Procedures Activity isabort Aborts all bus activity by pulsing the IFC line. iedevalr(addr); Device clear or selective device clear. iedevice(addr,portno); Replaces an LPTn: or COMn: port with an IEEE-488 device. ieenter(addr,instr); Enters data from a device. ieentera(addr,dataseg,maxlen); Enters a long string from a device. ieeol(addr,outeol,ooolstr,ineol,ineolb);...
Page 106
Procedures and Parameters Activity iespoll(addr,response); Serial Poll. iestatus(cond,status); Reads the status of the interface. ietimout(tout); Sets timeout interval. ietrig(addr); Triggers a device or devices. PCLS-848-P User's Manual...
Need help?
Do you have a question about the PCLS-848-P and is the answer not in the manual?
Questions and answers