Application Note AN897 "MC68008 minimum
Transcription
Application Note AN897 "MC68008 minimum
AN897 MO~OROLA @ Appliution Semiconductor Products Inc. Note ,, MC68008 MINIMUM CONFIGURATION SYSTL&& \(c,.,,. *: ~,1,. .~.:, i.~ .!..},, :> ~~~. ,, ~+r+ > * ,\/ \\~., :~ ,,. ‘:-.:,> ~~”” ,.* .&. .\:,: -~)~. .,,e, ....,.:~>”.~ Prepared by .!:*’,*, ,.,~:,::~ ‘s.::<$,.$ ... Geoffrey Brown and Kyle Harper ....~.~..y,. ....... X..,.. ,:., -t.. ..!,,:?, Advanced Microcomputer Applications Engineering ~iij$,t,~ $?:$ ::&:,$j:$ , Microprocessor Division $$t,,:$>, Motorola Inc. ..*\.*i$. .:>,:1 ~~..+~k ~.:,, Austin, Texas ,+j:~$ ~. ~~J\..* *$.3 .$,.x :?.~~::~,$ .,~,,, ,,.(,:.’ -’,:~,.. ~~,$~’,,.:.. *,;<t ~ k ‘ ,:$:{,’’~:~“‘ ** .,.. .$a\i i><.. ..,\?> .*.<,,.. ,,.,:i:<<.$\\ (~S) by~~~r$essor and are terminated by the assertion of INTRODUCTION data twer’acknowledge (DTACK) by the peripheral or This application note demonstrates the design of a simple m~~o~’’:device being addressed. Figures 1-4 show the high-performance MC68~8 system that uses the MC68681 .~~n~um hardware necessary for an Mc68w8 system conDual Universal Asynchronous Receiver Transmitter ~~vs;~ng ok (DUART) to interface with external devices. The MC68W8 is *),J ~T*’*~ddress decode logic, an exce~ent low-cost alternative to the MC68W and .~\,~\ ,> ,..t!’.) features an 8-bit data bus while maintaining software com“S$~~~YrDTACK generation logic, patibility with the rest of the M68~ Family. TheMC68681 .$ “ Reset logic, DUART is an M68~ Family data communications X,@jp Bus error generation logic, i*,\N i’<. that features: ..,,., *1 System memory, TWO independent asynchronous sefial ch~nels ,$@~~&. ,,.+?. *$):~\* Interrupt handting logic, and .<:$1, ~. ,k. A programmable l~bit counter/timer, ,,$;., ~~** ...,.<.+ +I$++<,i:$ An MC68681 interface. .. ‘{:>,..$, . A 6-bit pardel input port, and “’’~... ‘+...-. !,....*<i., ,,,< :2$%, \,,\ ~’s The following paragraphs detail the required hardware as apf$;i,..J. :$.~ An 8-bit pardel output port. pfied to the design concept described in this application note. Emphasisin this design concept is pl~@~~~& performance, expandabihty, and low chip COU~$<,~?~):,,,3 The M68~ system design p#@&~~ei’demonstrated in this application note include: ,,,~t$:e>~kvs~ Interrupt hardware, ~ ‘?~~.* .i~>;~’. Peripheral interfac~@ ,, Memory inter f~ce;~e&&ques, Memory ref&@~,@itration in an M68~ system, and Efficient,<~{#,&O software. The s~te~~’~escnbed in this design concept, features the foHo,#Wwme: ,ig&~~* MC68W microprocessor, +$~%ytes of ROM, &K bytes of dynamic RAM with no wait states, and An MC68681 DUART. The following paragraphs describe the hardware required for a h~gh-perforrnance, expandable, low chip count MC68M8 system fouowed by a description of the software necessary to initialize and drive the MC68681 DUART. HARDWA~ REQU=MENTS The MC68~8 has an asynchronous bus structure in which bus cycles are initiated by the assertion of address strobe Address Decode Logic The only tricky part of address decoding for an MC68W8 system is that the system ROM must be mapped to address $m at reset. It would be impractical to fti the ROM at the bottom of the address map, as this would not tiow for dynamic programming of interrupt vectors. To provide dynamic mapping of these interrupt vectors, an SN74LS164 shift register (U28) is used to generate a signal, MAP, which is low for the first eight memory cycles after reset (the number of cycles necessry to fetch the reset vector and stack pointer). U28 is reset rdong with the processor and is clocked by the rising edge of ~. The ~ signrd generated by U28 is used by the address decoding circuitry to force selection of ROM when MAP is low and to dow normal memory decoding when ~ is high. In the design given in this application note, address decoding is accomplished by a PAL16L8 (U22). This PAL is programmed to generate eight chip-select signals from ten input signals. The inputs to the PAL are the upper eight address tines (A12-A19), IACK (the NAND of the MC68W8 function code lines, FC&FC2), and the MAP signal. Four of the PAL-generated chip-select fines are used in this design to locate RAM at the address $m, ROM at $A~, and the MC68681 at $F~. The four remaining chip-select tines are avaflable for future system expansion. m I ROMDTACK 5 . RAMDTACK DUARTDTACK ‘s +5V U25 U21 A GQw A: m RIW AS m A@A15 A6 Mll I 4 ,2 RFA5 RFA4 All All ) 9+ 3 13 1A M w U2 ion Ill ~6 A2 RFA3 ,Ym; RFA2 ,,, , , .,,.. .,, , , II 11 1{ ,” RFA1 U17 RFAO 14 2 (I <. MUX + SELECT~< R FAO-RFA6 +-~ ~-[, ~-~ ‘~’t,:l,,.,,,,. s.j,.. ..... .. .. .. ., ,, ,- ~-, gu,l,, Vv I 5 ~ 9 \8, “36 fl % Ts +5V 12 4.7 k 10 12 DPRQ I K ,+ U31B * Q b“ * A2 7 Al “u1 RS1 ‘3 m 11 -&13 A~ To RESET R/~ lArKF4 ,, .-. .” 12 U27 - 3.6664 MHz :J:, s> $ ~~ >i,t~<., ,,,..,~!,~:t:>,i,.\>\v’ ~+.,,,fA$,**’f .tw, ~T:.J., ),*,“, , ... . 3 8 37 RESET R/w — . . 32 i HxUA - -- , -,.= ‘$: Ul, U2, Ull, U3-U1O U12 U13 U14 U15, U16 U18 U19 U20 U21, UM U22 U23 U24 U25 U26, U27 U28 U29 U30, U31 U32, U36 U33, U35 U37 u% U39 U17 SN74S 153 MCM666E j-15 McW~l .-----LB SN“ -. .74 LS146 SN74LS136 MCM68766 MC66661 CK17AI cQaQ SN74LS04 PAL16L8A SN74LS05 SN74LS08 SN74S1O SN74532 SN74LS164 MCN56 .SN74F74 DDu4-51m SN74LS175 K1114A, 8 MHz OSC MC1466 MC1489 DTACK Generation Logic There are three possible sources of DTACK: DUART DTACK, asserted during both types of RAM cycles (normal and refresh). CAS is generated only during normal cycles and must be held asserted until the processor removes ~. In order to accomphsh this, the appropriate delay tap (80 RAM DTACK, and nanoseconds) is used to clock the SELECT signrd through a ROM DTACK. flip-flop (U31B). This fllp-flop is cleared when ~ is The DUART generates its own ~K, = for RAM negated. The output of this flip-flop is used for both the is generated by the RAM control circuitry, and DTACK for CAS signal and for the RAM DTACK. The 8 MHz MC68008 ROM is generated by an SN74LS175 quad flip-flop (U33). allows the DTACK to be asserted up to 90 nanoseconds These three DTACK sources are NANDed together by U25 before data from memory is vafid on a read cyc~,,The and U21 to generate one processor DTACK. specifications for MCM6665L15 dynamic ,,*”~ *ies guarantee that data is valid 75 nanoseconds af&g@$ . 9 Reset Logic The memory refresh controller operates o~~~~~d~ciple of There are two sources of system reset: cycle stealing. Refresh requests may o~,!.er between Power-up reset, and MPU bus cycles. If an MPU RAM c~@~~e&.&stoccurs durPushbutton reset. ing a refresh cycle, it will not be starte~~~~l the refresh cycle is finished. At periodic interv~~~ ~‘Free-running clock Power-up reset is generated by the timer (U29B) which pro(U29A) clocks a fip-flop (U3$,A) ~#generate a refresh reduces an active high pulse of approximately one-half second quest. This refresh reque$+~~+l~chronized with the MPU duration. The pushbutton reset, which allows the user to ~w~~t clock by two fip-flOpS reset the system without powering down, is generated by a The MC68008 ac ,ati’i~l specifications guarantee one debounced switch. These two reset signals drive RESET and falling clock edge d~*]~e~S high time and that there will HALT through SN74LS05 open-collector drivers (U23). beat least a on~%~df~ck period of ~S high time following Bus Error Generation Logic that clock ed@~$j*bitration between MPU and refresh reThe bus error signal, BERR, is generated by an quests ocw%:~~ing this one-half clock period. The refresh SN74LS175 quad fip-flop (U35). U35 counts clock pulses reques~ijskc~nizer consists of two SN74F74 flip-flops that occur after IS becomes asserted. If ~ is stilI asserted (U30)St~#e*~rst flip-flop (U30A) has as its input the refresh after four rising edges of the E clock (between 5 and 6.5 r~hest ~%gndfrom the refresh request flip-flop (U3 1A) and microseconds), U35 will generate BERR. ~i,r~[%%fked by the MPU clock. The second flip-flop (U30B) ~~h% as its input the output of the first synchronizer fip-flo~ System Memory ‘*,~k{.#30A) and is clocked by the MPU clock qualified by ~ The MC68008 system presented here has a system memory ‘~~$~~~~$ high. This two-level synchronizer is used to ensure that there that consists of 16K bytes of ROM and 64K bytes of dynamic RAM (see Figure 2). Because system performance is critical ,,$ ‘: will be no risk of the first synchronizer flip-flop (U30A) entering a metastable state due to a missed setup time, The in this design, a fairly complicated, but fast, dynamic * ‘ output of the synchronizer fllp-flop (U30B) is the SELECT control circuit has been designed (see Figure 3). This.wlr~t signal. Al three fllp-flops of the refresh circuitry are cleared uses tw~elay lines to sequence RAS and to a~wy,the after the C=/RAMDTACK flip-flop (U31 B) has been MUX, CAS, and DTACK sigmds. Delay lines @S,,Y~@ssary clocked during the refresh cycle. Address multiplexing for in order to optimize memory cycle times and %~$~~$~ossible the RAM is done by four SN74S153 multiplexer (Ul, U2, to design the memory controller such th~$x~ystem can ......$,., .. .2,, .~i~,:l: , U11, and U17) with the appropriate addresses routed to the operate without wait states. \\, RAMs by SELECT and MUX. Refresh addresses are A description of RAM refresh req~~~$hronization and generated by an SN74LS393 dual 4-bit counter (U19) which arbitration is given in the followin&)}~a@graphs. Note that, is clocked by the refresh clock. for now, a signal called SELE@~;~$3umed which initiates refresh cycles. The principl~,~#~i&rnents of this signal are Interrupt Handting Logic that it occurs periodically~d ‘&at it becomes asserted only The interrupt handling logic must prioritize incoming while ~ is negated. IR’add)~~n, the RAM decode signal is interrupt requests and generate interrupt acknowledge quafified with =S i~~&&#e$stocreate a RAM request signal. signals back to the interrupt sources. Interrupt prioritization Either the SELE.&~$$kl or the RAM request signal may is accomplished with an SN74LS148 8-to-3 priority encoder initiate a RA~,&~G~&R (U13). The MC68008 supports three of the M68000 interrupt The front<~n@\~~%heRAM controller consists of three OR levels (interrupt levels two, five, and seven); therefore, only gates (U* @o&ed by a three input NAND gate (U25) two of the outputsofU13 are connected to the MC68008. An which in ~~~eeds into the first delay line (U32). Each of the SN74LS138 3-to-8 demultiplexer (U14) is used to generate thre~,~~ ~%+eshas as one of its inputs a signal from the secIACK signals for interrupting devices. The SN74LS138 is o~~ %~y:]ine (u36) which changes state in the midde of the enabled when ~S is asserted and FCO-FC2 are all high rn~ti cycle. The other inputs to these OR gates consist of (indicating an interrupt acknowledge cycle). Because the S~ECT, RAM request, and an inverted feedback path MC68681 uses ody one of the interrupt levels (interrupt level from the output of the three input NAND. The initiation of a five), the remaining two levels are available for future system RAM cycle via either SELECT or RAM request causes the expansion. output of the NAND gate to go high. The output of the The MC68681 Interface NAND gate is then held high by the inverted feedback path until the feedback from the second delay line forces it low. With these logic circuits in place, interfacing the MC68681 The purpose of the feedback path from the second delay line to the MC68008 is trivial (see Figure 4). The RESET, R/~, is to guarantee that the delay lines will be cleared and ready and data bus tines (DO-D7) are connected directly between to begin another RAM cycle at the end of a cycle. The outthe MC68681 and the MC68008. The 1/0 chip-select line puts of the first delay line generate the RAS, MUX, and CAS generated by the address decode logic (1/0) is connected to signals. Both the RAS and address multiplex signals are the MC68681 chip-select (C=) pin. These address lines are 6 used instead of AO-A3 in order to maintain hardware design consistency with the other M68000 Family microprocessors (which do not have address fine AO). The MC68681 interrupt (IRQ) and interrupt acknowledge (IACK) pins are tied to the ~ and IACK5 lines of the interrupt handhng logic, respectively, thus assigning the MC68681 interrupt a level 5 priority. Finally, a 3.68@ MHz crystal is connected between the MC68681 X1/CLK and X2 pins. The crystal is required for the on-chip baud-rate generator. 15 pF and 5 pF shunt capacitors must dso be connected between the crystal and ground as shown to ensure proper operation of the oscillator. The MC68681 serial channels are connected to external devices via RS-232 drivers and DB-25 connectors. The MC68681 — — OPO, _IPO, OP1, and IP1 pins are used as the RTSA, CTSA, RTSB, and CTSB handshake fines, respectively; therefore, they too are routed via the RS-232 drivers to their. respective connectors. DINIT is the DUART initialization routine and is executed upon system power-up. After DINIT initirdizes the DUART channels, it enables channel A and channel B in normal operation mode. INCH is the input character routine. Upon entry, INCH requires the channel base address in address register AO. Upon return, the lower byte of data register DO will contain the received character. OUTCH is the output character routine. Upon entry, OUTCH requires the channel THE DUART SO~WA~ —— This design will use both of the channels and the RTS/CTS handshake capabilities of the DUART. The interface software required for this design is flowcharted in Figure 5 and is listed at the end of this document, There are three routines: DINIT, INCH, and OUTCH. OUTCHR && FIGURE 5 – MC- Minimum System Sotiare Flowchans MOTOROLA M68000 ASM vEQSION 1.30SYS : s. .41NSYSS .S~ 07!20194 PAGElof4 73:k4:qa MINSYSS 2 OPT FRS)PCS,BRS ● 3 11 12 13 14 1s 16 17 la 19 20 21 22 ;: 25 2b 27 28 29 30 000FOOO1 DUART EQU $OFOOO1 000FOOO1 000FOOOI CHANA MRIA E au DUARTtO 3UAET+0 000FOOO1 000 FOO03 000 FOO03 MR2A SRA CSRA CRA RaA TBA 000 FOO05 000FOO07 000F0007 EQU EQu EQU EQU EQU EQU EQU s OUART+O DUART+2 0UART+2 OUART+& DUART+6 OUART+~.\{; A ~ 31 ;: 34 3s 36 3? 38 39 40 000FOO09 000FOO09 000FOOOB OOOFOOOB 000FOOO@ 000FOOOO 000FOOOF 000FOOOF IPC.R ACR INPUT PORT AUXILIARY CHANGE CONTROL ISR IMR cMsa INTERRUPT INTERRuPT ST4TUS REGISTER MASK REGISTER REGISTER REGISTER CTUR CLS9 CURRENT COUNTER/TIMER COUNTER/TIMER UPPER CURRENT COUNTER/TIMER MOST REGISTER LEAST CTLR COUNTER/TIMER LOWER REGISTER 41 42 0UART+16 0UART+16 CHANNEL B BASE MOOE REGISTER AODRESS 19 43 44 4s DUAQT+16 OUART+lB MODE 29 DUARTt13 DUART+20 46 47 0UART+22 0UART+22 4a 49 :! S2 S3 S4 ;: S7 OOOFOQf:h:\+~;< OOOF@~*&”r$ ooQFQ&,b~ QQDFgoTb $tibo,fholo ,:<.>t>~@~~#OOIF ,,?, *,,,,*g:}:@~ ’001 F ..,,. “IVR 1P OPCR STRC BTST STPC BTRST * * CCNST4NTS REGISTER STATUS REGISTER a CLOCK-SELECT REGISTER coMhANo RECEIVER REGISTER BuFFER TRANSMITTER SIGNIFICANT SIGNIFICANT 8 a a aUFFER B EQu DUART+24 EQU 0UART+26 INTERRUPT INPUT PORT EQU EQU 0UART+26 DUART+2a OUTPUT PORT START-COUNTER CONFIGURATION COMMAND EQU EQU 0UART+2a DUARTt30 OUTPUT PORT REGISTER aIT SET EQU 0UART+30 STOP-COUNTER OUTPUT PORT COMMAND REGISTER BIT RESET VECTOR REGISTER (UNLATCHED) REGISTER COMMANO COMMANO BYTE aYTE w 98 91 93 . . This information haa bean carefully chackad and Is believed to ba entirely relisble. However, no responsibility is assumed for inaccuracies. Motorola reserves the right to make changes to any products herein to improve rallability, function ordeslgn. Motorola does not assume any liability arising out of the application or use of any product or circuit described herein. No license is conveyad under patent rights in any form. When this document contains information on a new product, specifications herein are subject to change without notice. MOTOROLA @ Semiconductor Products Inc. Colvilles Road, Kelvin Estate - East Kilbride/Glasgow - SCOTMND Printed in Switzerland