Atmel was showing off some new chips at the last Embedded Systems Conference, so I picked up a pair of development kits for these new chips. One is the AVR Atmega169 8-bit microcontroller. It's great for low-power applications, and the development kit reflects that. With a 32-bit Arm7 processor, the AT91 line is higher up on the food chain. The AT91 is also a low-power device with a USB interface, making it more suitable for a mobile system that is occasionally connected to other systems or in a USB peripheral.
The two kits are quite different. The Butterfly has a dual purpose. It can show off the features of the AVR with its built-in menu system. Add a JTAG emulator and you can reprogram the system. A preprogrammed bootloader lets you do development using a serial interface.
The AT91SAM7S-EK is a more conventional development platform. It has a JTAG interface and a serial interface for using the on-chip debug monitor. The board also has a patch area the extra peripherals that the Butterfly lacks.
Now for a closer look at both.
The $20 Butterfly is built around a battery-operated, Atmega169 AVR microcontroller (Fig. 1). The unit also includes an LCD, 512 Mbytes of data flash, and a host of interfaces. It has a tiny joystick switch, light and temperature sensors, and a speaker. An RS-232 interface and a JTAG interface are also available for programming.
The big difference between the Butterfly and a conventional development platform is easy to see (Fig. 2). It does not have any connectors! It does have a lot of holes. If you plan on using the board for development, then pull out a couple headers and a soldering iron. The serial interface uses only three wires (Rx, Tx, Ground), so building a serial cable to connect to the PC is a trivial exercise.
The Butterfly comes with a menu-driven interface that uses the LCD and joystick button. You can set up the Butterfly to show your name, a clock, or the temperature. Turn yourself into a walking bank sign! There is even a pin on the back so you can wear it.
Getting down to development work is where things get interesting. I downloaded the free development software toolkit from Atmel's website. This C development system will download an application into the Butterfly using a serial cable. The bootloader takes up space, but there is plenty left in the AVR for substantial development work. I had full access to peripherals, such as the LCD.
You can blast the bootloader and demo application if you have an in-circuit serial programmer (ISP) or an AVR JTAG emulator. There is also a high-voltage parallel interface that some may find useful. I had an older AVR STK development that has ISP support, but it was easier just to play with the unit using the serial interface. The most robust development environment will use the JTAG interface.
Even though Atmel did a good job with the documentation and software, I had to do a little hunting to get files from the web site. Still, it only takes an afternoon to get set up and become familiar with the Butterfly. The AVR itself has an architecture that matches C development quite well, and the ATmega169 has plenty of memory for experimentation.
Although the Butterfly does not have any dedicated patch areas, it's an interesting platform for prototyping if you can get by with the on-board peripherals.
Atmel's $295 AT91SAM7S-EK development kit (Fig. 3) provides a more conventional and less mobile platform designed for USB peripherals. It does not fit well on your shirt like the Butterfly will. On the other hand, the Butterfly will not plug into a USB interface and it does not have the processing power of the AT91SAM7S.
The 64-pin, 55-MHz AT91SAM7S64 has a 32-bit ARM7TDMI processor with 64 kbytes of flash. It supports 16-bit (Thumb) and 32-bit instruction sets. Other chips in the family have 32 kbytes to 256 kbytes of flash memory. It also has 16 kbytes of SRAM, two serial ports, an SPI port, a synchronous serial port, an 8-channel 10-bit ADC, a 9-channel DMA, and a serial 2-wire debug interface. The timers also provide pulse width modulation (PWM) support. There is an on-chip oscillator that works up to 20 MHz. Finally, there is a 12-Mbit/s USB 2.0 device interface with a built-in transceiver. All for less that $3 per chip.
I did have a JTAG unit (Fig. 4), which provides complete control over the chip. This made working with the IAR software toolkit a snap. It's significantly faster than the serial interface that is also available. The JTAG interface also provides a more powerful debugging environment.
The board has a small patch area, and you can solder a header that provides access to most of the peripheral pins on the MCU. There are four unallocated buttons and some LEDs. The board layout is nice in that various peripheral interface connections have pads where you can easily cut the trace to disconnect a pin. Likewise, the pads are designed to be large enough to restore the connection with a little solder.
Embedded Workbench from IAR Systems is memory limited (32 kbytes for code) but fully functional. The Workbench provides an excellent development platform and it works with either the JTAG or serial interface.
The IAR Embedded Workbench includes a C/C++ cross compiler, linker, debugger, editor, and project manager. The visualSTATE graphical verification and code-generation environment presents development information in UML-compliant charts. It's very useful when working with multiple concurrent, interrelated processes or threads.
The CD accompanying the package includes all the software tools, chip and board documentation, and application notes so you can get started right away. Updates and additional application notes are available on the Internet.
Overall, Atmel has a great pair of development kits that will appeal to developers of many types of applications. The Butterfly is an inexpensive platform that can easily be used in schools, yet is flexible and powerful enough to interest hardcore designers.