ARM7 Based (LPC2148) Microcontroller Pin Configuration
- Jun 02, 2022
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.
What is an ARM7 Processor?
ARM7 processor is commonly used in embedded system applications. Also, it is a balance among classic as well as new-Cortex sequence. This processor is tremendous in finding the resources existing on the internet with excellence documentation offered by NXP Semiconductors. It suits completely for an apprentice to obtain in detail hardware & software design implementation.
The LPC2148 microcontroller is designed by Philips (NXP Semiconductor) with several in-built features & peripherals. Due to these reasons, it will make more reliable as well as the efficient option for an application developer. LPC2148 is a 16-bit or 32-bit microcontroller based on ARM7 family.
Features of LPC2148
The main features of LPC2148 include the following.
- The LPC2148 is a 16 bit or 32 bit ARM7 family based microcontroller and available in a small LQFP64 package.
- ISP (in system programming) or IAP (in application programming) using on-chip boot loader software.
- On-chip static RAM is 8 kB-40 kB, on-chip flash memory is 32 kB-512 kB, the wide interface is 128 bit, or accelerator allows 60 MHz high-speed operation.
- It takes 400 milliseconds time for erasing the data in full chip and 1 millisecond time for 256 bytes of programming.
- Embedded Trace interfaces and Embedded ICE RT offers real-time debugging with high-speed tracing of instruction execution and on-chip Real Monitor software.
- It has 2 kB of endpoint RAM and USB 2.0 full speed device controller. Furthermore, this microcontroller offers 8kB on-chip RAM nearby to USB with DMA.
- One or two 10-bit ADCs offer 6 or 14 analogs i/ps with low conversion time as 2.44 μs/ channel.
- Only 10 bit DAC offers changeable analog o/p.
- External event counter/32 bit timers-2, PWM unit, & watchdog.
- Low power RTC (real time clock) & 32 kHz clock input.
- Several serial interfaces like two 16C550 UARTs, two I2C-buses with 400 kbit/s speed.
- 5 volts tolerant quick general purpose Input/output pins in a small LQFP64 package.
- Outside interrupt pins-21.
- 60 MHz of utmost CPU CLK-clock obtainable from the programmable-on-chip phase locked loop by resolving time is 100 μs.
- The incorporated oscillator on the chip will work by an exterior crystal that ranges from 1 MHz-25 MHz
- The modes for power-conserving mainly comprise idle & power down.
- For extra power optimization, there are individual enable or disable of peripheral functions and peripheral CLK scaling.
The LPC2148 microcontroller has 512-kB on-chip FLASH memory as well as 32-kB on-chip SRAM. Also, this microcontroller includes inherent support up to 2kB finish point USB RAM. This memory is well matched for all the microcontroller applications.
On-chip FLASH Memory System
This microcontroller includes a 512-kB Flash memory system and this memory may be useful for both the data storage as well as code. The programming of this memory can be done by the following.
- By incorporating JTAG interface in serial
- Using UART or ISP (in system programming)
- Capabilities of IAP (In Application Programming)
The IAP function Based application program may also remove while the program is running. Whenever the microcontroller LPC2148 on-chip boot-loader is utilized, then 500 kB of Flash memory is obtainable for consumer code. The Flash memory of this microcontroller offers the smallest amount of 100,000 writes/erase cycles as well as 20-years of data preservation.
This microcontroller offers static RAM with 32-kB and very useful for data storage or code. It is accessible for 8-bits, 16-bits, & 32-bits.
The LPC2148 microcontroller has two input/output ports and these are termed as P0 &P1. Every port pins are branded with PX.Y. Here, ‘X’ denotes port number like 0 or 1, whereas ‘Y’ denotes pin number 0-31. All the pins can execute alternate tasks also. For instance, P0.8 provides as GPIO and Tx pin of the UART1, AD1.1, PWM4. On RST (RESET), every pin is arranged as GPIO.
How to Start with Programming?
The initial step toward lpc2148 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 LPC2148 includes 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.
LPC2148 Pin Configuration
Pin1-(P0.21/ PWM5CAP1.3/ AD1.6)
- P0.21 is a GPIO pin (general purpose I/O pin)
- AD1.6 is obtainable in LPC2144/46/48 microcontrollers only where an AD1.6 denotes ADC-1, i/p-6.
- PWM5 is a pulse width modulator output-5.
- CAP1.3 is a Capture i/p for Timer-1, channel-3
Pin2-(P0.22/ CAP0.0/AD1.7/ MAT0.0 2
- P0.22 is a GPIO digital pin
- AD1.7 pin is available in LPC2144/46/48 only where an AD1.7 denotes ADC-1, input-7
- CAP0.0 is a capture input pin for Timer-0, channel-0.
- MAT0.0 is a match o/p for Timer-0, channel-0
It is an I/p to the RTC-oscillator circuit
Pin4- TRACEPKT3/ P1.19
- TRACEPKT3 is a trace packet, bit-3, standard input/output port by the inner pull-up.
- P1.19 is a GPIO digital pin
This is an output pin from the RTC oscillator circuit
Pin6, Pin18, Pin25, Pin42, and Pin50
These pins are a ground reference
This pin is an analog voltage power supply (3.3V), and this voltage is very useful for the on-chip analog to digital converters and digital to analog converters.
- P1.18 is a GPIO digital pin
- TRACEPKT2 is a trace packet, bit-2, standard input/output port by the inner pull-up.
- P0.25 is a GPIO digital pin I
- AD0.4 denotes ADC-0, input-4
- Aout- the output of DAC and that is accessible only in LPC2142/ LPC2144/ LPC2146/ LPC2148
This pin is a USB bidirectional D+ line
This pin is a USB bidirectional D- line
- P1.17 is a GPIO digital pin
- TRACEPKT1 is a trace packet, bit-1, standard input/output port by the inner pull-up.
Pin13-P0.28/ CAP0.2/ AD0.1/MAT0.2
- P0.28 is a GPIO digital pin
- AD0.1 denotes ADC-0, input-1
- CAP0.2 is a capture i/p for Timer-0, channel-2.
- MAT0.2 is a match o/p for Timer-0, channel-2
Pin14-P0.29/ CAP0.3/ AD0.2/MAT0.3
- P0.29 is a GPIO digital pin
- AD0.2 denotes ADC-0, input-2
- CAP0.3 is a capture i/p for Timer-0, channel-3.
- MAT0.3 is a match o/p for Timer-0, channel-3
Pin15-P0.30/ EINT3/ AD0.3/CAP0.0
- P0.30 is a GPIO digital pin
- AD0.3 denotes ADC-0, input-3
- EINT3 is an external interrupt 3-input.
- CAP0.3 is a capture i/p for Timer-0, channel-0.
- P1.16 is a GPIO digital pin
- TRACEPKT1 is a trace packet, bit-0, standard input/output port by inner pull-up
- P0.31 is a GPIO digital pin
- UP_LED is a USB good link LED indicator. When the device is arranged then it is low and when the device is not arranged, then it is high.
- CONNECT- This signal is used to control an exterior resistor (1.5 kΩ) under the control of a software control, and it is used by the feature of Soft Connect
- P0.0 is a GPIO digital pin
- TXD0 is a transmitter o/p for UART0.
- PWM1 is a pulse width modulator o/p-1.
- P1.31 is a GPIO digital pin
- TRST is a test reset for JTAG interface.
Pin21-P0.1/ PWM3/ RXD0/EINT0
- P0.1 is a GPIO digital pin
- RXD0 is a receiver i/p for UART0.
- PWM3 is a pulse width modulator o/p-3.
- EINT0 is an external interrupt 0-input
Pin22- P0.2/ CAP0.0/ SCL0
- P0.2 is a GPIO digital pin
- SCL0 is an I2C0 clock I/O, and open-drain o/p
- CAP0.0 is a capture i/p for Timer-0, channel-0.
Pin 23, 43, and 51- VDD
These pins are power supply voltage for the I/O ports as well as the core.
- P1.26 is a GPIO digital pin
- RTCK is a returned test CLK o/p, an additional signal added to the JTAG-port. When the frequency of processor changes then it helps debugger synchronization.
Pin26- P0.3/ SDA0/ MAT0.0/EINT1
- P0.3 is a GPIO digital pin
- SDA0 is an I2C0 data I/O and open drain o/p for I2C bus observance.
- MAT0.0 is matched o/p for timer-0, channel-0.
- EINT1 is an external interrupt 1-i/p.
Pin27-P0.4/ CAP0.1/ SCK0/AD0.6
- P0.4 is a GPIO digital pin I/O
- SCK0 is a serial CLK for SPI0 and SPI CLK o/p from master/ i/p to slave.
- CAP0.1 is a capture i/p for timer-0, channel-0.
- IAD0.6 denotes ADC-0, input-6
- P1.25 is a GPIO digital pin I/O
- EXTIN0 is an external trigger i/p, and standard input/output with inner pull-up
- P0.5 is a GPIO digital pin I/O
- MISO0 is a master in slave out for SPI0, data i/p to SPI-master/data o/p from SPI slave.
- MAT0.1 is a match o/p for timer-0, channel-1.
- AD0.7 denotes ADC-0, input-7.
- P0.6 is a GPIO digital pin I/O
- MOSI0 is a master out slave in for SPI0, and data o/p from SPI master/ data i/p to SPI slave.
- CAP0.2 is a capture i/p for Timer-0, channel-2.
Pin31-P0.7/ PWM2/ SSEL0/EINT2
- P0.7 is a GPIO digital pin I/O
- SSEL0 is a slave select for SPI0 and chooses the SPI-interface as a slave.
- PWM2 is a pulse width modulator output-2.
- EINT2 is an external interrupt 2-input.
- P1.24 is a GPIO digital pin I/O.
- TRACECLK is a trace CLK and standard input/output port with inner pull-up
- P0.8 is a GPIO digital pin I/O
- TXD1 is a transmitter o/p for UART1.
- PWM4 is a pulse width modulator o/p-4.
- AD1.1 denotes ADC-1, input-1, and it is obtainable only in LPC2144/46/48.
- P0.9 is a GPIO digital pin I/O
- RXD1 is a receiver i/p for UART1.
- PWM6 is a pulse width modulator o/p-6.
- EINT3 is an external interrupt 3-input
- P0.10 is a GPIO digital pin I/O
- RTS1 is requesting to send o/p for UART1 and LPC2144/46/48.
- CAP1.0 is a capture i/p for timer-1, channel-0.
- AD1.2 denotes ADC-1, input-2, and it is obtainable only in LPC2144/46/48
- P1.23 is a GPIO digital pin I/O
- PIPESTAT2 is a pipeline status, bit-2., and standard Input/Output port with inner pull-up
Pin37-P0.11/ CAP1.1/CTS1/ SCL1
- P0.11 is a GPIO digital pin I/O
- CTS1 is clear to send i/p for UART1, and these are accessible only in LPC2144/46/48
- CAP1.1 is a capture i/p for timer-1, channel-1.
- SCL1 — I2C1 CLK I/O, and open drain o/p for the I2C-bus observance
Pin38-P0.12/ MAT1.0/AD1.3/ DSR1
- P0.12 is a GPIO digital pin I/O
- DSR1 is a data set ready i/p for UART1, and these are accessible only in LPC2144/46/48.
- MAT1.0 is a match o/p for timer-1, channel-0.
- AD1.3 denotes ADC input-3, and it is accessible only in LPC2144/46/48.
- P0.13 is a GPIO digital pin I/O
- DTR1 is a data terminal ready o/p for UART1 and LPC2144/46/48 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 LPC2144/46/48.
- 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
- P0.14 is a GPIO digital pin I/O
- DCD1 is a data carrier detect i/p for UART1, and also only for LPC2144/46/48 only.
- 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 LPC2144/46/48.
- EINT2 is an external interrupt 2-input.
- AD1.5 indicates ADC 1, input-5, and also available only in LPC2144/46/48
Pin46: P0.16/ MAT0.2/ EINT0/ CAP0.2
- P0.16 is a GPIO digital pin I/O
- EINT0 is an external interrupt0- input.
- MAT0.2 is a match o/p for Timer-0, channel -2
- CAP0.2 is a capture i/p for Timer-0, channel-2.
Pin47: P0.17/ SCK1/ CAP1.2/ MAT1.2 47
- P0.17 is a GPIO digital pin I/O
- CAP1.2 is a capture i/p for Timer-1, channel-2.
- SCK1 is a serial CLK for SSP and CLK o/p from master to slave.
- MAT1.2 is a match o/p for Timer-1, channel-2.
Pin48: P1.20/ TRACESYNC
- P1.20 is a GPIO digital pin I/O
- TRACESYNC is trace synchronization.
RTC power supply: This pin gives the supply to the RTC.
P1.30 is a GPIO digital pin I/O
TMS is a test mode select for interfacing of JTAG.
Pin53: P0.18/CAP1.3/ MISO1/MAT1.3
- P0.18 is a GPIO digital pin I/O
- CAP1.3 is a capture i/p for Timer 1, channel 3.
- MISO1 is a master In Slave-out for SSP, and data i/p to SPI- master
Pin54: P0.19/ MOSI1/MAT1.2/ CAP1.2
- P0.19 is a GPIO digital pin I/O.
- MAT1.2 denotes match o/p for Timer 1, channel 2.
- MOSI1 is a master out slave for SSP master.
- CAP1.2 is a capture i/p for Timer 1, channel 2.