CALIFORNIA STATE UN:::VERSITY, NORTHRIDGE
HICROPROCESSORS /
A graduate p~ojc~t report s~~oitted in partial satisfaction of the requirements for the degree of Master of Science in
Engineering .. I
by
Thor,las Carson Hecht
~-
.January 1977 i
The graduate project report of Thomas Carson Hecht is approved:
California State University, Northridge
Oitober 1976
ii TABLE OF CONTENTS
TITLE PAGE i.
1-.PPROVAL PAGE i.i
LIST OF FIGURES i.v
ABSTRP.C'I' vii
INTRODUCTION 1
INTRODUCTION 1'0 MICROPROCESSORS 3
THE 6800 HINIHAL SYSTEM 7
THE HICROCOMPUTER ... , .. ,~ .. c•<~c•••••••••••••,.tt•••••••.••,•·•••••-~~·•'~••oo 18
}!ICROELECTRONIC P.ESISTOiZS AND RESISTOR TRH'lMING 31
AJ!FL ICATT.O!'·! OF THE HICROCOI'-1PUTER TO LASER TRIH~llNG
R),DJIR ERRORS AND THEIR CORRECTION 65
THE ERROR COF,RECI'TON SYSTEM •••••••c••••.,••••••••••••••• .. •-ta•••••·• 69
THE HICROPROCESSOR SYSTEN 34
LIHJ.TATWNS AND ACCURACY 97
SUNNARY 100
APPENDIX A 6800 IN.~)J'RUC.TIO.N S.&T •••••••••••••••••••• 102
APPEND IX E HOTOIWLA 6800 .CI.ROJ LTS -t.~ ...... ~ ... , ...... ~ ...... 105 lJ:'FENDIX C C.ALCJJL.A.TOR .CHIP DATA SH.EET •• , , .•••• , .•••.•••••••••••• llO
'I + .. .;:,. .. t •· II " • • • 115
BIBLlOGR.t,PHY ••••••••• otto'W ...... ll9
Li.i LIST OF FIGURES
FIGURE 1: THE 6800 Mli'Hr·L'\L SYSTEH
FIGURE 2: OPERATION OF THE ACIA
FIGURE 3: OPERATION OF THE PIA
FIGURE Lf: BLOCK DIAGRP..H OF THE PIA/CALCULATOR CHIP INTERFACE
FIGURE 5: SCHEHATIC AND TRUTH TABLE OF THE PRIOP.ITY ENCODER
FIGURE 6: SCHElv!ATIC OF THE QUAD AND
FIGURE 7: SCHEHATIC OF 'I'JIE TNTERRUPT PRIORITY CIRCUIT
FIGURE 8: LOCATIONS ADDRESSED BY THE MPU FOR DIFFERENT PRIORITY
Ii'fTERlWPTS
FIGURE 9: .tv1EHORY H1\P OF THE MICROCOl1PUTER
FIGURE 10: CALCULATION OF RESISTANCE USING SQUARES AND SHEET
RESISTANCE
FIGURE 11: DIFFERENT TYPES OF TRIHS
FIGURE 12: RESISTANCE AS A FUNCTION OF TRHllviiNG
FIGURE 13: PLOT OF % OF INCREASE IN RESISTANCE VS. K (EQUATION {10))
FIGURE 14: COMPARISON OF THE SENSITIVITY OF S'i'RAIGHT AND 1-CUTS TO K
FIGURE 15: 1-CUT TO GIVE MAXIMUH RESISTANCE
FIGURE 16: RES IS TOR TRH'.!HED \.viTH A SERPENTINE CUT
FIGURE 17: THE HANUl~L LASER TRU1t1I.i{G SYSTEH
FIGURE 18: THE AUTOHATED LASER TRU1MING SYSTEH
FIGURn 19: DIAGR/~.!1 OF THE PRORE C t;RD
FIGURE 20: DIAGR.l\.1"1 OF THE PROBE CA.'{D, THE RE:FEk£NCE CARr, AND THE
RELAY } FIGURE 21: SGHEHATIC OF THE RELA'l MA'i'RIX F.':i:GURE 22: i1TACRA.t'1 OF THE Omi HE fER i.v FIGURE 2.4: D IAGRP..J1 OF THE HON ITOR FIGURE 25:·SCHEMATIC OF THE CLIPPER CIRCUIT FIGURE 26: ".FLOWCHART OF THE AUTOMATED TRIM,"'liNG SYSTEM PROGRAM FIGURE 27: DIAGRP..N OF THE ±X DIRECTION COUNTER FIGURE 28: DIAGRlilvl OF THE ±Y DIRECTION COUNTER FIGURE 20· PRESENT RADAR/SPARS INTERFACE I I FIGURE 30: TUHNG OF THE RADAR/SPARS INTERFACE FIGURE 31: TIMING OF THE kADAR/HICROPROCESSOR SYSTEM/SPARS FlGURE 32; REAL TIHE RADA 1.\ ERROP. CORRECTION SYSTEM ':l":l· FIGURE -J.J• 30 VOLT TO FIVE VOLT, ZERO VOLT TO ZERO VOLT CONVERTER FIGURE J!:,; 5 VOLT TO 30 'IOL T, ZERO VOLT TO ZERO VOLT CONVERTER FIGURE 35: RADAR TO NICROPROCESSOR SYSTEM INTERFACE FIGURE 36: HICROPROCESSOR SYSTD1 TO SPARS INTERFACE FIGURE 37: PROGRA"'1 Mot-:ITOR CIRCUIT FIGURE 38: RELAY CONTROL CIRCUIT FIGURE 39: THE RELAY SYSTEl-1 FIGURE lfO: HEHORY REQUIREMENTS FOR TRIGONOMETRIC LOOK-UP TABLES FIGURE 41: VALUES STORED FOR VARIOUS FUNCTIONS AND ANGLES FIGURE l~.2: PROGRAl\1 FLOHCHART FOR HANDLING THE SIGN OF TRIGONOHETRIC FUNCTIONS FIGURE L13: SIZE AND Nm'lBER OF SIGNIFICANT DIGITS REQUIRED FOR THE RP.NGE COEFFICIENTS FIGURE i~4: SIZE AND NUHBl:;;R OF SIGNiFICANT ·DIGITS REQUIRED FOR THE AZIHUTH COEFFICIENTS v . /, <:; ' FIGURE -"C#J. SIZE AND NUNBER O:l? SICNIF1CAN1~ DIGITS REQCIRED FOR THE ELEVATION COEFFICIENTS FIGURE 1-t-6: TIME REQUIRED TO CALCULATE THE RADAR ERROR TERHS fiGURE 47: MPU DUTIES FIGURE 48: PORT INTERFACES BETWEEN THE MPU's FIGURE 49: ESTIMATED ERROR IN CALCULATING TI-lE ERROR EX:C'RESSIONS FIGURE I: l10TOROI .A HC6800 CLOCK I FIGURE II: HOTOROLA 11C6800 RESET CIRCUIT FIGURE III: HOTOROLA MC6800 HALT AND SINGLE CYCLE CIRCUIT FIGURE IV: HOI'OROLA MC6800 TELETYPEWRITER• INTERFACE vi ABSTRACT MICROPROCESSORS JIJW THEIR APPLICATIONS by Thomas Carson Hecht Haster of Science in Engineering January' 1"977 This paper chronicles the development of t\.vo microprocessor systems. It first provides an introduction to microprocessors and describes the design of a microcompucer • "l'l....l«e mlcroprocessor~. syscems. designed 6re used in process control and data processing applications. In tbe contro1. applicatiou the first microcomputer is :.Ised to aut:orr,ate a s~ntem that. uses a laser to trim microcircuit resistors. In ~he data precessing application the second microprocessor system is used for real time error correction of radar Jata. vi.i INTRODUCTION This r.eport describes two seperate projects. Whiie these projects are independent they both use microprocessors to solve technological problems. These two projects use microprocessors in both control and data processing applications. The first project uses a microprocessor in a control application. It consists of automating a laser tria1ming system. Laser trimming is a means of adjusting the resistance of an integrated circuit by cutting part of the resistor away. Because of the small size of t.hese resistors, laser trimming is a very delicate process. 1;-n1en done manually it could take hours to trim one integrated circuit. DndPr compu~e~ coLtrol the trimming time can be cut to minutes. This saving of time (and money) is the motivation for.the project. The second project considers the use of microprocessors in a data processing application. Electronic, mechanical, and environ- mental effects introduce errors iHto radar system>~, wh:i.ch in turn, results in errors in the radar data. It is possible to compensate fo~ these effects by using a set of radar error correction equations~ At present this co~npensati.on is not done in real time at Point Hugu. It would be desirable to have the corrected radar data available immediate} y aft·~ e an ope:cation. Accordingly, an invest igat:i.on was conducted into the possibility of using a microprocessor system to provide radar error correction in real tirue. The firs~ section of this report gives an overview of micro- 1 ,, L processors and deals with the development of a microcomputer. Follow- j_ng a genc-"ral discussion of microprocessors, the Motor-ola 6800 microprocessor system is covered in detail. This is followed by a description of a complete microcomputer system. The Eecond section of this report covers the application of the microcomputer to laser trimming. It begins with an int-roduction to microcircuit. resJ.stors and laeer trimming. This is followed by descriptions o:c the existing manual trimming system and the proposed 1- • ~ .L. new comp~ter controlled ~.-rlnHill.ng sys~.-em. The i: h:i.rd section of this report deals w1.th the appl icati.on of a microprocessor system to real time radar error correction. First the radar erro~ cquaticns are presented. This is followed by the description of the organizntion, the hardware, software~ and expected perforillanc8 of the real time er~or correction system. The fourth and last section of this repo.rt consists of st.:rnmary and conclusions. INTRODUCTION TO HICROPROCESSORS The first microprocessor was a by-product of the calculator industry. In the late sixties several different desk top calculators required several different custom l10S LSI circuits for each cnl- culator. In order to avoid developing all tl-1ese custorn chips~ an architecture vr01s developed that allm.;red many differE~nt calculators to be implemented with only four different chip types. Later it was realized that these ~our standard circuits wer~ flexible enough to be used jn other applications besides calculators. This development led to the fi:t~st microc:orcputer f£-.mily, thr:: Tnli3l MCS- 4, ~.;rhich "!J,cas ! marketed in 1971. Since then just about everyone has jumped on the microprocessor band.vmgon, either by designing a ne\v microprocessor. or else by using a microprocessor in a new application. The original microprocessor, the Intel MCS-4, marketed in 1971, vias a 4 bit machine. By 1975 many companies ,,iere offering 8 bit m:i.croproces.sors and a few companies \vere selling 16 bit microprocessors. By 1975 most major semiconductor companies, ~s well as a host of others, vwre off.erir.g their own microprocessors. At present tHo 8 bit microprocessors are the most popular, the Intel 8080 and the Hotorola 6800. The Intel 8080 enjoys a slight edge in popular:ity probably because of its being introduced f~rst. Bot1t microprocessors have the same basic computing capabilities and cost. If these capabilities '"er:e compared, a slight advantage 3 L;. held by Hotorola :in one ere13. (for example: .sddressing) wrmld be h:1lanced by a slight advantage held by Intel in ai1othe-r area(for example:interrupt handling). The Motorola 6800 microprocessor was selected as the basis for this project primarily because it requires o!'l.ly one pow·er supply(+ 5V) as opposed to the Intel 8080 v7hich requires three pouer supplies(+5V,-5V~ and+l2VL A microprocessor that is !'lewer t:ha.n both the U080 and the 6800 thet is w0rth mentioni~1g is the !1os Technology 6502. This device: ~vas developed by some of the same reople who had developed the 6800 for Notorolc.1, The Hos Technology 6502 has the sar.1e basic computing capabilities and cost as the 6800 and the 2080. The 6502, like the 6800 t requires only one power supply (a 1 so + SV). The innovative feature of the 6502 is its on-the-chip clock. Had the selec~ion b::;en made today the Nos Technology 6502 microproces3o:r.· \voul d be the one selected for this project. The next section of this report will _attempt to provide an introduction to microprocessor systems. First a distinction should be made between a microprocessor unit and a microprocessor system. A microprocesso~ unit, such as the 6800 or the 8080 5 is a single LSI chip. A microprocessor system =onsists of a microprocessor chip pius some additional circuitry. A typical microprocessor system consists of a microprocessor chip~ some memory, some inteiface ciceuitry, and a po~ver supply. In trd.s report the term "mfcro :r>rocessor·" mean:; the single mic.coprocessor chip and not a mlero .. processor &ysLern, a microprocessor family, or a microcomputer. In the fi:rst pa·ragraph of this chapt,=;r it was ment:i.o1h:~d l'116t 5 the first microproce.ssor family) the Intel HCS-4, w·as composed of four standar~ circuits. Present microprocessor systems are still composed of these sane four standard circuits. These standard circuits are Mi-croprocessing UnU (MPU) ~ Read Only Hemory (ROH), Random Access Hemory(RAH), and the interface circuits. These circuits will be discussed in the following paragraphs. The r:tPU is the Cel"tral processing u:ait of the micro'processor system. ROH is nonvolatile memory that is used for permanent storage of data or prograri\s. RON can on1 y bE r:ead and can not 0e writte;:J into. ROHs are usually custom prr>grf!mmed at the factory although there are special types af ROMs, called PROMsJ that can have their contents erased and reprogrammed using special equipment. The RP,H is different 'from the ROM in that it can be written into as well as being read. The RAM is programmed by signals from the MPU so that it is possible to access directly any word of RAM using s. tele typev~riter or some other input /output means. RAM is used for the temporary storage of data and programs. RAM is also used to store data .or programs that will change in the course of running a prog-ram. There is a great variety of types of interface circuits used in microprocessor systems. These interface circuits are used to inter face the microprocessor system witb the outside world. They are often called ports or input/output ports(l/0 ports). The original micro processor system, the Intel MCS-4, used shift registers for ports. Bidirectional buffers or latches could also be used for ports. Hotorola has d~veloped two interfnce circuits to be used as ports 6 in their microprocessor system. These ci~cuits are the Peripheral Interface Adapter ( PIA ) and the Asynchronous Communications Inter face Adapter ( ACIA ). The ACIA allows an eight bit word to be transmitted .serially to and from the MPU and the outside world~ The microcomputer designed for this project uses one PIA and several eight bit latehes as interfaces with the outside world. The PIA and ACIA vli.ll be discussed more in the next chapter. THE 6800 MINIMAL SYSTEM The 6SOO minimal system described in this chapter is defined by the author to consist of the minimum number of 6800 family devices and the minimum amount of peripheral circuitry necessary for the ~icroprocessor system to function. First the 6000 system configuration tdll be described. Next. the 6300 family devices that make up this system will be discussed. Third the information flow in the system will be described. Finally the software used by the 6800 MPU will be discussed. Fj_gure 1 shmvs a block diagram of the minimal 6800 system. The t-'.lPU is the heart of the 6800 systcn. It cont·rol s the rest o£ the 6800 family devices. It also controls the program flow in the system~ as well as the execution of instructions. The start up unit accomplishes two functions: It provides reset capability •md allot-Js a program to be run one instruction at a time. The reset is used vJhen the power is first turned on or when a pro- gram is hung up by an infinite loop or some other difficulty. The reset sets the program counter at a specific addresso The program starting at. that address will then be executed. The mode of stepping through programs one instruction ~t a time is used in debugging programs. 'I'he clock of the. system is a two-phase clock, where ¢', and a~c square waves of 180° phase difference. 7 8 r------~ CONTROL BUS I~ START-Uf' --· ]-- l . ~. ¢, MPU CLOCK DATA '-·-·_, --·BUS '--·------·-·- ______ ADDRESS BUS I RAH ~----L-.J '---·--·-·-~-- I 1 .------__ J I PIA t l_j_ I TTY FIGURE 1: THE 6800 MINIMAL SYSTEM 9 The Peripheral Interface Adapter(PIA) is a special interface ·built on a integrated circuit, that is used to interface the 6800 system with the outside world. For the minimal system shown in Figure 1 the PIA chip is used to interface the 6800 system with a teletypewriter(TTY).· The t1IKBUG ROM shown in Figure 1 is a chip that is programmed py Motorola. This program is part of the interface bet\ and the rest of the system. The program allmvs an operator using the TTY to change the contents of memory, set the program counter, set interrtcpt vectors, copy the contents of memo-::-y onto a punched tape, and place the information from a punched tape into memory. Most of the RAM chip shown in Figure 1 serves as a scratch pad memory for the HIKBUG ROH. The remaiuing memory locations in the RAM chip. could be used for ~vhatever purpose the programmer desired. For example, to store a short program. The 6800 system uses three buses. The control bus handles the interrupt requests and the reset line. It also serves as a chip select. Each 6800 family device has certain inputs that when high \or low) disable the device. Examples of this are given in the next section. The address bus is used primarily to address different' memory locations; hoHever, the address bus is also used as a chip select. The data bus is used to transport 8 bit \-JOrds to and fror.1 the MPU. The Motorola 6800 family consists basically of five different types of chips:the HPU, ROH, RAH, PIA, and the Asynchronous Communications Interface Adapter(ACIA). 10 The Notorola 6830L ROH(The NIKBUG ROH) is organized into 1024 bytes of eight bits each. The ROH has four chip select J.nputs and ten inputs that are connected to ten of the address lineso The ROH is also coti:"nected to the eight lines of the data bus. The ROH, as well as the rest of the 6800 family, offers tri-state operation. The three state~ of the tri-state operation are low, high, and the high impedance state. The low and high states are the familiar TTL logic levels. When a 6800 family device is disabled it goes into ·the high impedance state. In this state a device does not load down the rest of the system. The Motorola 6810L RAH is organized into 128 bytes of eight bits each. The RAM has six chi.p select inputs and seven inputs that are connected to seven of the address lines. The RAH is also connected to the eight lines of the data bus. Another input to the RAH is connected to the Read/irlrHe line (R/W line) whi.c:h is part of the control bus. When the R/W line is low the MPU can write into the enabled device and when it is high the MPU can read from the enabled device. The ACIA is not used in the 6800 minimal system, nor is it used in the microcomputer. However the: ACIA is an ireportant member of the 6800 family. As shown in Figure 2 the ACIA is used to inter face serial data with the 6800 eight bit data bus. An ACIA could be used to i1i.terface the l1PU with CRT terminals, TTY terminals, or modems. A,modem is a circuit that is used to interface a digi.tnl electronic system to a telephone line. The l:'l!,(F:Lgure 3) is an extremely versatile intc::fo.ce: circuit. 11 I ,· L SERIAL -r--..L--;.:.li ACIA_j-1-'~BI-,--Pto.w-- PARALLEL DATA DATA 1 L __ _ ( TO DATA BUS ) FIGURE 2: OPERATION OF THE ACIA ··------·-~~.....-.-.. ~-,_·--- ..-~. 1- t- -- LATCH A t- LINES TO 1- r-,n t- OUTSIDE t- 1- J WOP.LD - \ ~---_-_=± i --f- - LATCH B - \ PERIPHERAL DATA J t- BUS rLINES TO ---~~+- t-· ----- t= t-- }: OUTSIDE t-- ltJORLD "'-- t-- I ~-----' FIGURE 3:: OPERNT ION OF TilE PIA 12 It eonsists of sorr.e central circuitry and two eight bit latches (latch A and latch B) that are connected in parallel to the data bus. The versatil i.ty of the PIA results from its programmability. By using softwA.re the :!vJPU can program each of the peripheral lines as < either an input or an output line. Another feature that adds flex- i.bil ity to the PIA is its ab~lity to be reprogrammed in the course of a program. Thus a peripheral line that starts out as a input line could be reprogrammed as an output line at a later point. in a pro- gram An exa~ple of the programmable and reprogrammable feature of the PIA can be found in the next chapter where the calculator chip interface circuit is described. The next section of this report will attempt to explain the, operation of the tvJPU. Eleven 1 ines going to the MPU make up the bidirectional control bus. The data bus (also bidirectional) is composed of eight lines. Sixteen output lines from the MPU make up the address bus (see Figure 1). The MPU can address 65,536 memory locations. After selecting a memory location the MPU can read or w1·ite an eight bit word into that location by using the data bus. There are four types of control signals used. Control can originate either from an external system or from the MPU. The first set of control lines consists of the two phase cloek, ¢, and¢,_ • The second set of control lines are tho Valid Memory Address (VMA) line and the Read/Write (R/H) line. These two lines are 'used to indicate the status of the Data Bus and Address Bus, respectively. The R/~-J line is lov! when the !1PU writes into RAM and high when the HPU reads from RAM. The R/H li.ne is also used to disable tl:;e RO~ 13 Data B~..1s buffers \lhen the KPU is in the ~'lrite mode. The VHA line is used to enable all the family deviccso A high VNA line indicates to m-smory and I/0 that the MPU is performing a read or 'vrite operation. A l.ovl on the VMA line prevents data transfer by disabling the Add- ress Bus buffers. The third set of control lines is made up of the Data Bus Enable .(DBE) li.ne and the Three State Control (TSC) 'line. These two lines are :i.nputs to the MPUo When the DBE line goes low the Data Bus of the l1PU goes into its high impedance state. When the TSC line goes high the Address Bus and the R/W line go into high impedance stateso The DEE and TSC lines are used to remove the buses during a Direct Memory Access (DHA). DHA is a method of allowing other devices to usc the system memory. For example, during DHA t~1o microprocessing units might share the same memory. The Halt line is used to stop the MPU. When the Halt line goes low the lvf..PU will stop processing and its buffers will go into a high impedance state. When this happens the Bus Available (BA) line wi.ll eo high. The BA line is an output of the MPU. It is used to signal external hard•·mre that the HPU is off the bus so that DMA can be used. The BA 1 ine also goes high if a software 1: AIT instruct ion is used. The final set of control lines are the interrupt lines. The interrupt line with the highest priority is th0 Reset line. It is used to reset the MPU ¥.7hen the po"VJer is turned on or Hhen the :tv1PU experiences difficulties in running a program. The Non-Maskable lr;terrupt (NMI) line requests MPU service. Hhen the NMI line goes 14 low the HPU program counter is set at a specific address. The program starting at that address is then run. The NMI line provides an inter- · rupt request that can not be blocked by software. In thi~ respect ------the NMI 1 fne differs fro;n the Interrupt Request (IRQ) 1 ine. The IRQ line is similiar,to the NMI line in that when the IRQ line goes low the program counter is set to a specific address (a different address than the NMI uses ). The difference between the IRQ and the NHI is that the NMI can not be blocked by sofbmre, \ can. By using a certain soft\vare instruction the programmer can prevent the IRQ from being serviced until that instruction is rescinded. The Data Bus consists of eight lines that connect the MPU to memory and other peripherals. The eight bit \vords used by the system travel to and from the MPU via the Data Bus. There are six registers in the NPU. These are the: Program Counter, Stack Pointer, Condition Codes, Accumulator A, Accumulator B, and Index Register. The Program Counter and Stack Pointer Registers are used to keep track of the location of the MPU in a program. The number of sixteen bit words the Stack Pointer (SP) can store is limited by the amount of memory the programmer reserves for that· purpose. Thus, if desired the 6800 system could handle an almost unlimited number of subroutines. The t,,ro 'accumulators are both eight bit registers. Hany of the instructions used by the MPU perform arithmetic o-:..· Boolean alg2br.a operations on the cont2nts of one or both accumulators. The HPU can also p~rform arithmetic vr Boolean algebra operations on the cont~nts 15 of a memory location and either one of the accumulators. Finally the l1PU has the capability to transfer data between the accumulators and memory locations. The Condition Codes Register contains six bits. The value of each of these bits is set as the result of the MPU executing a program instruction. The six bits are the H,I,N,Z,V, and C bits. The C bit is the carry bit. If the MPU perf0rms an arithmetic op eration and a carry results, then C is set high. The V bit is the overflm-.r bit. If the MPU performs an arithmetic operation and an overflo~ results then V is set high. The Z bit is the zero bit. If the HPU pm:-forrns a Boolean or arithmetic operation and the result is zero then Z is set high. The N bit is the negative bit. If the MPU performs'an arithmetic operation and the result is negative, then N is set high. The I bit is the interrupt mask bit. The I bit is set high by a specific software instruction (SEI~ which stands for Set Interrupt). When I is set high the MPU \<7ill not service an Interrupt Request (ho\ Interrupt). As soon as the I bit goes low IRQ would be serviced. The H bit is the half--carry bit. If the MPU is performing an arithmetic operation on two eight bit numbers and the result involv~s a carry from the foui least significant bits to the four most sig nificant bits, then H is set high. The status of the Condition Codes Register is used by the MPU to keep track of carries, to provide interrupt control, overflow indicati.on, and r.:iigr: information when branching. This last function of the Condition Codes Register requires an examle. Aseume the MPU 16 performs an arithmetic operation. Assume the MPU wants to branch to another part of the program if the result of this operation is negativa. To accomplish this goal the arithme~ic operation is follow ed by a BL-'1' (Branch if Less Than Zero) instruction. Upon reading the BLT instruction the MPU checks the N bit in the Condition Codes Register. If the N bit is high the program branches, if it is low the program does not branch. The Index Register is a sixteen bit register. The Index Reg ister is used in a special type of addressing known as indexed addressing. The function of the Index Register will be descibed in the next section vlhich discusses the different types of addressing available with the l1otorola 6800 MPU. The six< types of addressing used by the Motorola 6800 MPU are extended, direct, indexed, relative, implied, and immediate. Extended addressing allows the MPU to select any memory loc.stion. Direct addressing limits the ~lPU to selecting one of the first 256 memory locations (but it is faster than extended addressing). Indexed addressing allm>Js the MPU to select a memor-y location relative to the address stored in the Index Register. Relative addressing allows the MPU to select a memory location relative to the address stored in the Program Counter. Implied addressing does not require the MPU to specify an address (for example, adding the contents of the two accumulators does not require that an address be specified by the MPU). Immediate addressing is used by th(~ MPU to insert a number directly into a memory location. The Motorola 6800 system has 71 jnstructions in its soft\-Jare 17 repertoire. ThP.se instruct:i.ons are divided into fou'r broad categories. The first category of instructions perf:ormsoperations on the accum- ulators and memory. This includes arithmetic operations ~uch as a.dding and··subtracting. Also this set of instructions includes Bool ean algebra operations such as logic anding, oring, and complement ing. This set of instructions also includes data test operations such as comparing or sign testing. The final set of instructions in this category are the data handling instructions. These instructions allovl the movement of eight bit words between the accumulators and memory. They also allow these words to be shifted, rotated, incremented, and decremented. The second category of instructions performsoperations on the Index and Stack Pointer Registers. These instructions perform data test and data handling operations similiar to those that are per formed on the accumulators and memory except the operations are performed on the Index Register, Stack Pointer, and memory. The third category of instructions are the jump and branch instructions. They provide conditional and unconditional branching, jumping~ subroutine control, and software interrupt control. The final category of instructions are the Condition Codes, Register manipulation instructions. They allow the bits in the Condition Codes Register to be set directly with software. a complete list of tl:.e 6800 instruction set is given in Appendix A. _ THE MICROCOMPUTER Using the Hotorola 6800 family> a microcompute·1· ~.;ras developed. The objective was to develop a microcomputer that was versa~ile enough to be used for a variety of application3, not just laser trimming. For example, the microcomputer d·i.scussed in thi.s chapter could be used in other systems ) such as an automat:i.c tester, or for data processing. Inside the back cover there is a system diagram of the micro computer. This diagram shows ho,.;r the different elements relate to each 0ther and also how the different elements . The microcomputer and the 6800 minimal. system have a lot in conunon. Both use the same MPU, ROM, RAM, and PIA chips. Both have the same TTY interface • .And both have the same clock, h~1lt/singJ.e cycle and reset circuitry. There are two major advantages the micro computer has over the minimal system. First the microcomputer has more computational poHe"J;"? and second the microcomputer is better able to interface wit:h the outside world •. The microcomputer gains its advantage in computational power vJJt.h its increased RAM and its calculator chip. The 6800 minimal system had only one RAH chip ( corresponding to R.AH #1 on the 18 19 microcomputer diagram ) •. The microcomputer has R.'\11 #2 and the 4K RAN b::>ard. RPM #2 can store only 128 1·JOrds and is primarily used for interrupt prioritizing anyway. The greatest adv~:mtage cf the microcomputer comes from the L].K RAM board. The Rllt-1 boa'rd provides about 100 times more memory than ~vas available with the minimal system. The second computational advantage enjoyed by the micro computer js due to the National MM5760 calculator chip. The minimal system \>Jould have had to employ many different softuare routines to take logs, square roots, sines, etc. The microcomputer uses a single general program that allows it to use any of the over twenty operations the calculator chip can handle. This allows a savings in memory and provides more versatility in performing mathematic operations. The microcomputer also enjoys an advantage in its ability to interface "'ith the outside world. The 6800 minimal system had only two interrupts ( IRQ and NMI ) and could interface only \·lith the TTY. The microcomputer also has e NMI input and can interface with a TTY. However the microcomputer has an interrupt priority circuit that allows eight different interrupt requests to be funnelled into the IRQ input. The interrupt priority circuit sees to it that each interrupt request is serviced in order of its importance. The biggest advantage of the microcomputer in inter fac:i.ng is its Input/Output ports. The MPU addresBes an l/0 port 1 ike any other memory location .. When the HJ?U reads an Input port i.t reads the voltages ( TTL co;npati ble ) the user has placed there. When the HJ:'U vn:ites to an Output port Lh8 user can read the TTL 20 compatible voltages appearing there. Three final differences between it and the 6800 minimal system are that the Addre:3s and the Data Bus are buffered and also the ~ Address Bus is decoded for the microcomputer. The Address Bus is decoded to facilitaLe enabling chips. This allows only one line to be used as a chip enable. It also allows easier memory expansion at a later point in tj_Irce. This is the reason the Address and Data Bus come. off-board in the microcomputer system. The Address and Data Bus are buffered because the 6800 family devices can drive only one TTL load. The MPU alone could not drive the 6800 family devices, the 74154 decoders ( TTL ) , and other potential off-board devices. Therefore the 8T97 buffers are used. The 8T97 buffers present only one-sixth of a TTL load to the MPU. Appendix B shows schematics of the 6800 clock, the Rc,set circuit, the halt/single cycle circuit, and the PlA··TTY inter·- face circuit. These circuits are basically identical to the circuits found in the Motorola applications manual; Before describing the operation of the CalculatGr Chip/PIA interface circuit it is necessary to briefly describe the operation of the calculator chip. The chip uses word times and digit times as a time base. The chip has nine digit times. Each digic time is high for one-ninth of the word Lime. The calcttlator chip has four inputs and e1ght output·s. The chip decides \<.'hat calculation to perform on the basis 0£ what input is high during which digit time. The eight outputs normally drive a seven segment LED display. The calc:ul ato1~ chip also has a reAdy 1 ine l:lwL i.t usE:s to indicate 21 Hhen it can, and can not accept a ne~v instruction. To interface with t.he calcDJ.ator chip the first objective is to have the MPU present signals to the four calculator chip inputs that are high at the -~ appropriate. digit times to accomplish the desired operation. The secor:d objective is to have the MPU decode the output of the cal- culator. Appendix C shows hovJ the calculator chip works. Figure L; shows a block diagram of the t:alculator Chip/PIA interface. figure 5 shows the schematic and the truth table of the Priority Encoder. Figure 6 shows the schematic of the Quad AND circuit. The CD4010'S are CMOS buffer gates ~. The digital comparator is a 7486 TTL 4-bit magnitude comparator. The tri-state buffer can be enabled or disabled by the voltage on the line coming from CB2. To write an instruction into the calculator first the tri-stete buffer is disabled. As shown in Figure 4 the digit times are changed to a 4-bit number. These four bits are one ~nput to the comparator. On the MPU side, the MPU writes a eight bit number corresponding to the calculator instruction. The first four bits of this instruction are identical to the four bits corresponding to the.digit time in ·which the instruction ·is to be sent ( as sho\vn in the table of Fizure 5 ). The second four bits of the MPU 1 s eight bit word are the TTL levels that are desired on Kl, K2, K3, and Kl-1- during the digit tin1e spe·.:::ifh•d by the first four b~~ts. For example, to clear· the cdculator K2 should be bronght high during digit time D8. F..-om the table in Figure 5 dur.ir:g digit time DS, ABCD is 0111. For K2 to oe bigh Hill! Kl, KJ, and K4 low the MPU should put out ... 22 { MH 5760 I CALCULATOR l_j______,_, CHIP I CB2 ~-~------DO-D8 DIGIT TIMES PIA3 CD4010 BUFFER Kl K2 IotTA~-~~ K3 1 ?)l.~_A.t~_n _j.. ---·--t------K4 SEGHENT PIAA OUTPUTS CD4010 I . BUFFER 1- CA2·---t L"' __ J . [------·---+--- ,---} READ.Y__ _ 1 ~ 1 L CD4010 BUFFER F'IGURE 4: BLOCK DIAGIL\r~ OF THE :PIA/CALCULATOR CHIP INTERFACE 23 9 >---·------.·~···-.. ---· :;:..A --- ~ :-·------D-~· ~B 7 >·- ~--- I . -L__} / ' 8 >- ·~----L_~--L_---4.\-- ·_ ... ---i__.} --;> \_; 3 >------T)~-·-- -- 4 ;.---~~---z_ ' DIGIT TU1ES OUTPUT 1 2 3 Lf 5 6 7 8 9 A B C D 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 ,o 0 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 l 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 > 0 0 0 0 0 0 0 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 FIGURE 5: SCHEMATIC AND TRUTH TABLE OF THE PRIORITY ENCODER FROH DI . --~r--- -) -: 7LfC08 --->TO K1 ----1-·-· t 1 I __. I FOUR ---~~-[\ ! ~ LSE r-----+---·--~-~--·------? TO K2 I I OF 1 d----.....:...t ~ : ' TO K3 )---.---·---·-··--·-~,. ,, . I - I I 1 I ------·r ·---L_-~:.-:_··~~? __ )~_·-_:------;> TO KL;. FIGURE 6: SCHEHATIC OF THE QUAD /'.ND 24 0100 ~ili~1 these bits correspond to Kl, K2, K3, and K4 respectively. Therefore to clear the calculator the i''IPU will Hait for the ready line ( see Figure 4 ) to indicate the calculator can accept an instniCtion. Then the MPU would write 0111 0100 at PIAB. Note that this assumes PIAB has been programmed as an output port. Hhen the Priority Encoder puts out the four bit number that corresponds to the digit time put out by the HPU, the outptl.t of the digital com parator goes high. This enables the Quad And. When the Quad And,is enabled the digital signals appearing at the four least significant bits of PIAB are transmitted to K1, K2, K3, and K4. Thus the Kl, K2, K3, and K4 inputs of the calculator receive the appropriate inputs at the correct digit times. The ready line continually not ifies the HPU ( via the PIA ) when a new instruction can be given. To read the output of: the calculator chip the MPU takes the following steps. First the tri-state buffer is enabled and second the top four connections of PIAB ( those connectted to the tri state buffer ) are reprogrammed asinput ports. This allows the HPU to read the digit times as 'they come from the Priority Encoder. Also the HPU reads the outputs of the calculator chip via PI.AA ( which is programmed as an input port ) • The }1PU reads the digit times at PI.AB and the segment outputs at PIAAo Then the MPU uses software to decode the two in order to come up with the numerical output of the calculator. The only major circuit whose operation remains to be explained is the Interrupt Priority Circuit. When the HPU receives an inter rupt request it loads the contents of addresses FFF8 and FFF9 25 ( using.a hexadecimal addressing system) into the Program Counter. HoH8Ver these addresses are part of the program stored in .the MIKBUG ROM. So after an interrupt request the MIKBUG ROM program puts the contents of addresses AOOO and AOOl into the Program Counter. The eight most significant bits .are stored at .AOOO and the eight least significant bits are stored at AOOl. Hhat this means is that after receiving an interrupt request the MIKBUG ROM will cause 'the i'1PU to execute the instructions that start at the address stored in addresses AOOO and AOOl. It is desired ·to have the VJ.PU handla interrupts of different priority. Therefore the l':!PU should execute programs at different locations in.memory depending upon the priority of the interrupt" This goal is accomplished by using external hardware to fool the Jv.IPU. The MPU Hill think it is calling addresses AOOO and AOOl but actually, because of the external hardware, the MPU ~vill be looking at one of eight ( the number of interrupts allovJed ) different pairs of addresses. The priori~y of the interrupt determines which of these eight address pairs the MPU is looking at. Notice the logic circuitry beneath RAH #2 on the micro::!omputer diag-;_·am. This serves as a chip enable/disable circuit. When the MPU calls addresses BXXX, AOOO) or AOOl RAM 1!2 is enabled and RAH ifl is disabled. Also .-Then address AOOO or AOOl is called the l:in2 going into the Inte1~rupt Prfority Circuit goes high. Figure 7 shows a schematic of the Interrupt Priority Circuit and the truth table for the MC14532 8-Bit Priority Encoder, Notice that \vhenever an interrupt request is received the MCJ.l+532 p:Jts a 26 INTERRUPT REQUEST ENABLE LINE +5 14532 D1 SELECT INPUT INTERRUPT D2 D <,-- Al OF REQUESTS Q, D A2 RAM ID3 Df+ Q'2. - D A3 #2 D5 D6 D7 11E No C. Eo v'\1\/'---H t--· ----- 10 K 100 I PF. ____ >TO IRQ ON THE H._ou TRUTH TABLE OF THE HC 14532 D7 D6 D5 D4 D3 D2 D1 DO Q Q Qo Eo 0 0 0 0 0 0 0 0 0 0 0 l 1 X X X X X X X 1 1 1 0 FIGURE 7: SCHEMi1.TIC OF THE INTERRUPT PRIORITY CIRCUIT 27 lovT en f.he IRQ input of the MPU ( via the Eo output ) and it outputs a three bit number whose value depends 0.11 the priority of .the interrupt (via Qo, Q , and Q ). When IRQ goes low the MPU (via the MIKBUG ROM ) will try to read addresses AOOO and AOOl. This will disable RAH ill and enable both RAM #2 and the Interrupt Priority Circuit. The Interrupt Priority Circuit is enabled by the Interrupt Request Enable line going high. ( Figure 7 ) • The 74-75 latch stores the values of Qo, Q1 , and Q '2. when Eo goes low ( that is,' of Qo~ Q 1 , and Q?.. until their proper valt~es have propagated through the MC14532. Hhen the Inte:crupt Request Enable line goes high it brings the select input of the 74257 chip high. The 74257 is beihg used as a three line data selector. When its select inp~t is low the Al~ A2, and A3 lines of the Address Bus are connected to the Al, A2, and A3 inputs of RAM #2. When an interrupt request is made the select input goes high and Qo, _Q 1 , and Q '2. are connected to the Al, A2, and A3 inputs of RAM #2. This means that after an interrupt :>:"equest Qo, Q1 $ and Q 2.. are addressing RAM i/=2 not 1 ines Al, A2, and A3 o:f the Address Bus. Since Qo, Q,, and Q2 are different for different priority·ipterrupts, different locations in RAM #2 will be addressed for different priority interruptso The programmer can have any desired addresses in these locations by having previously m~itten the numbers in when Ri'M =/,1=2 Has addressed at BXXX. ,Figure 8 sho\vs the address the f>:lPU \·lill reach when it tries to address AOOO and AOOl for different priority interrupts. Tte final feature of the microcomputer that remains to be ex- 28 INTERRUPT NPU ATTEHPTS MPU ACTU.ALLY PRIORITY TO ADDRESS Q Q Qo AO ADDRESSES AOOO 1 1 1 d BOOE ls~ A001 1 1 1 1 BOOF AOOO 1 1 0 0 BOOC 2nd A001 1 1 0 1 BOOD AOOO 1 0 1 0 BOOA 3rd A001 1 0 1 1 BOOB AOOO 1 0 0 0 BOOB lj.th AOOl 1 Q 0 1 B009 AOOO 0 1 1 0 B006 5th AOOl 0 1 1 1 B007 AOOO 0 1 0 0 B004 6th A001 0 1 0 1 BOOS AOOO 0 0 1 0 B002 7th A001 0 0. l 1 B003 i\000 0 0 0 0 BOOO 8th AOOl 0 0 0 1 BOOl FIGURE 8: LOCATIONS ADDRESSED BY THE MPU FOR DIFFERENT PRIORITY INTERRUPTS 29 plained is the address decocl'ing circuitry. It is desired to have the MPU address only one location at a_time. To insure that this occurs the address decoding circuitry t's used to enable only one device at a 'time. The 74154 !+ to 16 line decoders are used as Address Bus decoders. The four bit binary number appearing at the input of a 7l+l5L~ is transformed into a hexadecimal number. The output line of the 74154 that corresponds to this hexadecimal number goes low while the other fifteen output lines remain high. For example, if the input is 0001 line 1 goes low, if the input is 0101 line A goes low, and if the input is 1111 line F goes low. as shown in the microcomputer diagram, Decoder 1 is used to enable the various devices composing the microcomputer and Decoder 3 is used to select ¥Jhich of the sixteen l/0 ports will be enabled. Figure 9 shows the memory map of the microcomputer. The memory map shows the hexadecimal addresses where each microcomputer device is enabled. 30 DEVICE ADDRESS LOCATION ~RAM BOARD 0000 TO OFFF ( 4K ) PIA ffl 8003 TO 8007 PIA 1/:2 9000 TO 9003 RAN 4,1:1 A002 TO A07F RAM 4/2 AOOO TO AOOl ALSO BOOO TO B07F I/0 PORTS cxxo TO CXXF MIKBUG ROM EOOO TO FFFF FIGURE 9: ME10RY MAP OF THE !1ICROCOHPUTER MICROELECTRONIC RESISTORS AND RESISTOR TRIMMING This chapter will serve as a introduction to the application of a microcomputer in a laser trimming systemo First this chapter will discuss microcircuit resistors. Secondly it will cover the reason for, and theory behind, laser trimming. Microelectronic resistors can be divided into two basic types~ thin film and thick filmo Both types of resistors have the same basic structureo That is, conductive strips are deposited on a substrate. A substrate is a thin insulating slab that serveA as the foundation for a integrated circuit. The conductive strips would typically be a metal such as aluminum or gold. To complete 3 the resistor a resistive material is deposited between the conductorso Thin film resistors are formed by depositing conductive and resistive films using vacuum evaporation, cathode sputtering, or clect1:·on-beam evaporation. Films deposited by these techniques I~ ~·Till have a thickness of typically 30 Angstroms. Thick film resistors are formed by applying and firing pastes onto a ceramic substrate. These pastes are usually applied using a silk-screen method. A thick film t·esist:or will have a typical thickness of 100 1 000 s .a.ngst 1;om~. Two other concepts that are important to microcircuit resistors are the concept of the ~quard and the sheet resistance (Rs). In <>t equation (1) 'IT should be a constanto This constant is sometimes 31 32 ·called the sheet resistanceo It would be expressed in ohmso If a resistor is a square with conductors on opposite sides of the resis- tor» then the length will equal the width. If ~ equals W in equa~ tion (1) tlfen R equals 'YT (the sheet resistance). This is signifi- cant because a Bquare1 of any size will have the same resistance. This fact can often be used to calculate the value of a micrdcircuit resistor. The resistor would be divided up into 1 squarei'. Then the 1 squares 1 would be counted. The number of 1 squares 1 times the <>heet resistance \'i'Ould give the total resistance. An example of this is shown in Figure lOo 1 2 ,.2_i CONDUCTOR CONDUCTOR I I : I ., _____j ____l._. ____ ., .... " ~·----1,_-,----_ ASSUME THAT Rs == 10 K ohms FIGURE 10: CALCULATION OF RESISTANCE USING SQUARES AND SHEET RESISTANCE There are three squares and Rs == 10 K ohmso The total resistance is the product of these two quantities, 30 K ohms. Unfo~tunately, because of the complexity of the manufacturing process, microcircuit resistors can not be produced with the accuracy required for today's electronic circuits. An electronic circuit will typically require resiP.tqrs ',;hose values are ,knmvn '~ A microelectronics resistor, however, will. often vary 20% or more from the desired value. This means that microelectronic resis- tors would have too wide a variation in resistance for the complete 33 circuit to function prciperly. To correct this proble~ microelectronic resistors are adjusted so their values will fall within the toler- ance required for the citcuit to function. The resistor is adj~sted by cutting ··part of it av.ray with a laser. This is what is me8nt by laser trimming. Laser trimming is based on equation (l). R = P*L (1) T*W \vhere; R = Resistance p = Resistivity of the Hat erial L -- Length of the Resistor T = Thickness of the Resistor W = Width of the Resistor Equation (1) shows the resistance i~ proportional to the length and inversely proportional to the width. Therefore by increasing t~e length and/or decreasing the width the resistance can be in- creased. This is the idea behind laser trimming. The first step in producing an accurate resistor is to deposit an initi.al, inaccErat e resi.stor. The initial resistor is nec::'.essarily inaccurate because of manufactoring vsriables. It is essential that the initial resistance be less than the final resistance. This means if the process engineer can only produce 20% resistors but he wants to produce a 1/~ resistor he will aim at depositing an initial resistor whose value is at least 20% less than the desired final resistance. For example assume the integrated eircuit rec;uires a 100 K ;!·I % 34 resistor? The process ~ngineer might deposit a 75 K !20% resistor. This would insur The n~x~ step in producing an accurate microcircuit resistor is to trim the resistor to increase its resistance~ Trimming consists of cutting part of a resistor away. By trimming a resistor in the appropriate manner the resistor width can b~ decreased and the resistor le:1gth can be increased. Therefore according to equation (1) the resistance can be increased by trimming. As the resistor is trimmed its resistance is monitored. When the resistance reaches the desired value the trim is stopped. There arc three types of of cuts used in trimming resistors. These are the straight cut, the L-Cut, and the serpentine cut. These cuts are shown in Figure 11. For the straight cut the resistance is a function of how far the cut extends into the resistor. A derivation of this relationship follows (see Figure 12 ). C = % of Resistor Cut Through H = Width of Resistor Before Trim L = Length of· Section K: = Fractional Part of Resistor Cut Through ((~) Rs - Sheet Resistance ( ~) Rt -~ Tr.:irmned Resistance Rn ""' Untrimmed Resistance ASSUHPTTONS (1) Current flovJ is negligible in the cross hatched area 35 ct'JNDUCTOR RESIS_T_O_R ____T__ -CONDU~lOR A) STARTING RESISTOR i r-~1---~--L __ B) STRAIGET CUT ------r-~ - ..,____.[_--7"'-~,~------. C) L-CUT _l.~l_- D) SERPENTINE CUT FIGTJRE 11: DIFFERENT TYPE'S OF TRIMS 36 (2) There is uniform current flow in and out of terminations R - Rs*X '( 2) w(x) dR -- Rs'i:dX (3) WTx) \ W(X) (4) = W(1 -~; '(5) (6) Rt == _!{s*L f _! ln(--1-)] (7) vl ~K 1--K- Note: Rn - Rs*L (8) w so :::: Rt ln( ~ (9) Rn[~ 1 K)] Rt :;;; 1 1n( 1 (10) Rn K 1 K) It can be seen from Figure 13 that as K approaches 1 ( that: is the resistor ia almost cut through ) the resistance increases very quickly. This means \vhen trimming a resistor in this region a slight ove·rshoot can lead to a resistance that is much higher than desired. To avoid the extreme sensiti'Iety of Rt to K, as K approaches one, the L-Cut is sometimes used. 37 c TERHINATION _l TERMINATION w l_ ~-·-·--1.....\. __j 0 X -----7 L FIGURE 12: RESIST&~CE AS A FUNCTION OF TRIMHING 150 ~~ RESISTANCE INCREASED 100 50 -~ -~ I ----...----r---tt--··----~,..----r---t---r----t--1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 o.s 0.9 1.0 o RESISTOR WIDTH CUT THROUGH ( K ) FIGURE 13: PLOT OF % OF INCREASE IN RESISTANCE VS. K ( .EQUATION ( 10 ) ) 38 figure 14 provides an exE~rnple of hm·7 L-Cuts are less sensitive to K than straight cuts. In part A Rt :::: Ra + Rb (11) from equation ElO) Ra -~ 0.4Rn (12) Rb '2£ 1.6Rn (13) so Rt - 0.4Rn + 1.6Rn (14) (15) Notice that trimming the resistor (1-K)*\.J further w:i.ll 00 cut through the resistor, giving Rt :::: • In part B Rt -- Ra + Rb + Rc (16) from equation (10) Ra ...., 0.4Rn (17) Rc ~ 0.4Rn (18) since L ""'\-1 11 Rs = Rn. Using the concepts of the sheet resistance 1 end the 1 square : (19) 80 Rt ~ 0 .6,Rn + 3 .ORn + 0 .4Rn (20) and finally -./ , Rt = 3.8Rn (21) 39 1/ L ·---lr=.::.::---~-· - i ' '1\ a I b ------i"\-- :-.. I I ' 1 K :::: 0.8 A) ' I ' I I ' KH I ' ~--IlL..------·-'·_'_,--"!I l_l_ -1 r-- 3 (W •· KH) 1---;:------T,--lf-~:_h\. a b I c \ \ L == H B) I \ K = 0.8 I FIGURE 11.~: Cat-'.!PAR ISON OF THE SENSITIVITY OF STRAIGHT AND L-CUTS TO K 40 Notice that under :i.dentical conditic;ns trimming a distance of (1.- K)W \vith the straight cut would increase the resistance from 2Kn to oo • However trimming three times this distance ( 3 (1 - K)W ) only increased the resistance. from 2Rn to 3.8Rn. Now examine what ~muld ,happen to the resistor in Figure 14 if the L-Cut was continued all'the way to the conductor. This is shown in Figure 15. In Figure 15 the total resistance is: Rt = Ra + Rb (22) as before Ra ~ 0.4Rn (23) (23) nmv Rb = Rs * 4(W - KW) = 4Rs (24) <1- K)W since L ·-- W Rb = 4Rs = 4Rn (25) and finally Rt ~ 0.4Rn + 4Rn = 4.4Rn (26) This example shows the basic limitation of the L-Cut. Using an L-Cut the final resistance can only be a few times more than the intial resistance. It is true that a large final resistance can be achieved if the value of K approaches one. However a large (near one ) value of K creates. two problems. First. there is the:danger of overshoot when making the trim. Second ·as,K approaches one the resistor may be cut too narrow to carry a required current. In practice K is often limited to about 0.6 or less. To summarize, it TI · a l b r ,.i..------·-·~ .·· :------~- KW tc.:l(----4(vl - KW) ·--- 1 I _J__L __. ~ L ~ . L =' W · FIGURE 15: L-CUT TO GIVE HAXIHUM RESIST/>.J~CE 42 L =:= \.J K = 0.8 I I I L_l_~ A --r I .5 1 1 ~l1 1 .4 .4 1 1 1 1 1 1 ---- -'i . 1 . sl L ___j -~- B FIGURE 16: RESISTOR TRH1MED WITH A S.ERPENTINE CUT 43 is often difficult to achieve a large increase in resistance by using a s~raight cut or an L-Cut~ in these cases a serpentine cut is used. Figure ~6 (a) shows a resistor that has been trimmed \-Jith a serpentine cut. Figure 16(b) shows the resistor portioned off so an approximate value for its resistance can be calculated. Counting the squares gives a value for Rt of about 12~8Rn. To sununarize the results of the different types of trims with a K of 0.8, the straight cut gave Rt "' 2Rn, the L-Cut gave Rt = 3.8* Rn, and the serpentine cut gave Rt = 12.8Rno These ratios will change for different resistors and for different values of K but the order will remain the same. In general, when only a slight in crease in resistance is needed a straight cut is used, vhen a mod erate increase ~s desired an L-Cut is used, and a serpentine cut is used '\\7hen a large increase in resistance is required. APPLICATION OF THE HICROCm1PUTER TO LASER 'TRJ:t--1HING This chapter will first describe the original, manual laser trimming system used by the Hicroelectronics Branch. Next the system and circuits of the new~ automated laser trinlming system will be discussed. Finally the software used in the automated trimming system will be described. Figure 17 shows a block diagram of the manual trimming system. To trim a resistor the operator would first position the probes on the conductors adjoining the resistor. This would be done by hand. Since the probes are like sewing needles and the condu~tors might be as narrow as five mils, positioning the prcbes wotild be a very painstaking, time consuming proeess. Next the operator \·muld measure the resistor with the ohm meter. By knowing the present value and the desired value of the resistor the operatol' \vould decide what type of trim he needed to make. If he JAranted to make an L-Cut he would have to specify where the corner of the L-Cut would be. Xhe operator would calculate this using a nomograph along with information such as the maximum allmvable K and the sheet resistance. The nomograph >vould give the percentage of the final desired resistance at w·hich the trim should turn the corner. If he was making an L-Cut the operator would dial this percentage into the monitor. Also the operator would dial the final desired resistance into the monitor. TV CAMERA TV MONITOR --~ 1/ I/ ,----- .-f'------1 LASER / J CONTROL UNIT f'ROBE PROBE RESISTOR MONITOR -----·~·---·------1-- FIGURE 17: THE MANUAL LASER TRH1HING SYSTEtvJ li-6 After the operator had decided the type of cut to make and its direction he would punch this information into the controlling unit. For example, he might punch in that he wanted to make an L-Cut that started ou~ in the+Y direction a~d then turned the corner and went in the+X direction until' the final resistance value was reached. Next the operator would position the laser on the resistor. He vlould use the TV monitor and camera to do this. The intersection of the crosshairs on the TV monitor corresponds to the position of the laser beam and the TV camera shows the resistor. The operator 1 ines up the crosshairs ,.,here he '"ants the laser to start: the trim. Finally the operator is ready to start the trim. To do this he pushes the appropriate button on the controlling unit. If a straight or L-Cut is being made the trim will be completed auto matically and the laser will be turned off when the resistor reaches its final desired value. If a serpentine cut is being made the process is slightly more complicated. The operator sets up the system· as if he was making a straight cut. However after starting the cut he stops the trim manually. The operator then sets up to make another straight cut from the oth0r side of the resistor. He starts this cut and again stops it marn1ally. The operator continues making straight cuts from alternate sides of the resistor. He stops these cuts manually until the final desired resistance value is reached. When this ~appens the monitor will stop the trim automalical)y. Trimming resistors using a manual system like the one just described is a very time consuming process. Using an automar:ed 47 trimm:lng system provides e.great saving of time and a corr·esponding saving of money. For example a Collins Radio group w·as using a manual trimming system to trim an integrated circuit that had thirty resistors on it. Using a manual trimming system they \ve-r·e spending about three hours trimming these resistors. Eventually they switched to an automated trimming system; With the automated system they spent five minutes trimming the identical integrated circuit. Tl-.e source this information came from did not describe the type of automated system Collins Radio was us1ng.• E, However there are only tv10 types of automated laser· trimming systems commonly used. These two types will be discussed at the end of this chapter. A block diagram of the automated laser trimming system is shown in Figure lB. The microcomputer shown is used to control the rest of the system. This is the same microcomputer discussad previously in this report, The controlling unit shown in Figure 18 is almost the same as the contn~lling unit used in the manual trimming system. The con- trolling unit for the automated system is_ the same as that in the manual except that its switches are not closed manually. Instead of having an operator pushing buttons, the switches on the auto~ated controlling unit are controlled electronically by signals from the microcomputer. The automated controlling unit enables the micro- computer to position th~ laser beam, to select the type o~ cut, and to start and stop the cut. The laser and the resistor would be the same in both the auto- mated and the manual trimming systems. 48 MICROCOMPUTER E:~NC~ CAR-;-~ ~ _L__ , l REL,AY HATRIX j---·------r-~~=~ ,t-----t--1 c:~~~ ~---- r TTY L-·------· FJ.GURE 18: THE AUTOMATED LASER 'Il'.Uflv!ING SYST:SH ., 49 The prasence of the probe card is a major difference between the manual and automated laser trj_mming systems. The probe card con sists of a printed circuit board with a hole cut through'it. The hole is slightlf larger than the integrated circuit that is being trimmed. Numerous stiff wires.are mounted along the edge of the hole. These wires extend toward the center of the hole. The wires are positioned so that •N"hen the probe card is lowered over the integrated circuit the wires will make contact with the conductors that adjoin all the resistors being trimmed. Conductors ·r:un from the stiff wires to the edge of the card. A drawing of the probe card is shown in Figure 19. The probe card is mounted in a socket that is attached to a jig. The socket makes electrical contact with the wires on the probe card. The jig enables the probe card to be raised and lowered over an integrated circuit. The stiff wires on the card make contact with the ends of each resistor that is to be trimmed. By connectting an ohm meter to the appropriate contacts at the edge of the card it would be possible to measure or monitor the value of any one of the resistors. The relay matrix serves to interface the probe card and the reference ca~d with the monitor and the ohm meter. The relay matrix consists of 64 relays that are controlled by the microcomputer. These 64 relays are divided into two banks, Bank A, and, Bank B, each consisting of 32 relays. B~nk A serves to connect any one of 32 piobe card contacts to a common line. Bank B serves to connect any one cf 32 reference card contacts to this same common line. This common line is connected to both the motdtor and the ohm 50 . ( FIGURE 19; DIAGRAM OF THE PROBE CARD 51 meter. Figure 20 shows·how the relay matrix is connected Figure 21 shows a schematic of the relay matrix. The values of the resistors on the reference card are equal to the fin§l desired values of th~ corresponding resistors on the integrated circuit. That is, Rn1 is to be trimmed to the value of Rref1: Rnz ta Rre£2, etc. The reference resistors are discrete pre- cision resistors. A custom reference card must be prepared for each different integrated circuit that is going to be trimmed. To see the significance of connectting the resistors to the plus and minus power supply voltages it is helpful to examine Figure 22 and Figure 24. Figure 22 shows the ohm meter. The ohm meter con·- sists of a buffer amplifier and a analog to digital converter. The AID .converter converts the voltage E to a digital form so the microcomputer can interpret it. The microcomputAr al read.y kno<·lS the voltage V and the resistance of Rrefx. Using the quantities E, V, and Rrefx the microcomputer can calculate the value of Rnx as follows: I = E- (-V) (27) Rref Rnx - +V-E {28) I The microcomputer uses the ohm meter to measure the value of Rnx far tHo purposesc First the microcomputer must decide whether to make an L-Cut or a serpentine cut. This deci.sion is bas'ed on the following derivation. Figure 23 shows a resistor that has been tri.mmed using a L-Cut. 52 TO MONITOR AND OHM NETER ~:--- l'I J J II I REFERENCE CARD I I BANK B :L_ __ ,...., -V Rref ~ I nI . RELAY 1 ~~- r- FIGURE 20: DI.AGRAH OF. THE PROBE CARD, THE REFERENCE CARD, AND THE RELAY HATRIX 53 +12 74154 ------l- ~-1~ l/0 PORT TO PROBE j_ CARD '-~---- BAl'lK A OF RELAY HATRIX .....:;). ABCD 4 ~~-t-r:-·- ~CD I/0 PORT -t Gl 1 G2 L____ f- .__ ___..J - - BANK B OF RELAY MATRIX FIGURE 21: SCHEMATIC OF THE RELAY HATRIX 54 MICRO- -fC0~1PT~T~~\ lAI-D -- I/0 I E__ J CONV. PORT l l ---1 L_ ---~t_____ ...... ,..._.... ___ I. --~- ... TO MONITOR. _v . HE OHV . FIGURE 22: DIAGRA"l. OF T il HETER 55 B lI -T""''. I "" r . -·~ ·---'----'---·~~ [ --·-----1---·~ I I ' ' I r~~ O.SL---=i FI,GURE 23: THE L -CUT (29) ' Rmax = 0.2ln{ 1 )Rn + ~~Rn ~ \:l-K 1-K Assuming a maximum K of 0.5 Rtnax = lv 9 Rn That is a resistance can be increased 90% hi using an L-Cut If a greater increase is required a serpentine cut must be used. To allow for a safety factor; If 1a3 Rt ~ Rmax then the microcomputer would make an L-Cut. And If l. 3 Rt ?: Rmax then the microcomputer would make a serpentine cut. The microcomputer uses the ohm meter to measure Rn, then i~ ca~culates Rrna21:., Fina1ly it compares Rt to Rm8x and decides v:hat type of cut to make. The microcomputer does not make provision for making a straight cut. lf the resistor js such that it could be trim~ed using .56 JRnx ~ E .>- j -l TO STOP TRIH ~----~ __u_r_P_P_E_R---~~~~~------ FIGURE 2l:: DIAGRAM OF THE MONITOR 57 a straight cut the microcomputer will calculate that a L-Cut should be used"to trim the resistor. The system'would start to make ~n 1-Cut but the final., desired resistance \ The. second purpose o·£ the ohm meter is to serve as a check. After the resistor is trimme'd the ohm meter is used to measure Rn again. The microcomputer then makes sure this value of Rn is within the r~quired tolerances. Figure· 24 shows the monitor circuit. Amplj_fier Al is a buffer amplifier. At the start of the trim Rrefx is larger ~han Rnx! there- fore the voltage E is positive. When Rnx is greater than Rrefx E is negative. Amplifier A2 serves as a zero crossing detector for E. Wben the two resistors are equal E will be zero volts. Ther1 the output of A2 \vill jump from +Vsupply to -Vsupply. This 1>ignal is clipped to TTL levels by the clipper circuit. The output of the clipper circuit stops the trim. A schematic of the clipper circuit is shown in Figure 25. +Vsupply is clipped to five volts and -Vsupply is clipped to zero volts. Vz ;:: 3.6 VOLTS 10 K Vin o-;/\/'vl\._ __,~-i !'-""' Vo --~[~ 910 ..n.. 13 K "--~~-v\fV...... _;_---·D + 15 VOLTS ~ 1 Vo FIGURE 25; SCHEMATIC OF THE C1" IPPER CIRCUIT 58 The te:t etypewriter sho1im in Figure 18 enables the operator to give the mic;:ocoinputer the information it needs to trim the resistors. Next the complete automated laser trimming process will be described. As a preliminary step the operator places the integrated circuit in a jig and lowers the probe card over it. The rest of the trimming process can be understood by examining Figure 26. It shows the flowchart of the program that controls the automated laser trimmer. As shown in Figure 26 the operator would first use the TTY to give the microcomputer the data concerning the integrated circuit. This data would consist of the position of the resistors, the values the resistors \vere to be trimmed to, and how far each resistor could be cut J.nto (the K in equation (10) ) • After it had this data the program would determine if all the resistors had been trimmed. If so, the program would stop. If not, the appropriate contacts (on the probe and reference cards ) for the next resistor would be selected. Then the ohm meter would be used to meas~re Rn. If Rri was greater than Rt: an error message would be typed. If not, the micro computer would calculate Rmax and 1.3 Rt. As described previously if 1.3 Rt \vas less than .Rmax the system would make an L-Cut. If 1.3 Rt was greater th~n Rmax the system would make a serpentine cut. If the microcomputer decides to make an L-Cut it would first position the laser and select the direct ion in vlhich the cut would be made. The microcomputer would accomplish this action by grounding the appropriate pins on the cGntrolling unit. The controlling unit 59 IREAD DAI'A --] ~r /------·------ [~~ST R? J YES ~~TOP . -~ !""~PROBES ·~--- 1 C~~1P ARE R -~ _BAD ~ ERROR =.J L- CUT I SERPENTINE CUT Es~~ FIND CORNER J ~-s =~J r;_,URN CORNE;-1 ~~ r;:OP CUT I MONITOR STO~ ~ES-f-~K? l I L ___j Noj I vis I J ~ I ·:=J· YES~ NO·-{; MAX CUTS IHADE? I I ERROR . J ---~- ~0 --,---1 --- I \!. ______l ~s I ERROR I IERRC;- I ~------I I __j FIGURE 26; FLOWCHART OF THE AUTOHATED TRU:!MING SYSTEH PROGRAM 60 was constructed by the "factory so that the same functioh that was performed by pushbut:tons in the manual system could-be performed by TTL logic v~vel s in an automated system. TTL levels could be used directly to control some functions. For other functions TTL levels ,.muld be used to trigger relays that bypassed certain switches. The integrated circuit is considered to be tovered by a grid. This enables the positions of the resistors to be specified by X-Y co-ordinates. The laser beam is positioned by stepping motors. The stepping motors are controlled by pulses from the controlling unit. These pulses are counted by the counter circuits shmvn in Figures 27 and 28. The outputs of these counter circuits give the micro computer the laser beam position in terms of X and Y. By monitoring the counter circuits the microcomputer can locate the laser beam accurately. The digital comparators in Figures 27 and 28 are used to prevent the laser from cutting to far into the resistor. The microcomputer calculates the limit of how far into the resistor the laser can trim. This number is given to the 'b' inputs of the com parator. The comparator will indicate when the corner will be turned 't7hen making the L-Cut. Now the system starts the trim. In some cases Rt is reached before the laser turn~ the corner. In this case the monitor in Figure 14 will stop the trim. In other cases the comparator shown in Figure 27 or 28 will cause the laser to turn the corner ( via 1 ine A or B ) • Then the monitor will stop the trim 'vhen the resis tance reaches Rt. Next the ohtn mP.ter j_s used to measure the resistance. If the resistance does not equal Rt ( within tolerance ) then the micro~ 61 ~------·----~--r---1 4 ·:_t PORTINPlJ1:J' -X =0- r-~~-~ +X. . . PULSE INPUT FROH CONTROL UNIT lrouR-h r/DOWNCOUNTERS I .BIT __ OUTPUT ' 4 PORT 4 DIGITAL COHP. :J L--r- I . I I 4 1-:--- 4 OUTPUT PORT I 4 4 B "------~ TO INTERRUPT PRIORITY UP OR DOl-IN CIRCUIT SFLECT FROH CONTROL UNIT FIGURE 27: DIAGRAH OF THE ±X DIRECTION COUNTER 62 -~--+--lr--·--. 4 INPUT ' PORT --·--·---L-. ' PULSE INPUT FROM CONTROL I UNIT UP/DOWN--· FOUR COUNTERS BIT r TP~~T J ---1---J ou .J. PORT 4 1 JI -1--~ 4 4 l____ j ---1-- L_ : --~- -- l_--·------:7 TO INTERRUPT PRIORITY CIRCUIT UP OR DOHN SELECT FROH CGNTROL UNIT FIGURE 28 DIAGRAM OF THE ±Y nB.ECTION COUNTER 63 computer prints a error messagee I£ the resistance does equal Rt ( within tolerance ) then the program loops back to determine if this was the last resistor to be trimmed. Had the microcomputer decided to make a serpentine cut instead of a L-Cut (that is.if 1.3 Rn had been less than Rt ) then the pro gram would have taken the following steps. First the laser beam \Wuld be positioned using the counter circui~s and the comparators. Next the limit on how far the trim could go into the resistor would be put into the comparator. Then the trim would be started. 'This trim would be stopped by either the comparator or .the monitor. If the comparator stopped the trim then the microcomputer would determine if the maxirnum number of cuts had been made. If not, then the laser be.am would be repositionP.d and another cut would be made. If the maximum number of cuts had been made, then no more cuts could be made witlwut cutting beyond the limits specified for the resistor. Since the resistance would not equal Rt an error message would be printed. If the monitor stopped the trim then the ohm meter would mea-· sure the resistance. If the resistance was not equal to Rt an error message would be printed. If the resistance did equal Rt ( within tolerance ) then the program would loop back to determine if this was the last resistor to be trimmed. It should be mentioned that there are two alternate methods used to interface automated laser trimming systems to the resistors that are to be trimmed. One way is to use a probe card and a switch- ii:,t:; matrix as v1as done for tlns project. The other common ~vay is to 64 use only two probes and have them positioned by stepping motors anywhere on the integrated circuit being trimmed. The second method is more versatile than the first. Using motorized probes .also elim inates the need for a probe card and a switching matrix. The second method has the disadvantage that extreme precision is required in constructing the motorized probe-assembly. The first method has the advantage that even if the microcomputer is dovm s the probe card and switching matrix cen be used manually. This \vould cut the trimming time in half compared to a completely manual trimming system a Neither automated system would require the television monitcr and camera ( although it would be desirable to retain the television system as a back-up for manual operation ). Both automated systems would require about the same amount of memory (12K ) to store the trimming program. Because of the difficulty in constructing a sufficiently accurate motorized probe assembly it was decided to use a probe card and switching matrix system in this project. This concludes the discussion of the first project. It is hoped that satisfactory introductions to both laser trimming and automation ( via microprocessors ) have been presented. The description of the second project ( radar error correction in real time ) begins in the next chapter. RADAR ERRORS AND THEIR CORRECTION Electronic, mechanical, and environmental effects introduce errors into radar systems. These effects can cause errors of 100 fe.et or more in the location of a target. Fortunately it is possible to compensate for these effects, and improve .the accuracy of the radar data by an order of magnit~de. In the late 1960's the Joint Range Instrurr.entation Accuracy JJ!l!xcovement Group ( JRIAIG ) was formed to identify and correct 1r.3jor radEr errors. This group was composed of both government and industry representatives. They formulated a list of SO significant radar errors ( errors estimated to be greater than . . ten feet in range or ten arcseconds in angle ). This group c:lrso derived a set of mathematical expressions which indicaLe how to 7 compensate for most of these errors. In tl1e present system at PMTC the uncorrected data is stored as it is generated by the radar. Later a ~omputer is used to apply the error corfection equations to the raw data. This project proposes to use a microprocessor system to ap~ly the radar error equations to the raw data in real time. Having radars that employ error correction in real time '\vould be useful for programs that require accurate positi0u information during or immediately after an operation. Real time radar error correction would also enharice such systems as the Sensor Positioning 8 and Reed back System ( SPL'.KS ) at the Pe.cific l1issile Test Center. 65 66 SPARS iG a communication netvmrk that takes date. from a radar system &nd distributes it to the computer and tq other radars. SPARS is often 11sed .to slave one radar to anoth~r. The ~aster radar locks on a target and then transmits the position of the target to the slave radar. The slave radar then uses this information to lock on the target. If the data from the master radar is inaccurate ( uncorrected ) then the slave radar might not be able t~ find the target. Correcting the data as it leaves the master radar increases t6e chance that the slave radar will be able to lock on the target. Equations (32), (33), and (34) shovl the radar error equations for range, azimuth, and elevation respectively. These equations are one of the major results of the JRIAIG study. Appendix D contains the definitions of the symbols appearing in the error equations. b,R = r 731 (BW)R(t) + r 732 CBH)R(t) + r 435 CS/N) + r '~35 (S/N)2. + (R/C)R (t) + r 133 CosE*SinA + r•133 CosE*SinE + r"r3 ~ SinE+ r 712 + rt,31 + (32) D.A= a 11 ',.:HA(t) + (a 221 SinA- a'?_ 2.1 CosA)TanE + (K ) K2.Cos (2A-f·¢z.) a 431 TanE + 1 Cos (A+¢1 + + K_;,Cos (3A+¢3 ) + K:6 Cos (16A-t-s0 16.). + K32. Cos (32A+ r}:rz) + K~s.Cos(48A+¢.._: 6 > ) + a2.:nSecE + a 2 &1 + a~n'l + (a 131 CosA + a'.!31 SinA)*SecE/R + (a ~:n Si nA - a '137 Co sA) -;~,TanE (33) 67 b. E = en Ht2.E(t) + e;:n.. l.SinA + e'2.1..2. CosA + e s;uCotE + (K Cos (E+y\ ) -l· KLCos (2E+ + K Gos (3E+¢ ) + 1 1~) 3 3 K 16 cos ( 16E+ ¢ 1c) + K37_Cos (32E+¢,n) + Klf8Cos (48E+~'IB ) ) + e~n, 1o (34) WfiERE R -- UNCORRECTED RANGE A -· UNCORRECTED AZU1UTH E = UNCORRECTED ELEVATION The values of the three computed errors,oR, I~A, and 4E, are used in equations (35), (36), and (37) to calculate th•'" corre.:;t values of the range ( Rc ), azimuth ( Ac ), and elevation ( Ec) respectively. Rc = R + ~R (35) Ac ::: A + l':.A (36) Ec - E +.6E (37) It is possible to measure the values of all the coefficients sh~wn in the error equations. Some of these coefficients are relatively stnble. For example it is necessary to measure i:he 'encoder Q coefficients ( see Appendix D ) only monthly or bimonthly.' Other coefficients must be measured within hours of the radar operation (for example, the mislevel coefficients ). 68 A microprocessor system thac could provide real time radar error correction is introduced in the next chapter. ' l. THE ERROR CORRECTION SYSTEM Figure 29 shows how SPARS is used to interface with a radar system. SPARS uses the Direction Data Line to tell the radar where to look for a target. By transmitting a pulse on the Interrogate Line, SPARS readies the radar to transmit data. Then each time that SPARS transmits a pulse on the Shift Line the radar will transmit one bit from the Range R ), Azimuth ( Az), and Elevation ( El ) Shift Registers. SPARS has a maximum interrogation rate of 40 PPS and a maximum shift raLe of B,OOO PPS. A timing diagram of the r~dar and SPARS interface is show11 in Figure 30. The radar is capable of transmitting the contents of it's shift registers at a rate of 100,000 PPS. Thus if SPARS was operating at it's maximum rate ( 40 PPS ) a microprocessor system \·muld have 25 milliseconds to receive the radar data, correct it, and transmit it to SPARS. Figure 31 shows a corresponding timing diagram. Figure 32 shows a diagram of the real time error correction system. The .microcomputer uses TTL compatible logic levels while both the radar and SPARS use logic high of 30 volts and logic low of ze1:o volts. Interface circuits are needed to convert the radar and SPARS logic levels to TTL levels and vice-·versa. w·e have designed the interface circuits and t~ey are shown in Figures 33 and 34. 69 70 INTERROGATE LINE I SHIFT LINE J ~--~ADAR. -1 R -, I 23 BIT SHIFT REGISTER rc;~E;--~ T ~,_,;1 RADARS I ~-.,.,..,...--....,,_, AZ 17 BIT SHIFT REGISTER SPARS A~~~---·--·l - {OMPUTER I EL -----' 17 BIT SHIFT REGISTER I .~-- ___ .. ~ ---.. -·r-- L. __l _ _j L__~_ ... __ ___._.._.._- DIRECT).ON DATA LINE FIGURE 29: PRESENT RADAR/SPARS INTERFACE 71 U:..IE---· 25 MSEC .-1 INTERROGATE 1._ __,J_~ PULSE LINE -~ .r 0.125 MSEC SHIFT PULSE LINE _JLAMJA -·--/f·-l .--23 PULSES l t 2.9 HSEC ~ R LINE __nr ~,r----/ -~!}·----~ DATA AZ LINE -~--ILJl_-1/---?- i r- 23 BlTS ~ I ll 1 I EL LINE _n L -. L 1;---l L-rJ--_-)> FIGURE 30 TIMING OF THE RADAR/SPARS INTERFACE 72 25 HSEC INTERROGATE PULSE LINE FROH SPARS TIHE REQUIRED FOR THE RADAR TO TRANSFER DATA TO THE MICRO PROCESSOR SYSTEH = 0.25 HSEC ...__ ;:: 21.75 ---'<1 :tv! SEC TIHE AVAILABLE TO APPLY TEE ERROR CORREC'J'ION EQUATIONS TIHE -· REQUIRED FOR THE HICROPROCESSOR SYSTEH TO TRANSFER THE CORRECTED DATA TO SPARS FIGURE 31: TIMlNG OF THE RADAR/MICROPROCESSOR SYSTEH/SPARS 73 E-< H ;:::> u p:; ~-l ROP!\.OCESSOR u SYSTEM ~ ~... _j, ___,__, ~ ll I . I ~ L-~r+J~·---r-c'-~-±~t-.- J -1·~ L_ ___ I LJ J L ----·---·:;. <4 ~ N ~ t:::._. ______·-~-·---~·- ~") . FIGURE ._} .:.. " REAL TIHE RAD1\R ERf~OR co:<.RECTION SYSTEM 74 +30 v +5 v 27 K 1 K Vin _f' Vo -1.--)C>~-o ~/ CMOS CD L1009 -1~ 4. 7 K I =----~---·--<--~--·-J.1 SYMBOL ' Vin --~::~~~ Vo fiGURE 33: 30 VOLT TO FIVE VOLT, ZERO VOLT TO ZERO VOLT CONVERTER '"I- +30 v ] K S1o/ Vin Vo 0 <("-> 51 470 I I ~- ~ --l SYi'1BOL Vin FIGURE 34: 5 VOLT TO 30 VOLT, ZERO VOLT TO ZERO VOLT CONVERTER 76 Sh~ft registers are also used in the interfaces to transform bet.ween the parallel form of data in the,microproceessor and the serial form of data in SPARS and the radar system. Thus serial-in, parallel-out shift registers are used to transfer data from the radar to the microcomputer, ?nd parallel-in, serial-out shift registers are used to transfer data from the microcomputer to SPARS •. Figure 35 shows the interface circuit needed between one radar shift register and the microcomputer. Circuits identical to this one ( with the exception of the Shift and, Interrogate Lines ) are needed at the output of the Range, Azimuth, and Elevation shift registers. SPARS has three inputs receiving the range, azimuth, and elevation data. Therefore three circuits such as.the one shown in Figure 36 are needed to interface the microcomputer to SPARS. However, parts of the circuit shown .in Figure 36 are common to the rest of the SPARS interface circuit. These are the two lines from SPARS, the shift load line, and the Q line from the 7474 flip-flop. The microcomputer would store the corrected values for range, azimuth, and elevation in the three shift.register cir cuits. Signals from SPARS ~vould then shift this data out serially, starting with the least significant bit. The control panel iri Figure 32 has thre~ functions. F~rst it lets the radar operator activate the erroi correction system. Secondly it allows him to stipply the microcomputer with the values of those error equations coefficients that change hourly ( The 77 RADAR. ·---·-·--,r .~~=·~·~~-1~~-- l!f.ll1l:::.!SY~Cif>J~~J~~INff-{i.Zio_}--- ~~~~E~lCROPROCESSOR RADAR _ SHI171~ REGISTER I ,----~--~-... ~TO FAILSAFE CIRCUIT I L--..._. +5 SERIAL- IN 1 y PARALLEL-OUT' J /SHIFT I yf REGISTER , r~1 ~~·~~L. I q '7 SHIFT LINE TO MICROPROCESSOR :;-/Jc Q .... SYSTEH FROM MICROPROCESSOR l 'l SYSTEH TO {)THF:R 7M6l> >S _.j_J C Q' ~~ CONNECTTED TJ Tl:-:!E L~----·-··J OTHER T\\0 RADAR SEIFT REGISTERS FIGURE ~\5: RL\DAR TO ~1ICB:JPROCI~SSOR SYST'•:H :LNTERFi\CE 78 TO OTHER ClRCUrrs USED TO INTERFACE THE HICROPROCESSOR SYSTEH TO SPARS ' FR0!'1 ~------.. -~-· ___J UGl' NICROl:'ROCESSOR 1 · 30 I 5 SYSTEH t' _J.~.()JLIQ..1..QJ.JD_=-~-:;,.[ SHIFT - C:t~ SfllFT HIGH TO (.)UTPUT I LOAD ' :I 'l L TNE . II . J SERIAL IN t~- ~~~s CO-RRECTED' ! 7L~l65 CI ---r·-~ DATA I FROH -_,L.... ;) A TO H QH I< MICROPRO- '8 L______...J . Ct?S~nR I I ~~~{~~ ~ t---~------~~~~!~T-~~ t I I SER hL TN I~,. I CORRECTED 7416'5 CI 1-- I ~~~~ -~~---·"-'\A TO H QHJ-,---~ ~~~?~~~~RocEssoR' s · l 1 l ··' .J.;:}J.. t'~b ! l"7',J-."rl·. --···-·c,_-... 1 I 1 I "t t")lt .lf. 1\. I l , L--··--··----~~----·.:-·· r,-· I I LOAD ' I I P/\RAT,T,G"- IN, SEI~lAL-OUT ~~ SERIAL IN 4--J S!IIFT REGISTER -·--....,~ ,7~165 CI I' ·-· I sno CORRECTEli IJATA FROH ~---·-f....::jt A TO H QH J--·---l~ 'l.-~ TO MICROPROCESSOR SYSTEH 8 ---.----· 1'--' SPARS FROH A i.ow oN THIS LINE ~71.74 FLIP-FLOP ol_l HICROE!WCESSO!<. ------·------·--J CLEP.R ~ SYST.r;:M PREVENTS SPARS 'L l FROM GETT1NG DAT,\ --J?--~·-·-· CLOCK -·--' BEFORE THE HFU I I r-=:=- SYSTEM +5 0-·___j,_- L00-- FRO:tvl SP!JtS Hi\S CORRECTED I'T - INTERROGATE 30/5 , LH\E FIGURE 36: HTCF:OPROcm;soR SYSTJ':H TO SPARS INTERFACE • 79 stable coefficients are sto~ed in PROM). Thirdly it provides feed- back to the operator. Before, during, and after an O?eration takes place, the ·error equations coefficients that w3re being used to correct the radar data would be pri;-1ted. The failsafe system ( Figure 32 ) is used to protect the radar data. If the microcomputer f~iled the failsafe system would bypass the microcomputer and connect the rAdar directly to SPARS. The circuits shown in Figures 37, 38, and 39 form the failsafe system. The microcomputer requires five: MPUs. Every five milliseconds the prog£an~ of eecl1 MPU ger;erf:ltes a pulse. The circuit in Figure 37 detects the rising edge of these pulses and tr~nsmits a pulse to the counter every millisecond if all five MPUs are running prl)perly. The second building block of the failsefe system is shown in Figure .38. After eight pulses the BCD counter puts a high on pin CB. However if the MPUs are running properly the output of the Program Monitor Circuit ( Figure 37 ) will contint1ously reset the counter and pin CB will remain low. The Relay Control Circuit puts out lS volts if the MPUs run pcoperly and zero volts if they do not. The Rr~lay System. is shown in Figur.e 39 .. The Relay Control Circuit holds the relays closed rt~hen the JvlPUs run properly. If any of the NPUs malfunctioned the relays would open~ causing the error correction system lo be bypassed, At present) reel-tG-rf::'.el tape recGrders at the ra.dar site are used to store the radar data &s it is generated. These tape 80 TO COUNTER f'IGURI<: 37; PROGRAM HONITOR ClRCUIT 81 OSCILLATOR '( 555 ) OUTPUT L__ -1 ~~<-r--- 200 uSEC JLru-UL .--~rn-;mfuT·.,... A .. RESET FROM PROGRAM MONITOR CIRCUIT COUNTER ( FIGURE 37 ) ( 7ll90 ) INPUT Bil CB CLt C2 Cl --6~-~·. N.C. N.C. r------""}>TO CONTROL PANEL +5 CLR PR-J CLK . . FLIP-FLOP Qf------~. .. ~ 7 4 7 tl_)__ ___.__ ::: __ _j TO RELAYS ~ L.,__ +. 0 K ".J 10 K. ~---~1\;"-o +5 2.5 v FIGURE 38: RELAY CONTROL CIRCUIT 82 SHIFT LINE o---..- INTERROGATE --0--';{)1----+ LINE RANGE DATA AZU1UTH DATA TO MICRO PRO·· - CESSJ.R SYSTEH ELEVATION DATA AZIMUTH ~------~ - ? DATA o--'~ RA!\4GE {)~1~~--~~ DATA INTERROGATE 1------C/--~---·------» LINE FIGURE 39: THE RELAY SYSTEM 83 system. Then even if both the microcomputer and failsafe systems failed the radar data would still be saved by the tape recorders. The next chapter describes the software and the hardware of the microcomputer. THE MICROPROCESSOR SYSTEM The m:Lcrocompnter uould use the radar error equations (32), (33), and (34) to correct tlte radar data. Hmvever these equations are not in their most convenient form for fast computations. It takes muc:i longer ( an order o:f. magnitude ) for E:l microprocessor to multiply or divide than it does to add or subtract. A major constraint on the operation of the microcomputer is the amount of time it has to correct the radar data. Accordingly, an important goal in "'-Titing the system 1 s softr.Ja:ce is to minimiz:; the number o~ multiplications employed. One way of realizing this goal is to re1:rrite the radar error equations into a si:m:.ler form. This J.s shown below in equcitfons (38), (39), and (40) • . 6 R- (Ka + (R/C))*R(t) + Kb*R(t) + Kc + (KxSinA+KyCosA)CosE + KzSin~ (38) WHERE Kx -- r 13 .~; Ky = r'u3 , Kz""' r"t::'>?. .. b A - Kd*A(t) + (Ke+KfSinA+KgCosA)*TanE + (Kh+(KiCosA+Kj5inA)/R)*SecE + Kk + K1. (39) 85 Kd- a 11 't. 1 1 Kg::: -(a :1.2..1+a 131 ), Kb -- a:;L::I3, Ki =:a l?d Kk is available from a look-up table (this will be explained later), Kl = a 2"1 + a S3"i E - Km*E (t:) + Kn*SinA + Ko*CosA -l-o Kp*CotE + Kq"'CosE + ( (K·r:SinA+KsCosA)·kSinE + KtCosE) /R + Ku + Kv (40) vJHER.E 1 1 Km - e\ 1 , 'i?_ , Kn = e;a:.U. + e 1 ~ 8 Ko "'' e ; TT - 1 ' "'I Kr = e 1 ;;:z. ,,s - e 1 "?.7_ Kt - "' 1.37- ' Ku is available from a look-up table (this v-1ill be explained later), Kv = e~b~ + e~3,IO The revised set of error equations are more efficient than the original set. For example equation (32) requi~es eight multiplications. Equation (38) requires six multiplications. Similar savings in n;u1 t:i.plication ( and time ) -would 1.·esult when the microcomputer solved equations (39) and (40) instead of equations (33) and (34). The ;:dc!~ccomputer could also save a gre1:1t deal of time by using look-up tables which increases the amount of storage required. Calculatin~ trigonometric functions using TA.y1or Seri.es or digital approximation techuiques would require large numbers of mult.ipli- cations~Look-up tables for the trigonometric functions could be used instead. To achieve the desired accuracy in data correction, the microcomputer has to use sine and cosine terms with two place .. 86 accuracy. The tangent, cotangem::, anci secant terms used must t)e known ~,;ith three rl.a,~e. acct:racy. Figure hO shows the memory requirements for the trigonome.tric look-up table" This table,would contain fixed decimal point values in BCD representation. Figure 41 shows examples of hov-1 the functions are. rounded off. It also shows the form of the numbers stored in the look-up .table. The cosine terms would be in the same form as the sine terms. The secant and tangent terms Vlullld be stored in the same form as the cotangent terms. The table v.muld not :include tangent or secant ierms larger than ten. • The look-up table v.muld include the valu.2s o£ the trigonometric functions from approximately zero to 45 degrees. Therefore all the nu;nbers stored would be positive.. Branch staten1ents ( see Ap;:-rmdix A ) Hould be used to oetermine the sign of the function, which would be carried through the program seperately from the magnitude. Figure 42 shous a pro~ ram flo~,,chart for accomplishing this. A Look-up table is also useful to calculate the encoder non- linearity terms for both azimuth ( Kk) and elevation ( Ku ). The encoders are circular plates (marked with the Gray code ) thRt ace geared to the axle on which the antenna turns. The encoder nonlinearity is due to the play in its gear system and inaccuracies in its mantifacture. As shmvn in Appendix D the encoder nonlinearity Ls a function of angle. Satisfactory accuracy can be achieved by storing the values of the encoder terms in angle increments of 0.5 degree. Each value would be represented by eight bits. The azimuth ranges from zero to 360 degrees. Therefo~e 720 eight hit 87 EIGHT-BIT NUHBER or MEMORY v!ORDS ENTRIES 1JOCATIONS ------FUNCTION REQUIREl2 IN TABLE ~J?QUIR~~- SINE 1 100 100 COSTNE 1 100 100 TANGENT 2 100 200 COT AN CENT 2 512 1024 SECANT 2 100 200 FIGURE l:.o: MEt·10RY REQUIREHENTS FOR TRIGONONETRIC LOOK-UP TABLES FUNCTION VALUE STORE ------~~--- .. SIN oo<>) 0.5 50 0 ~ SIN(l ) 0.02 02 SIN (6,2e>) COT(3°) ~ 19.1 0191 COT(l4°) ~ 4.0 0040 ,., COT (t~sc') 0.9 0009 FIGURE 41: VAl .. UES STORED FOR VARIOUS FUNCTIONS AND ANGLES 88 FIGURE L~2: PROGRAH FLOY-TCHART FOR HANDL INC~ 'I'HE S lGN OF TRIGONOMETRIC FUNCTIONS 89 r,;•urds \voulG. be stored for Kk. The elevation canges from -10!) to ] ()1)!1. f.T 8\ -'- "0"'- '-~nr ' for reasons discussed in the next chapter th0 error () <} 0 correction·system could only be used between -10 to -1 , I to ,0 0 {\, .. b1' ' 8 ·-1 ' __.o t.o 17_ 9<1 , and 181° to 190" • 'Tl1ere f.ore, 3bo~ '" eJ·.. ght" t~. V{oras Hould !Je stored for Ku. Figures 43, 44, and 45 ~how the ~agnitude of the coefficients U;l~ used in the system's error equations. These figures also .stow the number of si;_;;1if:!.cant digits that the microcomputer would need to compute the error equations accurately. There is a subroutine in the Hotorola H:i.cro~rocessor Applicat:i.ons Hanual that mul tipiies two BCD numbers. This program can find the product of a one-digit number by a t>vo-digit number in two milliseconds, the product of. t>vo t~,'o-digit numbers in three milliseconds, and t1te product of a three·-di.g-r.t: numb2r by a five-digit numbr>.r in f:i.ve milliseconds. Since the number of digits in the error correction equations 1.s kno>m it is possible to estimate the total time required t(_' solve the error correction equations. This is shown in Figure 46. As s~Jwn in Figure 31, there are approximately 22 milliseconds between interrogation ~ulses available for calculations. Sinca our estimate indicated that 77 milliseconds would be required to solve the er-cor equations, dt least four HPUs would have to be used. When we include the time used to access the look-up tables, find the ta~get 1 s veloeity anj acceleration~ and for ovPrhead, we esti.m.:~te that another MPU -vmulcl be needed_. Figure 1"7 shovJs the quantities that each of the .five MPUs would be computing during each time period, 90 SIZE DIGITS ----·------COEFFICIENT ·---- Ka 0 .OOOl.J. l R/C. 0.028 2 R (t) 6000 YD/SEC 2 ..Kb 0.1 2 R(t) 2.000 YD/SEC~ 2 ') Kx 99 YD "- Ky 99 YD 2 Kz 99 YD 2 K:.:: 200 YD 3 FIGURE liJ: SIZE AND NUHBER OF SIGNIFICANT DIGITS REQUIRED FOR THE RANGE COEFFICIENTS 91 COE.FFICIENT SIZE ----DIGITS Kd- 0.0002 2 A(t) 800 NIL/SEC 2 ...v,e 0.25 HIL l Kf 0.5 NIL 2 Kg 0.5 HlL 2 Kh 0.25 l1lL 1 1/R 0.01 2 Ki o.s MIL 2 K'J 0.5 HIL 2 Kk 1 MIL 3 Kl 1 .l.LM''T.• 3 FIGURE Ltl<: SlZE AND NUHBER OF SIGNIFICANT DIGITS REQUIRED FOR THE AZI11UTH COEFFICIENTS 92 COEFFICIENT SIZE DIGITS -·----~-- --- Km. 0.0002 2 E (t) 800 tilL /SEC 2 Kj_n 0.5 MIL 2 Ko 0.5 MIL 2 Kp 0.25 HIL 1 ---qv 0.5 MIL 2 Kr 0.5 HIL 2 Ks 0.5 MIL 2 Kt 0.5 MIL 2 1/R 0.01 2 Kn 1 MIL 3 Kv 1 HIL 3 FIGURE 45: SIZE AND Nm1BER OF SIGNIFICANT DIGITS REQUIRED FOR THE ELEVATION COEFFICIENTS 93 TIME TO CGHPUTE ( IN HILL ISECONDS ) c (Ka+R/C)-i:R(t) 3 Klp' (KxSinA+KyCosA)CosE 9 KzSinE 3 SUHHATION OF RANGE TER.i1S 1 . Kd*A(t) 3 (Ke+KfSinA+KgCosA)TanE 10 (Kh+(KiCosA+KjSinA)/R)SecE 13 Sm.!HA'l'ION OF AZIMUTH TERHS 1 3 KnSinA 3 KoCosA 3 KpCotA 3 KqCosE 3 ((KrSinA+KsCosA)SinE+KtCosE)/R 15 SUNHATION OF ELEVATION TERMS 1 TOTP..L 77 FIGURE 46: TIME REQUIRED TO CALCULATE TilE RADAR ~~RROR' TERJvlS 94 HPU TIHE (HS) w '. u KbR(t) Q) C/) p:; I ~ Ul I .., f;.l I! ~ ~ + ~r·J'~ FIGURE !+7: HPU DuTIES 95 Figure 47 shows t~at a great deal of interaction b~tween the f:i.ve Wr?Us ';Joul.d be required. For exaiuple, HPU #5 would be distri- buting the values of the'trigonometric functions to the other HPUs. Figure Lf8 shows the extent to which the design of interface c:i.rcuits between the different MPUs has been completed. The micro- computer. would also need additional l/0 ports to interface with the radar, the control panel, and SPARS. Each MPU system in Figure 48 would require from 2K to 4K wo~ds of PROi-1 to store the look--up tables and the error correction program. Each HI?U system 'l'lOuld also need se·.;eral hundred words of RAM for interfac:~ng and for scratchpad memory. 9G ,--~------~ I 1 ·-;=~=.-~-==~-ll ~ =~~i i ~~~~ ~---______:~_! I ,- ~ ~~~~ MPU ill i ~~~:~ ll I I I l l~-~-----·-=---~~-~ __1I PORT o POiZT Ii I I HPU ://:2 I . I ,-~-- -·- 0 PORT I PORT ' ----1"·-----~l l 1 ..---i---, 0 PORT I PORT • ~---~'---· · j I -LI 0 PORT I PORT * . I I I l I I i I ______jl ' l I I I, ,. I I '~~----·--·--·-.1 I II I I , L~~ i ~~~i . ~ ~~~~ r-_j 1 1 1 I I I - MPU if 3 • I I I I o ~o~! * P~R:· I -1 I I I i I 1 I L' ,r--··-·---·------·-·---~--- , I I I .lI I J I -1 I PORT 0 PORT ~-1 L I 4 L_l I PORT MPU # 0 PORT 1-- J l L______J I PORT _0 PORT ~-_l------1--~1 .--I () PORT I PORT I l - 1 1. L,------j' I i ~~ l PDR'f ~ I___ J; I POf:1' 0 ElRT i I 0 ' L H U 1-If-') .- -~·----~ I PORT ·- t_ 0 !>Or<.T ~---·-,.--.. -- I l.~~"~·-·~---·-·~-~~L~ORI ----·----~:.J-·----·--- -~-J F IGURF. •'f.S: PORT INTERFACES BEHJEEN THE Ml'lJ' s LIMITATIONS AND ACCURACY It was mentioned earlier in this report that the error correction systeiT could be used only at certain elevation angles. This limitation is due to the tangent, cotangent, and secant te;_·ms in the radar error equations. As the elevation approaches zero nr 180 degrees the CotE tF~rm in equation (40) gets very large. As the elevation approaches 90 degrees the TanE and SecE terms in eqw:;tion (39) becom~ very large. Because of the size and rate of increas~ of these functions, it \vould be difficult for the microcomputer to tlcc:urately d<~i:ermine their values. It would also be difficult for the micro- computer to use these 1 arge 1rwnbers in sol vi.ng the error equ:::t ions, Fortunately. it is extremely rare to us0 R radar near d ninty deErEe elevation. Radars are also seldom UEed at elevatio~3 ertremely close to zero or to 180 degrees. However it is not uncommon to cs::! radars at elevation angles of one or two degrees ( or 178 to 179 degrees ). In order to save memory and computing time, the real time error correction system would only te used in the following ranges: -10 to -J degrees~ 1 to B4 degrees, 96 to 179 degrees, and 181 to 190 clegrees. If the elevation should ever fall outside of these ranges the radar data ~·Joulr! pass through the systr~1n t,Jitho~t being. corrected., Th:i.s dElta could possibly be corrected by Lhe main comrn1tf::r aftm:· the operation. However, it is li_kely to be so ino.ccura~e as to be beyond correction. o-, -'I 98 Figure 49 shows an estimate of the inaccuracy in each error eqLJat:ion i.:enn af!:e1.· its correction. The ~umulative error is equal to the square root of the sum of the squares of the individual er1:orsc Therefore the curnulat;Lve errors are: JC-..1 r-- ---.. CUMULATIVE RANGE ERROR =I'~')J ..) +15• + 1 + 1 ~ 3. 7 YARDS ,------~--~- ~"""\ CUHU:LATIVE AZIMUTH ERROR ?:. \/12 + 2 + 2 + 3 + 3 ~ 13 II (42) ._.....,.,._--~·-~--·~---,., CUHULATIVE ELEVATION ERROR ~ J 12 + 2 + 2 + 1 + 1 + 3 + 3 .. ,.. 13 II (43) These er1:or 0stimr:tes are based on using two-place accuracy· for sine aDd cosine functions, three-place accuracy for tangent, cotnngent, and secane terms, and five per cent accuracy in measuring the iarget 1 s velocity and acceleration. 99 EST H1ATED ERROR AFTER ------ERROR ____Er'DATION:£ ______TERH_ CORRECTION ( WORST CASE ) , RANGE (Ka+R/C) "•R(t) 3 YD ' Kb-J•R. (t) 1.5 YD (KxSinA+KyCosA)CosE+KzSinE 1 YD Kc 1 YD AZIJvlUTH (Ke+KfSinA+KgCosA)TanE 2" (Kn+(KiCosA+KjSinA)/R)SecE 2" Kk Kl ELEVATION Km~·E (t) 12" KnSinA; KoC0sA KpCotE 2" KqCosE ((KrSinA+KsCosA)SinE+KtCosE)/R 1" Ku Kv FIGURE 49: ESTIHATED ERROR IN CALClJLATING THE ERROR EXPRESS IONS This report has dealt with microprocessors, microcomputers, and tHo ~reas of the;ir ap~1licatinn. Although the first section of this repor·t concentrated on a specifj_c micrapr;:)cessor, the HotoroL:• 6800 1 most present microprocessors have a si~ilar basic architecture. vJith thiB in mind it is hoped that that section \•lOUld provicle general information to users of other microprocessors as well. As mentioned ea~lier, the microcomputer discussed in the first section has the potential of beini used for a variety of appii~ations. The second sectit'n of this report, '\\7 hich dealt: with the Tl:e first ,,;as to provide a general introducU_()B to a part.ic.nlar branch of electronic technology. The second goal of that section \>WS to provide an outline of how a mf_croprocessor conld be used to control a manufacturing process. The control of manufacturi~g is a vast) -.ri:.:tual1.y untapped, region with great potential as far as microprocessors are concerned. The a~plication of microprocessors to renl tiree radar c~r0r correction 1s discussed in the third se~t:ion, This is truly a state of the art application. This application is very new. The rf.ldur e.;:-ro·r· equations themselves have not b~:c:el! completely defined yet, Some of the newest radars in existance offer some real time t":' currection but not to the extent proposed in this report: This p<~ojcc:t l1as the potential to pi.~ovide a sigr.if:i.c:Aut C•)nccii:.".lt.iC>n 100 101 toward irnprovin~ the capabilities of the rada~s employed by the Pacific Missile Test Center. APPI':~DTX A HC6800 INSTRUCTION SET 102 lC) Co.n)are l\cn;l!rs 1Com:>:cmP!, I'; Comp:l!l!UII, 2's (U.;~J\e) I( ,,Dc.ci;nc:l ... ,,,. /vJiu~!. :.\ Ibdu,ive Of< i b-:reme-r.! I Or. !nr.lusive' Push Data Pull llat> Sh;il l::ft, A.n:hrn~tic ASL ASt. A I ;~SLS I Shft fl:i•Ji'lt,l\:lli"met;c ASfl I ASRA I ASRB l Sh!h Right, Lo:;ic. lSR I lSRA lSHB Ifi::U!:': 1,.-;mlu ST "'' ! STAC I~nt;:r:.cl S:U8A SU88 I ~:'-'br;,:t ,bc'!•l\i. SB/, Sv~.lt'. W!ft"l c.... ,-'{ SBC:"~. I SHCU 'iu1d.~r 1\.crnluz ·r,vi ·; 01-'. Tt'T T.~~t Z~>r~~ or Mi:t•11 I~ I I h:A I i"<;:7A B !?.'r:th If 0\~rllu~ CE'Jr eve 28 ecar1d": lf Ov~rf!11w Set ~vs 129 B;anch if f·lus BPL j2A 4 Brao::h To SubrfJIJfir.!' e>R g-rJ r I Jump Jf;~lP &E 4 .!u:-.1p l :J S·1broutifl£' jSR i\0 8 No Opera1ron NOP Rerum From lnt!i!rrupt r.n APPENDIX B HOTOROLA HC6800 CIRCUITS 105 106 +5 +5 +5 +5 FIGURE I: HOT'OROLA !'iC6800 CLOCK 107 +5 J. "><_,1.3 K ___[ ___ L__---r_)o- FIGURE II: HOTOROLA HC6800 RESE'l' CIRCUIT 108 +5 FIGCRE HI: MOTOROLA MC6800 HALT AFD SINGLE CYCt.E CIRCUIT 109 TTY PAPER TAPE r----·------·--~ 6. 2 K .. r I PJA I . ~/ . OUT r---,/V\/'---~. I l I CD 4009 . PIA I . .. /l__tv""'1_ . INPUT :,~A i 1--- OUT ~--v 7400 0,151-!F ;::f Jl,5 K ~ . __t_ t 7404 510 . J+S PIA ' <:""<... 6.2 K _;---"-.IVV~ _. LL ~Vv-~ ~;imP. ·~ y·t5 > 22 K 7404 DELAY SELECT I 13 K TIMER I INPUT TO I TlHEl~ iot;TPUT OF I TINER I !.. --.~--·----·.,··~·--- F-;:.G:JKE n ..·: HOTOROLA NC6800 TELETYPE\JRITER It{TERFACE APPENDIX C CALCULATOR CHIP DATA SHEET 1]0 111 0CTO£lEil H174 MM57GO sl;dc rule calculator f.::atures. Th~! !tit~g~s-chip MtA:J7Gt) ~;iido? Huie Calcul.ltol \".'as:. Ll Full 8 di9it entry and di>rlay capacitv dev;.:'!Dp·;:_i u:;inn E! nt'_;~al-gJ.to:-;, P-chJfln21 r:nh;:~n,.-_emcnt n Compiete c!f·ctr 011:c siidf;! rule c2pzbi!ity end depl·~tion rt•ccL~ iv'!OS/LSI t~r.hilo!o~~V V'.'itF-. the e 1\rithrno.tic funciions: t, -, x, +, ..J;.. '1/x, x 2 pria1.;ry D~JJrctive o·: IO\'/ enci-product co'it. A compi:::te 9 Logarithmic functions: In>:, log x, c~ t:;:,l·~uit:lt(~r as !:.ho•:;n in {ir::.rn! 1 require~ only the eo Trigonometric fu;Jctlons: o;in x. cos x. tan Y, arc ~/,1\.)~JlG(.i_ !l kcytJn .. l d, [)~ .. ;~:2G 1l c.!~qit dr!i:l]f, ~.JS/\298 sin x, arc"cos x, arc tar. x LED dispf.s·t lH•'"i d 9V !.l~•tl(·P.' \Vith ?.ppr opriate hardware. t> Ot'1cr function<: Y". n. chang~ ,;gn, exchange, Kev·board dcr:odir·g ;-,nd Xc·;· !lebo'.Jilr.f: circuitry_ a!l >~'d tirn:r\~1 ~>;ncr~tt;c,rl ctn~l 7 ~t::9r,.12nt ou!put dis r;cgrce> to radiZJr.S Jl~f.l"{ cncoti;r:y vn.· ;:lclt~c!~d on-cn:p ;:,·,d rcqui;e no ~ Three·ng:stcr u,...H.::·ationltf stack P.xternz.i t:O>~•POilf:nts Se~J;l".e:H-; cz:n u:.ua::y (){? driv!!n w I:Kk;J:;ndr·nt il·.::cun.~Jiating storane register with store, dlrcctly from !he f>.~,\,S/60. i"'S It t·y oir:-.1Py s0vrces :!bO'Jt r~cal!, n1e!'nory r!u$ an •..i memory minus. functions e.5 in/\ Of ;-·t:d;~ CHrent. {f:ot~:: tfq~ t\'f).Cd; Ju~y C\'C!•: a F~c..:;(ing po~nt i,-;~HJt and outpu1 of etJ::-h diJit is 0.1(!4; 2'!C' !\l Left justif\ed r:~try ?.nd resuits \'Vith trailin~ :ot•fo Tr.Ji!inp zero su;-:pr_fss!on ailn'.vs convenient reading of t!i~ Lf~ ;: ::::-;;f·C ..:f~p:;r,·, ~:.:..1 co[·.~e··v::,; p:-::·.·:cr. T:.c. 1:, Au~o!"nai.ic disrlcy cut0H DM8tHs.-·~ d':Jlt ~1:-n·:--( .:-: cap T};e f!e;•d:r· u:.:tput. ~,i~:Li.;~ is us..;£J ·to 1ndicatf c3kulator Ova!-!n-l.ine Pn.kaga "tt:~(US. It i~ ll';1!-ful !,"\ r:rv·.t;ding synchoorization inforrnc.:· ti•)n durin~~ te~tir.J c.Pd wht.:P the ~~:vi:Jtc;o !:. used w!~h o:.~b lo'jic evr i;Hr~-;:2i~?:J c:rcHi~s; f::.g .• witi1 the Mt.-'i~i7G5 Pr..:g;arnrr)•.:r (Fi:_.'t:n· .)). Th:r i:y-t\··,·o kWfl :?r~· c:~rr~'-'tlf:;~ in a tottr·D·{·:~irw matrix {Fi!)U/f.' /j. ll! ;t::J•~:;((;:·I iC SG\'';'r> ar~t!·HT~CtJC fun•.:tiry··,~ pit1'1 lc•{)"lrit~'!n:c, lf i~;."..t~o.,H·:tfic ~-HI ?r:r.tmlulntinn nwrn· c.ry !t~n·..:tiY:'i, !l-.:.>.(?'n:1ato; i~ capJb!,; of c:~ku!ating yx. ~(;d:ii'J ~hr:' sq~H· e ci }~ tn rr.0o"lory, ;·;u!O!'lla~n::ziiy entNing 1h~ u:.er h3s .)r..:·r·:·) to iour re~i~.tcrs dP~i:Jn?.tf;d X. Y. Z end H. X is i,!·:r• l!:,p!.;y antJ f'nuy tcgist2r. ;..n:--J 10:. :Jw br11t0n:1 c-i ~! "pu~.~l·IJp" stvd: thc.:t a_iso ir;dJd-::'~ re~Ji~H.!<:; Y ~nd Z: r;·------.. ·------, z "----~·-·--·-··. ·------~--·-·---1 ~~- ·--··--·---~--· ·-----·-·····-] y !..!...... ~. ·-----·-··-·------. f-,}, •.dc: t. ~-'NI'r ~·:1-.,r :r•:!>"~ op2rating voliogc range Vc·lta~.j(' at Acly Pm nclati•if! to V~;s Vr:s + 0.3V t0 V!>s- 12V 6.5V ~ V;,s- VDo ~ 9.f>V (fdi other pins r;f~;1nccted to Vss) Vss is alvvc.ys defined ;:15 the n1o:;t positive suppiy volt.19e. Amb!i:nt Orw:--ati:HJ rcmpefatilre OoC to +70-:..C An-1b:•:nt Stor"d~/~ Ternperatu1e -{)~;/'c to +150°C Lrad Tcmpcrl)ilHY (~olde:ing. 10 !tcconds} :'oo"c ) -de eiectrica! characteristic:s i' ------·--·---- f CcHJDiliONS ----,r~~~~ TYI'. MAX l.JNITS -~~•er~;~3 Su~~(:~::r-,t-(-'"~~------·~r~~--~-V-~~~~~-V-.-TA ~-:l-S-"C-.-- 0 r-----1------· 16.() Keybo;:rc! Scan fnpi.Jt l_cvcls . (Kl, K2. f~3and K•ll ,1 1 log;cill Hogh Le,ol 1 V55-6.5V S V00 :; Vs,·95V I Vss-2.5 v 1 l.ogicllllc N Lr:vt:: l Vp 0 :..: Vs5-G.5V Vso-5.0 v Voo ::- Yss-!i.SV Vss·-u.o v I [lLOAD ~ ~i.2 kl"l (o .'Do 1 V;: 5 -G.S'J:; Vr:rJ ~ V-:. 5 ·-H.G\ v V00 = Vs5 -6.5V \' Voo ~ V,; -9.5V v I 5 Scnrnc:nt Output Cu:tcnt (Sa \hrou~,/1 Sg a;1r-J Vtt.:irnal_ Pomt) R~.ad"y (;Jtput L;;·:;:..!s. ., L(l::_;:~-al I '•!1~ 1 C·'Jcl {V Ott} luu l -:: --o.-1 mr~\. tcr1icvt Lo~·; Le\·el {V nL) f louT ~ lC.u/\ ___· ______- ____] I I I I ae electe ic<1l churacteristics I ! ------~------. ·-r -----' PArlAMETl[l CONDITIONS I MUJ TYf' I'M1X lH~iTS -~------·--·-----·--- __. ------1-- 1------v.:ord T;"'r. (Figure 2; . 0.32 0.65 13 rns lliyit Tim(> (F igurc 7\ 35 70 145 IH 2 4.5 9 ps I Oi!"it Output Transit1on Times. I . CLO'-C' ~ 100 pF, RLOI\D = !i.1) f:D 2 /-'S (l nt... t. and tr l-.i....L; t~cyhv.-:r•} 1npuh •~i::;h to Lm-v C._ ,, ~ 100 pF 0 0 4 I'' '"'"s.iti!..,n ":1m::> /•,fl•. r Kq· HtiL'a~'~ f1r.::d•; Ou',{H.tt Pn_;:>Jq.:;!l(,fl Tirne {r.~·pun:> 3 i Lo·.v tr: !i'!J.h Lrv.:·l (!t·c ,.) ~ 100 pF 10 !JO ps 1 II CtOA~) tt;L!~: t~ i t.-:~p~~-y Ct..!ntl T.:pe 10 22 4d sc-~:"ond fi in• !tnl'' uite1 the !t·~( v~·ili~ ~:ry {ro.::!ue th:~t zll r;:up~·e·~ \"·":1 :,e bfJn~3·!i .:;•l(l tl!l t_(t'{.lr;·,;/ p;11r:t~ d ... pr ·r·d.l fiGltrlE 1. Coms:lelc Calculator. Sch~mntir.:: D -7 C C Ll :.1 ::1 I S~(VUiT C/ I Ll _.f, I _!.L I C01C>:i.\fl/j'\ f.l-~-- -·--- --· IH f!GURE 2. Displ~y Tirning Dii"~~"arn The content~ of tht JCL.Ui71Uiatirln St'.);Jq~ r(gL~ttr.lr.t'l X frOiil ~-.'' ''(-;_!1C' ;r~r!<.i\'r;d Input~. ore entered and CHJtiVJ:s dispiJ'/·~d in floa1irFJ Uy ··s·,-oH O:,qi.l,)t('::. X illld ~llrll;. it into the r))POVi~ ,, 0 P',);nt. The ouiput fts'.dt' ~::;1e tiuncal:t::d. LJ.?-!,1 entry· v..:ithout ch.ln~,;,,~·; the: va~;!e of X. T:H: m<:rn01y Jt.:{>lli al\'ld'{.> jHt'Cl~d·"]S the up~·r.H1cn kr:ys th.:.t c·p';i"t·t~: oa •~ev, "ECL.'i rl~;;:f:i \'; irno X \'.'lt!~c.-; ~;i,;t~;;tHli~l ~it·~ t/Jl'ill; thi:; !:, h~~··nl'd t~., ;,s F,evf~r;..·• Pl1!1~h r•ot:Jtwn. \'~,!~'~:of M. Stt·.·,J~L· rP~:::.~,·r i~·l iJ rlr.:nr.d ,-,.,;,J'O"U!H.~ .. ii!y ;Jt {S··c- l'Ydnlp!....,"S.f ]_ 11-t BEADY SIG:'!/1L OPEflf\TiON Th~ r\·Ht,t;~j7GC i5 dr:;t~m·.:d \o interhce V.1 !fh n1ost !ow co~t The Hc~tdy signal indicJtf.}- calodator status.. \\';~r.:;-) the: kryb~);Hd~. ·.·.hich are oft~:n thr 12:•:-.t de~iraU!e from a calc.ulalof i.). in an "iu!r~" statP. tt1c output is al. a ll_\Jrca: fafs~ or rw.:liiplt! entry !.tanc!pc,int. High ~-c:vel {rv~rJr V5 s}. \'.'tl~n a key IS clo';Cd the lflternal kEy entry ti•ncr is started. HeGdy n:n).Jins .h;~J~l tmtd :he A k\!y closurt! is. ~en~ed by the Cd!cu!ator r:hip whrn one ti1ne·out is cornp!et~d a net t:oe key er-;try i:; .:-Jccc-p:cd -a_; of the key if,fJ:Jt'i, K 1. i<2, K3 St' ~-:4 is foJcecl rnore vafid. then goes low as ind;c.J.ted in Figurrs 4 <.ncl 5_ It · po-;ilivc thiJn the Lo~]ico:!l Hi~h Lev,~ I \pt:cifit::d in t'1e [lec ren1-Jins at a l o~ical Lo•:.' L~vel until the function ir:it:;::ed tricaf Specificv:ion· .. !v1 intr:rn;-d counter i:. stc:ftcd dS a by th~ key is r,om~~lcted vnd the key is rEiea5ed. The Jo•.v H.':)llft of th~~ cfo~-ll:e. lh~; b~)f 0per,-::!on O•.:Ogios aft1~r nine to his.;h tr~r-.sitian IPdicate:; th:: CJk:ulatnr ha~ returned to ,Nord tirn!.:'S if th~ kAy :Ppu~ is still .Jt J ~.C':Jic-!1 High.Lt'v(!l. an idle starr. vnd ~ nc·N !-:ey CiHl be Cit~ercd. A$ fc.Jnu tts lhr: ke•t :s hcid do-..-:n (anr! the key input re rnains hiqh) r~0 further entry is ciJrJ·Ni!t.l. Vihpn the k~y ERHOR :r,!DICi\TIOtJ ir.pul chang·.:: t.:; v Lojical Lov1 Lcv::i, th12 in~er na! coun~~r -s.J.ano; a s!:v.:t1~-::n vvon3 tinv~-out f:-.r k~:y 1e!edse. D'JrliJ9 In th~ event L,f cr~ OflCratino error. fhe l'-.~M57GO ;.vi:t bot\1 entry ::::--d ri~lc:-.s'::! t!n11~-outs Lw kCy inputs .ar~~ display 'Jil'zrrcs and !111 d::ci~ne} r-."'in!:.. In i)(l.jj;_;o:~ tC• !-an_lplr:cf .;:ppan~in:a.tely cvt;ry other word tinw for valid normal ca!cu!ator ovcrflo·:.; .situa1ior!s \il•ich rJc.:ur as z: lcvd5-. I! they i.!n: fvund invalid. th:::! counter is rr~et and rcsu!t of .:ddi:1g, $Ubtractii•J. muitip!yin~ or tiividi;~g and the c<:fcu!lttor c;:;<;.uinc·s _the last v~lfid key input state. including di·;ision hy ?cro, the ·~rrur indrcation i;; di; ~bycd for the (;onJitions of Tab!e I. One of the flt)p~rlar lypo;s of IO'N·cost keyboards avail ~bi!J~ the ::~astt-:-n~ric conductor tyr·:!, tus a i~t:y prc-;~urc The Z ·rC~Jis:.~:- is au~omatico!iy cle;Jrcd and th:: Y- ;:rd vtrsus C'u'lt.a:_:t r£"sistanc~ d~J, II r:C> kC't i:; (!"pre;:.~ed for approxirn-Jtely 35 seconds, an Clear l OICIT J--1 VOH • , ••-i V.,.. I ~ 1\.----··-···<,_.___ j ~------~ ._ .,_ . ---1 ..,.}.·- \1 ' """'' ft>ADV ~---<>·--- _ . fiLURE q. Hcudy Timiny tTN nYI: :\.HIS liH'flE~EO l _j Mttt.S{O I ~--- s ··•onos -- ~~£~ _J.:__J"!_ ___ n___ JL~ __n __ JL ... _!, ...... ----···-<-'------· c·l. -, /.!. ~! \-,~·J'~:'; t.J !i -1 "~!'I:'J!:C..t· "'~:(iiSE" j t.n r;r 1 t.·.~~ rm r.t.H-'1 ______:..______~~L ______e-'··~:~2~~;Y~~·~~_}-- l l ! r MW rrv h-'IS u:u r.tY ii.lllf,fC{rlf!l (MlH f.Yi:AlUili·1Cfl lUiOH.!J. 'j t!l t: f y ~.~-\ y ttMUt.s:o. API?ENDL\ D DEFINITION OF RADAR ERROR TERHS 11.5 13_6 RANGE ERRORS TERH . NAME r .7 31 ( BW) R ( t ) VELOCITY SERVO LAG r·nz (BH)R (t) ACCELERATION SERVO LAG 2 t..li.?.S. r~;"').,;:, 1'i • 'S (S/"'', n / · TRANSPONDER DELAY . +r .:.; 3 R(t)*R/C TRANSIT TIHE r1 3 )CosES:inA+ SURVEY AND GEOIDAL 1 r' 13 :o CosESinE+r ' 1:;:;, SinE SEPERATION RANGE ZERO SET TRANS!'1ITTER DELAY TRANSPONDER DELAY SET INTO TRANSHITTER 117 • i. AZIHUTH ERRORS TERH NAME ' a it !<}'1& P.\(~) VELOCITY SERVO LAG {a ;t:u S inA- a 1 ;>.?.I Co sA) TanE MISLEVEL a ~ 31 TanE NONO~THOGONAL TTY K 1 Cos(A+!li1 ) + K,_cos(2A+¢z) + AZIHTJTH ENCODER K3Cos (3A+;63 ) + K lv Cos ( 16A+¢1& ) + NONLINEARITY K3zCos(32A+¢3 L) + K~ 8 Cos(48A+¢~ 8 ) RF AL IGN!v1ENT 1 (a n 1 CosA+a 131 SinA)SecE/R SURVEY AND GEOIDAL SEPERATION AZ lHUTH ZERO SET DEFL fi'.CT IONS OF THE VERTICAL RF A/OS SHIFT DUE TO DIFFEREi'~CE BETVlEEN L !NEAR/CIRCULAR TRACK POINT , AZ H1UTH 118 ELEVATION ERRORS TERr-:1 NAME VELOCITY SERVO LAG MISLEVEL RES lDUAL TROPOSPHERIC REFRACTION K\ Cos (E+¢ 1 ) + K:t.CCls (2E+¢;t) + ELEVATION ENCODER K.1Cos UE-l¢3) + K1;,Cos (16IH\J;,.-) + NONLINEARITY KJ~Cos(32E+¢ 3 L) + K~8Cos(48E+~ 4 g) DROOP (e 13.1. SinASi.nJ:i:+e '.3>4. Co sASinE+ SURVEY AND GEOIDAL e''t 3 ~ CosE) /R SEPI:RA.THJN ELEVf>.TlON ZERO SET DEFLECT IONS o:!'' THE VERTICAL RF AXIS SHIFT DUE TO DIFFERENCE BETHEEN L INEAR/ClRCULAR Ti\.M~K POINT , ELEVATION BIBL lOGRf'.P.HY l R. H. Cushman~ "EDN 1 s Second Annu2.l Microprocessor Directory," EJ?~~ vol. 20, pp. Lf2--59, Nov. 1975 3 E. P. \lest man, Reft:!:~ence Data for Radio ~1_g_in~-e~~.• New Yo rl:: Ho-vmrd W. Sams, 1968 4 1. I. Haissd e.nd F.. Glang~ ~.?_ndbo_?k of Th:tu Film Tech_!:_?l.o_g_y~ New York: McGraw Hill, 1970 5 C. A, Harper, Ba~"!._r!_~9_9_l~ ~i Thj.~k Film !:!_ybri_i !1_~i.c!'oele~.i::..'!-~onj:~~· New Yock: [·JcGrmv Hill; 197lf 6 J. J:onE,:.; ~ J?hysicist at Nicroelect ronics Factl ity, Code 4333, Pacific Missile Test Center 7 H. Bendel i.d, Ph. D., "Report of thP. Second ad hoc Radar l'-1ajor Ern•r S0cJrce Study Group JvJeeti.ng)" PMR Inte:cna1 Publicoticn, .Jan" 19~/.t-t 8 ::rec~l~LC:::~}_ I1£~.l_l~.c_1J. ~.Y..?.!.er~ Qr.~ratL 9 ''Systs:.n;s Performance Improvement Sect ion Monthly Heasurement Rr::nc1rt for Eeriod Ending-31 Oct.ober: 19/5, 11 Pf.ffC Internal Pub.i ic:at..Lon lC C. Hasting!>, .!::.f!.E.!~~~!:!~~.!:_ions for Q.~-8..~~-<.!-l -~~~~~J?..'-.lters. Princeton, N. J.; Prirceton University Press, 1955 11 H. Bond,~-;1 id; Ph. D., '~Position Uncertainty Due to Systematic Errors :f.n E3ch I':FS·-16 and M:l'S-- 25 Categorized by Task," PMR Inte~nal Publ!cati~n, Mar. 1975 J2. "Repo1:t c.:1 FPS·l6 and r·1I'S--25 Rada·c Err.·or Models for Operation 1213666- 2] June 1971) 11 Range 1:c"i.st·_cilJ1entBtion .Perfornlance Evali.!at:L::;n Bt·,:J.nch, PNR 'lorkin;; Noce t·lo. Ril'E-325-71., July 1971 U i~~~~~r2.!.:!!: !':E L1::.<:'..£~E~~~ ~Qr2L:!J.:,_~1.~~~~~':.L<:·~I!c ~~.S.~"!~ .~-l?.~c.i.J 5~~~£::L~.:?.2:~ f~~.. !: he ~!-~g __~_5~~~~~-L }~.~~!:~. ~~~-~!~::~:.!_! !~-~ ~~-·i_?._i]: 1~~~~?-~~ _g_9_E!I~~:.!-:~~£ ~~~.s?..:c.i.£Z~ • r-1o nrc~ s town , N • J . : 1~Ch./ GC:.:;