What is ARM ?
ARM stands for Acorn RISC machine is a family of instruction set architectures for computer processors based on a reduced instruction set computing (RISC) architecture. And in simple word ARM is “Processor Achitecture “.
Many of newbiees and students have misunderstanding that ARM is microcontroller or processor, but actually ARM is Architecture which is used in many processors and microcontrollers.
Short History of ARM ?
The British computer manufacturer Acorn Computers first developed ARM in the 1980s to use in its personal computer. The official Acorn RISC Machine project started in October 1983 ARM is a family of instruction set architectures for computer processors based on a reduced instruction set computing (RISC)architecture developed by British company ARM Holdings.
About ARM –
Over the last few years, the ARM architecture has become the most popular 32-bit architecture in the world, with wide range of ICs available from various IC manufacturers. ARM7 & Cortex series is largest success of ARM . ARM processors are embedded in products ranging from cell/mobile phones to automotive braking systems. A worldwide community of ARM partners and third-party vendors has developed among semiconductor and product design companies, including hardware engineers, system designers, and software developers.
About ARM Holdings (ARM company)
ARM Holdings develops the instruction set and architecture for ARM-based products, but does not manufacture products. Then your first question is, how company earns ?
Well, ARM Holding licenses the chip designs and the ARM instruction set architectures to third parties, who design their own products that implement one of those architectures cores. Currently, the widely used Cortex cores, older “classic” cores, and specialized SecurCore cores variants are available. Companies that make chips that implement an ARM architecture include Apple, NXP, ST microelectronics, NVidia, Qualcomm, Samsung Electronics, and Texas Instruments, etc.
According to ARM Holdings, in 2010 alone, producers of chips based on ARM architectures reported shipments of 6.1 billion ARM Based processors, representing 95% of smartphones, 35% of digital televisions and set-top boxes and 10% of mobile computers. It is the most widely used 32-bit instruction set architecture in terms of quantity produced.
Types of ARM product
we can not distinguish types of ARM product on any particular fact beacause the architecture and features of ARM is updated continuosly and there are so many new features are added and renewed, there is only one way to understand ARM based product is on its Architectural profile (perticularly Cortex). There are three types of profile available
- A-profile, the “Application” profile: Cortex-A series
This is Cortex architecture in which we port Operating system mostly different embedded Linux. And make embedded system by OS system programming. Practical development platform of this types of profile is FriendlyARM, Raspberry Pi, etc.
- R-profile, the “Real-time” profile: Cortex-R series
This is Cortex architecture which mostly used for real time purpose where application abort is critical situation.
- M-profile, the “Microcontroller” profile: Cortex-M series
This profile is specially dedicated for microcontroller purpose only. Typical example of this kind of profile architecture is Hercules TMS470M, STM32F429, etc.
Some ARM releases
Why beginning with LPC2148 to start ARM ?
ARM7 is greatest success family in embedded system application. So here we learn ARM7TDMI based NXPs controller.
ARM7 is balance between new Cortex series and old start up. it is neither too old technology nor latest
ARM7 family is excellent for beginners as per my opinion, because it gives real depth idea about hardware and software implementation & integration by using appropriate IDE.
Features of LPC2148
LPC2148 is the widely used IC from ARM-7 family. It is manufactured by Philips (NXP) and it is pre-loaded with many inbuilt peripherals making it more efficient and a reliable option for the beginners as well as high end application developer.
8 to 40 kB of on-chip static RAM
32 to 512 kB of on-chip flash program memory.
128 bit wide interface/accelerator enables high speed 60 MHz operation.
In-System/In-Application Programming (ISP/IAP) via on-chip boot-loader software.
Embedded ICE RT and Embedded Trace interfaces offer real-time debugging with the on-chip Real Monitor software and high speed tracing of instruction execution.
USB 2.0 Full Speed compliant Device Controller with 2 KB of endpoint RAM. In addition, the LPC2146/8 provides 8 kB of on-chip RAM accessible to USB by DMA.
One or two (LPC2141/2 vs. LPC2144/6/8) 10-bit A/D converters provide a total of 6/14analog inputs, with conversion times as low as 2.44 us per channel.
Single 10-bit D/A converter provides variable analog output.
Two 32-bit timers/external event counters (with four capture and four compare channels each), PWM unit (six outputs) and watchdog.
Low power real-time clock with independent power and dedicated 32 kHz clock input.
Multiple serial interfaces including two UARTs (16C550), two Fast I2C-bus(400 kbps), SPI and SSP with buffering and variable data length capabilities.
Vectored interrupt controller with configurable priorities and vector addresses.
Up to 45 of 5 V tolerant fast general purpose I/O pins in a tiny LQFP64 package.
Up to nine edge or level sensitive external interrupt pins available.
Power saving modes include Idle and Power-down.
Processor wake-up from Power-down mode via external interrupt, USB, Brown-Out Detect (BOD) or Real-Time Clock (RTC).
Single power supply chip with Power-On Reset (POR) and BOD circuits: CPU operating voltage range of 3.0 V to 3.6 V (3.3 V ± 10 %) with 5 V tolerant I/O pads.
Pin-out of LPC 2148
For Example : ARM 7 TDMI (LPC2148)
ARM 7 modes
- User mode – all normal application run under this mode
- FIQ mode – all fast interrupt data transfer or channel process service provided under this mode
- IRQ mode – vectored(priority based) interrupt handler
- Supervision mode – protected mode for the operating system
- System mode – all operating related task
- Abort mode – entered after a data or instruction Pre-fetch Abort exception
- Undefined mode – entered when an undefined instruction is executed.
All these mode indicates its special work and execute under certain condition. Modes other than User mode are collectively known as privileged modes. your program or application generally runs under User mode. Privileged modes are used to service interrupts or exceptions, or to access protected resources.
Suggested Reading :- ARM Processors Architecture Overview