Issue
153 April 2003
Test-Driving
the Z8
THE
Z8 KIT
The
Z8 Encore! development kit is more useful for learning
about the basic Z8 hardware and experimenting with the
code than anything else. There is no breadboard area
with the exception of a couple of spare SMT pads. The
only way to get the Z8F6403 out of the house is by way
of a couple of dual-row expansion headers.
My
Z8F6403-based development kit, shown in Photo 1, came
standard without the optional Conexant SocketModem.
The second Z8F6403 UART is pinned to the Conexant modem
socket. Because the modem is an option and I don’t have
one of the SocketModems in the Florida Room, I won’t
be dialing up anything using a Z8F6403 and Coexant SocketModem
this go around.
|

(Click
here to enlarge)
|
Photo
1—What you don’t see in this picture is the serial
cable and universal wall wart that also come with
the development kit. (I’m using those right now.)
There’s a CD-ROM full of goodies inside the Development
Tools case on the left along with a quick-start
guide. |
To
augment the dual-row expansion headers, a Philips PCA8550
is incorporated on the development board. The PCA8550
is designed to allow PC chipsets to perform "jumperless"
configuration operations on motherboards. Basically,
the PCA8550 is 4 bits of input and 4 bits of output
multiplexed between an I2C input and 4-bit bus input.
The PCA8550’s other features include a fifth non-muxed
latched output bit and a write-protect line for the
I2C interface.
On
the development board, the PCA8550 4-bit input bus isn’t
connected, and three of the four output bits are terminated
on one of the dual-row expansion headers. This allows
you to use the Z8F6403’s on-chip I2C engine to twiddle
the 3 bits on the expansion header (i.e., ID_0, ID_1,
and ID_2) using the services of the PCA8550.
The
console connection (wired DCE) is under control of the
first Z8F6403 UART and shares the communications lines
with the on-board Zilog ZHX1810 IrDA encoder/ decoder
(Endec). The IrDA interface is designed to allow you
to optically tie the development board to a PDA or similar
device that’s capable of short-range (1 m or less) infrared
communications.
The
services of both UARTs also can be used to establish
a couple of RS-485 links if you so desire. In addition,
the second UART is wired as a DTE for direct connection
to an external modem via a male nine-pin shell connector.
The multiple interfaces attached to each UART are mutually
exclusive with respect to the UART the shared interfaces
are attached to.
A
special six-pin debugger port on the development board
mates with the Target Interface Module Board you see
in Photo 2. The Target Interface Module Board is simply
a MAX3232 RS-232 interface IC and a single buffer Philips
74LVC1G125. The tri-state-capable 74LVC1G125 can handle
both 3.3- and 5-V inputs. The combination of the MAX3232
and 74LVC1G125 transforms the PC’s two-wire (i.e., TX
and RX) serial interface into a one-wire serial interface
at the Z8F6403’s debug (DBG) pin.
|

(Click
here to enlarge)
|
Photo
2—Take a look at that clever little two-to-one module.
It has a large rubber foot underneath it to keep
it level and reduce the possibility of straining
the DBG port pins. |
The
on-chip debugger (OCD) is yet another feature of the
new-generation Z8F6403. The OCD interface is configured
as a single-pin, bidirectional, open-drain, half-duplex
transceiver. To keep it as simple as possible, the OCD
uses a standard start-stop asynchronous data format;
it’s designed to connect to a PC’s serial port using
a minimal amount of interface hardware. All you really
need is a pull-up resistor and a blocking diode (or
tri-state buffer like the 74LVC1G125) to use the OCD.
The whole scheme works on pulling one side of the 10-kW
pull-up resistor to ground for zeros and leaving it
alone for the ones. Also, it doesn’t allow the transmit
and receive signals to influence each other in the process.
The
Z8F6403 can speak to other computers or micros using
one-wire and two-wire dialects. It should be no surprise
that the flash memory generation of Z80s can also speak
four-wire-ese. The on-chip four-wire SPI interface is
directly connected to a Dallas/MAXIM DS1722 digital
thermometer. Although the DS1722 will work in both standard
three-wire and SPI modes, the Z8F6403 only does SPI.
With a little programming, you could enable a separate
three-wire interface.
Another
feature not found on legacy Z80 parts is the 10-bit,
analog-to-digital converter. The Z8F6403 multiplexes
12 analog inputs with general-purpose I/O pins. The
reference voltage for the ADC block is either generated
internally by the Z8F6430 or applied via an external
voltage fed through a MAX6160 adjustable voltage reference.
A direct memory access (DMA) channel can be activated
to automatically take an analog reading and transfer
it to the Z8F6430’s register file. There are two more
DMA channels that support moving data to and from on-chip
peripherals such as the UARTs.
The
standard pieces of microcontroller equipment (e.g.,
an interrupt controller subsystem, multiple timers with
PWM and capture options, and a programmable watchdog
timer) are all part of the Z8F6403 architecture. The
Z8F6403 is a 3.3-V part with 5-V tolerant I/O. The development
board includes both 3.3- and 5-V power supply circuitry
to provide power to the various development board subcircuits
and the Z8F6403 microcontroller. Another Dallas/Maxim
part, the DS1233A, makes sure the Z8F6403 is reset properly
by providing a clean 350-ms reset pulse on power-up
or reset switch closure.
What
is any development board without push buttons and some
sort of display? Well, the development board does the
standard thing with the three user-programmable push
buttons and offers the unusual in the display category.
Instead of using a standard LCD or multisegment LED
display, this board comes equipped with four Lite-On
LTP-757G 5 × 7 dot matrix displays. Individual dots
on each display are illuminated using 74HCT374s to drive
the rows and columns of the dot matrix displays. The
LTP-753G dots are arranged as a common anode row and
common cathode column. So, to light up a dot, the programmer
latches in a logical low (zero) to the dot’s column
and a logical high (one) to the dot’s row. Here’s where
the fun begins!