Cirrus Logic's 200-MHz EP9315 ARM9-based microcontroller provides a powerful integrated platform for fixed or mobile applications. The EDB9315A development board (Fig. 1) is centered around this microcontroller and adds peripheral interface connectors for its vast array of peripherals.
The development kit supports Windows CE and Linux. It comes preloaded with Windows CE 5. Evaluation versions of Microsoft's Windows CE development tools, IAR's Embedded Workbench and Arm's Realview Developer Suite are included as well. Cirrus Logic's Debian Linux is also available. It supports OPIE (Open Palm Integrated Environment) and all the packages and source code can be downloaded from Cirrus Logic's website. I take a close look at the Linux implementation later in the article. But first a look at the hardware.
Cirrus Logic EP9315 Microcontroller
The EP9315's core is a 200-MHz ARM920T processor with a 100-MHz internal bus, 16 Kbytes of instruction cache and 16 Kbytes of data cache. Its memory management unit (MMU) lets developers utilize more advanced operating systems like Windows CE and Linux. The chip comes in a 352-pin PBGA package.
The processor is targeted at multimedia applications. Its construction includes Cirrus Logic's MaverickCrunch Math Engine, with floating point and DSP instructions. It can handle optimized algorithms for digital music compression and decompression. Each chip also has a 32-bit unique identifier plus a random 128-bit identifier suitable for digital rights management (DRM) use programmed into it during production.
The chip has a built-in boot ROM but it is designed for off-chip memory. The 32-bit SDRAM interface can handle up to 4 banks. The chip can also access 16- and 32-bit SRAM, flash memory and ROM. A serial EEPROM interface can also be used to boot applications and operating systems. A 12-channel DMA links memory to an array of peripherals.
Peripherals are where the EP9315 shines. Its EIDE interface can handle up to 2 devices, including hard disks and CompactFlash. There is also a PCMCIA interface. Communication interfaces include 100Mbit/s Ethernet, three serial ports, a Serial Peripheral Interface (SPI) port, three Full Speed USB host ports, and an IrDA interface.
Its audio support is impressive. It includes a 2- or 6-channel I2S interface as well as a 2-channel AC'97 interface. A built-in graphics accelerator can drive an LCD panel or a VGA device, including a touchscreen that interfaces to the on-chip 12-bit ADC (analog-to-digital converter). The chip supports 4- to 8-wire analog touchscreen interfaces. There is also an independent 8 by 8 keypad scanner. Two IO pins can drive LEDs directly.
The development board adds an NXP ISP1581 Hi-Speed USB peripheral controller. This allows the system to be connected to a USB host such as a PC and appear as a USB device such as a logical disk.
The 6- by 4-in. board includes headers or connectors for all interfaces except one of the USB ports, but including an LCD panel and IDE devices (Fig. 2). The board has 64 Mbytes of SDRAM and 16 Mbytes of NOR flash. The boot loader allows the flash to be reprogrammed without using the JTAG interface. The latter can be used for more advanced programming needs, although most developers are likely to utilize standard operating systems like Windows CE or Linux and do most of their development in C.
Microsoft's Windows CE provides a robust development and deployment platform. Windows CE's Platform Builder allows custom configurations to be easily developed and downloaded to the EDB9315A. It can take advantage of the Ethernet interface, too.
The Linux platform is a little less flashy when it comes to bundled development tools, but Cirrus Logic has done a good job of providing a complete package, including the OPIE (Open Palm Integrated Environment). OPIE (Fig. 3) was originally targeted at the Palm hardware, but it now runs on a wide range of systems including the EDB9315A. It runs atop Debian Linux with a 2.6 kernel, and that also supports the BusyBox utility. The system starts using the Redboot boot loader.
All source code and binaries are available on Cirrus Logic's website. I did not have any trouble rebuilding the system under Linux; it should be a relatively simple exercise for anyone familiar with embedded Linux. Novice Linux developers can simply use the prebuilt binaries or take a little time to read and follow the directions. In general, enabling device drivers, rebuilding, and downloading the updated operating system image will not be a problem. Developers looking to include custom drivers will need a bit more expertise, especially if the JTAG interface comes into play.
The Linux system I worked with included hard disk support, USB support, Ethernet support and VGA support. I didn't have an LCD panel, so I was not able to check out the touchscreen and LCD support — but if the other drivers are any indication, the task should be no more difficult than plugging in the hardware, making a few text changes to the configuration file, making the new system and downloading the image. All this can be done without resorting to JTAG.
Application debugging can be done remotely using GDB. I used it from within Eclipse, the open source development platform, running on another system connected to the development board via Ethernet. With the proper configuration you can even mount a remote disk. This is handy when doing cross platform development, since the newly made application is immediately available for execution on the target.
The caveat I need to mention is that I have done this Linux exercise before, so I didn't run into any surprises. This is mostly due to Cirrus Logic's packaging. All the latest sources, documents and executables are available on the website. Not having to look for extra components on the Internet to get the basic system running is a great time saver. I was able to do application development within an afternoon. In fact, learning about OPIE will take longer, if that is a requirement. Of course, many applications will not use such a framework, so your mileage may vary.
The online forums are a good source of assistance. Complete schematics and board layout files can be downloaded without charge.
Overall, the EDB9315A is an impressive platform. It is fast enough and expandable to let it handle a wide range of applications. While most developers will utilize Windows CE or Linux, the platform can handle any number of operating systems and many of the popular ones are already in use with the EP9315.