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.