[sci.electronics] Small chip count microprocessor projects

bmw@isgtec.UUCP (Bruce Walker) (03/14/90)

In article <1990Mar13.170733.13225@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes:
> In article <1247@swbatl.sbc.com> adams@swbatl.UUCP (Tom Adams - 235-745) writes:
> >I'm interested in stuff that will fit on one proto-board, has a serial
> >port, and provides some ttl level input and output.
> 
> My own long-time favorite (although admittedly I haven't used it a lot
> in things that actually got built) is the 68701.

My own long-time favorite (since 1979) is the Zilog Z8.  Now a family of
course (like all the other single-chippers).  I *did* use this little guy
in a lot of things that got built, including a line of vacuum-flourescent
panel meters for the manufacturing and nuclear industries and as the brains
of a daisy-wheel motor driver.  For this, the Z8 had to perform a second-
order servo-loop algorithm (tachometer and absolute positioning functions)
while receiving shaft encoder signals every 40uS and directly driving an
8-bit DAC to the motor amp.*

These micros have all the usual bells and whistles: 128 bytes ram,
32 control registers, up to 32 bits of i/o, two on chip timers, flexible
uart, xtal osc. etc.  But the biggie for me, what really makes this chip
stand out, is the nice clean, "orthogonal" instruction set.  This was the
first (and still the only cheap) single-chipper without the classic
Intel-patented accumulator bottleneck (ala 8051).  All the instructions are
dual (some triple) operand with source and destination registers declared.
Of course, this is of real interest to assembly-coders, but in those
days (and still much today) asm was the only way one coded for real-time
micro apps.  There is a company marketing a C compiler for the Z8 but
I have to admit to being very dubious about the possibilities of its
producing tight code.  I actually thought about the problems of porting
a "tiny" C to the Z8 and decided that it could only be done reasonably
with either threaded-code or an AI-driven code generator :-)
Zilog hands out free cross-assemblers on the PC for the Z8 and Super-8.

The Z8601 has 2K of masked ROM, so it's only of interest to high volume
designers (rec.audio?), but there are "piggy-back" versions (Z8603?) that
allow a 2K or 4K eprom to be plugged in.  You can also sacrifice 12 i/o
pins and hook up an eprom to the Z8681 (which has its internal ROM disabled).
There are other flavours as well, I don't have my Zilog book handy here.

If you are giving any thought to an i8051 or 68xx design, check out the Z8!

---
* other apps I used a Z8 for:
	- buffered serial to Centronics adapter.
	- floppy disk exerciser/controller.
	- practical joke: hooked up a Z8 to someones terminal with some
	  code to print a UNIX login.  It let them login then gave random
	  syntax errors for all input.  This was written in on-chip
	  Tiny Basic for the Z8671.

-- 
Bruce Walker          ...uunet!utai!lsuc!isgtec!bmw         bmw@isgtec.uucp
"What is the mind? No matter. What is matter? Never mind." -- Homer Simpson
ISG Technologies Inc.   3030 Orlando Dr. Mississauga.  Ont.  Can.   L4V 1S8

mollers.pad@nixpbe.uucp (Moellers) (03/15/90)

adams@swbatl.sbc.com (745) writes:

>I'ved been reading my new copy of The Art of Electronics (Horowitz & Hill
>Cambridge University Press, 2e 1989) and I'm finding it quite enjoyable.
>One topic it brings to mind is microprocessor based instruments (aka toys!).

>I'm interested in stuff that will fit on one proto-board, has a serial
>port, and provides some ttl level input and output.  Currently I'm 
>collecting information on suitable processors.  The Art of Electronics
>uses a  146805E2 in a low power application and a 68008 in a high 
>power signal averaging instrument.  An excellent recent article here
>mentioned the Motorola 68HC11A2, 68HC11E2, and 68HC11F1. These seem a 
>little high-powered for stuff I'm interested in doing & I wonder 
>what else is in common use.

>I'm curious about what other micro-controller/processors folks out there 
>have used, and how they stack up on:

>	1) Support chip count.
>	2) Assembly language ease of use
>	3) Neat stuff on-chip
>	4) Price/availability

If speed isn't the issue, You might want to consider Zilog's Z8, Intel's
8052AH or NatSemi's INS????, all of which have a version with a built-in BASIC
interpreter which makes programming less tedious.
I've built a tiny BASIC "computer" with the Z8 consisting of 2 chips:
the Z8 and a MAX232 RS232C I/F! (Not that it was of any use, no program
storage, but if You add an external latch (it has a mux'ed A/D-Bus) and
an EPROM You can at least run standalone pgms).

The Z8 has a 16-bit integer BASIC.
The 8052AH has a floating-point BASIC but needs more glue logic (and at
least one RAM chip).
I can't say much about NatSemi's INS????, I haven't used it.

The Z8 leaves one 8-bit port and one 6-bit port free to use (the 6 bit
port is 3 bits in - 3 bits out).
The 8052AH leaves no free pins (as far as I remember), You'll have to
add a 8055 or so.

NB There seems to be a 8052-"like" chip made by Siemens which has a
BASIC interpreter too.

Hope this helps
Josef Moellers				      |	c/o Nixdorf Computer AG
 USA: uunet!philabs!linus!nixbur!mollers.pad  |	Abt. DX-PC
!USA: mcvax!unido!nixpbe!mollers.pad	      |	Pontanusstr
Phone: (+49) 5251 146245		      |	D-4790 Paderborn

GMoretti@massey.ac.nz (Giovanni Moretti) (03/16/90)

> Re Small Count Microprocessor Systems

The Intel 8031 microprocessor is one that I've used and works fine.  It's
got 128 bytes of internal ram, a serial port, two timers (one of which can
act as a baud rate clock for the serial port) and one to one and a half 8
bit parallel ports all for NZ$5 (probably about US$3).  To run it needs an
EPROM and an address latch (usually 74LS373).  

The processor is fast with most of the instructions completing in one
microsecond.  It can have up to 64K of EPROM and 64K of external RAM (at
the same time).

The architecture is a bit warped, which is fine if you're using assembler
for small projects or a compiler for big ones (but don't try to write a
compiler for it - I did and it's tortuously painful - irregularities
EVERYWHERE).  

To get at the external RAM you have to move the data into the accumulator
through a single index register, modify it and put it back, which tends
to slow things down a bit.  

An eprom version (8751) was quite expensive last time I looked around
(US$30 I think) but is available if you need a single chip solution
(sounds like a saleman :-).  There is also a version with built in
floating point BASIC and EPROM BURNING routines and needs only a terminal.
Steve Ciarcia did an article in BYTE on these (8052-basic)


If you need to modify large data structures (which must necessarily be in
external ram) one of the Motorola processors is probably a better bet
(I've also build and programmed Motorola 6802 & 6809 systems) ,otherwise
the 8031 is cheap, fast and widely available.  

Cheers
Giovanni

-- 
-------------------------------------------------------------------------------
|   GIOVANNI MORETTI, Consultant     | EMail: G.Moretti@massey.ac.nz          |
|Computer Centre,  Massey University | Ph 64 63 69099 x8398, FAX 64 63 505607 |
|   Palmerston North, New Zealand    | QUITTERS NEVER WIN, WINNERS NEVER QUIT |
-------------------------------------------------------------------------------

dana@lando.la.locus.com (Dana H. Myers) (03/17/90)

In article <1247@swbatl.sbc.com> adams@swbatl.UUCP (Tom Adams - 235-745) writes:
>I'm interested in stuff that will fit on one proto-board, has a serial
>port, and provides some ttl level input and output.  Currently I'm 
>collecting information on suitable processors.  The Art of Electronics
>uses a  146805E2 in a low power application and a 68008 in a high 
>power signal averaging instrument.  An excellent recent article here
>mentioned the Motorola 68HC11A2, 68HC11E2, and 68HC11F1. These seem a 
>little high-powered for stuff I'm interested in doing & I wonder 
>what else is in common use.

    I've used a lot of Intel. I think there has yet to be a truly cooler
family of microcontrollers than the MCS-96 (include 8097, 80C196, etc.),
but this is probably overkill. For the record, the MCS-96 is very nice to
program, with a large amount of register RAM on chip and a 'RISC' type of
architecture. There is no accumulator and there are 3 operand instructions.
The MCS-96 family is a 16 bit family. Performance wise, in tightly coded
assembler, the 80C196 with a 12 MHz clock is roughly comparable to a 12 Mhz
80286 in terms of throughput (excluding interrupts and all that jazz).

  The 8051 family is ubiquitous, and works pretty well despite the fact
it isn't as nice as the 96 family to program. The later 51 family members
like the 80C51FA and the 80C51GB are actually really hot. The FA has a
trick capture/compare unit, the GB has extra ports and A/D converters.

   The 6805 stuff is roughly comparable to the 8051 family, though a
68HC705 draws about half the current than the 80C31BH, I don't think
there is a 6805 quite as sexy as the 80C51GB.

  If you have easy access to a family (already have a chip, get chips from a
friend, etc.), use it. Among the 8 bit CPUs, they're all quite comparable.
The only real differences are in the on-chip peripherals. The Motorola family
has a greater number of combinations, Intel has all the same features, but a
smaller number of variations.
*****************************************************************
* Dana H. Myers WA6ZGB		| Views expressed here are	*
* (213) 337-5136		| mine and do not necessarily	*
* dana@locus.com		| reflect those of my employer	*
*****************************************************************