circuitcellar.com
Magazine Support   Digital Library   Products & Services   Suppliers Directory 
 
 





 

September 2004, Issue 170

Multilab
Build a Z8 Encore!-Based Multipurpose Test Instrument


Brian’s Multilab is comprised of an arbitrary function generator, a digital pulse generator, and more. Read on to learn how he built this multipurpose test instrument.


by Brian Millier

Two things struck me as interesting when I first looked over the documentation that came with the Z8 Encore! development kit: the three-channel DMA controller and the IrDA encoder/decoders associated with each of the two on-board UARTs. These aren’t common functions on most MCUs, but I knew they would be significantly beneficial for a project I had in mind.

 I wasn’t totally surprised to see the triple-DMA controller. Back in the 1970s when Intel started the PC revolution with the 8080 microprocessor, Zilog wasn’t far behind with a compatible device, the Z80. It took over much of Intel’s early market share largely because it contained an on-board refresh counter, which made it easy to use inexpensive dynamic RAM chips.

The project I had in mind consisted of a multipurpose lab instrument comprised of an arbitrary function generator, a digital pulse generator, a high-resolution DC voltmeter, and a DC reference source. To keep the unit compact and inexpensive, I wanted to eliminate the conventional front panel and use a Palm Pilot PDA to handle that function. The Z8 Encore!’s DMA channels are ideal for the arb function, and the IrDA encoder/decoder block makes implementing the IR link to the Palm Pilot easier.

After using flash memory MCUs for several years, I’m now spoiled. Happily, the Z8 Encore! family comes with up to 64 KB of flash memory. The arb generator function needs a significant amount of waveform memory, and the 4-KB RAM included in the Z8 Encore! fits the bill nicely (see Figures 1 and 2).

(Click here to enlarge)

Figure 1—Along with the Z8 Encore! MCU, most of the arb function generator’s circuitry is contained here. The DC voltmeter circuit is also included.

 

(Click here to enlarge)

Figure 2—Here you can see several mixed-signal components associated with the Multilab, as well as both the IrDA and RS-232 interface circuits.

Although I’ve used numerous 8-bit MCUs over the years, I had not tried any Intel 8051-derived MCUs or Zilog MCUs. The combination of a good development board, stable IDE software, and the on-chip debug facility made the transition relatively painless, I must say. I’m particularly impressed by the on-chip debug/programming facility. Basically, using a single-pin, half-duplex serial link to the MCU, it manages to program the flash memory quickly. Furthermore, it allows for the complete in-circuit debugging of your program, including register/memory contents and port status, as well as the symbolic readout of your C program variables.

I often use all of an MCU’s I/O pins in a design, so having the programming/debug functions all handled by only one dedicated MCU pin seemed like a great idea. In the following sections, I’ll describe the hardware and software aspects of the project.