Manchester ARM Board
A lot of students leaving the Manchester University Computer Science department go into industry programming and designing the new trend of small low power mobile devices. To follow the new trends of the industry from January 2002 the University of Manchester will be teaching a microcontroller course. As the industry is constantly moving a fast modern processor which is very popular in the mobile devices market was chosen. The processor was specifically chosen for mobile devices and is exactly the type that leaving students would be using in industry. The whole project breaks down into three parts: The board, The board software, User interface software.
The board is based on an Atmel AT91M40400 ARM based microcontroller. The microcontroller has 8Kbytes of onchip RAM. Externally the board can have up to 4Mbytes of SRAM and a 2Mbyte Flash ROM. Communication with the board is through two (high speed) serial ports. For even faster communications there is a 10Mbps network connection. The board is designed to have the same setup of most mobile devices. An LCD panel is used to output messages. As the applications of ARM based microcontrollers vary greatly, and a new use can dominate the market tomorrow, the board was designed with reconfigurable peripherals in the form of two FPGAs. The FPGAs have a number of generic 16 bit connectors to allow real peripherals to be plugged in and used by the CPU. The FPGAs also allow students to design hardware and interface it directly with the CPU bus and provide many I/O signals.
The software on the Flash ROM allows the booting of 16 programs depending on the state of the DIP switches, one of which is for reprogramming the Flash memory. The main piece of lab software is the ARM emulator along with the Angel arm debugger. The software emulates an ARM in order to allow a perfect view of the processor and allow the user to run code in any mode or execute a number of instructions. These are difficult to so when running natively.
User interface software
To allow the students to see what is happening on the board a user interface program was written. Named "KMD" it interacts with the board through the serial port or picks up an emulation program to simulate an ARM board. The program was implemented with constant user feedback in order to only implement useful features.
More details on KMD are available on http://www.cs.man.ac.uk/teaching/electronics/komodo/.