What is ARM7 Based (LPC2148) Microcontroller ?All Explained

27 May 2024
blikai 1212

Embedded system and SOC (system on chip) designers choose particular microprocessor cores, libraries, and different tools to develop microprocessor based applications. An ARM processor is one of the best alternatives obtainable for embedded system designers. In the past few years, the ARM architecture has become very popular and these are available from different IC manufacturers. The applications of ARM processors involves in mobile phones, automotive braking systems, etc. A global ARM community partners have developed semiconductor as well as product-design corporations includes an employs like engineers, designers, & developers. This article is about ARM7 based LPC2148 microcontroller, architecture and pin configuration. This article will assist you to understand the basics of the microcontroller.

 

ARM7 Based (LPC2148) Microcontroller

 

The full form of an ARM is an advanced reduced instruction set computer (RISC) machine, and it is a 32-bit processor architecture expanded by ARM holdings. The applications of an ARM processor include several microcontrollers as well as processors. The architecture of an ARM processor was licensed by many corporations for designing ARM processor-based SoC products and CPUs. This allows the corporations to manufacture their products using ARM architecture. Likewise, all main semiconductor companies will make ARM-based SOCs such as Samsung, Atmel, TI etc.

 

ARM7 Processor

 

The ARM7 processor is a widely used microprocessor in embedded system applications. It represents a balance between classic and newer Cortex processor architectures. The ARM7 is an excellent choice for beginners to gain in-depth understanding of hardware and software design implementation, as there is abundant documentation and resources available online, particularly from NXP Semiconductors.

 

LPC2148 Microcontroller

 

The LPC2148 is a microcontroller designed by Philips (now NXP Semiconductor) that integrates numerous features and peripherals. This makes it a reliable and efficient option for application developers. The LPC2148 is a 16-bit or 32-bit microcontroller based on the ARM7 processor family.

 

Key Features of LPC2148:

- 16-bit or 32-bit ARM7 processor core

- Available in a compact LQFP64 package

- In-system programming (ISP) or in-application programming (IAP) via on-chip bootloader

- 8 KB to 40 KB of on-chip static RAM, and 32 KB to 512 KB of on-chip flash memory

- 128-bit wide interface/accelerator for high-speed 60 MHz operation

- Embedded Trace interfaces and Embedded ICE RT for real-time debugging and high-speed instruction tracing

- USB 2.0 full-speed device controller with 2 KB of endpoint RAM

- One or two 10-bit ADCs with 6 or 14 analog inputs

- 10-bit DAC for variable analog output

- External event counters, 32-bit timers, PWM unit, and watchdog

- Low-power Real-Time Clock (RTC) and 32 kHz clock input

- Multiple serial interfaces including UART, I²C, etc.

- 5V-tolerant general-purpose I/O pins

- 21 external interrupt pins

- On-chip Phase Locked Loop (PLL) for up to 60 MHz CPU clock

- Idle and power-down modes for power optimization

 

Here is a rephrased version of the text on the LPC2148 microcontroller's memory and I/O:

 

LPC2148 Microcontroller Memory

 

The LPC2148 microcontroller features a generous 512 KB of on-chip flash memory, as well as 32 KB of on-chip SRAM. Additionally, it includes built-in support for up to 2 KB of dedicated USB endpoint RAM. This memory configuration makes the LPC2148 well-suited for a wide range of microcontroller applications.

 

On-chip Flash Memory

 

The 512 KB flash memory can be used for both data storage and program code. Programming of this flash memory can be accomplished through various methods:

 

- Using the JTAG interface

- Leveraging the UART or in-system programming (ISP) capabilities

- Utilizing the in-application programming (IAP) functionality

 

The IAP function allows the application program to update the flash memory while the microcontroller is running. When using the on-chip bootloader, 500 KB of the flash memory is available for user code. The flash memory is rated for at least 100,000 write/erase cycles and 20 years of data retention.

 

On-chip SRAM

 

The LPC2148 also provides 32 KB of on-chip static RAM, which is very useful for data storage and code execution. This SRAM is accessible in 8-bit, 16-bit, and 32-bit widths.

 

Input/Output Ports

 

The LPC2148 microcontroller has two I/O port groups, designated as P0 and P1. Each port pin is labeled as PX.Y, where 'X' represents the port number (0 or 1), and 'Y' denotes the pin number (0-31). All pins can be configured to perform alternate functions, such as GPIO, UART, ADC, PWM, and more. Upon reset, all pins are configured as general-purpose I/O.

 

How to Start with Programming?

 

The initial step towards ARM7 Based (LPC2148) Microcontroller programming is an arrangement of GPIO Pins. So here are the related concepts as well as registers. The general purpose I/O port pins in the ARM7 Based (LPC2148) Microcontroller include P0.0 to P0.31 and P1.16 to P1.31, and actually, these pins are available based on the alternate function utilization.

 

Port-0 and Port-1 are 32-bit Input/output ports, and every bit of these ports can be controlled by an individual direction. The operations of port-0 & port-1 depend upon the function of a pin that is selected using the pin connected block. In Port-0, pins like P0.24, P0.26 & P0.27 are not obtainable whereas, in Port-1, the Pins 0 to 15 are not obtainable. Here, both the pins like Port-0 & Port-1 are controlled by two groups of registers discussed below.

 

ARM7 Based (LPC2148) Pin Configuration

ARM7 Based (LPC2148) Pin Configuration

 

 

Pin1-(P0.21/ PWM5CAP1.3/ AD1.6)

The P0.21 pin is a general-purpose input/output (GPIO) pin.

AD1.6 is available only on the LPC2144/46/48 microcontrollers, where it is an analog-to-digital converter (ADC) input 6.

PWM5 is a pulse-width modulator output 5.

CAP1.3 is a capture input for Timer 1, channel 3.

 

Pin2-(P0.22/ CAP0.0/AD1.7/ MAT0.0 2

The P0.22 pin is a GPIO digital pin.

AD1.7 is available only on the LPC2144/46/48 microcontrollers, where it is an ADC input 7.

CAP0.0 is a capture input for Timer 0, channel 0.

MAT0.0 is a match output for Timer 0, channel 0.

 

Pin3-RTXC1 3

This pin is an input to the real-time clock (RTC) oscillator circuit.

 

Pin4- TRACEPKT3/ P1.19

TRACEPKT3 is a trace packet bit 3, which is a standard input/output port with an internal pull-up.

The P1.19 pin is a GPIO digital pin.

 

Pin5-RTXC2

This pin is an output from the RTC oscillator circuit.

 

Pin6, Pin18, Pin25, Pin42, and Pin50

These pins are ground reference pins.

 

Pin7-VDDA

This pin provides the analog voltage power supply (3.3V), which is useful for the on-chip analog-to-digital and digital-to-analog converters.

 

Pin8- P1.18/TRACEPKT2

The P1.18 pin is a GPIO digital pin.

TRACEPKT2 is a trace packet bit 2, which is a standard input/output port with an internal pull-up.

 

 

Pin9- P0.25/AOUT/AD0.4

The P0.25 pin is a general-purpose digital input/output (GPIO) pin.

AD0.4 denotes Analog-to-Digital Converter (ADC) input 4.

AOUT is the output of the Digital-to-Analog Converter (DAC), and it is accessible only in the LPC2142, LPC2144, LPC2146, and LPC2148 microcontrollers.

 

Pin10- D+

This pin is a bidirectional USB D+ line.

Pin11- D-

This pin is a bidirectional USB D- line.

 

Pin12-P1.17/TRACEPKT1

The P1.17 pin is a GPIO digital pin.

TRACEPKT1 is a trace packet bit 1, which is a standard input/output port with an internal pull-up.

 

Pin13-P0.28/ CAP0.2/ AD0.1/MAT0.2

The P0.28 pin is a GPIO digital pin.

AD0.1 denotes ADC input 1.

CAP0.2 is a capture input for Timer-0, channel 2.

MAT0.2 is a match output for Timer-0, channel 2.

 

Pin14-P0.29/ CAP0.3/ AD0.2/MAT0.3

The P0.29 pin is a GPIO digital pin.

AD0.2 denotes ADC input 2.

CAP0.3 is a capture input for Timer-0, channel 3.

MAT0.3 is a match output for Timer-0, channel 3.

 

Pin15-P0.30/ EINT3/ AD0.3/CAP0.0

The P0.30 pin is a GPIO digital pin.

AD0.3 denotes ADC input 3.

EINT3 is an external interrupt 3 input.

CAP0.0 is a capture input for Timer-0, channel 0.

 

Pin16- P1.16/TRACEPKT0

The P1.16 pin is a GPIO digital pin.

TRACEPKT0 is a trace packet bit 0, which is a standard input/output port with an internal pull-up.

 

Pin17-P0.31/UP_LED/CONNECT

The P0.31 pin is a GPIO digital pin.

UP_LED is a USB link status LED indicator. When the device is connected, it is low, and when the device is not connected, it is high.

CONNECT is a signal used to control an external resistor (1.5 kΩ) under software control, and it is used by the Soft Connect feature.

 

Pin19- P0.0/PWM/TXD0

The P0.0 pin is a GPIO digital pin.

TXD0 is a transmitter output for UART0.

PWM1 is a pulse-width modulator output 1.

 

Pin20- P1.31/TRST

The P1.31 pin is a GPIO digital pin.

TRST is a test reset signal for the JTAG interface.

 

Pin21-P0.1/ PWM3/ RXD0/EINT0

The P0.1 pin is a GPIO digital pin.

RXD0 is a receiver input for UART0.

PWM3 is a pulse-width modulator output 3.

EINT0 is an external interrupt 0 input.

 

Pin22- P0.2/ CAP0.0/ SCL0

The P0.2 pin is a GPIO digital pin.

SCL0 is an I2C0 clock input/output, with an open-drain output.

CAP0.0 is a capture input for Timer-0, channel 0.

 

Pin 23, 43, and 51- VDD

These pins provide the power supply voltage for the I/O ports and the core.

 

Pin24- P1.26/RTCK

The P1.26 pin is a GPIO digital pin.

RTCK is a returned test clock output, an additional signal added to the JTAG port. It helps the debugger synchronize when the processor frequency changes.

 

Pin26- P0.3/ SDA0/ MAT0.0/EINT1

The P0.3 pin is a GPIO digital pin.

SDA0 is an I2C0 data input/output with an open-drain output for I2C bus monitoring.

MAT0.0 is a match output for Timer-0, channel 0.

EINT1 is an external interrupt 1 input.

 

Pin27-P0.4/ CAP0.1/ SCK0/AD0.6

The P0.4 pin is a GPIO digital input/output.

SCK0 is a serial clock for SPI0, serving as the clock output from the master or input to the slave.

CAP0.1 is a capture input for Timer-0, channel 0.

AD0.6 denotes ADC-0, input-6.

 

Pin28-P1.25/EXTIN0

The P1.25 pin is a GPIO digital input/output.

EXTIN0 is an external trigger input, and a standard input/output with an internal pull-up.

 

Pin29- P0.5/MAT0.1/MISO0/AD0.7

The P0.5 pin is a GPIO digital input/output.

MISO0 is a master-in-slave-out for SPI0, serving as a data input to the SPI master or a data output from the SPI slave.

MAT0.1 is a match output for Timer-0, channel 1.

AD0.7 denotes ADC-0, input-7.

 

Pin30-P0.6/MOSI0/CAP0.2/AD1.0

The P0.6 pin is a GPIO digital input/output.

MOSI0 is a master-out-slave-in for SPI0, used for data output from the SPI master or data input to the SPI slave.

CAP0.2 is a capture input for Timer-0, channel 2.

AD1.0 denotes ADC-1, input-0.

 

Pin31-P0.7/ PWM2/ SSEL0/EINT2

The P0.7 pin is a GPIO digital input/output.

SSEL0 is a slave select for SPI0, used to select the SPI interface as a slave.

PWM2 is a pulse-width modulator output 2.

EINT2 is an external interrupt 2 input.

 

Pin32-P1.24/TRACECLK

The P1.24 pin is a GPIO digital input/output.

TRACECLK is a trace clock and a standard input/output port with an internal pull-up.

 

Pin33-P0.8/TXD1/PWM4/AD1.1

The P0.8 pin is a GPIO digital input/output.

TXD1 is a transmitter output for UART1.

PWM4 is a pulse-width modulator output 4.

AD1.1 denotes ADC-1, input-1, and it is available only in the LPC2144, LPC2146, and LPC2148 microcontrollers.

 

Pin34- P0.9/PWM6/RXD1/EINT3

The P0.9 pin is a GPIO digital input/output.

RXD1 is a receiver input for UART1.

PWM6 is a pulse-width modulator output 6.

EINT3 is an external interrupt 3 input.

 

Pin35-P0.10/RTS1/CAP1.0/AD1.2

The P0.10 pin is a GPIO digital input/output.

RTS1 is a request-to-send output for UART1, available only in the LPC2144, LPC2146, and LPC2148 microcontrollers.

CAP1.0 is a capture input for Timer-1, channel 0.

AD1.2 denotes ADC-1, input-2, and it is available only in the LPC2144, LPC2146, and LPC2148 microcontrollers.

 

Pin36-P1.23/PIPESTAT2

The P1.23 pin is a GPIO digital input/output.

PIPESTAT2 is a pipeline status bit 2, and a standard input/output port with an internal pull-up.

 

Pin37-P0.11/ CAP1.1/CTS1/ SCL1

The P0.11 pin is a GPIO digital input/output.

CTS1 is a clear-to-send input for UART1, available only in the LPC2144, LPC2146, and LPC2148 microcontrollers.

CAP1.1 is a capture input for Timer-1, channel 1.

SCL1 is an I2C1 clock input/output, with an open-drain output for I2C bus monitoring.

 

Pin38-P0.12/ MAT1.0/AD1.3/ DSR1

The P0.12 pin is a GPIO digital input/output.

DSR1 is a data set ready input for UART1, available only in the LPC2144, LPC2146, and LPC2148 microcontrollers.

MAT1.0 is a match output for Timer-1, channel 0.

AD1.3 denotes ADC input-3, and it is available only in the LPC2144, LPC2146, and LPC2148 microcontrollers.

 

 

Pin39-P0.13/DTR1/MAT1.1/AD1.4

P0.13 is a GPIO digital pin I/O

DTR1 is a data terminal ready o/p for UART1 and the LPC2144/46/48 ARM7 Based (LPC2148) Microcontrollers only.

MAT1.1 is a match o/p for timer-1, channel-1.

AD1.4 denotes ADC input-4, and these are accessible only in the LPC2144/46/48 ARM7 Based (LPC2148) Microcontrollers.

 

Pin40-P1.22/PIPESTAT1

P1.22 is a GPIO digital pin I/O

PIPESTAT1 is a pipeline status, bit-1, and standard Input/Output port with inner pull-up

 

Pin41-P0.14/DCD1/EINT1/SDA1

P0.14 is a GPIO digital pin I/O

DCD1 is a data carrier detect i/p for UART1, and also only for the LPC2144/46/48 ARM7 Based (LPC2148) Microcontrollers.

EINT1 is an exterior interrupt 1-input.

SDA1 is an I2C1 data I/O and an open drain o/p for I2C bus observance

 

Pin44:P1.21/ PIPESTAT0 44

I/O P1.21 is a GPIO digital pin I/O

PIPESTAT0 is a Pipeline Status, bit 0, and standard Input/Output port by the inner pull-up.

 

Pin45: P0.15/ EINT2/ RI1/ AD1.5 45

I/O P0.15 is a GPIO digital pin I/O

RI1 is a ring pointer i/p for UART1 and it is accessible only in the LPC2144/46/48 ARM7 Based (LPC2148) Microcontrollers.

EINT2 is an external interrupt 2-input.

AD1.5 indicates ADC 1, input-5, and also available only in the LPC2144/46/48 ARM7 Based (LPC2148) Microcontrollers

 

 

Pin46: P0.16/ MAT0.2/ EINT0/ CAP0.2

The P0.16 pin is a general-purpose digital input/output (GPIO) pin. 

EINT0 is an external interrupt 0 input.

MAT0.2 is a match output for Timer-0, channel-2.

CAP0.2 is a capture input for Timer-0, channel-2.

 

Pin47: P0.17/ SCK1/ CAP1.2/ MAT1.2 47

The P0.17 pin is a GPIO digital input/output pin.

CAP1.2 is a capture input for Timer-1, channel-2. 

SCK1 is a serial clock for the Synchronous Serial Port (SSP) and acts as a clock output from the master to the slave.

MAT1.2 is a match output for Timer-1, channel-2.

 

Pin48: P1.20/ TRACESYNC

The P1.20 pin is a GPIO digital input/output pin.

TRACESYNC is a trace synchronization signal.

 

Pin49: VBAT

This pin provides the power supply for the Real-Time Clock (RTC).

 

Pin52: P1.30/TMS

The P1.30 pin is a GPIO digital input/output pin.

TMS is a test mode select signal used for JTAG interface.

 

Pin53: P0.18/CAP1.3/ MISO1/MAT1.3

The P0.18 pin is a GPIO digital input/output pin.

CAP1.3 is a capture input for Timer 1, channel 3.

MISO1 is a Master-In Slave-Out signal for the Synchronous Serial Port (SSP), acting as a data input to the SSP master.

 

Pin54: P0.19/ MOSI1/MAT1.2/ CAP1.2

The P0.19 pin is a GPIO digital input/output pin.

MAT1.2 is a match output for Timer 1, channel 2.

MOSI1 is a Master-Out Slave-In signal for the Synchronous Serial Port (SSP) master.

CAP1.2 is a capture input for Timer 1, channel 2.

 

Pin 55: P0.20/ SSEL1/ MAT1.3/ EINT3

The P0.20 pin is a GPIO digital input/output pin.

MAT1.3 is a match output for Timer 1, channel 3.

SSEL1 is a Slave Select signal for the Synchronous Serial Port (SSP), used to select the SSP interface as a slave.

EINT3 is an external interrupt 3 input.

 

Pin56: P1.29/TCK

The P1.29 pin is a GPIO digital input/output pin.

TCK is a test clock signal for the JTAG interface.

 

Pin57: External Reset Input

This pin is used to reset the device. Applying a low signal on this pin will reset the input/output ports and peripherals to their default conditions, and the processor will begin execution from address 0.

 

Pin58: P0.23/VBUS

The P0.23 pin is a GPIO digital input/output pin.

VBUS indicates the presence of USB bus power.

 

Pin59: VSSA

VSSA is the analog ground, and it should be the same voltage as VSS, but separated to reduce noise and error.

 

Pin60: P1.28/TDI 60

The P1.28 pin is a GPIO digital input/output pin.

TDI is a test data input signal used for the JTAG interface.

 

Pin61: XTAL2

XTAL2 is an output from the oscillator amplifier.

 

Pin62: XTAL1

XTAL1 is an input to the internal clock generator and oscillator circuits.

 

Pin63: VREF-ADC Reference

This pin should be nominally equal to or less than the voltage VDD, although it should be separated to reduce error and noise.

 

Pin64: P1.27/TDO 64

The P1.27 pin is a GPIO digital input/output.

TDO is a test data output used for interfacing with the JTAG (Joint Test Action Group) protocol.

 

The provided information covers the pin configuration of the ARM7-based LPC2148 microcontroller. This knowledge can be beneficial for electronic engineering students, as it provides a basic understanding of the pin configuration, input/output (I/O) port memory, and associated registers.

 

Now, as a question, what are some of the common applications of the LPC2148 microcontroller?

 

Related Articles

Comparing FPGA vs Microcontroller: Optimal for Your Needs?

ESP32 vs ESP8266 Microcontroller: Which One Should You Choose?

MC9S12XHZ256CAG Microcontroller: Overview, Specifications and Applications

AT89S52 Microcontroller:Applications, Features and Datasheet

8051 Microcontroller:Features,Applications and Types

Getting Started with Arduino Leonardo Microcontroller

Facebook Instagram Twiter
What is ARM7 Based (LPC2148) Microcontroller
What is ARM7 Based (LPC2148) Microcontroller ?All Explained
20 September 2025
look
1213
What-is-Flash-Memory
What is Flash Memory? [Comprehensive Guide]
20 September 2025
look
956
Transmission System
The Transmission System and Its Function
20 September 2025
look
985
What-is-HMI
Human-Machine Interface(HMI) Technology [Explained]
20 September 2025
look
1137
Digital Comparator and Magnitude Comparator
Digital Comparator and Magnitude Comparator Guide
20 September 2025
look
1543
Automotive-Relays
Automotive Relays: Types, Advantages & Applications
20 September 2025
look
1562
Integrated-Amplifier
What Integrated Amplifier Is and How It Works
20 September 2025
look
1161
Automotive-Relays
How to Test Automotive Relays (Guide)
20 September 2025
look
1226