Topic : Introduction to Pin’s,
PORTS and Configuring ARM
4/23/2020 Electrical Product Development
Lab
eu
Topics
PIN configuration
PORTS
Configuring PIN's
Simple LED blinking program
4/23/2020 Electrical Product Development
Lab
PIN Configuration
po.2siao.aiaour if)
ES LPC2148
Fig : 1 PIN Diagram of LPC2148
4/23/2020 Electrical Product Development
Lab
PIN Configuration (Cont
LPC2148
Po. t0 Pos, Po.161o Poss Py to Pı 15, Pi t6t0P 1.31
Fig : 2 Distribution of PORT’s and PIN’s
4/23/2020 Electrical Product Development
Lab
PORTx
PORT O:
e PO.0 to PO.15 — Lower 16 bit Pins
e PO.17 to PO.31 > Higher 16 bit Pins
PORT 1:
e P1.0to P1.15 — Lower 16 bit Pins
e P1.17 to P1.31 — Higher 16 bit Pins
PORT 0 - Lower 16 bit and higher 16 bit
are used as GPIO pins
PORT 1 - Only higher 16 bit pins are used
as GPIO pins.
4/23/2020 Electrical Product Development
Lab
2
PORTx (Cont..) %
« Pins of P1.0 to P1.15 of lower 16 bit pins
are not available for the user.
+ Also P0.24, P0.26 and P0.27 are not
available for user.
« Out of 64 pins only user can use 45 Pins
of LPC2148.
4/23/2020 Electrical Product Development
Lab
Configuring PIN’s
To use the 45 pins we must configure the pins by
configuring the following registers.
IOxPIN/IOPINx IO pin Status register
IODIRx Direction register
IOSETx State set register
IOCLRx PIN Clear register
All the registers are 32 bit registers each bit
controls the each pin of LPC2148.
This can be written in the Hexa Decimal format
0x00000000
Ox stands for hexa decimal deceleration
e Reading the values of pins can be done by
IOPINx
Ex: IOPINO = 0x0000000F
4/23/2020 Electrical Product Development
Lab
Configuring PIN’s (Cont...)
IODIRx - Direction register
Assigning 0 > will make pin as INPUT
Assigning 1 — will make pin as OUTPUT
By default the pin value will be set as ‘0’
If we want to change the pin PO.O to PO.3
as OUTPUT pins then declaration will be
Ex:0x0000000F
4/23/2020 Electrical Product Development
Lab
o;
Configuring PIN's (Cont...) a
IOSETx - State set register
Ex:0x0000000F/Px.0 to Px.3 as High
IOCLRx - PIN Clear register
Ex:0x0000000F// Px.0 to Px.3 satus will be
cleared
4/23/2020 Electrical Product Development
Lab
Configuring PIN’s (Cont...)
Table : 1 Selector Input and PIN State
= oo) MXN
Ist Alternate Function y-0to31 GPIO
2nd Alternate Function Px.y
st
Reserve 1
and
Si SO
Fig : 3 General Block Diagram of single
S1 and SO values are configured by associated register of PSB
4/23/2020 Electrical Product Development
Lab
a
Configuring PIN’s (Cont...)
PSB - Pin Select Block has the following
registers
PINSELO -Controls the pins from PO.O to PO.15
PINSEL1 -Controls the pins from P0.16 to PO.31
PINSEL2 —Controls the pins from P1.16 to P1.31
Each of the registers are 32 bit wide then how it
controls the 16 bit pins
4/23/2020 Electrical Product Development
Lab
se
Cii0
Configuring PIN’s (Cont...)
e Lets take the example of PINSELO 32 bit register
which controls the pins from PO.0 to PO.15.
si - SO S1 - SO
00! |00! 100! (00) |00! 100! 100! 100! |00! |00! 100! 100/ | 00
t | 1 y 1 y | yo, y | 1 y
e Example for configuring PO.O pin as a Tx Pin for
USART communication
GPIO
TxDo
PWM
Reserve
S1 so
: 5 Features of PO.0 pin
. PINSELO =0x 00000001
PO.0 become as TxDO by setting LSB values of PO.3
to PO.0 as 0001
4/23/2020 Electrical Product Development
Lab
15
Simple LED Blinking Prograr
+ Blink the LED connected in PORT1
# include <Ipc21xx.h> // Include header file
void delay(void);
int main(void)
{
}
4/23/2020
PINSEL2 = 0x00000000; // Configure P1.16 as GPIO pin
IODIR1 = 0x00000000; // Configure P1.16 as OUTPT pin
while(1) £
IOSET1 = 0x00010000; // Turn ON LED at P1.16
delay(); // Wait for a while
IOCLR1 = 0x00010000; // Turn OFF LED at P1.16
delay(); // Wait for a while
Electrical Product Development
Lab
Simple LED Blinking Prograr &
void delay(void){
unsigned int j; // assign the variable j
for(j=0;j<1000000;j++) // Increment j till
} 1000000
4/23/2020 Electrical Product Development
Lab
Assignment
e Draw the circuit for the above program
e Write the program for blinking the LED from
PO.16 to PO.23.