New Micros, Inc
1601 Chalk Hill Road
Dallas, TEXAS 75212
Phone (214) 339-2204
Fax (214) 339-1585
Email:
nmitech@newmicros.com
http://www.newmicros.com
SHORT
INTRODUCTION
The
NMIX-0026, is an MC68HC16 based single board computer. When
purchased
in development configuration, is complete and ready to
run.
The support circuitry required is held to an absolute
minimum
through the use of a PLD. A rectifier/regulator
section
converts 7-18V A.C. (or D.C.) power from an optional
wall
transformer to usable 5VDC. Screw terminals are provided to
accept
an external 5VDC supply if preferred.
The
processor is expanded, having a 2M maximum, (1M normally)
address
space. Four memory sockets are available for use in this
memory
space. Decode logic allows various combinations of parts.
From
8K, 16K, 32K, 64K, 128K, 256K and 512K, even 1024K devices
can be
accommodated by jumper setting.
Normally,
a developer will use the NMIX-0026 for development,
and
high end projects, then switch to the lower cost NMIT-0026
(or a
modified version of it) when volume buying begins. The
NMIT-0026
is a target version of the NMIX-0026. It is made from
the
same printed circuit board as the NMIX-0026, but has fewer
parts
installed.
The
NMIT-0026, when purchased in the generic target
configuration,
is a minimum, 5 Volt only, configuration. The
MC68HC16,
crystal, reset circuit, PLD and four 32 pin JEDEC
sockets.
Typically, a program developed in the "development
configured"
board will be installed in the "generic target
configured"
board for production. The user must install the
appropriate
jumpers, which are not provided in the target
configuration. All configurations of the MC68HC16 based
NMIX-0026
boards use the same base PC board. Configuration
differences
refer to the extent to which the board is filled
with
components. Custom versions, varying between the fully
populated
NMIX, and the minimally populated NMIT boards are
available
from NMI. Call for current policy and pricing.
GETTING
STARTED IN Max-FORTH
To
operate the NMIX-0026 system, plug in the wall transformer
and
connect a terminal to the serial RS-232 DB25F connector.
Most
terminals should plug in directly, with a straight through
cable
(i.e.: pin 1 to pin 1, 2 to 2, 3 to 3, etc.). The
NMIX-0026
uses lines 2 and 3 for serial in and serial out
respectively,
and pins 1 and 7 for ground. Many terminals
require
additional hand shaking signals to work, so pins 4 and 5
are
hooked together on the DB25F connector, as are pins 6 and
20. In
this way, terminals that require the
additional
handshake
signals have their own " clear to send" / "ready to
send"
and "data terminal ready" / "data set ready" signals
wrapped
back around, indicating "always ready".
In
order to talk to the NMIX-0026 the terminal must have the
correct
bit settings. The baud rate should be set at 9600 baud.
The
NMIX-0026 sends and receives a bit protocol of one start
bit,
eight data bits and one stop bit.
When
the tterminal is set correctly, every time you depress and
release
the reset button the NMIX-0026 should respond with:
Max-FORTH
Vx.x
Seeing
that message means the terminal can see the NMIX-0026.
Press
"return" on your terminal several times. If the NMIX-0026
responds
with "OK" each time, communications are established.
Now,
you will want to see the system do something. Type WORDS
followed
by a return. This will cause the system to list its
entire
vocabulary, some 300 plus words. The
listing can be
stopped
at any time by pressing a key, like the space bar.
The
NMIX-0026 provides external memory expansion.
1K RAM,
internal
to the 68HC16 is mapped starting at
location 0.
External
ROM is also mappped starting at location 0 and is
overlapped
by the 1K internal 68HC16 RAM. External
RAM is also
mapped
starting at location 0. In normal
operation, the
external
ROM (minus the 1K internal RAM) is copied to external
RAM
prior to execution. In order for this
scheme to work with
Forth,
the dictionary pointer (DP) needs to be moved to the
start
of external RAM which is not overlapped by external ROM.
In the
case of two 8K X 8 ROMS (16k), the dictionary pointer
will
need to be brought out to memory location $4000 with the
following
Forth instruction: HEX 4000 DP !
A
graphical representation of the physical memory partitioning
just
discussed is shown below:
|CHIP INTERNAL|ROM EXTERNAL|RAM EXTERNAL|
0k +-------------+------------+------------+
| 1 K | | |
| RAM | | |
1k +-------------+------------+ |
|
2 times | |
|
8K X 8 | |
|
= 16K | |
| | |
$4000 16k
+-------------+------------+------------|
START OF USABLE RAM | |
| 2 times
|
| 128K X
8 |
| = 256K
|
| |
| |
| |
| |
$3FFFF
256k +--------------------------+------------+
Now try
a simple program to exercise some of these words. Enter:
:
TYPE-LETTERS 5B 41 DO I EMIT LOOP ;
TYPE-LETTERS
to
which the machine will respond:
:
TYPE-LETTERS 5B 41 DO I EMIT LOOP ; OK
TYPE-LETTERS
ABCDEFGHIJKLMNOPQRSTUVWXYZOK
Now
have a look at memory with the DUMP command. Type:
0000 80
DUMP
and
examine the results (remember we put the machine in HEX).
Enter
"WORDS" on the keyboard again and observe that the first
word
displayed has become the word TYPE-LETTERS defined above.
Max-FORTH
V1.3 provided with the NMIX-0026 includes words that
store,
read, move and dump to any memory location on the 1meg
memory
map. The most important of these are
the following:
L!
n Laddr --
Example of use : FFFF
FF700. L!
This command takes the number FFFF and
stores it into the memory
location starting at 0FF700.
L@ Laddr -- n
Example of use: FF700.
L@
This command fetches one word of data at
memory location 0FF700
and places that value onto the stack.
LC!
b Laddr --
Example of use: FF FF700. LC!
This command takes the number FF and
stores it into the memory
starting at 0FF700.
LC@
Laddr -- b
Example of use: FF700. LC@
This command fetches one byte of data at
memory location 0FF700
and places that value onto the stack.
LCMOVE
source-Laddr dest-Laddr n
--
Example of use: FF600. FF700.
FF LCMOVE
This example copies FF bytes of
information starting at 'source-Laddr'
to 'dest-Laddr'.
LDUMP
Laddr n --
Example of use: FF700. FF LDUMP
This example displays FF bytes of
information starting at memory
location FF700.
In the
above examples 'n' is a 16 bit number, 'b' is an 8 bit
number. The long address format
FF700. implies an offset and bank. For the example FF700, the
bank is
taken as 000F, the offset is F700. The
offset is stored
to the
stack first, followed by the bank. Both
the offset and
the
bank are 16 bit numbers.
For
more information on the Max-FORTH language, refer to the
Max-FORTH
User's Manual, order number UM-MAX.
Max-FORTH
IN A NUTSHELL
Max-FORTH
closely follows the basic human methodology for
dealing
with language. Learning a "human" language starts with
understanding
a few simple word. (I.e.: YES, NO, STOP, GO,
etc.).
Next, phrases are made from those words. The meanings of
phrases
are named, and new words are born. Then, larger, more
complex
concepts are built from these simple beginnings.
Complicated
words are defined in terms of simpler words. Using
the
basics, larger and larger concepts are built as vocabulary
grows.
(E.g. from the few words given above, STOP GO STOP means
JERK.)
Suggesting
the closeness of this linkage, the program segments
in
Max-FORTH are called words and are kept in a structure,
called
the dictionary. The dictionary is a linked list with all
known
words in the language. Max-FORTH provides a starter set of
over
300 words. These are the basics, just enough to begin
describing
a programming task comfortably. Each word has a very
precise
meaning, not at all ambiguous. To learn Max-FORTH, a few
of
these words must be understood. From these simple words, low
level
phrases can be described. The phrases are given names.
Newly
defined words can be used in more complex definitions by
their
name. As the programming task progresses, the number of
known
words grows. While the later words can be more complex,
they
are generally easier to understand in terms of named
purpose,
more like the natural language equivalent.
The
last word added to the dictionary fully describes the
program
to be run. It does so in terms of words already known,
which
are further described by other, underlying words, etc. The
pyramiding
structure of lower words can be followed backwards
until
segments "understandable" by the CPU (i.e.: machine code)
are
reached. Those machine-coded words were provided in the
basic
word set already defined in Max-FORTH (The process of
descending,
from compiled word-pointer, to the next compiled
word-pointer,
until finding machine code, is called threading.)
A
Max-FORTH programmer describes the programming problem by
adding
new definitions (or words, for short) to the dictionary.
They
are defined in terms of the words already built into the
language,
which the machine knows how to translate. The new
words
are added to the linked list. They become part of the
language,
describing the problem in terms the computer
"understands".
As words are added, the dictionary grows. Each
added
word describes another part of the program more
succinctly.
A word in Max-FORTH can be evoked by stating its
name
interactively. When the program is finished the whole
program
has one name. The program can be invoked by entering its
name.
To
facilitate dedicated applications, a word can also be started
when
the computer is reset. An autostarted word has a special
demarcation,
a recognition pattern and a pointer left in memory,
which
indicates to the Operating System it should be run.
Max-FORTH
itself is autostarted in this manner, by the Operating
System,
if no other autostarted word is found.
Most
programs for dedicated applications, are endless loops. The
endless
loop of the Max-FORTH development language
is called
the
Outer Interpreter. This structure initializes the system,
then,
repeatedly accepts an input line, translates it, returns
for
another line, etc.
The
syntax of Max-FORTH is remarkable
simple. The language is
practically
free form. The syntax is simply stated: Everything
input
to the Outer Interpreter is either a word or a number. If
the
input is not a known word or translatable as a number, it is
an
error. (The strings found meaningless are echoed back,
followed
by a question-mark.) Words and numbers are delimited by
spaces.
It
would be easy to be misled to believe there is more syntax
associated
with the Outer Interpreter. There is not. Words
sometimes
have actions in themselves which gives the appearance
of
syntax. For instance, comments appear to have a syntax. They
start
with a "(" and end with a ")". A casual reader of
Max-FORTH code will be happily able to read most
listings, by
knowing
the things between free standing "(" and ")"s are
comments.
It is not an action of the language that renders them
as an
uninterpreted string, but rather the action of the word
"("
which throws away the input stream until its matching ")" is
found.
Thus, the Outer Interpreter only sees the "(", executes
it and
continues on. The rest of the comment is bypassed as
surely
as if it were never there.
The
feel of syntax, then, comes not from the language
interpreter
itself, but from the individual words as they are
translated.
Knowing the specific action of the words is
important,
then. The most important are the defining words that
allow
compilation of new definitions. Using the provided words
correctly
will allow the language to be extended. Words that
extend
the language are called defining words.
Max-FORTH
is both an interpreter and a compiler. This is
facilitated
by the Outer Interpreter's two states:
Interpretation
Mode and Compilation Mode. Instructions can be
entered
to be run "on the fly". This immediate "translation and
execution"
is done in the Interpretation Mode. In the
Compilation
Mode, the Outer Interpreter "translates", but,
generally,
does not "execute" the functions found. If the word
has no
markings as a word to be executed immediately, the Outer
Interpreter
defers execution by storing them as executable
tokens
in memory.
The
word that switches the Outer Interpreter from Interpretation
Mode to
Compilation Mode is ":" (pronounced "colon"). The word
that
switches it out of Compilation Mode is ";" (pronounced
semicolon).
When a ":" is interpreted in the input stream, its
execution
has several effects. The Outer Interpreter is switched
to
Compilation Mode. Also, the input stream is searched for a
string
for use as a name for a new definition. This string is
used to
create a dictionary entry for the new word.
This
dictionary entry is called a "head". Linkages are added to
the
head to allow it to be found in memory. This head will be
used
for comparison with the input stream by the Outer
Interpreter
to tell if the new definition is being referenced in
the
input stream. After changing the Outer Interpreter's state,
making
the head, and doing some minor error checking, ":" starts
the
code section of the new word by laying in a pointer to a
routine
that can translate the two byte tokens. It then returns
control
back to the Outer Interpreter. The input stream pointer
is
moved past the string. The Outer Interpreter continues to
evaluate
the input stream.
Words
now found will not be immediately executed. They are
compiled
as tokens into the code section, or "body", of the new
definition
being formed. Most functions compile into one 16-bit
memory
"word" (two bytes). This means compiled Max-FORTH code is
very
compact. A pointer to the "code" of the word to be later
executed
is compiled into the next available two-byte spot in
the
dictionary. This pointer is called the compiled words
Code-Field
Address. This is a lower level linkage than the
dictionary
structure, which points to names. Here, the function
is
referenced by a physical memory address.
This
compilation process continues until the word ";" is
encountered.
The word ";" is from a special class of words which
has a
precedence flag set, telling the Outer Interpreter not to
defer
execution, but to run the word whenever found. This allows
";"
to run, turning off the Compilation Mode, finishing up the
definition,
doing some error checking, and enabling the new
definition
to be found as a new word in the language.
Functions
set between a ":" and a "name-string" on the starting
end,
with a ";" at the end, are compiled into new definitions.
After
the word has been created, its function can be invoked by
including
its "name-string" in the input stream with the Outer
Interpreter
in Compilation Mode. If the outer Interpreter is in
Compilation
Mode, i.e.: making a newer word, including a word's
name in
the input stream will cause the previously defined
function
to be added to a newer words definition. So begins the
pyramiding
of words upon words until a whole program is
described
by one word which references all other word
definitions
required.
For
more information on the Max-FORTH language, refer to the
Max-FORTH
User's Manual, order number UM-MAX.
I/O
PORTS
The signal lines for the MC68HC16's ports are brought out on
the 44
pins of J1. J12 provides access to
control signals.
INPUT/OUTPUT JACKS J1
TOP VIEW
FRONT (EDGE) OF CARD v
- GND o o +5
| X OC1 o o OC2 X
| X OC3 o o OC4 X
|
X IC1 o o IC2 X
| X IC3 o o IC4 X
| I RXD o o TXD X
| X PS0 o o PS1 X
44 pin header | X PS2 o o PS3 X
group | X MS1 o o MS0 X
| GND o o SCK X
| O PMS o o PCL I
| O PMA o o PA1 I
| X IR1 o o IR2 X
| X IR3 o o IR4 X
| X IR5 o o IR6 X
| GND o o IR7 X
| I AD0 o o AD1 I
| I AD2 o o AD3 I
| I AD4 o o AD5 I
| I AD6 o o AD7 I
| VRLP o o VRHP
- GND o o RST
I=INPUT O=OUTPUT
X=EITHER
The
lines can be used as individual inputs or outputs or in
combination.
There are very few applications, however, where
pins
are switched dynamically, sometimes used as inputs,
sometimes
as outputs.
The
outputs of the 68HC16 can sink 1.6 mA
to ground while
letting
the pin go no higher than 0.4 Volts for a "zero" and
source
about .8 mA at 4.5 Volts for a "one". In terms of
control,
this is a very small signal. Most relays require over
50
times more current to operate. LED's typically take 5 mA to
be
visible. HC levels are such that the output is sufficient to
drive
the input on one pin of one TTL device
or about a dozen
of the
lower power LSTTL inputs. The output is sufficient to
drive
VMOS FET's and Darlingtons with an external pull up which
can in
turn con trol several amps of current. Usually, however,
a
buffer will be needed to do serious non-HC in terfacing.
INPUT/OUTPUT JACKS J12
TOP VIEW
FRONT (EDGE) OF CARD v
- DS o o BERR
| GND o o BKPT
| GND o o FRZ
| RST o o IP1
| +5V o o IP0
| SIZ0 o o TSTME
| SIZ1 o o N.C.
26 pin header | DS0 o o
AVC
group | DS1 o
o FC2
| BR o o CS4
| RAMSEL o o CS3
| BGACK o o CLKOUT
| HALT o o MODCLK
ASYNCHRONOUS
SERIAL I/O
The 68HC16 has a full duplex hardware serial
channel that
operates
at HC levels. To use this serial channel with most
standard
communications interfaces, level converters are needed.
Drivers
for RS-232C and RS-422/485 drivers are on the boards. A
zero by
RS-232C specification is any voltage from +3 to +15
Volts,
a one is between -3 and -15 Volts. To convert the HC
signals
to the voltage ranges of that interface standard, the
NMIX-
0026 Rev. 1.1 uses a single 16 pin device, the MAX232. The
MAX232
is specifically designed for this use. It not only
provides
an RS-232 receiver and transmit ter pair for the
68HC16
processor, but also a spare RS-232 receiver and
transmitter
pair which can be used with port lines for
handshaking
or software driven UARTS, etc.. It also generates
the
higher voltages needed for full RS-232 communications
standards
by way of an internal charge pump. This allows output
swings
of a nominal + and - 9V, even though the chip is only
supplied
+5V. J2 selects between RS232 and
RS422/485 serial
interfaces. With the leftmost two pins jumpered RS232
operation
is
selected.
The
RS-422 standard represents a newer interface now coming into
popularity,
and with good reason. Unlike the RS-232 requirements
which
specify a single wire voltage transmission referenced to
ground,
the RS-422 standard uses a voltage differential on a
pair of
conductors. While the RS-232 at full voltage drive
levels
in electrically noisy environments is barely reliable at
distances
to 1000 feet, RS-422 signals are considered reliable
at
distances up to 4000 feet. The RS-422 drivers operate,
requiring
only a single sided 5 Volt supply, over twisted pairs
of
wires. A full duplex connection for RS-422 requires two
twisted
pairs, one for transmit, one for receive. The shield of
the
twisted pair should act as the common return path for the
signals.
The
RS-485 interface uses the same specifications for its
transmitters
and receivers. It, however, allows a single twisted
pair to
be used for incoming and outgoing messages. This is
accomplished
by having both a transmitter (with 3 state ability)
and a
receiver tied in parallel to the same twisted pair.
Multiple
drop point communications are possible under this
scheme
(up to 64 pairs by specification). Of course, in
application
the transmitter turns on and takes control of the
lines
only under software control. The actual implementation of
this
control will be determined by the particular protocol being
used in
the communication network. Usually one master sends an
addresses
message to one of multiple slaves and then turns off
its
master trans mitter. The addressed
slave, recognizing its
address
will turn on its transmitter and respond with the
requested
data.
These
two interfaces are accommodated on the NMIX-0026 by the
addition
of two 8 pin 75176's, with each contain a
transmitter/receiver
pair. J2 routes the RXD signal to
either
one fo
the 75176s (U3) or the R1O of the MAX232.
RS232
operation
is enabled by jumpering the leftforst two pins. J8
allows
U4 to be enabled either from being tied to +5 volts or
being
switched by IRQ2. The rightmost two
pins are jumpered for
normal
RS232 operation. J4 selects between
RS422 and RS485
operation. For RS232 operation the rightmost two pins
are
jumpered.
ANALOG
TO DIGITAL CONVERTER
The MC68HC16 provides eight multiplexed A/D
channels. The
analog
inputs to these channels are accessed on pins 33 through
40 on
J1. These inputs can also be used for
digital information
and can
be configured with software for an additional 8-bit
parallel
input port. Vrhp (pin 42 of J1) and
Vrlp (pin 41 of
J1) are
connections for a reference supply to be used with the
A/D
converter. These pins connect directly
to the Vrhp and Vrlp
pins on
the MC68HC16 and need to be connected to a reference
supply
to make the A/D converter function.
Vrhp should be
connected
to Vdda and Vrlp should be connected to Vssa.
External
references may also be used if they are well regulated
and
free of noise.
The
sample amplifier in the A/D subsection of the MC68HC16 is
powered
by Vdda and Vssa. This allows the
sample amplifier to
accurately
transfer input signal levels up to but not exceeding
Vdda
and down to but not below Vssa. Should
the input signal
fall
outside this range, the output from the sample amplifier
will be
clipped and conversion accuracy will suffer.
Data
and control words associated with the A/D are memory mapped
into 32
words of address space from $FF700 - $FF73E (only the
even
addresses are used). Three sets of
result registers per
channel
offer converted data as Right-Justified Unsigned,
Left-Justified
Signed, and Left-Justified Unsigned.
The
forth program TESTADC.4TH in the programming section is an
example
of implementing an endless loop of repetative
conversions
using all eight channels. The
conversion result is
displayed
on the screen, one row of conversions per line with
two
spaces between each eight-bit hex value.
The data in
columns
1 and 2 are channel 7 data. Data to the
right of that
comes
from channel 6, and so on with channel 0 data being on the
far
right of the display.
Each
analog input channel (J1 pins 33, 34, 35, 36, 37, 38, 39,
and 40)
should be terminated to ground through a 10k ohm or
larger
resistor. Doing so will prevent them
floating and ensure
a zero
conversion result with no voltage applied to the analog
input. A variable voltage derive from a 50k ohm pot
may be used
to
drive the inputs and verify operation.
The center wiper of
the pot
is connected to the input to the channel to be tested.
One
side of the pot goes to ground, the other can be hooked to
any
conveinient +5 volt source on the board.
Varying the pot
should
run the readout for a particular channel from 0 to FF.
If this
is what you see, the A/D subsection is working properly.
ADDRESS
DECODING
The
chip selects of the four JEDEC sockets are generated by a
18V8Z
(U2) a Prgrammable Logic Device.
Address configurations
supporting
the use of 8k, 16k 32k, 64k, 128k,
256k, and 512k
static
ram memories are defined by jumper settings on
configuration
block J20. Configuration block J27 allows the
use of
8k, 16, 32k, 64k, 128k, 256k, 512k, and 1024k EPROMS in
U9 and
U11. Memory socket U9 is the upper data
byte (even), and
U11 is
the lower data byte (odd). The RAM is
similarly
interleaved
with U8 being the upper half and U10 being the lower
half. A complete diagram of setting jumpers at J27
and J20 for
each of
the devices mentioned abouve is given in the section on
SOCKET
JUMPER SETTINGS.
POWER
SUPPLY
The
power supply circuit on the NMIX-0026 is designed to allow
the
board to operate from a simple, low-voltage, AC
wall-transformer.
It has three major sub circuits,
rectification,
regulation and DC to DC conversion.
Battery
backup
capabilities are also provided to the 32 pin JEDEC
sockets
and the 68HC16 internal RAM, and a power-up power-down
reset
circuit.
The
bridge rectifier converts the AC to DC. The 7805 regulates
this
rectified incoming voltage to a constant 5 Volts. The
upper
limit of unregulated DC input to
the 7805 is set by the
ability
of the 7805 to dissipate heat. If a heat sink is added
to the
7805, voltages in excess of 20 Volts are possible.
Driving
the 7805 too hard, however, will cause it to enter
thermal
overload and "shut down" its output.
The
typical current required by the NMIX-0026 with 8K CMOS RAM
and the
Max-FORTH ROM at 16.78 mHz from 9 VAC is 20 mA. An AC
"wallbug"
style supply delivering 6 to 10 VAC RMS
at more than
50 mA.
is adequate to power the board. Terminal,
J10, is
provided
with mounting holes to solder in a standard
'barrel-style'
AC power connector used with most wall bug style
supplies. With CR1 installed you can use virtually any
wallbug
style
supply (AC or DC and you don't need to be concerned about
polarity
with the DC supply). The overriding
requirement is to
have
about 8 volts DC input for the 7805 while the system is
under
full load..
BATTERY
BACKUP
The
battery backup capability allows data retention in otherwise
volatile
CMOS RAMs and the processor's own internal RAM through
main-board
power-downs. A third terminal on the power connector,
J7, is marked VIN. This the connection for Voltage Battery
Backup.
The VIN
terminal on J7 is connected to the VBB supply rail on
the board
by diode, D1. The VBB supply rail supplies the four 32
pin
JEDEC sockets, the 8054HN low voltage indicator in the reset
circuit, and the MC68HC16 processor. If no power is applied to
the VIN
terminal, the VBB rail is supplied through the intrinsic
diode
of P channel FET, Q1, to within a diode drop of the
supplying
5 volt rail (~4.4 Volts). When the 8054HN low voltage
indicator
releases the reset line, Q1 is turned on and the VBB
comes
almost completely up to the 5 volt rail (~4.95 Volts).
(This
may cause some problem with the Dallas Semiconductor
DS1223
bat tery sockets, as they "write protect" their RAMs at
4.75
Volts. Running an elevated 5 Volt supply may be necessary
to
accommodate these parts. The purpose of this feature is,
however,
to do away with the need for those devices in final
system
configurations.)
When
the 8054HN low voltage indicator holds the reset line low
(when
VBB is below 3.8-4.2 Volts), Q1 is turned off and the
address
decoder is disabled through the same input that is used
by
MEMDIS. This "access" protects the memories during the power
down
cycle.
To meet
the full letter of the specifications of the parts
involved
the correct backup voltage on the VBB pin is critical.
This
supply must be low enough to ensure that after the diode
drop of
D1, the VBB rail cause the 8054HN to issue a reset (~4.0
Volts),
otherwise Q1 will remain on and the whole system will be
powered
by VBB. It must also be high enough to ensure that after
the
diode drop of D1, the VBB rail will meet the processors
required
backup voltage (listed as 4.0 Volts). Therefore, the
ideal
voltage for the VBB supply is 4.3-4.5 Volts. It should be
pointed
out, however, the Motorola specification appears to be
overly
conservative. By empirical test, VBB
supplies below 3
Volts
appear to be quite adequate. Most CMOS RAMs will retain
data
down to 2.2 Volts. Accounting for the diode drop under such
low
currents, the VBB supply may work as low as 2.5 Volts.
The
processor battery backup supply enters the chip via the
Vdds
pin. For backup of the processor's RAM
to be successful
Vstby
is connected to Vddsin on the circuit card.
When the VBB
supply
is used on the processor, it will retain its User Area
through
power down and remember its linkages to the external
FORTH
dictionary.
BOARD
MOUNTING
The
NMIX-0026 has six through holes intended for
mounting the
card. Each hole is deilled at 0.110 inches,
clearance for 4-40
hardware. Use caution when installing to prevent
inadvertent
grounding
of printed circuit board traces. The mounting hole
just
below J13 is the only that has a trace
located nearby.
Additional
boards may be stacked above or below, as desired, on
the
female of male side of the Vertical
Stacking Connector
(VSC).
Common,
3/4 inch long, hex standoffs with a male screw on one
end and
a female threaded hole on the other are ideal interboard
connection
devices. The VSC connector was designed
to work with
this
size spacer, giving reliable board to board mounting.
The
length of the standard spacer, 0.750 inches, plus the board
thickness,
0.061 inches, gives a nominal board to board spacing
of
0.811 inches. Should an exact spacing
of 0.800 inches be
required,
as in the case of standard mounting hardware haviong
0.800
inch PCB card guides, The standard spacer will have to mbe
milled
to reduce its length by 0.011 inches.
TROUBLESHOOTING
As
always the first thing to do when troubleshooting is to check
the
power and ground connections. An oscilloscope should be used
to
check signals. The heat sink of the 7805 is a con venient
place
to hook a ground clip. If +5 Volts is present at J7 and
the
board is not operational, the next item to check is the
oscillator.
Putting the scope on CLKOUT (Pin 24 J12)
should
show a
high frequency sine wave varying from about .5 Volt lows
to 4.5
Volt peaks. If the clock signal is not
present check
to see
if there is +5V present at the power pin Vdd (Pins 1,
and 59
on U1). An accessible test point for
this check is
either
end of L2. If the clock signal is not
present and Vdd
is at
+5 volts, then either the MC68HC16 or
the crystal are bad
and
require replacement. There is one exception. If the
processor
has executed a STOP instruction, the oscillator will
stop.
When the oscillator is functioning correctly a clean
running
square wave should be present at the CLKOUT.
The CLKOUT
signal
drives the timing for all external memory transfers. This
signal
should transition nearly rail to rail, a 0.4V low and a
4.6V
high are normal. Less amplitude can indicate a board short
or an
excessive load on the line external to the
MC68HC16.
The
serial channel should send a sign-on message to the
terminal. If not, the reset circuit could be bad, the
serial
converter
(U5) could have failed, or the MC68HC16 could be
defective.
With the reset button depressed the RESET line (Pin
44 J1) should be at ground. When release, the
pin should rise
to 5
Volts in about a quarter second. If the reset pin is
working
and still no message is seen on the terminal, check TXD,
the
serial output line, at pin 11 on U5.
When reset is
exercised,
this line should go from normally high through a
multitude
of toggles back to a high state. The periods of the
toggle
transitions are multiples of approximately 100
microseconds.
If this signal is not present, and there are no
user
ROMs in the board, the MC68HC16 is suspect. If the signal
is
present, check pin 3 of the DB25F connector. It should
normally
be at -V (-9 Volts nominally) and should toggle to +V
(+9
Volts nominally) at the same rate as the serial output line.
If this
is happening and no message is seen, the RS-232 wiring
or the
terminal is suspect. Check to see if J6 is connected to
the
DB25F RS-232 connector as follows:
J6 DB25F Signal Name
------
----- ------ ----
n/c 1 Case ground
5 2 Serial in
(to NMIX-0026)
3 3 Serial out (from NMIX-0026)
9 7 Electrical ground
Check
the voltages on pins 2 and 3 of the DB25 connector. If
pin 3
is very negative and pin 2 is floating, both systems are
trying
to talk on the same line. Pins 2 and 3 need to be
swapped.
Usually this is done with a "null modem" inserted where
the two
systems connect.
If the
-V/+V signal was not found at pin 3, the RS-232 converter
is not
working. Check pin 2 of the MAX232 for +V and pin 6 of
the MAX232 for -V. If these signals are not
present, the charge
pump of
the MAX232 has failed. Pin 14 of the MAX232, the output,
should
look the same as pin 5 of J6.
Check
pin 3 of J6 which is the serial into the board from the
terminal.
It should normally be at a negative voltage between -3
and -15
Volts. When a key is pressed on the terminal it should
pulse
to positive voltages between +3 and +15 Volts. If it
doesn't,
the terminal or the RS-232 wiring are suspect. The same
signals
at inverted TTL levels, should also be at RXD, which is
the
serial input line of the processor.
The
most common error in trying to use the NMIX-0026 is
mismatched
baud rates or bit set tings. Verify that the terminal
is set
for 9600 baud with one start bit, eight data bits and one
stop
bits, with no parity generated. Also,
make sure that the
terminal
software is set up properly. For example,
when using a
PC as a
terminal, MAXTALK is used when connected to COM1 while
MAXTALK2
is used when connected to COM2. (Review
this
discussion
in the Getting Started section.)
MEMORY
MAP
The
MC68HC16 offers the user an contiguous address space of 1
megabyte
which is split into 16-64kbyte banks.
On power up, the
1k byte
internal ram on the MC68HC16 maps to $00000 so that it
will be
avialable to the user even if there is no additional
external
ram available.
K# HEX
1024
$FFFFF +----------------------+
|Bank 15 INT REGS |
960 $F0000 |----------------------|
|Bank 14 |
896 $E0000 |----------------------|
|Bank 13 |
832 $D0000 |----------------------|
|Bank 12 |
768 $C0000 |----------------------|
|Bank 11 |
704 $B0000 |----------------------|
|Bank 10 |
640 $A0000 |----------------------|
|Bank 9 |
576 $90000 |----------------------|
|Bank 8 |
512 $80000 |----------------------|
|Bank 7
|
448 $70000 |----------------------|
|Bank 6 |
384 $60000 |----------------------|
|Bank 5
|
320 $50000 |----------------------|
|Bank 4 |
256 $40000 |----------------------|
|Bank 3 |
192 $30000 |----------------------|
|Bank 2 |
128 $20000 |----------------------|
|Bank 1 |
64 $10000 |----------------------|
|Bank 0 RESET+VECT |
+----------------------+
MISCELLANEOUS JUMPERS
# SOURCE DESTINATION
NORMALLY
-------- ------------------ ------------------ --------
J2
R1O-J2,2
U5 PIN 12 U1 PIN
17 CLOSED
J2,2-RO
U1 PIN 17 U3 PIN 1 OPEN
J4
IRQ2-J4,2
U1 PIN 77 U3 PIN
2&3 OPEN (485)
J4,2-GND
U3 PIN 2&3
GROUND
CLOSED(422)
J8
IRQ2-J8,2
U1 PIN 77 U4 PIN
2&3 OPEN
J8,2-+5V
U4 PIN 2&3 +5 VOLR
RAIL CLOSED
GENERAL
PURPOSE SOCKETS
JUMPER 1 o o 32 +5
A16 2 o o 31 JUMPER
JUMPER 3 o o 30 JUMPER
A12 4 o o 29 JUMPER
A7 5 o o 28
JUMPER
A6 6 o o 27 A27
A5 7 o o 26 A9
A4 8 o o 25 A11
A3 9 o o 24 OE
A2 10 o o 23 A10
A1 11 o o 22
CHIP SELRCT
A0 12 o o 21
IO/7
IO/0 13 o o 20
IO/6
IO/1 14 o o 19
IO/5
IO/2 15 o o 18
IO/4
GND 16 o o 17
IO/3
A15 A16 A19 VBB VBB R/W
O O O
O O O
VBB O O O
O O O O O
O O O
O O O O
A16 A19 +5 A18 A14 A15 VBB
GENERAL PURPOSE SOCKET - U8, U9, U10, U11
MEMORY JUMPER SETTINGS
Jumper
Settings for Standard JEDEC 28/32/36
Pin Devices
8K X 8
DEVICES
2764,
2864, 6264
A15 A16 A19
VBB VBB R/W
+-----+-----+-----+-----+-----+-----+
+-----| | | |
X | X | X
|-----+
|
XXXXXXX | |
| X | X |
X | |
+-----| | | |
| | | |
+-----+-----+-----+-----+-----+-----+-----+
VBB
A16 A19 VBB
A18 A14 A15
VBB
(+5
PIN3 PIN1 PIN28 PIN29 PIN30
PIN31)
(CENTER PIN DESIGNATION)
16K X 8
EPROM
27128
A15 A16 A19
VBB VBB R/W
+-----+-----+-----+-----+-----+-----+
+-----| | | |
X | | X |-----+
|
XXXXXXX | |
| X | X |
X | |
+-----| | | |
| X | | |
+-----+-----+-----+-----+-----+-----+-----+
VBB
A16 A19 VBB
A18 A14 A15
VBB
(+5
PIN3 PIN1 PIN28 PIN29 PIN30
PIN31)
(CENTER PIN DESIGNATION)
32K X 8
EPROM
27256
A15 A16 A19
VBB VBB R/W
+-----+-----+-----+-----+-----+-----+
+-----| | | |
X | | |-----+
|
XXXXXXX | |
| X | X |
X | |
+-----| | | |
| X | X |
|
+-----+-----+-----+-----+-----+-----+-----+
VBB
A16 A19 VBB
A18 A14 A15
VBB
(+5
PIN3 PIN1 PIN28 PIN29 PIN30
PIN31)
(CENTER PIN DESIGNATION)
32K X 8
RAM
62256
A15 A16 A19
VBB VBB R/W
+-----+-----+-----+-----+-----+-----+
+-----|
X | | | X
| | X |-----+
|
| X | | |
X | X | X
| |
+-----| | | |
| X | | |
+-----+-----+-----+-----+-----+-----+-----+
VBB
A16 A19 VBB
A18 A14 A15
VBB
(+5
PIN3 PIN1 PIN28 PIN29 PIN30
PIN31)
(CENTER PIN DESIGNATION)
64K X8 EPROM
A15 A16 A19
VBB VBB R/W
+-----+-----+-----+-----+-----+-----+
+-----| | | |
X | | |-----+
|
| X | | |
X | X | X
| |
+-----|
X | | | |
X | X | |
+-----+-----+-----+-----+-----+-----+-----+
VBB
A16 A19 VBB
A18 A14 A15
VBB
(+5
PIN3 PIN1 PIN28 PIN29 PIN30
PIN31)
(CENTER PIN DESIGNATION)
128K X
8 RAM
A15 A16 A19
VBB VBB R/W
+-----+-----+-----+-----+-----+-----+
+-----|
X | X | X
| X | | X
|-----+
|
| X | X |
X | X | X
| X | |
+-----| | | |
| X | | |
+-----+-----+-----+-----+-----+-----+-----+
VBB
A16 A19 VBB
A18 A14 A15
VBB
(+5
PIN3 PIN1 PIN28 PIN29 PIN30
PIN31)
(CENTER PIN DESIGNATION)
256K X
8 RAM/512K X 8 RAM
A15
A16 A19 VBB
VBB R/W
+-----+-----+-----+-----+-----+-----+
+-----|
X | X | X
| | | X |-----+
|
| X | X |
X | X | X
| X | |
+-----| | | |
X | X | |
|
+-----+-----+-----+-----+-----+-----+-----+
VBB
A16 A19 VBB
A18 A14 A15
VBB
(+5
PIN3 PIN1 PIN28 PIN29 PIN30
PIN31)
(CENTER PIN DESIGNATION)
128K X
8, 256K X 8, 512K X 8, 1024K X 8 EPROM
A15 A16 A19
VBB VBB R/W
+-----+-----+-----+-----+-----+-----+
+-----| | | |
| | |-----+
|
| X | X |
X | X | X
| X | |
+-----|
X | X | X
| X | X | X |
|
+-----+-----+-----+-----+-----+-----+-----+
VBB
A16 A19 VBB
A18 A14 A15
VBB
(+5
PIN3 PIN1 PIN28 PIN29 PIN30
PIN31)
(CENTER PIN DESIGNATION)
To
write protect the ram use the same addressing scheme jumpers
given
in the previous examples but add the following pull up
resistor.
REMOVE THIS JUMPER ----+
|
|
|
A15 A16 A19
VBB VBB R/W |
+-----+-----+-----+-----+-----+--|--+ VBB
+-----| | | |
| | | |-----+
|
| X | X |
X | X | X
| X | |
+-----|
X | X | X
| X | X |
X | |
+-----+-----+-----+-----+-----+-----+--|--+
VBB
A16 A19 VBB
A18 A14 A15
|
|
|
|
ADD A 100K 1/4 4 5% RESISTOR ACROSS THESE
PINS---+
(+5
PIN3 PIN1 PIN28 PIN29 PIN30
PIN31)
(CENTER PIN DESIGNATION)
INPUT/OUTPUT
JACKS
EXPANSION
JACK J13
D14 o o D15
D12 o o D13
D10 o o D11
D8 o o D9
GND o o GND
GND o o GND
GND o o GND
GND o o GND
GND o o GND
GND o o GND
NC o o A19
A17 o o A18
AS o o BHE
MEMDIS o o BLE
E o o RST
A16 o o IRQ1
A15 o o +5
A13 o o R/W
A8 o o A14
A7 o o A9
A6 o o A10
A5 o o A12
A4 o o OE
A3 o o A11
A2 o o AS64
A1 o o D7
D0 o o D6
D1 o o D5
D2 o o D4
GND o o D3
The J13
expansion connector was designed to follow the JEDEC
stan
dard for byte sized memory parts in the 8, 16 and 32K Byte
varieties.
The J4 connector on these boards are made to most
closely
match the more recently available 32K JEDEC parts.
SERIAL
INPUT/OUTPUT JACK J11 (RS442/485)
TOP VIEW
(PIN 1)
N.C. o o NC
+422XMT o o -422XMT
GND o o GND
-422RCV o o +422RCV
N.C. o o N.C.
SERIAL INPUT/OUTPUT JACK J6 (RS232)
TOP VIEW
(PIN 1) N.C. o
o TO J6-5
SI o o TO J6-6
SO o o TO J6-4
TO J6-2 o o N.C.
GND o o N.C.
FACTORY DEFAULT SETTING FOR RS232
+---+---+---+
| XXXXX | o | J2
+---+---+---+
+---+---+---+
| o | XXXXX | J8
+---+---+---+
+---+---+---+
| o | XXXXX | J4
+---+---+---+
PROGRAMMING
EXAMPLES
The
following programming example deals with the Analog to
Digital
Converter subsection. The program
excercises all eight
channels
of the A to D. Conversion results are
displayed on the
terminal
screen as rows of data scrolling in columnar form. The
far
left two columns contain conversion data from channel 7.
Data
from channel 6 is the the right of that, and so on with
channel
0 at the far right of the display.
The
data inputs are connected to pins 33 through 40 on J1. Each
channel
is connected between one of these pins and ground. Each
input
is also terminated to ground through a 1k ohm 1/4 watt
resistor. Termination to ground ensures each channel
will be at
a
conversion value of zero when no analog signal is applied.
Vrlp,
(pin 41) of connector J1, must be connected to Vssa.
Vrhp,
(pin 42) of connector J1, must be connected to Vdda.
These
connections set the reference voltage for the A/D. The
example
sets up an 8-bit conversion giving a range of 00 to FF
for
voltages ranging from 0 VDC to 5 VDC.
The converter is also
capable
of doing 10 bit conversions. The input
channels of the
A/D can
also be used as digital inputs for standard TTL and CMOS
digital
levels. Concurrent use as analog or
digital use is
possible
as long as the channels are not required to do A/D
conversion
and digital input at the same time. For
instance,
since
each channel has a conversion complete flag in the status
byte,
this flag could be used to indicate availablitlity for
digital
use after an analog conversion has been completed and
before
the next one is allowd to begin.
Shown
below is a summary of the determination of the various
data
used to initialize the registers in the programming
example. More detailed information is avialable in
the Motorola
Refernce
Manual for the MC68HC16.
ADCMCR
FF700
|0|0|0|X|X|X|X|X|X|0|X|X|X|X|X|X| =
0000
| | |
|
| | | +--SUPV BIT, NO EFFECT ON HC16Z1
| +-+-FREEZ RESPONSE-SET TO IGNORE
+--BECOMES '1' AFTER RESET. SETTING '0' TURNS ON
PORTADA
FF706
|0|X|X|X|X|X|X|X|7|6|5|4|3|2|1|0| = WRITE ONLY
| | | | | | |
| |
|
+-+-+-+-+-+-+-+--- PADA(0-7)
|
+---- SHOWS 0 AFTER RESET
Channels may be used for input or digital input. They
MUST be used for analog input, but can be used for
digital input after an A/D cnversion is complete and
before another begins.
ADCTL0 FF70A
|1|X|X|X|X|X|X|X|1|1|1|1|1|1|1|1| =
FFFF
| | | | | | |
| |
| | | |
+-+-+-+-+-PRESCALE RATE SCLK/64
| |
+-+-SAMPLE TIME 32 A/D CLK PERIODS
| +--10 BIT
MODE SET (0 FOR 8-BIT MODE)
+--BECOMES '0' AFTER RESET. SETTING '1' TURNS ON
ADCTL1 FF70C
|1|X|X|X|X|X|X|X|X|1|1|1|0|1|1|1| =
FFF7
| | | | | |
| |
| | | +-+-+-+-+-+-AN[0:7]
RSLT[0:7]
| | |
|MULTIPLE 8 CHANNEL CONVERSION
|
+-+-+SEQUENCES
+-
SHOWS '0' AFTER RESET, '1' TURNS ON
ADSTAT FF70E
|d|X|X|X|X|d|d|d|7|6|5|4|3|2|1|0| =
READ ONLY
| | | | | | | | | |
| |
+-SEQ | | |
+-+-+-+-+-+-+-+
COMPLETE | | | +CHANNEL
STATUS BITS
WHEN '1' | | | '1'=
CONVERSION COMPLETE
| | | REVERTS TO '0' ON READING
RESULT
| | |
+-+-+--VALUE IS # OF NEXT RESULT REGISTER
TO BE WRITTEN
A/D
RESULT REGISTER CHANNELS:
0
1 2 3
4 5 6
7
FF710 FF712
FF714 FF716 FF718
FF71A FF71C FF71E
right
justified unsigned
FF720 FF722 FF724 FF726 FF728
FF72A FF72C FF72E
left
justified signed
FF730 FF732
FF734 FF736 FF738
FF73A FF73C FF7E3
left
justified unsigned
(
TESTADC1.4TH )
( FEB
2, 1995 )
( BY
FRANK KAMP )
COLD
HEX
FF700.
2CONSTANT ADCMCR ( module configuration
reg addr
FF70A.
2CONSTANT ADCTL0 ( ADC control reg 0
FF70C.
2CONSTANT ADCTL1 ( ADC control reg 1
FF70E.
2CONSTANT ADSTAT ( ADC status reg
FF710.
2CONSTANT CH-0 ( channel 0 digital
output
FF712.
2CONSTANT CH-1 ( channel 1 digital
output
FF714.
2CONSTANT CH-2 ( channel 2 digital
output
FF716.
2CONSTANT CH-3 ( channel 3 digital
output
FF718.
2CONSTANT CH-4 ( channel 4 digital
output
FF71A.
2CONSTANT CH-5 ( channel 5 digital
output
FF71C.
2CONSTANT CH-6 ( channel 6 digital
output
FF71E.
2CONSTANT CH-7 ( channel 7 digital
output
:
INIT0 0000 ADCMCR L! ; ( turns on A/D
subsection
:
INIT1 FF7F ADCTL0 L! ; (
8-bit,16clkp,clk/64
:
CONVERT FFF7 ADCTL1 L! ; ( cont conv,8ch,AN[0:7]
:
DELAY 1000 0 DO LOOP ; ( simple delay
loop
:
READ-STATUS ADSTAT L@ ; ( reads status
register
:
TEST-CH-5 20 AND 0= ; ( tests ch5 for a
'1'
:
TEST-FOR-FIVE ( loops until ch5
conversion complete
BEGIN
READ-STATUS
TEST-CH-5
UNTIL ;
:
DISPLAY
CH-7 L@ 4 U.R ( The display routine outputs
digital
CH-6 L@ 4 U.R ( data in columnar format
across scren
CH-5 L@ 4 U.R ( starting with ch7 at the
far left.
CH-4 L@ 4 U.R ( Display scrolls down screen
as conversions
CH-3 L@ 4 U.R ( progress.
CH-2 L@ 4 U.R
CH-1 L@ 4 U.R
CH-0 L@ 4 U.R ;
:
TESTADC ( Main routine
INIT0 ( A/D on
INIT1 ( initialization
BEGIN
CONVERT ( initialization and start conversion
TEST-FOR-FIVE ( checks for conversion
complete
DISPLAY ( outputs result to screen
DELAY ( fixed wait to slow display
CR ( goes to next display line
?TERMINAL ( loop ends on any key depress
UNTIL
; ( loops to BEGIN
REGISTERS
K# HEX
1024 $FFFFF +----------------------+
|----------------------|
$FFDFF |----------------------|
|QSM 512 BYTES |
$FFC00 |----------------------|
$FFB07 |----------------------|
|SRAM CTRL 8 BYTES |
$FFB00 |----------------------|
$FFA7F
|----------------------|
|SIM 128 BYTES
|
$FFA00 |----------------------|
$FF93F |----------------------|
| GPT 64 BYTES |
$FF900 |----------------------|
$FF73F |----------------------|
| ADC 64 BYTES |
$FF700 |----------------------|
|----------------------|
+----------------------+
ADC
SUBSECTION
FF700 (ADCMCR) Module Configuration
FF702 (ADTEST) Factory Test
FF704 RESERVED
FF706 (PORTADA) Port ADA data
FF708 RESERVED
FF70A (ADCTL0)
ADC control 0
FF70C (ADCTL1)
ADC control 1
FF70E (ADSTAT)
ACD status
FF710-FF71E (RJURR0-RJURR7) Right-Justified unsigned
results
FF720-FF72E (LJSRR0-LJSRR7) Left-Justified signed
results
FF730-FF73E (LJURR0-LJURR7) Left-justified unsigned
results
GPT
SUBSECTION
FF900 (GPTMCR) Module configuration
FF902 RESERVED
FF904 (ICR) Interupt configuration
FF906 (DDRGP) PGP data direction (PORTGP) PGP data
FF908 (OC1M) OC1 action mask (OC1D) OC1 Action data
FF90A (TCNT) TIMER COUNTER
FF90C (PACTL) PA Control (PACNT) PA Counter
FF90E (TIC1)
Input capture 1
FF910 (TIC2)
Input capture 2
FF912 (TIC3)
Input capture 3
FF914 (TOC1)
Output compare 1
FF916 (TOC2)
Output compare 2
FF918 (TOC3)
Output compare 3
FF91A (TOC4)
Output compare 4
FF91C (TI4/05)
Input capture 4 / Output compare 5
FF91E (TCTL1) Timer ctrl 1 (TCTL2) Timer ctrl 2
FF920 (TMSK1) Timer mask 1 (TMSK2) Timer mask 2
FF922 (TFLG1) Timer flag 1 (TFLG2) Timer flag 2
FF924 (CFORC) Force compare (PWMC) PWM control C
FF926 (PWMA) PWM control A (PWMB) PWM control B
FF928 (PMCNT) PWM Count
FF92A (PWMBUFA) PWMA Buffer (PWMBUFB) PWMB Buffer
FF92C (PRECSL) PRESCALER(lower 9 bits)
FF92E-FF93F
RESERVED
SIM
SUBSECTION
FFA00 (SCIMCR) SCIM Configuration Register
FFA02 (SCIMTR) Module Test
FFA04 (SYNCR) Clock Synthesizer Control
FFA06 UNUSED (RSR) Reset status register
FFA08 (SCIMTRE) Module Test E
FFA0A (PORTA) Port A Data (PORTB) Port B Data
FFA0C (PORTG) Port G Data (PORTH) Port H Data
FFA0E (DDRG) Port G Data Dir (DDRH) Port H Data
Dir
FFA10 UNUSED (PORTE0) Port E Data
FFA12 UNUSED (PORTE1) Port E Data
FFA14 (DDRAB) Port A/B Data Dir (DDRE) Port E Data
Dir
FFA16 UNUSED (PEPAR) Port E pin assig
FFA18 UNUSED (PROTF0) Port F Data
FFA1A UNUSED
FFA1C UNUSED (DDRF) Port F Data Dir
FFA1E UNUSED (PFPAR) Port F pin assign
FFA20 UNUSED
FFA22 (PICR) Periodic Interupt Control
FFA24 (PITR) Periodic Interupt Timing
FFA26 UNUSED (SWSR)
Software Service
FFA28 UNUSED (PROTFE) Port F edge det flags
FFA2A UNUSED (PFLVR) Port F edge det int vector
FFA2C UNUSED (PFLVR) Port F edge det int level
FFA2E UNUSED
FFA30 (TSTMSRA) Test Module Master Shift A
FFA32 (TSTMSRB) Test Module Master Shift B
FFA34 (TSTSCA) Tst Mod Cnt A (TSTSCB) Tst Mod Cnt B
FFA36 (TSTRC) Test Module Repetition Counter
FFA38 (CREG) Test Module Control
FFA3A (DREG) Test Module Distributed Register
FFA3C UNUSED UNUSED
FFA3E UNUSED UNUSED
FFA40 UNUSED (PORTC) Port C Data
FFA42 UNUSED UNUSED
FFA44 (CSPAR0) Chip-Select pin assignment 0
FFA46 (CSPAR1) Chip-Select pin assignment 1
FFA48 (CSBARBT) Chip-Select base address boot
FFA4A (CSORBT) Chip-Select option boot
FFA4C (CSBAR0) Chip-Select base 0
FFA4E (CSOR0) Chip-Select option 0
FFA50 UNUSED
FFA52 UNUSED
FFA54 UNUSED
FFA56 UNUSED
FFA58 (CSBAR3) Chip-Select base 3
FFA5A (CSOR3) Chip-Select option 3
FFA5C UNUSED
FFA5E UNUSED
FFA60 (CSBAR5) Chip-Select base 5
FFA62 (CSOR5) Chip-Select option 5
FFA64 (CSBAR6) Chip-select base 6
FFA66 (CSOR6) Chip-Select option 6
FFA68 (CSBAR7) Chip-Select base 7
FFA6A (CSOR7) Chip-Select option 7
FFA6C (CSBAR8) Chip-Select base 8
FFA6E (CSOR8) Chip-Select option 8
FFA70 (CSBAR9) Chip-Select base 9
FFA72 (CSOR9) Chip-Select option 9
FFA74 (CSBAR10) Chip-Select base 10
FFA76 (CSOR10) Chip-Select option 10
FFA78 UNUSED
FFA7A UNUSED
FFA7C UNUSED
FFA7E UNUSED
SRAM
CTRL SUBSECTION
FFB00 (RAMMCR) RAM Module Configuration Register
FFB02 (RAMTST) RAM Test Register
FFB04 (RAMBAH) RAM Array base address register
high
FFB06 (RAMBAL) RAM Array base address register low
QSM
SUBSECTION
FFC00 (QSMCR)
QSM Module Configuration
FFC02 (QTEST)
QSM Test
FFC04 (QUILR)
QSM Interupt Level (QIVR) QSM
interrupt vector
FFC06 RESERVED
FFC08 (SCCR0)
SCI Control 0
FFC0A (SCCR1)
SCI Control 1
FFC0C (SCSR) SCI Status
FFC0E (SCDR)
SCI Data
FFC10 RESERVED
FFC12 RESERVED
FFC14 RESERVED (PORTQS)
PQS Data
FFC16 (QSPAR)
PQS pin assign (DDRQS) PQS Data
direction
FFC18 (SPCR0) SPI Control 0
FFC1A (SPCR1) SPI Control 1
FFC1C (SPCR2) SPI Control 2
FFC1E (SPCR3)
SPI Control 3 (SPSR) SPI Status
FFC20-FFCFF RESERVED
FFD00-FFD1F REC.RAM
FFD20-FFD3F TRAN.RAM
FFD40-FFD4F COMD.RAM
.
NMIX-0026
PARTS LIST
REF.DES. VALUE COMPONENT
---------------------
---------- -------------------------
C1,2 100uF 25V Electrolytic
C4-7 10uF 16v Electrolytic
C8 (not
used)
C3,9-11,
C17-20 0.1uF 10v Disk Ceramic
C22-25,28,30,32
C12,13
(not used)
C14,16 22pF 10v Disk ceramic
C15 0.1mF 50v Polyester/Mylar
C16
(not used)
C21
(not used)
C26,27 1.0mF 25v Tantalum
C29 100uF 16v Electrolytic
C31 0.01uF 10V Disk ceramic
R1 330k,1/4w,5% Resistor
R2 10meg,1/4w,5% Resistor
R3,4
(not used)
R5,6,8,9,11,12 10k,1/4w,5% Resistor
R7 (not
used)
R10 1.0k,1/4w,5% Resistor
U1 MC68HC16Z1 Microprocessor
U2 18V8Z PAL
U3,4 75176 IC
U5 MAX232 IC
U6-7
(NOT USED)
U8,10 681000 128K X 8 SRAM
U9 27C256 HI BYTE ROM
U11 27C256 LO BYTE ROM
LVI1 8054 IC
VR1 LM7805 REGULATOR
CR1 VM08 BRIDGE RECTIFIER
D1 1N4148 SILICON DIODE
Q1 VP0300M FET
L1,2,3 10uH INDUCTOR
SW1 RESET SWITCH
132 PIN PLCC SOCKET
U1
20 PIN DIP SOCKET U2
8 PIN DIP SOCKET
U3, U4
16 PIN DIP SOCKET
U5
32 PIN DIP SOCKET
U8,9,10,11
J20,27 2 PIN SOCKET
1X6 2EA HEADER
1X7 1EA HEADER
J10 POWER JACK CONNECTOR
Y1 32.768kHz XTAL
J13 VS 60 PIN CONNECTOR
VS 34 PIN SPACER
J1 3 PIN TERMINAL BLOCK
RS1,2 10K 9E10L RESISTOR SIPP
J6,11 2X5 DBL PIN HEADER
J2,4,8 1X3 PIN HEADER
NMIX-0026 PCB
SHUNTS
NMIX-0026
V2.0 SILKSCREEN
SCHEMATIC V2.0
INTEL
FORMAT DUMP COMMAND
The
following Forth program allows a section of memory to be
dumped
out the serial channel in the Intel hex format which is a
standard
used by many of the commercially available PROM
programmers.
This program should allow the use of such
programmers
to capture programs and data in EPROMs, which are
not
supported for programming by the NMIX-0026 directly.
HEX
VARIABLE
CHKSUM
: CE
DUP A < IF 30 ELSE 37 THEN + EMIT ; ( CONVERT AND EMIT )
: 2.R FF
AND 10 /MOD CE CE ;
: 4.R 0
100 UM/MOD 2.R 2.R ;
:
INTEL-DUMP ( addr count --- )
OVER + SWAP ( CONVERTS ADDR & COUNT TO
UPPER, LOWER ADDR )
BEGIN
CR
2DUP 20 + MIN ( MAKE NEXT LINE OF OUTPUT
UP TO 32 BYTES LONG)
SWAP ( BRING UP START ADDRESS, MOVE DOWN
END ADDRESS )
." :" ( BEGIN THE RECORD )
2DUP - ( FIND OUT # OF BYTES IN THIS
RECORD )
DUP CHKSUM ! ( BEGIN CHKSUM COMPUTATION )
2.R ( PRINT # OF BYTES IN RECORD IN TWO
DIGIT FIELD )
DUP 100 /MOD + CHKSUM +! ( ADD START
ADDRESS TO CHKSUM )
DUP 4.R ( PRINT START ADDRESS IN FOUR
DIGIT FIELD )
." 00" ( PRINT RECORD TYPE, NO
NEED TO ADD TO CHKSUM )
>R DUP R> ( MAKE START STOP #S FOR
DO LOOP )
DO
I C@ 2.R ( PRINT HEX BYTE IN TWO DIGIT
FIELD )
I C@ CHKSUM +! ( UPDATE CHKSUM )
LOOP
CHKSUM @ FF AND NEGATE 2.R ( PRINT CHKSUM
NEG 2 DIGIT FIELD )
2DUP =
UNTIL ( KEEP GOING TILL LINE END IS = TO
BLOCK END )
CR ." :00000001FF" CR ( TACK ON
END RECORD )
2DROP
;
Program
and application courtesy of Danny Barger, International
Computing
Scale.