May
2004, Issue 166
Embedded
Java Controllers
JStamp/JStik
The
Systronix controllers have lots of memory, plus everything
else you’d expect from a microcontroller, except for
A/D converters. Luckily, this is easily fixed by using
one or more ADC chips such as Microchip’s MCP 3208,
which is an eight-channel, 12-bit ADC that communicates
via SPI.
Both
of these 3.3-V CMOS controllers can tolerate 5-V signals.
This means they can communicate reliably with 5-V TTL
and 3.3-V CMOS devices. Unfortunately, the signal definitions
for 5-V CMOS are slightly out of range. It is best to
use buffers when communicating with 5-V CMOS, unless
those devices are friendly with 3.3-V CMOS. However,
I’ve never had trouble interfacing PIC microcontrollers
to the JStamp and JStik.
The
JStamp is built much like any of the other Stamp processors.
It has a 1² × 2²
40-pin DIP format. The JStamp’s brain is the aJ-80 microcontroller.
The JStamp runs at a maximum of 70 MHz.
The
JStik, which is a JSimm format board measuring 3²
× 2.65², has a few advantages
over the JStamp. It may be bigger, but it supports two
additional ports: an Ethernet port and the HSIO port.
The JStik is roughly five times faster than the JStamp
when running at the same speed, mainly because it has
an aJ-100 microcontroller. It runs at a maximum of 100
MHz.
JTAG
INTERFACE
I’m
used to using serial ports to program a controller,
but the Systronix controllers use the JTAG interface.
The JStamp has several pins that can be used to connect
to the JTAG connector. (There is such a connector on
the JStamp development station.) The JStik has a JTAG
connector onboard.
In
order to program and debug the Systronix controllers,
you need either the Systronix JTAG cable ($50) or Xilinx
Parallel Cable III. I’ve always used the Systronix one
that came with the JStamp development station; it connects
to a computer’s parallel port.
SimmStick
BUS
The
SimmStick bus, which was designed by an Estonian named
Antti Lukats, is based on the old 30-pin SIMM modules.
The bus has a decent number of signals and is quite
useful. Dontronics is the largest distributor of the
boards.
A
SimmStick is designed to be an SBC, using a microcontroller
as the main processor. Systronix refined the pin definitions
for the SimmStick and have released this as the JSimm.
The JStamp development station uses this bus, and the
JStik is a JSimm board. The major differences are that
Systronix defined some of the JSimm signals as JStamp/JStik
I/O pins. Originally, I merely used the SimmStick bus
to carry power and SPI signals, but I now use other
signals.
One
interesting thing: with the development tools you can
turn off the drivers that you don’t need. For example,
if you don’t need to use SPI, you can turn off the SPI
driver and use all of I/O port C as general I/O. Not
only can this shrink the final code, it allows you to
use the pins you want for anything.
aJile
PROCESSORS
In
most respects, the aJile 80 and 100 processors work
the same way. However, the aJ-100 has a wider data path,
making it faster.
The
processors run Java bytecodes as their native machine
language. Because Java bytecodes are a higher-level
code than most machine languages, more can be done in
a single instruction. This tends to make the aJile processors
extremely efficient.
Like
most controllers, these contain internal data memory.
They also have an external memory controller to access
the memory on the JStamp/JStik. There are three timers,
an interrupt controller, two UARTs, and one SPI communication
unit (see Figure 1).
|

(Click
Here to Enlarge)
|
Figure
1—The aJile architecture has all the bells and
whistles associated with normal microcontrollers,
except an ADC unit. |