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





 

May 2004, Issue 166

Embedded Java Controllers


by D. Jay Newman

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.