ARM7 (LPC2148) Tutorial Introduction
ARM Processors (or Microcontrollers) are a family of powerful CPUs that are based on the Reduced Instruction Set Computer (RISC) architecture. ARM processors are available from small microcontrollers like the ARM7 series to the powerful processors like Cortex – A series that are used in today’s smart phones.
ARM based microcontrollers are advanced set of processors and hence for beginners, it might be a little difficult to understand. It is advised to start with smaller and simpler microcontrollers like 8051 to get the idea of how a microcontroller works, programming a microcontroller and developing applications using microcontroller.
As the interest in advanced microcontrollers like ARM is continually increasing, we have designed a set of tutorials that guide you through the understanding of the basic ARM Processor. Before jumping in to the advanced processors like Cortex – M or Cortex – A series, it is best to start with simple processors like ARM7. If we understand the basic ARM7 processor, it will be very easy to develop applications and systems using advanced processors.
For this tutorial, we have selected an ARM7 TDMI based processor called LPC2148, which is a 32 – bit MCU manufactured by NXP Semiconductors (formerly Philips).
The tutorial is divided in to 8 parts for a step – by – step understanding of the ARM7 MCU. The following is a brief introduction to all the tutorials which are explained in this series.
Part 1: ARM Introduction
The first part of the tutorial is a basic introduction of the ARM Processors, features of ARM processors, explaining the features of the ARM processors, different families of ARM processors and their corresponding architectures, general nomenclature used in ARM processors. It also gives a brief idea about the types of ARM processors and their applications. Finally, a simple thought about where to begin exploring the ARM processors is also given.
Part 2: ARM GIPO Introduction
This part gives an introduction to the Pin Configuration of the LPC2148 MCU. It acts as a guide to understanding the general purpose input / output (GPIO) pin, different registers associated with the GPIO operations and different ways to initialize the registers. Finally, we will see a real time example to implement the things we have learnt. For this, we will see the Blinking LED example with the detailed programming.
Part 3: ARM PLL Tutorial
Part 3 of the tutorial will be about Phase Locked Loop (PLL) in LPC2148. It gives an introduction to PLL in general, the use of PLL in LPC2148 and types of PLLs. After the basic introduction, the next topic will be understanding different registers that are related to PLL and also setting up the PLL for our requirements. Finally, we will see different setting that required for PLL and an example program to implement the PLL block in LPC2148.
Part 4: Interfacing 16X2 LCD
We will develop a small project in this part of the tutorial involving LPC2148 MCU and LCD display. As LCD is an important component in the world of embedded systems, we will see some basics about LCD modules and the pin configuration of the typical 16 x 2 LCD display. We will then interface the LCD Module with LPC2148 and see the required settings for that. Finally, we will program the LPC2148 MCU in order to successfully display some characters on the LCD.
Part 5: ARM Timer Tutorial
The next part of the ARM7 tutorial series is the concept of Timers in LPC2148. We will discuss some basics of timers and counters in LPC2148 and the registers with respect to Timers in LPC2148. Then, we will see how to configure the Timers as per our needs. Finally, we will once again blink the LEDs, but this time using Timers for better delay operation.
Part 6: ARM Interrupt Tutorial
In this tutorial, we will see the concept of interrupts in microcontrollers and the use of interrupts in embedded systems. Then, we will see how the interrupts are handled in LPC2148 and the registers associated with them. We will also see how to initialize the interrupts and configure interrupts in LPC2148. At last, we use the concept of interrupt in real time example and see the program for blinking a set of LEDs using Timers and Interrupts.
Part 7: LPC 2148 PWM Programming
In the seventh part of the series, we will discuss a new topic called Pulse Width Modulation (PWM). Here, we will see the uses of PWM, types of PWM signals in LPC2148 and also the pins that are capable of generating PWM. We will understand how PWM is generated in LPC2148 and the registers related to PWM. Finally, we will configure the registers to generate desired PWM and also a real time example of dimming the LED using PWM.
Part 8: LPC2148 UART Tutorial
Part 8 of the tutorial deals with UART in LPC2148. In this, we will understand some basics of UART in general and in LPC2148. The Pins associated with UART are explained and also the list of registers used for UART. The next topic will be about baud rate generation in the UART module and calculations for desired baud rate generation. We will also see an example program to implement the UART protocol in LPC2148 and how to send a set of characters from MCU to computer.