DPRG List  

DPRG: Re: Advanced processors ...

Subject: DPRG: Re: Advanced processors ...
From: Kevin Ross kevinro at nwlink.com
Date: Thu Jul 3 12:23:07 CDT 1997


I didn't intend to start a CPU war! It really boils down to what ever works
for you, great. My original point was that for all the glue chips being
added to the board that Jim proposed, most of it was built into the 68HC12.

- ----------
> From: Eric B. Olsen <robojoc at worldnet.att.net>
> To: dprglist at dprg.org
> Subject: DPRG: Re: Advanced processors ... 
> Date: Wednesday, July 02, 1997 10:53 PM
> For Kevin Ross: No, I havn't checked out the 68HC812A4 part, and I'm
> sure I'm missing some important features in this chip.  I've always
> repected Motorola.  Hope to get the time to do so.  Is the part 16 bit
> enhanced?  And yes, the 80C32 core is limited for advanced robot
> projects, but does quite well for moderate control jobs (with a bit of
> help from external circuitry).

Yes, it has been extended to have 16-bit versions of most all instructions.

> Now let me take out my gun!  Have you looked at the Hitachi "SH1" !!! 
> You'll find this part to be one of the most promising control chips for
> the robotic enthusiast ... I guarantee it!  Over the last ten years, I
> witnessed the competition between many micro-controller manufactueres,
> and Hitachi has always been at the top of the technology curve.  Here's
> a list of some of the SH1's impressive features:

The SH1 is an OK chip, and certainly worth a look. It is fast, but I
thought the timer subsystem was weak, and the I/O support is marginal. They
wasted 18 pins of the chip for Vcc and Vss (8 pins of Vcc, and 10 pins of
Vss that MUST be connected). While they boast about the 4gb address space,
they only expose 22 address lines, which limits you to 4mb. On a 32-bit
RISC core, this isn't much!  I suppose a DMA controller would be nice if I
had DMA devices, but I doubt many  robots being built by this group will
make use of it. It is also only a 16-bit DMA controller, so you are limited
to 64k transfers at a time. 

They have an interesting feature which is a Programmable Timing Pattern
Controller. If you need to output some 4 bit pattern in a timed sequence,
this will do it automatically. The User Break Controller (UBC) allows you
to set break conditions on addresses, CPU cycles, and a couple of others.
This is a nice debugging aid. It does have some nice features! You can
check out the data sheets at: 


The SH1 draws about 100mA of power at 20mhz, not including the external
memory or other support circuits. In contrast, a 68HC11 draws about 8mA,
and a 68HC12 draws 19 mA running at 16mhz in single chip mode.  

I guess I have different design goals for robotic projects. I am very drawn
to single chip solutions. They are easier to wire up, usually cost less,
are smaller, and consume less power. I do, however, like a good set of
features built into my single chip solutions.  I have done quite a bit of
searching and have found that the 68HC11 and HC12 series have a very sound
set of features that allow for single chip operation while still including
the bells and whistles. The 68HC11 has the added benefit that you don't
need development hardware. A simple PC and a serial port is all that is
required. You can program the EEPROM via the serial port.

For robotics, I find the single most important feature is a good set of
timer functions. If you haven't spent any time looking at the timer
sections of the Motorola chips, you really should. The 68HC11 timers are
pretty nice, but the 68HC12 are even better.  Driving servo motors, for
example, has ZERO software overhead. Its all done in hardware. Set a
register, and it will keep generating the pulse you want at regular

The 68HC12 also has the BDM module. The Background Debug Module is a
hardware port on the chip that allows an external device to read/write
memory, stop CPU execution, single step, modify registers, etc. Basically,
you always have a debugger attached to the CPU. This is worth its weight in

If you would like to go with a multi-chip solution, then you really need to
look at the 68332. It has a 16-channel TPU (Timer Processing Unit) that
runs independently of the CPU (which is 68000 based). It is awesome. It is
programmable, if you desire, as in you can write your own firmware to
handle changes on the pins. It also comes with a whole set of library
routines for doing everything from quadrature encoding, pulse accumulation,
PWM, and a long list of others. 


More information about the DPRG mailing list