Welcome to the ARM microcontroller Wiki!
ARM has made their elegant 32-bit RISC processor core available for licencing to chip manufacturers, who have used it to produce a wide range of very cost effective microcontrollers, packed with lots of peripherals and generally requiring quite simple support circuitry to run. Easy to use, not demanding much space or power, affordable, and bursting with processing power and storage capacity, they seem set to become a popular device in many embedded applications. There's been a lot of hobbyist interest, too, since the devices look like a painless way to add intelligence to electronic devices.
This is a Wiki. The idea of a "Wiki" site is that anybody can contribute to pages to add their input. Surprisingly, they tend not to degenerate into chaos; especially not when the Wiki mainly exists to serve a niche, like this one.
See http://www.usemod.com/cgi-bin/wiki.pl?WhatIsaWiki for further background information.
If you have links or information to add, create yourself a user (by clicking Preferences above and setting yourself up, later you can [login here], remember your user ID!) and start editing. If you're not familiar with Wikis, then see [TextFormattingRules] and try playing in the Sandbox.
Devices
Architectures
There are architecture versions and families, both of which are numbered, but which don't correspond 1:1. [Wikipedia's ARM architecture article] has a detailed chart. ARM7 chips are mostly v3, v4, or sometimes v5 architectures. ARM9 chips are mostly v4 or v5. ARM11 chips are mostly v6, and Cortex chips are mostly v7.
Some chips support alternate instruction sets for specialized tasks, such as Thumb mode and Thumb2 mode (for more compact code at the expense of speed), and Jazelle (for more efficient implementation of Java virtual machines).
Evaluation Boards
- [SAMSUNG S3C2440 Core Board I] based on Samsung S3C2440A ARM920T MCU, runs at 400MHz, supports Windows CE4.2/5.0, 6.0 and Linux2.6 and integrates a wide range of peripherals like Mini USB Host/Device, Mini SD Card, 10/100MB Ethernet and Audio I/O interface.
- [SAMSUNG S3C2440 Core Board II] based on Samsung S3C2440A ARM920T MCU, running at 400MHz, with 64MB SDRAM and 64MB NAND Flash Memory, supports Windows CE4.2/5.0, 6.0 and Linux2.6.
- [STM32F107 ARM Cortex-M3 Board] is an evaluation board for the ARM Cortex-M3 core based STM32F107VCT microcontroller, runs at up to72Mhz, with 256KB Flash and 64KB RAM on-chip memory. The board features comprehensive peripherals and plenty of example programs.
- [NXP LPC1300 Cortex-M3 Board] based on the NXP LPC1343 ARM Cortex-M3 processor, is a brand new, low cost, but high-performance evaluation tool of the ARM Cortex-M3 based LPC1300 controller family from NXP.
- [Samsung S3C6410 ARM11 Board] based on Samsung S3C6410 ARM11 processor is a compact full-featured single board computer, runs at 667MHz, integrates 128MB Mobile DDR SDRAM, 256MB NAND Flash and 2MB NOR Flash and supports Windows Embedded CE 6.0 and Linux2.6, Android and Ubuntu.
- [Evaluation Boards for ARM7, ARM9 and Cortex-M3 based processors and more]
- [NXP LPC1768 ARM Cortex-M3 Board] 100MHz Cortex-M3, 512KB Flash,64KB SRAM, with 240x320 TFT LCD, 2.4".
- [JTAG Emulators for ARM Microcontrollers] USB-JTAG Emulators for DSP and ARM.
- [NXP LPC1758 ARM Cortex-M3 Board] 100MHz Cortex-M3, 512KB Flash,64KB SRAM, 240x320 TFT LCD, 2.4".
- [ATMEL AT91SAM3U Cortex-M3 Board] 96MHz cortex-m3, Internal 256KB Flash, 48KB SRAM, 240x320 TFT LCD.
- [NXP LPC2478 ARM7S Board] ARM7TDMI-S Core, running at up to 72MHz, with 512KB internal flash memory and 98KB SRAM, Support TFT(5:6:5)LCD interface, with Buffer driver.
- [STM32F103ZE Cortex-M3 Board] 72 MHz, STM32F103xx Series, 512KB Flash memory, 64KB SRAM, uCOS-II v2.86 ported.
- [NXP LPC1766 Cortex-M3 Board] 100MHz Cortex-M3, 256KB Flash,64KB SRAM, 240x320 TFT LCD, 2.4", a wide range of peripherals, like USB, Ethernet, SD, etc.
Device Programming
JTAG, Standard ISP header
Inter-IC
I2C (aka Two Wire Interface), SPI, PDC (Peripheral Data Controller), SSC? (Synchronous Serial Controller), 1-Wire, Microwire
Inter-system links
CAN, Ethernet, RS232, USB, RS485
Storage cards
Compact Flash, MMC Card, SD Card, SmartMedia? Also known as SSFDC
http://www.interfacebus.com/Bus_Design_Top.html has lots of information on busses.
http://www.ghielectronics.com/ sell an LPC2114 pre-programmed with an implementation of the FAT filesystem, and device drivers for IDE, MMC Card, SD Card, and Compact Flash, that your master device controls via RS232 or SPI.
ARM Programming
Associated Devices
Development tools
- Compiler Suites
- [Development Boards]?
- [Embest IDE for ARM] is a complete solution for embedded arm development, supports ARM7 and ARM9 Processors.
- http://www.embedinfo.com/en provides comprehensive embedded development tools for ARM, such as Embedded IDE, ARM development board, Emulator, etc.
- JTAG Interfaces
- Operating system: RTOS
- Operating system: Embedded Linux
- Operating system: ecos
- Operating system: http://www.freertos.org/
- Operating system (kernel): [L4]
- Operating system: http://www.embos.com/
- Other Development Tools
- http://www.EmbeddedArtists.com provides a selection of LPC2xxx chips for low-volume orders (in the range of 1 - 200 chips).
- http://www.lpc2000.com/tools/indextools.html has a list of tools.
- http://www.gaoresearch.com/onlinestore/ provides a wide range of Development tools.
- http://www.uchobby.com/MakeControllerKit.htm ARM7 Evaluation Board; AT91SAM7X256; 256K Flash, 64K SRAM, JTAG, Ethernet, CAN, USB, UART and more.
- http://www.coridiumcorp.com/ provides $49 modules (one in a 24 pin DIP form factor) with a LPC2103 ARM7 microcontroller and a builtin BASIC compiler
- http://www.tincantools.com provide an ARM9 module in a 40-pin dip package running linux
- Most of the development modules listed at ["motherboards that Run Linux"] use an ARM microcontroller.
Hobbyist Projects
related wiki
see the
WikiNode
Other sources of information