Introduction |
This is a redraw of the schematic for the Motorola MEK6800D1 Evaluation Module. I find that it is easier to understand when the functions are grouped properly. Plus, there is a space issue. The component size needs to be kept as small as possible, while still being perfectly readable. And, the drawing space is only 900 pixels wide by 600 pixels high. So the placement of each part is carefully done.
The diagrams below are dynamic drawings. They are drawn by Javascript when it loads into your browser. This may cause an issue with printing the drawings. To help solve that issue I have provided images of each page. The images are 900 pixels wide by 600 high (111 K) with a white, rather than a green, background.
MPU Signal Description |
Proper operation of the MPU requires that certain control and timing signals be provided to accomplish specific functions and that other signal lines be monitored to determine the state of the processor. Listed below is a brief description of the signals that appear in the schematics.
Clocks Phase One and Phase Two (∅1, ∅2) - Two pins are used for a two-phase non-overlapping clock that runs at the VCC voltage level.
Address Bus (A0-A15) - Sixteen pins are used for the address bus. The outputs are three-state bus drivers capable of driving one standard TTL load and 130 pF. When the output is turned off, it is essentially an open circuit. This permits the MPU to be used in DMA applications.
Data Bus (D0-D7) - Eight pins are used for the data bus. it is b-directional, transferring data to and from the memory and peripheral devices. It also has three-state output buffers capable of driving one standard TTL load and 130 pF.
HALT - When this input is in the low state, all activity in the machine will be halted. This input is level sensitive. In the halt mode, the machine will stop at the end of an instruction,. Bus Available will be at a one level. Valid Memory Address will be at zero, and all other three-state lines will be in the three-state mode.
Three-State Control (TSC) - This input causes all of the address lines and the Read/Write line to go into the off or high impedance state. This state will occur 500 ns after TSC = 2.4V. The Valid Memory Address and Bus Avaulable signals will be forced low. The data bus is not affected by TSC and has its own enable (Data Bus Enable). In DMA applications, the Three-State Control line should be brought high on the leading edge of the Phase One Clock. The ∅1 clock must be held in the high state and the ∅2 in the low state for this function to operate properly. The address bus will then be available for other devices to directly address memory. Since the MPU is a dynamic device, it can be held in this state for only 5.0 µs or destruction of data will occur in the MPU.
Read/Write (RD/WR) - This TTL compatible output signals the peripherals and memory devices whether the MPU is in a Read (high) or Write (low) state. The normal standby state of this signal is Read (high). Three-State Control going high will turn Read/Write to the off (high impedance) state. Also, when the processor is halted, it will be in the off state. This output is capable of driving one standard TTL load and 130 pF.
Valid Memory Address (VMA) - This output indicates to peripheral devices that there is a valid address on the address bus. In normal operation, this signal should be utilized for enabling peripheral interfaces such as the PIA and ACIA. This signal is not three-state. One standard TTL load and 30 pF may be directly driven by this active high signal.
Data Bus Enable (DBE) - This input is the three-state control signal for the MPU data bus and will enable the bus drivers when in the high state. This input is TTL compatible, however in normal operation, it would be driven by the phase two clock. During an MPU read cycle, the data bus drivers will be disabled internally. When it is desired that another device control the data bus such as in Direct Memory Access (DMA) applications, DBE should be held low.
Bus Available (BA) - The Bus Available signal will normally be in the low state, when activated, it will go to the high state indicating that the microprocessor had stopped and that the address bus is available. This will occur if the HALT line is in the low state or the processor is in the WAIT state as a result of the execution of a WAIT instruction. At such time, all three-state output drivers will go to their off state and other outputs to their normally inactive level. The processor is removed from the WAIT state by the occurrence of a maskable (mask bit 1 = 0) or nonmaskable interrupt. This output is capable of driving one standard TTL load and 30 pF.
Interrupt Request (IRQ) -
This level sensitive input requests that an interrupt sequence be generated within the machine. The
processor will wat until it completes the current instruction that is being executed before it
recognizes the request. At the time, if the interrupt mask bit in the Conditional Code
Register is not set, the machine will begin an interrupt request by setting the interrupt mask
bit high so that no further interrupts may occur. At the end of the cycle, a 16-bit
address will be loaded that points to a vectoring address which is loaded at these
locations FFF8 and FFF9. An address loaded a these locations causes the MPU to branch to an
interrupt routine in memory.
The HALT line must be in the high state for interrupts to be reognized.
The IRQ has a high impedance pullup device internal to the chip; however a 3 KΩ external resistor to VCC should be used for Wire-OR and optimum control of interrupts.
Reset - This input is used to
reset and start the MPU from a power down condition, resulting
from a power failure or an initial
start-up of the processor. If a positive edge is detected on the input, this wil signal the
MPU to begin the restart sequence. This will start execution of a
routine to initialize the
processor from its reset condition. All the higher order address lines will be forced high.
For the restart, the last two (FFFE, FFFF) locations in memory will
be used to load the program
that is addressed by the program counter. During the restart routine, the interrupt mask bit
is set and must be reset before the MPU can be interrupted by
IRQ.
Figure 4 shows the initialization of the microprocessor after restart. Reset must be held low for at least eight clock periods after VCC reaches 4.75 volts. If Reset goes high prior to the leading edge of ∅2, on the next ∅1 the first restart memory vector address (FFFE) will appear on the address lines. THis location should contain the higher order eight bits to be stored into the program counter. Following, the next address FFFF should contain the lower eight bits to be stored into the program counter.
Non-Maskable Interrupt (NMI) - A low-going edge on this input requests that a non-mask interrupt sequence be generated within the processor. As with the Interrupt Request signal, the processor will complete the current instruction that is being executed before it reccognizes the NMI signal. The interrupt mask bit in the Condition Code Register has no effect on NMI.
Table 1 - Memory Map for Interrupt Vectors | ||
---|---|---|
Vector | Description | |
MS | LS | |
FFFE | FFFF | Restart |
FFFC | FFFD | Non-Maskable Interrupt |
FFFA | FFFB | Software Interrupt |
FFF8 | FFF9 | Interrupt Request |
The Index Register, Program Counter, Accumulators, and Condition Code Register are stored away on the stack. At the end of the cycle, a 16-bit address will be loaded that points to a vectoring address which is located in memory locations FFFC and FFFD. An address loaded at these locations causes the MPU to branch to a non-maskable interrupt routine in memory.
NMI has a high impedance pullup resistor internal to the chip; however a 3KΩ external resistor to VCC should be used for Wire-OR and optimum control of interrupts.
Inputs IRQ and NMI are hardware interrupt lines that are sampled during ∅2 and will start the interrupt routine on the ∅1 following the completion of an instruction.
Figure 5 is a flow chart describing the major decision paths and interrupt vectors of the microprocessor. Table 1 gives the memory map for interrupt vectors.
Motorola MEK6800D1, MPU, ROM, and RAM - Page 1 |
This section contains the Motorola MC6800 Micro Processing Unit (MPU), Read Only Memory (ROM), and Random Access Memory (RAM). The ROM contains the MIKBUG/MINIBUG program and the RAM is for exclusive use by the MIKBUG/MINIBUG program. The connector on the left, P1, is the interface connector that is, physically, at the bottom of the board.
In order to use MIKBUG jumper E2 should be connected to C, as indicated in the diagram.
Motorola MEK6800D1, User Ram 5 x 128 Bytes - Page 2 |
This page shows the user memory space. The MEM6800D1 really only comes with one MCM6810 in place at U6. If you want more than 128 Bytes of memory, you will need to add extra MCM6810s. The schematic shows the full compliment of MCM6810s. The full compliment will provide you with 640 Bytes (5 x 128) of user memory.
Motorola MEK6800D1, Parallel (PIA)/Serial(ACIA) I/O - Page 3 |
This page shows the Perpherial Interface Adapter (PIA) and Asynchronous Interface Adapter (ACIA) that are available to the user. The PIA occupies 4 bytes of address starting at $8008. The ACIA occupies 4 bytes of address starting at $8010.
Motorola MEK6800D1, RS232/TTY I/0 - Page 4 |
This page shows the Perpherial Interface Adapter (PIA) and the MC14535 Timer that are used by MIKBUG for Serial Communication. The A side of the PIA (PA0-PA7) drives the circuitry that converts the TTL levels out of the PIA, to TTY 20ma and RS-232 levels. The B side of the PIA (PB0-PB7) is used to control the MC14535 Timer. CB2 of the B side is used for Reader Control. This could be used to turn the paper tape reader on/off or could be used to start/stop a cassetter tape storage unit.
If CB2 is used to start/stop a cassetter tape storage unit, extra circuitry would be necessary to convert the serial output data to a 1200/2400 Hz tone shift. And, for serial input, convert convert the 1200/2400 Hz tone shift signal to serial input data.
The MC14535 Timer can be set to communicate at 10 Characters Per Second (110 Baud) or 30 Characters Per Second (300 Baud). For details, see the page on Motorola Engineering Note 100
Motorola MEK6800D1, Timing and Control - Page 5 |
This page contains the basic timing circuitry. The MC6800 requires a two phase clock which is generated by the MC8620 Dual Retrigerable Monostable. The clock frequency that the system is operating at, is set by adjustng R9 and R13. R9 adjusts the Ø1 pulse width and R13 adjusts the Ø2 pulse width. Ø1 should be set for a minimum of 450 nsec, at the 90% point of VDD, and Ø2 at 470 nsec minimum, at the 90% points of VDD.
The pulse widths of Ø1, Ø2 may be measured at TP1 and TP2.
Note: There are two VMA signals on this page. One is labeled VMA♰ and the other simply as VMA. The difference is that, VMA♰ is an output directly from the MC6800. Whereas, VMA is the VMA♰ signal, buffered buffered through U14D and U14C. This also means that VMA will be two gate delays behind VMA♰. This doesn't make any difference on the MEK6800-D1 board, but it might make a difference to external circuitry.
Motorola MEK6800D1, Power and Ground - Page 6 |
This page shows the Power and Ground wiring for all of the integrated circuits and their associated decoupling capacitors.