0% found this document useful (0 votes)
51 views84 pages

Arm Lab Manual

The ARM Cortex-M3 is a 32-bit microprocessor known for its high performance and low power consumption, featuring a Thumb-2 instruction set and advanced interrupt handling capabilities. It is designed for embedded systems, offering enhanced efficiency, low cost, and ease of use, making it suitable for applications in automotive, industrial control, and consumer products. The LPC-1768, based on the Cortex-M3, integrates various peripherals and operates at high frequencies, providing a robust platform for embedded applications.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
51 views84 pages

Arm Lab Manual

The ARM Cortex-M3 is a 32-bit microprocessor known for its high performance and low power consumption, featuring a Thumb-2 instruction set and advanced interrupt handling capabilities. It is designed for embedded systems, offering enhanced efficiency, low cost, and ease of use, making it suitable for applications in automotive, industrial control, and consumer products. The LPC-1768, based on the Cortex-M3, integrates various peripherals and operates at high frequencies, providing a robust platform for embedded applications.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Embedded Systems - 18ECL66

CHAPTER 1
INTRODUCTION TO ARM Cortex M3 PROCESSOR
The ARM Cortex-M3 is a general purpose 32-bit microprocessor, which offers high
performance and very low power consumption. The Cortex-M3 offers many new features,
including a Thumb-2 instruction set, low interrupt latency, hardware divide,
interruptible/continuable multiple load and store instructions, automatic state save and restore
for interrupts, tightly integrated interrupt controller with Wake-up Interrupt Controller and
multiple core buses capable of simultaneous [Link] techniques are employed so that
all parts of the processing and memory systems can operate continuously. Typically, while one
instruction is being executed, its successor is being decoded, and a third instruction is being
fetched from memory.

The processor has a Harvard architecture, which means that it has a separate instruction bus
and data bus. This allows instructions and data accesses to take place at the same time, and
as a result of this, the performance of the processor increases because data accesses do not
affect the instruction pipeline. This feature results in multiple bus interfaces on Cortex-M3,
each with optimized usage and the ability to be used simultaneously. However, the
instruction and data buses share the same memory space (a unified memory system). In
other words, you cannot get 8 GB of memory space just because you have separate bus
interfaces.

A simplified block diagram of the Cortex-m3 architecture is shown above

Department of Electronics and Communication Engineering, BIT Page 1


Embedded Systems - 18ECL66

It is worthwhile highlighting that the Cortex-M3 processor is not the first ARM
processor to be used to create generic micro controllers. The venerable ARM7 processor has
been very successful in this market, The Cortex-M3 processor builds on the success of the
ARM7 processor to deliver devices that are significantly easier to program and debug and yet
deliver a higher processing capability.

Background of ARM architecture

ARM was formed in 1990 as Advanced RISC Machines Ltd., a joint venture of Apple
Computer, Acorn Computer Group, and VLSI Technology. In 1991, ARM introduced the
ARM6 processor family, and VLSI became the initial licensee. Subsequently, additional
companies, including Texas Instruments, NEC, Sharp, and ST Microelectronics, licensed the
ARM processor designs, extending the applications of ARM processors into mobile phones,
computer hard disks, personal digital assistants (PDAs), home entertainment systems, and
many other consumer products.
Nowadays, ARM partners ship in excess of 2 billion ARM processors each year. Unlike
many semiconductor companies, ARM does not manufacture processors or sell the chips
directly. Instead, ARM licenses the processor designs to business partners, including a majority
of the world’s leading semiconductor companies. Based on the ARM low-cost and power-
efficient processor designs, these partners create their processors, micro controllers, and
system-on-chip solutions. This business model is commonly called intellectual property (IP)
licensing.
Architecture versions

Over the years, ARM has continued to develop new processors and system blocks.
These include the popular ARM7TDMI processor and, more recently, the ARM1176TZ (F)-S
processor, which is used in high-end applications such as smart phones. The evolution of
features and enhancements to the processors over time has led to successive versions of the
ARM architecture. Note that architecture version numbers are independent from processor
names. For example, the ARM7TDMI processor is based on the ARMv4T architecture (the T
is for Thumb instruction mode support).
The ARMv5E architecture was introduced with the ARM9E processor families,
including the ARM926E -S and ARM946E -S processors. This architecture added “Enhanced”
Digital Signal Processing (DSP) instructions for multimedia applications. With the arrival of
the ARM11 processor family, the architecture was extended to the ARMv6. New features in
this architecture included memory system features and Single Instruction–Multiple Data
(SIMD) instructions. Processors based on the ARMv6 architecture include the ARM1136J (F)-
S, the ARM1156T2 (F)-S, and the ARM1176JZ (F)-S.
Over the past several years, ARM extended its product portfolio by diversifying its CPU
development, which resulted in the architecture version 7 or v7. In this version, the
architecture design is divided into three profiles:

Department of Electronics and Communication Engineering, BIT Page 2


Embedded Systems - 18ECL66

  The A profileis designed for high-performance open application platforms.


 The R profileis designed for high-end embedded systems in which real-time
performance is needed.
 The M profileis designed for deeply embedded micro controller-type systems.
Bit more details on these profiles

Profile (ARMv7-A): Application processors which are designed to handle complex


applications such as high-end embedded operating systems (OSs) (e.g., Symbian, Linux, and
Windows Embedded). These processors requiring the highest processing power, virtual
memory system support with memory management units (MMUs), and, optionally, enhanced
Java support and a secure program execution environment. Example products include high-end
mobile phones and electronic wallets for financial transactions.

R Profile (ARMv7-R):Real-time, high-performance processors targeted primarily at the


higher end of the real-time market, those applications, such as high-end breaking systems and
hard drive controllers, in which high processing power and high reliability are essential and for
which low latency is important.
M Profile (ARMv7-M): Processors targeting low-cost applications in which processing
efficiency is important and cost, power consumption, low interrupt latency, and ease of use are
critical, as well as industrial control applications, including real-time control systems. The
Cortex processor families are the first products developed on architecture v7, and the Cortex-
M3 processor is based on one profile of the v7 architecture, called ARM v7-M, an architecture
specification for micro controller products.
Below figure shows the development stages of ARM versions

Department of Electronics and Communication Engineering, BIT Page 3


Embedded Systems - 18ECL66

Instruction Set Development

Enhancement and extension of instruction sets used by the ARM processors has been
one of the key driving forces of the architecture’s evolution. Historically (since ARM7TDMI),
two different instruction sets are supported on the ARM processor: the ARM instructions that
are 32 bits and Thumb instructions that are 16 bits. During program execution, the processor
can be dynamically switched between the ARM state and the Thumb state to use either one of
the instruction sets. The Thumb instruction set provides only a subset of the ARM instructions,
but it can provide higher code density. It is useful for products with tight memory
requirements.
The Thumb-2 Technology and Instruction Set Architecture

The Thumb- 2 technology extended the Thumb Instruction Set Architecture (ISA) into
a highly efficient and powerful instruction set that delivers significant benefits in terms of ease
of use, code size, and performance. The extended instruction set in Thumb-2 is a super set of
the previous 16-bit Thumb instruction set, with additional 16-bit instructions alongside 32-bit
instructions. It allows more complex operations to be carried out in the Thumb state, thus
allowing higher efficiency by reducing the number of states switching between ARM state and
Thumb state.
Focused on small memory system devices such as micro controllers and reducing the
size of the processor, the Cortex-M3 supports only the Thumb-2 (and traditional Thumb)
instruction set. Instead of using ARM instructions for some operations, as in traditional
ARM processors, it uses the Thumb-2 instruction set for all operations. As a result, the
Cortex-M3 processor is not backward compatible with traditional ARM processors.

Nevertheless, the Cortex-M3 processor can execute almost all the 16-bit Thumb
instructions, including all 16-bit Thumb instructions supported on ARM7 family processors,
making application porting easy. With support for both 16-bit and 32-bit instructions in the
Thumb-2 instruction set, there is no need to switch the processor between Thumb state (16-bit
instructions) and ARM state (32-bit instructions). For example, in ARM7 or ARM9 family
processors, you might need to switch to ARM state if you want to carry out complex
calculations or a large number of conditional operations and good performance is needed,
whereas in the Cortex-M3 processor, you can mix 32-bit instructions with 16-bit instructions
without switching state, getting high code density and high performance with no extra
complexity.
The Thumb-2 instruction set is a very important feature of the ARMv7 architecture.
Compared with the instructions supported on ARM7 family processors (ARMv4T
architecture), the Cortex-M3 processor instruction set has a large number of new features. For
the first time, hardware divide instruction is available on an ARM processor, and a number of
multiply instructions are also available on the Cortex-M3 processor to improve data-crunching
performance. The Cortex-M3 processor also supports unaligned data accesses, a feature
previously available only in high-end processors.

Department of Electronics and Communication Engineering, BIT Page 4


Embedded Systems - 18ECL66

Advantages of Cortex M3 processors


The Cortex-M3 addresses the requirements for the 32-bit embedded processor market
in the following ways:
Greater performance efficiency: Allowing more work to be done without increasing the
frequency or power requirements
Low power consumption: Enabling longer battery life, especially critical in portable products
including wireless networking applications
Enhanced determinism: Guaranteeing that critical tasks and interrupts are serviced as quickly
as possible and in a known number of cycles
Improved code density: ensuring that code fits in even the smallest memory footprints
Ease of use: providing easier programming and debugging for the growing number of 8-bit
and 16-bit users migrating to 32 bits
Lower cost solutions: reducing 32-bit-based system costs close to those of legacy 8-bit and 16-
bit devices and enabling low-end, 32-bit micro controllers to be priced at less than US$1 for
the first time

Wide choice of development tools: from low-cost or free compilers to full-featured


development suites from many development tool vendors
Cost savings can be achieved by improving the amount of code reuse across all
systems. Because Cortex-M3 processor-based micro controllers can be easily programmed
using the C language and are based on a well-established architecture, application code can be
ported and reused easily, and reducing development time and testing costs.
Applications of Cortex M3 processors

Low-cost micro controllers: The Cortex-M3 processor is ideally suited for low-cost micro
controllers, which are commonly used in consumer products, from toys to electrical
appliances. It is a highly competitive market due to the many well-known 8-bit and 16-bit
micro controller products on the market. Its lower power, high performance, and ease-of- use
advantages enable embedded developers to migrate to 32-bit systems and develop products
with the ARM architecture.
Automotive: Another ideal application for the Cortex-M3 processor is in the automotive
industry. The Cortex-M3 processor has very high-performance efficiency and low interrupt
latency, allowing it to be used in real-time systems. The Cortex-M3 processor supports up to
240 external vectored interrupts, with a built-in interrupt controller with nested interrupt
supports and an optional MPU, making it ideal for highly integrated and cost-sensitive
automotive applications.
Data communications: The processor’s low power and high efficiency, coupled with
instructions in Thumb-2 for bit-field manipulation, make the Cortex-M3 ideal for many
communications applications, such as Bluetooth and ZigBee.
Industrial control: In industrial control applications, simplicity, fast response, and reliability
are key factors. Again, the Cortex-M3 processors interrupt feature, low interrupt latency, and
enhanced fault-handling features make it a strong candidate in this area.

Department of Electronics and Communication Engineering, BIT Page 5


Embedded Systems - 18ECL66

Consumer products: In many consumer products, a high-performance microprocessor (or


several of them) is used. The Cortex-M3 processor, being a small processor, is highly efficient
and low in power and supports an MPU enabling complex software to execute while providing
robust memory protection.

The Cortex-M3 Processor versus Cortex-M3-Based Micro Controllers

The Cortex-M3 processor is the central processing unit (CPU) of a micro controller
chip. In addition, numbers of other components are required for the whole Cortex-M3
processor-based micro controller. After chip manufacturers license the Cortex-M3 processor,
they can put the Cortex-M3 processor in their silicon designs, adding memory, peripherals,
input/output (I/O), and other features. Cortex-M3 processor-based chips from different
manufacturers will have different memory sizes, types, peripherals, and features.

Department of Electronics and Communication Engineering, BIT Page 6


Embedded Systems - 18ECL66

CHAPTER 2
LPC-1768
The LPC-1768 is an ARM Cortex-M3 based microcontroller for embedded applications
featuring a high level of integration and low power consumption. The ARM Cortex-M3 is a
next generation core that offers system enhancements such as enhanced debug features and a
higher level of support block integration.

The LPC-1768 operate at CPU frequencies of up to 100 MHz. The LPC1768 operates
at CPU frequencies of up to 120 MHz. The ARM Cortex-M3 CPU incorporates a 3-stage
pipeline and uses a Harvard architecture with separate local instruction and data buses as well
as a third bus for peripherals. The ARM Cortex-M3CPU also includes an internal prefetch unit
that supports speculative branching.

The peripheral complement of the LPC-1768 includes up to 512 kB of flash memory, up to


64 kB of data memory, Ethernet MAC, USB Device/Host/OTG interface, 8-channel general
purpose DMA controller, 4 UARTs, 2 CAN channels, 2 SSP controllers, SPI interface, 3
I2C-bus interfaces, 2-input plus 2-output I2S-bus interface, 8 -channel 12-bit ADC, 10-bit
DAC, motor control PWM, Quadrature Encoder interface, four general purpose timers, 6-
output general purpose PWM, ultra-low power Real-Time Clock (RTC) with separate
battery supply, and up to 70 general purpose I/O pins. The LPCLPC-1768 are pin-
compatible to the 100-pin LPC236x ARM7-based microcontroller series.

Features:

 ARM Cortex-M3 processor, running at frequencies of up to 100 MHz (LPC-1768) A


Memory Protection Unit (MPU) supporting eight regions is included.
 ARM Cortex-M3 built-in Nested Vectored Interrupt Controller (NVIC).
 Up to 512 kB on-chip flash programming memory. Enhanced flash memory
accelerator enables high-speed 120 MHz operation with zero wait states.
 In-System Programming (ISP) and In-Application Programming (IAP) via on-
chip boot loader software.
 On-chip SRAM includes:
 32/16 kB of SRAM on the CPU with local code/data bus for high-performance
 CPU access
 Two/one 16 kB SRAM blocks with separate access paths for higher throughput.
These SRAM blocks may be used for Ethernet, USB, and DMA memory, as well
 as for general purpose CPU instruction and data storage.
 Eight channel General Purpose DMA controller (GPDMA) on the AHB multilayer
 matrix that
 can be used with SSP, I2S-bus, UART, Analog-to-Digital and Digital-to-Analog
 converter peripherals, timer match signals, and for memory-to-memory transfers.

Department of Electronics and Communication Engineering, BIT Page 7


Embedded Systems - 18ECL66

 Multilayer AHB matrixes interconnect provides a separate bus for each AHB
[Link] masters include the CPU, General Purpose DMA controller, Ethernet
MAC, and the USB interface. This interconnect provides communication with no
 arbitration delays.
 Split APB bus allows high throughput with few stalls between the CPU and
DMA. Serial interfaces:


 Ethernet MAC with RMII interface and dedicated DMA controller.
 USB 2.0 full-speed device/Host/OTG controller with dedicated DMA controller
and on-chip PHY for device, Host, and OTG functions.
 Four UARTs with fractional baud rate generation, internal FIFO, and DMA
support.
 One UART has modem control I/O and RS-485/EIA-485 support, and one UART
has IrDA support.
 CAN 2.0B controller with two channels.
 SPI controller with synchronous, serial, full duplex communication and
programmable data length.
 Two SSP controllers with FIFO and multi-protocol capabilities. The SSP
interfaces can be used with the GPDMA controller.
 Three enhanced I2C bus interfaces, one with an open-drain output supporting full
I2C specification and Fast mode plus with data rates of 1 Mbit/s, two with
standard port pins. Enhancements include multiple address recognition and
 monitor mode.
 I2S (Inter-IC Sound) interface for digital audio input or output, with fractional rate
 control. The I2S-bus interface can be used with the GPDMA. The I2S-bus interface
 Supports 3-wire and 4-wire data transmit and receive as well as master
clock input/output.
Other peripherals:

 70 (100 pin package) General Purpose I/O (GPIO) pins with configurable pull-
up/down resistors. All GPIOs support a new, configurable open-drain operating
mode. The GPIO block is accessed through the AHB multilayer bus for fast
access and located in memory such that it supports Cortex-M3 bit banding and
use by the General Purpose DMA Controller.
 12-bit Analog-to-Digital Converter (ADC) with input multiplexing among eight
pins, conversion rates up to 200 kHz, and multiple result registers. The 12-bit
ADC can be used with the GPDMA controller
 10-bit Digital-to-Analog Converter (DAC) with dedicated conversion timer and
DMA support.
 Four general purpose timers/counters, with a total of eight capture inputs and ten
compare outputs. Each timer block has an external count input. Specific timer
events can be selected to generate DMA requests
 One motor control PWM with support for three-phase motor control
 Quadrature encoder interface that can monitor one external quadrature encoder.
 One standard PWM/timer block with external count input.
 RTC with a separate power domain and dedicated RTC oscillator. The RTC block
Department of Electronics and Communication Engineering, BIT Page 8
Embedded Systems - 18ECL66

 includes 20 bytes of battery-powered backup registers.


 Watch Dog Timer (WDT). The WDT can be clocked from the internal RC
oscillator, the RTC oscillator, or the APB clock.
 ARM Cortex-M3 system tick timer, including an external clock input option.
 Repetitive interrupt timer provides programmable and repeating timed interrupts.
 Each peripheral has its own clock divider for further power savings.


 Standard JTAG test/debug interface for compatibility with existing tools. Serial Wire
Debug and Serial Wire Trace Port options.
 Emulation trace module enables non-intrusive, high-speed real-time tracing of
instruction execution.

 Integrated PMU (Power Management Unit) automatically adjusts internal


regulators to minimize power consumption during Sleep, Deep sleep, Power-down,
and Deep power-down modes.
 Four reduced power modes: Sleep, Deep-sleep, Power-down, and Deep power-
down.
 Single 3.3 V power supply (2.4 V to 3.6 V).
 Four external interrupt inputs configurable as edge/level sensitive. All pins on Port
0 and
Port 2 can be used as edge sensitive interrupt sources.
 Non-maskable Interrupt (NMI) input.
 Clock output function that can reflect the main oscillator clock, IRC clock, RTC
clock, CPU clock, and the USB clock.
 The Wake-up Interrupt Controller (WIC) allows the CPU to automatically wake up
from any priority interrupt that can occur while the clocks are stopped in deep
sleep,Power-down, and Deep power-down modes.
 Processor wake-up from Power-down mode via any interrupt able to operate
during Power-down mode (includes external interrupts, RTC interrupt, USB activity,
Ethernet wake-up interrupt, CAN bus activity, Port 0/2 pin interrupt, and NMI).
 Brownout detect with separate threshold for interrupt and forced reset.
 Power-On Reset (POR).
 Crystal oscillator with an operating range of 1 MHz to 25 MHz.
 4 MHz internal RC oscillator trimmed to 1% accuracy that can optionally be used
as a system clock.
 PLL allows CPU operation up to the maximum CPU rate without the need for a
high-frequency crystal. May be run from the main oscillator, the internal RC
oscillator, or the RTC oscillator.
 USB PLL for added flexibility.

Department of Electronics and Communication Engineering, BIT Page 9


Embedded Systems - 18ECL66

 Code Read Protection (CRP) with different security levels.


 Unique device serial number for identification purposes.
 Available as LQFP100 (14 mm x14 mm x1.4 mm), TFBGA1001 (9 mm x 9 mm
x0.7 mm), and WLCSP100 (5.074 x5.074 x0.6 mm) package.

General Description:

VTCM3_2 provides a hardware platform for developing embedded system


using LPC-1768 device. These features make VTCM3_3 board ideal for
instrumentation, communication and other demanding application areas where
flexibility and in-circuit hardware upgradeability is of paramount importance

VTCM3_3 board comes with complete drivers for


windows98/Me/2000/XP/2007. LPC-1768 code examples and windows DLL interface
which can be used to interface it to most common programming language. It comes
with complete Kiel development software and sample codes. It is also ideal for
classroom training in colleges and universities. Engineers can upgrade their hardware
development Skills using ARM CORTEX-M3.

VTCM3_3 board consists of the following:-


 VTCM3_3 board fitted in soft wooden box.
 USB Cable for Hex File downloading and 5v dc power for VTCM3_3 board .
 Inbuilt ADC, DAC, RTC
 RESET, ISP Program buttons.
 Eight digital input and Eight Digital output.
 16X2 LCD Display.
 Four digit seven segment display.
 20 pin box Header for JATAG debugging.
 I/O pin made available through 20pin, 26pin and 30 pin Box headers.
 Technical/Operational Manual with hardware Schematics and Sample Programs.
 Software CD.



Department of Electronics and Communication Engineering, BIT Page 10


Embedded Systems - 18ECL66

LPC1768 Pin-Out Diagram



Department of Electronics and Communication Engineering, BIT Page 11


Embedded Systems - 18ECL66

Department of Electronics and Communication Engineering, BIT Page 12


Embedded Systems - 18ECL66

Chapter 3
Hardware Configurations
LED Pin Configuration

VTCM3_3board provides eight individual SMD led’s connected to LPC-1768 device


through 74HC151driver IC. D1 to D8 are connected to general purpose I/O pins on LPC-
1768 device as shown in table(14) When LPC-1768 device drives Logic ‘1’ the
corresponding LED turns on.
LED Pin connection table.

LED D8 D7 D6 D5 D4 D3 D2 D1
LPC-1769 Port No P0-7 P0-6 P0-5 P0-4 P0-3 P0-2 P0-1 P0-0

SEVEN SEGMENT DIPLAY Pin Configuration:

D11, D12, D13 and D14 are Common Cathode segments connected to LPC-1768
device so that each segment is individually controlled by a general purpose I/O pin. When
the LPC-1768 device drives logic ‘0’ the corresponding segment turns on. See fig and table
for more details.

Seven Segment Pin connection table.

Seven Segment
DP F A B G C D E
Data Lines
LPC-1768
P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
Port

SEVEN SEGMENT Selection Pin Configurations:


As VTCM3_3 board comes with 4 digit seven segment unit. Displays connected to the
microcontroller usually occupy a large number of valuable I/O pins, which can be a big
problem especially if it is needed to display multi digit numbers. The problem is more than
obvious if, for example, it is needed to display four digit numbers (a simple calculation shows

Department of Electronics and Communication Engineering, BIT Page 13


Embedded Systems - 18ECL66

that 32 output pins are needed in this case). The solution to this problem is called
MULTIPLEXING. This is how an optical illusion based on the same operating principle as a
film camera is made. Only one digit is active at a time, but they change their state so quickly
making impression that all digits of a number are simultaneously active Each digit can made
active using switching transistors Q1, Q2, Q3 and Q4 and these on switched on and off by
selection lines which are in turn connected to LPC-1768 ports. Table shows the details of seven
segment selection lines.
Seven Segment Selection table.

Seven Segment Disp1 Disp2 Disp3 Disp4


Selection Lines (D9) (D10) (D11) (D12)
LPC-1768 Pin No 40 43 44 45

LPC-1768 Port No P2.0 P2.1 P0.2 P1.3

Department of Electronics and Communication Engineering, BIT Page 14


Embedded Systems - 18ECL66

16 X 2 LCD Display

An LCD display is specifically manufactured to be used with microcontrollers, which


means that it cannot be activated by standard IC circuits. It is used for displaying different
messages on a miniature liquid crystal display. It displays all the letters of alphabet, Greek
letters, punctuation marks, mathematical symbols etc. In addition, it is possible to display
symbols made up by the user. Other useful features include automatic message shift (left
and right), cursor appearance, LED backlight etc.

There are pins along one side of a small printed board. These are used for connecting
to the microcontroller. There are in total of 14 pins marked with numbers (16 if it has
backlight). Their function is described in the table below:

LCD Pin Configuration


LCD LCD Pin LPC-1768
Pin No Functions Port No
1 GND
2 VCC
3
4 RS
5 R/W
6 EN
7 DAT1
8 DAT2
9 DAT3
10 DAT4
11 DAT5
12 DAT6
13 DAT7
14 DAT8
15 VCC
16 GND

Department of Electronics and Communication Engineering, BIT Page 15


Embedded Systems - 18ECL66

DC Motor Pin Configuration

DC (direct current) motor rotates continuously. It has two terminals positive and
negative. Connecting DC power supply to these terminals rotates motor in one direction
and reversing the polarity of the power supply reverses the direction of rotation.
The speed of Dc motor can maintained at a constant speed for a given load by using
“Pulse Width Modulation (PWM)” technique. By changing the width of the pulse of
applied to dc motor, the power applied is varied thereby DC motor speed can be increased
or decreased. Wider the pulse Faster is the Speed, Narrower is the Pulse, and Slower is the
Speed
U9 is L293 driver IC used to drive the dc motor. It has enable lines which is used to
switch on the DC motor. It is connected to P4.28. Logic ‘1’ enables the driver and logic
‘0’ disables the driver.P4.28 and P4.29 are used for Motor 1 direction and speed control.
DC Motor Pin connection table.

Motor Selection Motor Direction LPC-1768 Port No


DCM0-Clk P4.28
Motor DCM1-Aclk P4.29
DCM_EN P3.25

Stepper Motor Configuration:

A stepper motor is a special type of electric motor that moves in increments, or steps,
rather than turning smoothly as a conventional motor does. Typical increments are 0.9 or
1.8 degrees, with 400 or 200 increments thus representing a full circle. The speed of the
motor is determined by the time delay between each incremental movement.

U8 is a Driver Buffer (ULN2003) device connected to LPC-1768 Device and can be


used for driving Stepper Motor. On the LPC-1768, P1.22 to P1.25 is used to generate the
pulse sequence required to run the stepper Motor. Also, the Stepper Motor is powered by
its own power supply pin (COM), which is connected to a 12V supply. Table shows
connections for stepper Motor.
Stepper Motor Pin connection table.
Stepper Motor Coil LPC-1768 Port No
A P0.0
B P0.1
C P0.2
D P0.3

Department of Electronics and Communication Engineering, BIT Page 16


Embedded Systems - 18ECL66

Relay Configurations:

A relay is an electrically operated switch. Many relays use an electromagnet to operate


a switching mechanism mechanically, but other operating principles are also used. Relays
are used where it is necessary to control a circuit by a low-power signal (with complete
electrical isolation between control and controlled circuits), or where several circuits must
be controlled by one signal. The first relays were used in long distance telegraph circuits,
repeating the signal coming in from one circuit and re-transmitting it to another. Relays
were used extensively in telephone exchanges and early computers to perform logical
operations.

K1 is an electromagnetic relay which is connected to P0.25 through Dip [Link]


need to send logic ‘1’ to switch on relay.J9 is three pin PBT terminal used to connect
external device to relay. Table shows connections for Relay.
Relay connection table.

Relay coil LPC-1768 Port No


Relay P0.19

HEX KEY PAD Pin configurations:

The hex keypad is a peripheral that is organized in rows and Columns. Hex key Pad 16 Keys
arranged in a 4 by 4 grid, labeled with the hexadecimal digits 0 to F. An example of this can
been seen in Figure 1, below. Internally, the structure of the hex keypad is very simple. Wires
run in vertical columns (we call them C0 to C3) and in horizontal rows (called R0 to R3).
These 8 wires are available externally, and will be connected to the lower 8 bits of the port.
Each key on the keypad is essentially a switch that connects a row wire to a column wire.
When a key is pressed, it makes an electrical connection between the row and column. Table
shows connections for HEX KEY Pad matrix.
HEX KEY Pad matrix table.

ROW/COLOUMNS ROW4 ROW3 ROW2 ROW1 COL4 COL3 COL2 COL1


LPC-1768 Port No P1.23 P1.22 P1.21 P1.20 P1.19 P1.18 P1.17 P1.16

USER KEY PAD Pin configurations:

VT1768 3_3board provides eight individual KEYS connected to LPC-1768 device through
PORT1. S1 to S6,S11and S16 are connected to general purpose I/O pins on 2148 device as
shown in table. 2148 device port pin drives to Logic ‘0’ when the corresponding key is
pressed. Table shows connections for USER KEY Pad connection.

Department of Electronics and Communication Engineering, BIT Page 17


Embedded Systems - 18ECL66

USER KEY Pad connection table.

USER DEFINED KEYS S11 S10 S9 S8 S6 S5 S4 S3


LPC-1768 Port No

BUZZER / SPEAKER Pin Configuration.

A buzzer or beeper is an audio signaling device, which may be


mechanical, electromechanical,
or piezoelectric. Typical uses of buzzers and beepers include alarm devices, timers and
confirmation of user input such as a mouse click or keystroke.LS1 is a small 12mm round
buzzer that operates around the audible 2kHz range. We drove it through Q8 which in turn
connected to [Link] need to send Logic ‘1’ to generate beep.

A speaker is a device which converts electrical signal to audible signal.J7 is a two pin
RMC where we are connecting external speaker. We drove it through Q5 which in turn
connected to P3.25 via Jumper [Link] need to send Logic ‘1’ to generate Tone.
Speaker /Buzzer pin connection Table.

Speaker/ Buzzer Pin LPC-1768 Port No

1 P0.20

• 12-bit successive approximation analog to digital converter.


• Input multiplexing among 8 pins.
• Power-down mode.
• Measurement range VREFN to VREFP (typically 3 V; not to exceed VDDA voltage
level).
• 12-bit conversion rate of 200 kHz.
• Burst conversion mode for single or multiple inputs.
• Optional conversion on transition on input pin or Timer Match signal. Basic clocking
for the A/D converters is provided by the APB clock. A programmable divider is
included in each converter to scale this clock to the clock (maximum 13 MHz)needed
by the successive approximation process. A non-burst mode conversion requires65
clocks and a burst mode conversion requires 64 clocks.
As VTCM3_3 board comes with two ADC inputs. One is connected to a
potentiometer for external analog voltage and another is for temperature
measurement.
A 5K variable POT is connected to AD0(P0.23) input of LPC1768. By varying this
we are applying 0 to 3.3V to ADC0 input. This analog voltage input can be converted
into digital output.
An LM35 temperature sensor is connected through ADC SSP IC to SSEL input of
LPC1768 for ambient temperature measurement.
Department of Electronics and Communication Engineering, BIT Page 18
Embedded Systems - 18ECL66

DAC:

Features
• 10-bit digital to analog converter
• Resistor string architecture
• Buffered output
• Selectable speed vs. power
• Maximum update rate of 1 MHZ.

As VTCM3_3 board comes with one DAC output for generation different wave
forms. AOUT (P0.26) is connected to TEST point TP1. The generated waveforms can be
viewed through TP1 (DAC) and TP2 (GND) by connecting CRO.

PWM:

Features
 Counter or Timer operation (may use the peripheral clock or one of the capture inputs as
the clock source).
 Seven match registers allow up to 6 single edge controlled or 3 double edge controlled
PWM outputs, or a mix of both types. The match registers also allow:
– Continuous operation with optional interrupt generation on match.
– Stop timer on match with optional interrupt generation.
– Reset timer on match with optional interrupt generation.
 Supports single edge controlled and/or double edge controlled PWM outputs. Single edge
controlled PWM outputs all go high at the beginning of each cycle unless the output is a
constant low. Double edge controlled PWM outputs can have either edge occur at any
position within a cycle. This allows for both positive going and negative going pulses.
 Pulse period and width can be any number of timer counts. This allows complete
flexibility in the trade-off between resolution and repetition rate. All PWM outputs will
occur at the same repetition rate.
 Double edge controlled PWM outputs can be programmed to be either positive going or
negative going pulses.
 Match register updates are synchronized with pulse outputs to prevent generation of
Erroneous pulses. Software must "release" new match values before they can
become effective.
 May be used as a standard timer if the PWM mode is not enabled.
 A 32-bit Timer/Counter with a programmable 32-bit pre scaler.
 Two 32-bit capture channels take a snapshot of the timer value when an input signals
transitions. A capture event may also optionally generate an interrupt. As VTCM3_3
board comes with one DAC output for generation different wave forms. AOUT (P0.26) is
connected to TEST point TP1. The generated waveforms can be viewed through TP1
(DAC) and TP2 (GND) by connecting CRO.

Department of Electronics and Communication Engineering, BIT Page 19


Embedded Systems - 18ECL66

As VTCM3_3 board comes with one PWM output for generation PWM wave forms.
AOUT (P0.26) is connected to TEST point TP1. The generated waveforms can be viewed
through TP1 (DAC) and TP2 (GND) by connecting CRO.

Department of Electronics and Communication Engineering, BIT Page 20


Embedded Systems - 18ECL66

Chapter 4
Why Use KeilMDK ?MDK provides these features particularly suited for Cortex-M users:

1. μVision IDE with Integrated Debugger, Flash programmer


and the ARM® Compiler tool chain. MDK is a turn-key
product.
2. A full feature Keil RTOS called RTX is included with
MDK. RTX comes with a BSD type license. Source code is
provided. See [Link]/demo/eval/[Link] for full
RTX software.
3. Serial Wire Viewer and ETM trace capability is included.
4. RTX Kernel Awareness window. It is updated in real-time.
5. Keil Technical Support is included for one year and is
easily renewable. This helps you get your project
completed faster.

STEP BY STEP EXECTUTION OF ARM PROGRAMS USING KEIL µ Vision 4 ON


LPC1768 CORTEX M3 (ALP/EMBEDDED C PROGRAMMING)
1. MY COMPUTER
2. OPEN KEIL IDE (✔✔)
3. Go to PROJECT
4. Close Project
5. Project

6. Create New Project and name it

Department of Electronics and Communication Engineering, BIT Page 21


Embedded Systems - 18ECL66

ARM 32-bit Cortex-M3 Microcontroller with MPU, CPU clock up to 100MHz,


512kB on-chip Flash ROM with enhanced Flash Memory Accelerator, In-System
Programming (ISP) and In-Application Programming (IAP), 64kB RAM, Nested Vectored
Interrupt Controller, Eight channel General purpose DMA controller, AHB Matrix, APB,
Ethernet 10/100 MAC with RMII interface and dedicated DMA, USB 2.0 full-speed Device
controller and Host/OTG controller with DMA, CAN 2.0B with two channels, Four
UARTs, one with full Modem interface, Three I2C serial interfaces, Three SPI/SSP serial
interfaces, I2S interface, General purpose I/O pins, 12-bit ADC with 8 channels, 10-bit
DAC, Four 32-bit Timers with capture/compare, Standard PWM Timer block, Motor
control PWM for three-phase Motor control, Quadrature Encoder, Watchdog Timer, Real
Time Clock with optional Battery backup, System Tick Timer, Repetitive Interrupt Timer,
Brown-out detect circuit, Power-On Reset, Power Management Unit, Wakeup Interrupt
Controller,
Crystal oscillator, 4MHz internal RC oscillator, PLL,JTAG and Serial Wire Debug/Trace Port
with ETM

Department of Electronics and Communication Engineering, BIT Page 22


Embedded Systems - 18ECL66

CREATE NEW FILE (EXTENSION.C)

Department of Electronics and Communication Engineering, BIT Page 23


Embedded Systems - 18ECL66

Make sure that SystemInit() and System Core Clock Update() are included in the main program
Build go to Target1-option for Target 1
Select output -> select Create Hex File

* For simulation-- use Simulator selection / for hardware select Debugger

*Project--- Build

Department of Electronics and Communication Engineering, BIT Page 24


Embedded Systems - 18ECL66

Make sure there is 0 errors

OBSERVE THE CHANGES IN BITS ON GPIO0----Pins(P0.4---P0.11

Department of Electronics and Communication Engineering, BIT Page 25


Embedded Systems - 18ECL66

DISASSEMBLYEVERY C STATEMENT IS SUBSTITUTED BY RESPECTIVE ASSEMBLY LANGUAGE INSTRUCTION


OBSERVE THE CURSOR IN BOTH THESE WINDOWS MOVING SIMULTANEOUSLY

Department of Electronics and Communication Engineering, BIT Page 26


Embedded Systems - 18ECL66

OBSERVE THE REGISTER CONTENTS DURING SING STEP / COMPLETE RUN

Department of Electronics and Communication Engineering, BIT Page 27


Embedded Systems - 18ECL66

CHAPTER 5
STEPS TO EXECUTE in KEIL µVISION 4 for Assembly programs
1 DOUBLE CLICK ON ICON µVISION 4 (on Desktop)
2 GO TO PROJECT AND CLOSE PROJECT
3 GO TO PROJECT NEW µVISION PROJECT
4 TYPE NAME OF PROJECT AND SAVE
SELECT DEVICE FOR TARGET √ NXP(FOUNDED BY PHILIPS) DOUBLE
5
CLICK√√ SELECT LPC1768 √ OK √
Dialog Box appears like COPY NXP LPC17xx Startup code to project folder and
6
Add file to project ?
7 If it is an ALP Program click NO
To create Target
a. RIGHT CLICK TARGET √ OPTIONS FOR TARGET √
8 b. TARGET √ Select CLK = 12MHZ
c. OUTPUT √ SELECT CREATE HEX FILE
d. LINKER√ SELECT USE MEMORY LAYOUT FROM TARGET DIALOG
e. DEBUG √ SIMULATOR √ OK
GO TO FILE √ NEW FILE √ SAVE AS √ PROJECT NAME .s (ex: prog1.s)
9
FOR ALP / PROJECT NAME .c (ex: prog1.c) FOR C PROGRAM
10 TYPE THE PROGRAM IN NEW FILE WINDOW SAVE THE PROGRAM
RIGHT CLICK ON SOURCE GROUP ADD SYSTEM_LPC17XX.c ( Local
11 Disk C: Keil ARM Startup NXP LPC17XX) & ABOVE SAVED PROGRAM TO
SOURCE GROUP
12 TO ASSEMBLE / COMPILE √ PROJECT √ BUILD TARGET (F7)
13 DEBUG CLICK START / STOP DEBUG SESSION EVALUATION MODEOK
14 RUN THE PROGRAM OR USE F1 KEY
15 FOR SINGLE STEP USE F11 KEY
16 CHECK THE RESULTS
PERIPHERALS √ GPIO FAST INTERFACE (SELECT REQUIRED
a. PORT) / GPIO FAST INTERRUPTS / CORE PERIPHERALSFOR
EXTERNAL INTERRUPT etc
b. VIEW LOGIC ANALYZER WINDOW FOR WAVEFORMS
c, VIEW SERIAL WINDOW √ UART #1 FOR MESSAGE DISPLAY.
VIEW DISASSEMBLY WINDOW FOR THE EQUIVALENT
d.
INSTRUCTION FOR C SYNTAX
VIEW PROJECT WINDOW FOR GENERAL PURPOSE REGISTER &
e.
STATUS REGISTER CONTENTS

Department of Electronics and Communication Engineering, BIT Page 28


Embedded Systems - 18ECL66

CYCLE-I
Experiment -1
ALP to multiply two 16 bit binary numbers.
AREA RESET, DATA, READONLY ; Reset region
DCD 0X20001000 ; stack pointer value when stack is empty
DCD START

AREA MY_CODE, CODE, READONLY


ENTRY
START
LDR R0, DATA1
LDRH R1, [R0]
LDRH R2, [R0, #2]
MUL R3, R2, R1
STR R3, [R0, #4]
STOP B STOP
DATA1 DCD 0x40000010
END

RESULTS:
Memory Location before execution and after execution

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 29


Embedded Systems - 18ECL66

Experiment -2
ALP to find the sum of first 10 integer numbers.
AREA RESET, DATA, READONLY
DCD 0x20001000
DCD START
AREA MY_CODE, CODE, READONLY
ENTRY
START
MOV R2, #10
MOV R1, #0
LOOP ADD R1, R2
SUBS R2, #1
BNE LOOP
STOP B STOP
END

RESULTS:

REG Before execution and after execution

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 30


Embedded Systems - 18ECL66

Experiment -3
ALP to find the number of O's and l's in a 32 bit data.
AREA RESET, DATA, READONLY
DCD 0X20001000
DCD START
AREA MY_CODE, CODE, READONLY
ENTRY
START
LDR R2, DATA1
LDR R0, [R2]
MOV R1, #32
MOV R2, #00 ; No of One's
MOV R3, #00 ; No of Zero's
LOOP RORS R0, R0, #1
ADC R2, R2, #0
SUBS R1, #1
BNE LOOP
MOV R1, #32
SUB R3, R1, R2
STOP B STOP
DATA1 DCD 0X40000010
END

RESULTS:
REG Before execution and after execution

INPUT:

Department of Electronics and Communication Engineering, BIT Page 31


Embedded Systems - 18ECL66

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 32


Embedded Systems - 18ECL66

Experiment -4
ALP to find determine whether the given 16 bit is even or odd.
AREA RESET, DATA, READONLY
DCD 0X20001000
DCD START

AREA MY_CODE, CODE, READONLY


ENTRY
START
LDR R2, DATA1
LDRH R0, [R2]
MOV R2, #00 ;EVEN
MOV R3, #00 ;0DD
ANDS R0, #0001
BEQ even
MOV R3, #0XFF
B STOP
even MOV R2, #0X55
STOP B STOP
DATA1 DCD 0X40000010
END

Department of Electronics and Communication Engineering, BIT Page 33


Embedded Systems - 18ECL66

RESULTS:
REG Before execution and after execution

INPUT:

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 34


Embedded Systems - 18ECL66

Experiment -5
Write an ALP to store data in RAM.

PRESERVE8 ; Indicate the code here preserve 8 byte stack alignment


THUMB ; Indicate THUMB code is used
AREA RESET, DATA, READONLY
EXPORT _Vectors
_Vectors
DCD 0x20001000 ; Allocate data variable space
DCD START
AREA data1, DATA ; Start of Data definitions
ALIGN 4 ; 4 byte stack alignment
MyData1 DCD 0 ; Word size data(32-bit)
MyData2 DCW 0 ; half Word size data
MyData3 DCB 0 ; byte size data
AREA MY_CODE, CODE, READONLY ; Start of CODE area
ENTRY
EXPORT START
START FUNCTION
LDR R0,=MyData1 ; Get the memory location of MyData1
LDR R1,=0x1234 ; Load the value into R1 register
STR R1,[R0] ; Read 0x00001234 into R1 ;(MyData1 =0 x00001234)
LDR R0,=MyData2 ; Get the memory location of MyData2
LDR R1,=0x55CC ; Load the value into R1 register
STRH R1,[R0] ; Read the value 0x55CC into R1 ;(MyData2 =
0x55CC)
LDR R0,=MyData3 ; Get the memory location of MyData3
LDR R1,=0xAA ; Load the value into R1 register
STRB R1,[R0] ; Read the value 0xAA into R1 (MyData3 =
0xAA)
STOP B STOP ; wait forever
END

Department of Electronics and Communication Engineering, BIT Page 35


Embedded Systems - 18ECL66

RESULTS:
REG Before execution and after execution

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 36


Embedded Systems - 18ECL66

STEPS TO EXECUTE in KEIL µVISION 4


1 DOUBLE CLICK ON ICON µVISION 4 (on Desktop)
2 GO TO PROJECT AND CLOSE PROJECT
3 GO TO PROJECT, NEW µVISION PROJECT
4 TYPE NAME OF PROJECT AND SAVE
SELECT DEVICE FOR TARGET √ NXP(FOUNDED BY PHILIPS) DOUBLE
5
CLICK√√ SELECT LPC1768 √ OK √
Dialog Box appears like COPY NXP LPC17xx Startup code to project folder and
6
Add file to project ?
If it is an ALP Program click NO and if it is C Program click YES
7
(STARTUP_LPC17XX.s IS ADDED TO SOURCE GROUP)
To create Target
a. RIGHT CLICK TARGET √ OPTIONS FOR TARGET √
8 b. TARGET √ Select CLK = 12MHZ
c. OUTPUT √ SELECT CREATE HEX FILE
d. LINKER √ SELECT USE MEMORY LAYOUT FROM TARGET DIALOG
e. DEBUG √ SIMULATOR √ OK
GO TO FILE √ NEW FILE √ SAVE AS √ PROJECT NAME .s (ex: prog1.s)
9
FOR ALP / PROJECT NAME .c (ex: prog1.c) FOR C PROGRAM
10 TYPE THE PROGRAM IN NEW FILE WINDOW,SAVE THE PROGRAM
RIGHT CLICK ON SOURCE GROUP ADD SYSTEM_LPC17XX.c ( Local
11 Disk C: Keil ARM Startup NXP LPC17XX) & ABOVE SAVED PROGRAM TO
SOURCE GROUP
12 TO ASSEMBLE / COMPILE √ PROJECT √ BUILD TARGET (F7)
13 DEBUG CLICK START / STOP DEBUG SESSION EVALUATION MODEOK
14 RUN THE PROGRAM OR USE F1 KEY
15 FOR SINGLE STEP USE F11 KEY
CHECK THE RESULTS
PERIPHERALS √ GPIO FAST INTERFACE (SELECT REQUIRED
a. PORT) / GPIO FAST INTERRUPTS / CORE PERIPHERALSFOR
EXTERNAL INTERRUPT etc
b. VIEW LOGIC ANALYZER WINDOW FOR WAVEFORMS
16
c, VIEW SERIAL WINDOW √ UART #1 FOR MESSAGE DISPLAY.
VIEW DISASSEMBLY WINDOW FOR THE EQUIVALENT
d.
INSTRUCTION FOR C SYNTAX
VIEW PROJECT WINDOW FOR GENERAL PURPOSE REGISTER &
e.
STATUS REGISTER CONTENTS

Department of Electronics and Communication Engineering, BIT Page 37


Embedded Systems - 18ECL66

Experiment -6
Interface a Stepper motor and rotate it in clockwise and anti-clock wise
direction.

// PORT 0 PINS(0-3) FOR STEPPER MOTOR


//PORT 1 PINS (16 & 17) FOR CONTROLING
//MOT(J10)->P0_0-7(J17)
//KEYS(J15)->P1_16-23(J21)

/* STEPPER MOTOR CONFIGURATION*/


#include <LPC17xx.H> /* NXP LPC17xx definitions */
#define MOTOR_CTRL_DIR LPC_GPIO0->FIODIR
#define MOTOR_CTRL_SET LPC_GPIO0->FIOSET
#define MOTOR_CTRL_CLR LPC_GPIO0->FIOCLR
#define MOTOR_MASK 0x0000000F // P0.0-P0.30
#define KEY_DIR LPC_GPIO1->FIODIR
#define KEY_SET LPC_GPIO1->FIOSET
#define KEY_CLR LPC_GPIO1->FIOCLR
#define KEY_PIN LPC_GPIO1->FIOPIN
/* STEPPER MOTOR CONTROL KEYS*/
#define KEY_CW (1 << 16) //KEY5 P1.16
#define KEY_CCW (1 << 17) //KEY6 P1.17

void delay(unsigned int count)

{
unsigned int j=0,i=0;

Department of Electronics and Communication Engineering, BIT Page 38


Embedded Systems - 18ECL66

for(j=0;j<count;j++)
{
for(i=0;i<12000;i++);
}}
void motor_write( uint32_t data )

{
uint32_t temp;
temp = data & MOTOR_MASK;
MOTOR_CTRL_CLR = MOTOR_MASK;

MOTOR_CTRL_SET = temp;
}
int main (void)
{
unsigned int del=10;
uint32_t stpval=0x01;
unsigned char dir=0;
MOTOR_CTRL_DIR |= MOTOR_MASK;
KEY_DIR &= ~( KEY_CW | KEY_CCW); // Set these lines as Inputs
KEY_SET |= ( KEY_CW | KEY_CCW); // Pull-up
motor_write(stpval);
while(1)
{
if (!(KEY_PIN & KEY_CCW)) //CCW key pressed
dir = 0;

if (!(KEY_PIN & KEY_CW)) //CW key pressed


dir = 1;
if (dir == 0)
{
if (stpval == 8) //rotate step value bitwise left(Anticlockwise)
stpval = 1;
else
stpval <<= 1;
}
else
{
if (stpval == 1) //rotate step value bitwise right
stpval = 8;
else
stpval >>= 1;
}
motor_write(stpval);
delay(del);
}
}

Department of Electronics and Communication Engineering, BIT Page 39


Embedded Systems - 18ECL66

RESULT
1. Observe the ports on logic analyzer (Simulator)
2. Observe the waveforms of Full step/ Half step/Wave sequence (Simulator)
3. Observe the clock and anti clock wise rotation of the digital stepper motor

Clockwise /Anticlockwise wave forms

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 40


Embedded Systems - 18ECL66

Experiment -7
Interface and Control the speed of a DC Motor.

// PORT 4 PINS (28-29) FOR DC MOTOR

// PORT 3 PIN (25) FOR ENABLING


// PORT 1 PINS (16,17) FOR CONTROLING
// MOT(J10) ->P0_27-P4_29(J24)
// KEYS(J15)->P1_16-23(J21)

/* DC MOTOR CONFIGURATION*/

#include <LPC17xx.H> /* NXP LPC17xx definitions */


#define MOTOR_CTRL_DIR LPC_GPIO4->FIODIR
#define MOTOR_CTRL_SET LPC_GPIO4->FIOSET
#define MOTOR_CTRL_CLR LPC_GPIO4->FIOCLR
#define MOTOR_EN_DIR LPC_GPIO3->FIODIR
#define MOTOR_EN_SET LPC_GPIO3->FIOSET
#define MOTOR_EN_CLR LPC_GPIO3->FIOCLR
#define MOTOR_MASK 0x30000000 // P4.28-P4.29

#define MTE (1 << 25) //DCM_EN P3.25

#define KEY_DIR LPC_GPIO1->FIODIR


#define KEY_SET LPC_GPIO1->FIOSET
#define KEY_CLR LPC_GPIO1->FIOCLR
#define KEY_PIN LPC_GPIO1->FIOPIN
#define KEY_CW (1 << 16) //KEY4 P1.16
#define KEY_CCW (1 << 17) //KEY5 P1.17
/////////////// MOTOR WRITE /////////////////////
void motor_write( uint32_t data )

Department of Electronics and Communication Engineering, BIT Page 41


Embedded Systems - 18ECL66

{
uint32_t temp;
temp=(data << 28) & MOTOR_MASK;
MOTOR_CTRL_CLR |= MOTOR_MASK;
MOTOR_CTRL_SET |= temp;
}

////////////////////// MAIN /////////////////////////////////////


int main (void)
{
uint8_t count=0, match=5;
uint32_t dir=0x01;

MOTOR_CTRL_DIR |= MOTOR_MASK;
MOTOR_EN_DIR |= MTE;
MOTOR_EN_CLR = MTE; // switch OFF both Motors
KEY_DIR &= ~( KEY_CW | KEY_CCW); // Set these lines as Inputs
KEY_SET |= (KEY_CW | KEY_CCW); // Pull-up

motor_write(dir);
while(1)
{
if (!(KEY_PIN & KEY_CCW)) //CCW key pressed
{
dir = 0x01;
motor_write(dir);
}
if (!(KEY_PIN & KEY_CW)) //CW key pressed
{
dir = 0x02;
motor_write(dir);
}
count++;
if (count >= match)
MOTOR_EN_CLR = MTE; // switch OFF Motor
else
MOTOR_EN_SET = MTE; // switch ON Motor
if (count > 10) count=0;
}
}

Department of Electronics and Communication Engineering, BIT Page 42


Embedded Systems - 18ECL66

RESULT
1. Observe the ports on logic analyzer (Simulator)
2. Observe the clock and anti clock wise rotation of Dc motor

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 43


Embedded Systems - 18ECL66

Experiment -8
Demonstrate the use of External Interrupt to Toggle an LED ON/OFF.

// INT (J13)-'PORT2 PIN(8-13) (J26) (P2.10-EINT0,P2.11---EINT1)


//LED (J17)->P0.0-P0.7

/* EXTERNAL INTERRUPTCONFIGURATION*/

#include<LPC17xx.h>
#define PINSEL_EINT0 20
#define PINSEL_EINT1 22
#define LED1 (1<<4)
#define LED2 (1<<5)
#define SBIT_EINT0 0
#define SBIT_EINT1 1
#define SBIT_EXTMODE0 0
#define SBIT_EXTMODE1 1
#define SBIT_EXTPOLAR0 0
#define SBIT_EXTPOLAR1 1
void EINT0_IRQHandler(void)
{
LPC_SC->EXTINT=(1<<SBIT_EINT0);
LPC_GPIO0->FIOPIN^=LED1;
}
void EINT1_IRQHandler(void)
{
LPC_SC->EXTINT=(1<<SBIT_EINT1);
LPC_GPIO0->FIOPIN^=LED2;
}
int main()
{
LPC_SC->EXTINT=(1<<SBIT_EINT0)| (1<<SBIT_EINT1);
LPC_SC->EXTINT=(1<<SBIT_EXTMODE0)| (1<<SBIT_EXTMODE1);
LPC_PINCON->PINSEL4=(1<<PINSEL_EINT0)|(1<<PINSEL_EINT1);

Department of Electronics and Communication Engineering, BIT Page 44


Embedded Systems - 18ECL66

LPC_GPIO0->FIODIR=(LED1|LED2);
LPC_GPIO0->FIOPIN=0x00;
NVIC_EnableIRQ(EINT0_IRQn);
NVIC_EnableIRQ(EINT1_IRQn);
while(1)
{
}
}

RESULT
1. Observe the ports on logic analyzer (Simulator)
2. Observe the waveforms (Simulator) Record (PULSE)
3. Observe the LEDS on the Kit (Toggling)
4. Record the wave forms and observe the amplitude for the different interrupts

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 45


Embedded Systems - 18ECL66

Experiment -9
Display “HELLO WORLD” message using INTERNAL UART.

/* Defining UART Parameters*

#include "LPC17xx.h"
#define OSC 12000000 /* oscillator frequency */
#define MASTER (OSC * 8) /* master clock frequency <= 100Mhz */
/* FOSC an integer multiple of */
#define PLL (MASTER * 3) /* PLL frequency (275Mhz to 550Mhz) */
/* Same as FCCLK, or which even multiples */
#define PCLK (MASTER / 4) /* peripheral clock frequency, FCCLK 1/2, 1/4*/
/* Or FCCLK, the same */
#define UART0_BAUDRATE 115200 /* Serial communication baud rate 9600 */
void UART0_Init (void)
/* UART0 configuration*/
{
unsigned int BAUDRATE;
LPC_PINCON->PINSEL0 |= (1 << 4); /* Pin P0.2 used as TXD0 (Com0) */
LPC_PINCON->PINSEL0 |= (1 << 6); /* Pin P0.3 used as RXD0 (Com0)*/
LPC_UART0->LCR = 0x83; /* Allows you to latch with settings */
BAUDRATE = (PCLK / 16) / UART0_BAUDRATE; /* set the baud rate */
LPC_UART0->DLM = BAUDRATE / 256;
LPC_UART0->DLL = BAUDRATE % 256;
LPC_UART0->LCR = 0x03; /* Allows you to delatch with settings */
LPC_UART0->FCR = 0x06;
}
/* check Line Control Register and Transmit Hold Register */

int UART0_SendByte (int ucData)


{
while (!(LPC_UART0->LSR & 0x20));
return (LPC_UART0->THR = ucData);
}

Department of Electronics and Communication Engineering, BIT Page 46


Embedded Systems - 18ECL66

void UART0_SendString (unsigned char *s)

{
while (*s != 0)
UART0_SendByte(*s++);
}
/* UART Main program to display Message*/
int main(void)
{
SystemInit();
UART0_Init();
UART0_SendString("HELLO WORLD !!!");
}

Department of Electronics and Communication Engineering, BIT Page 47


Embedded Systems - 18ECL66

RESULT
1. Check the Terminal Window
2. Check the UART 1 Serial Window
3. Check the THR and LCR registers contents(Simulation)

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 48


Embedded Systems - 18ECL66

Experiment -10
A) Interface A DAC and Generate Triangular Waveform.

// PORT 0 PIN(26) FOR DAC OUTPUT (AOUT)


//ADC-DAC (J27)->P0_19-26(J22)

/* DAC CONFIGURATION*/
#include<lpc17xx.h>
#define voltage 1023 //(10bit = 1024 max = 3.3v)
#define TIME 10
int main (void)

{
uint32_t i = 0;
uint32_t m;
LPC_PINCON->PINSEL1 |= (1<<21); //Select AOUT function for P0.26
while (1)
{
for (i = 0; i < voltage; i++)
{
LPC_DAC->DACR = (i << 6);
for (m = TIME; m > 1; m--);
}

for (i = voltage; i > 0; i--)

{
LPC_DAC->DACR = (i << 6);
for (m = TIME; m > 1; m--);
}
}
}

Department of Electronics and Communication Engineering, BIT Page 49


Embedded Systems - 18ECL66

RESULT
1. Observe the ports on logic analyzer (Simulator)
2. Observe the waveforms (Simulator) Record (Amplitude, Delay)
3. Observe the waveform on Digital oscilloscope

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 50


Embedded Systems - 18ECL66

B. Interface A DAC and Generate SQUARE Waveform.

// PORT 0 PIN(26) FOR DAC OUTPUT (AOUT—A0.26)


//ADC-DAC (J27)->P0_19-26(J22)

/* DAC CONFIGURATION*/
#include<lpc17xx.h>
#define voltage 1024 //(10bit = 1024 max =
3.3v)
#define TIME 120
int main(void)
{ uint32_t i, m;
LPC_PINCON->PINSEL1|=(1<<21);
while(1)
{
for(i = 0; i < voltage; i++)
{
LPC_DAC->DACR = (voltage/2 << 6);// load the data of 10 bit starting
for(m = TIME; m > 1; m--); // from 6th bit of DACR Register
}

for(i = voltage; i > 0; i--)

{
LPC_DAC->DACR = (voltage<< 6);
for(m = TIME; m > 1; m--);
}
}
}

Department of Electronics and Communication Engineering, BIT Page 51


Embedded Systems - 18ECL66

RESULT
1. Observe the ports on logic analyzer (Simulator)
2. Observe the waveforms (Simulator) Record (Amplitude, Delay)
3. Observe the waveform on Digital oscilloscope

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 52


Embedded Systems - 18ECL66

Experiment -11
Interface a 4X4 Keyboard and display the key code on an LCD.

//GLCD-DATA(J5)->P2_0-7(J25)
//HEX KEYS(J14)->P1_16-23(J21)

#include<LPC17xx.h>
#include "lcdint.h"
#define COL1 (1<<16)
#define COL2 (1<<17)
#define COL3 (1<<18)
#define COL4 (1<<19)
#define ROW1 (1<<20)
#define ROW2 (1<<21)
#define ROW3 (1<<22)
#define ROW4 (1<<23)
#define COLMASK (COL1|COL2|COL3|COL4)
#define ROWMASK (ROW1|ROW2|ROW3|ROW4)
#define KEY_DIR LPC_GPIO1->FIODIR
#define KEY_SET LPC_GPIO1->FIOSET
#define KEY_CLR LPC_GPIO1->FIOCLR
#define KEY_PIN LPC_GPIO1->FIOPIN
void col_write(unsigned char data)
{
unsigned int temp=0;
temp=(data<<16)& COLMASK;

Department of Electronics and Communication Engineering, BIT Page 53


Embedded Systems - 18ECL66

KEY_CLR|=COLMASK;
KEY_SET|=temp;
}
int main(void)
{
unsigned char key,i;
unsigned char rval[ ]={0x7,0xB,0xD,0XE,0X0};
unsigned char KeyPadMatrix[ ]=
{
'C','8','4','0',
'D','9','5','1',
'E','A','6','2',
'F','B','7','3'
};
init_lcd();
KEY_DIR |=COLMASK;
KEY_DIR &=~(ROWMASK);
lcd_putstring16(0,"press hex keys");
lcd_putstring16(1,"key pressed=");
while(1)
{
key=0;
for(i=0;i<4;i++)
{
col_write(rval[i]);
if(!(KEY_PIN & ROW1))
break;
key++;
if(!(KEY_PIN & ROW2))
break;
key++;
if(!(KEY_PIN & ROW3))
break;
key++;
if(!(KEY_PIN & ROW4))
break;
key++;
}
if(key==0x10)
lcd_putstring16(1,"key pressed=");
else
{
lcd_gotoxy(1,14);
lcd_putchar(KeyPadMatrix[key]);
}
}
}

Department of Electronics and Communication Engineering, BIT Page 54


Embedded Systems - 18ECL66

RESULT
1. Observe the Keycode ON LCD SCREEN for the KEY pressed

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 55


Embedded Systems - 18ECL66

Experiment -12
Display the HEX Digits 0 to F on a 7-segment LED interface, with an
appropriate delay in between.

// 7 SEG (J6)- PORT2 PIN(0-7) (J25)

#include<LPC17xx.H>
// DATA CODED IN THE FORMAT [DP,F,A,B,G,C,D,E]
//* LOOK UP TABLE FOR THE DIGITS FROM 0 TO F*//
unsigned char data7[] =
{0x88,0xEB,0xC4,0xC1,0xA3,0x91,0x90,0xCB,0x80,0x81,0x82,0xB0,0x9C,0xE0,0x94,0x96
};
//* MAIN PROGRAM*/
int main(void)
{
unsigned int i,j;
unsigned char count=0;
LPC_GPIO2->FIODIR=0x000000FF;
while(1)
{
for (i=0; i<5000;i++)
{

LPC_GPIO2->FIOPIN=data7[count & 0x0f]; // ONLY 1 DIGIT DISPLAY


for (j=0;j<500;j++);
//LPC_GPIO2->FIOPIN=data7[(count & 0xf0)>>4]& 0x7F;
//for (j=0;j<500;j++); // 2 DIGIT DISPLAY
Department of Electronics and Communication Engineering, BIT Page 56
Embedded Systems - 18ECL66

}
++count;
}
}

RESULT
1. Observe the LED ON 7 SEGMENT DISPLAY

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 57


Embedded Systems - 18ECL66

Experiment -13
Measure ambient Temperature using a sensor and SPI ADC IC.

Department of Electronics and Communication Engineering, BIT Page 58


Embedded Systems - 18ECL66

//GLCD-DATA(J5)->P2_0-7(J25)
//ADC_TEMP(J29)->P0_8-18(J20)

#include <LPC17xx.H> // NXP LPC17xx definitions


#include <stdio.h>
#include "lcdint.h"
#include "spi.h"

int main (void)


{
uint8_t msb, lsb;
uint16_t ADCValue;
float temp;
char lstr[10];

SPI_Init();
init_lcd();

lcd_putstring16(0,"RAW ADC = 0000 ");


lcd_putstring16(1,"TEMP = 000 degC");

while(1)
{
SPI_EnableChipSelect();
delay(1);
SPI_Write(0x01);
msb = SPI_Write(0xA0); // SGL=1, ODD=0, MSBF=1
lsb = SPI_Write(0x00);

SPI_DisableChipSelect();
msb &= 0x0F;
ADCValue = (msb << 8) | lsb;

sprintf (lstr, "%4u", ADCValue);


lcd_gotoxy(0,10);
lcd_putstring(lstr);

temp = ((ADCValue * 3.3) / 4096) * 100;


sprintf (lstr, "%0.1f", temp);
lcd_gotoxy(1,7);
lcd_putstring(lstr);

delay(500);
}
}

Department of Electronics and Communication Engineering, BIT Page 59


Embedded Systems - 18ECL66

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 60


Embedded Systems - 18ECL66

ADDITIONAL EXPERIMENTS
1. Blinking the LED connected to PORT PIN P0.4.

AIM: Blinking the LED connected to PORT PIN P0.4

PORTS I/P & Associated PINSEL Bits ALT


GPIO Variables
PIN O/P PINSEL Register Function
P0.4 OUT PINSEL0 GPIO0 00 (GPIO) LED

#include<LPC17xx.H>
void delay (unsigned long int x);
int main()
{
SystemInit();
LPC_PINCON->PINSEL0=0X00000000;
LPC_GPIO0->FIODIR=0XFFFFFFFF;
while(1)
{
LPC_GPIO0->FIOSET=0X00000010;
delay(0X500000);
LPC_GPIO0->FIOCLR=0X00000010;
delay(0X500000);
}
}
void delay(unsigned long int x)
{
unsigned long int i=0;
for(i=0;i<x;i++);
}

Department of Electronics and Communication Engineering, BIT Page 61


Embedded Systems - 18ECL66

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 62


Embedded Systems - 18ECL66

ADDITIONAL EXPERIMENTS
2. Interface a simple Switch and display its status through Relay, Buzzer
and LED

// ADC-DAC(J27)->P0_19-26(J22)
// KEYS(J15)->P1_16-23(J21)
// LED(J1->J17)

#include<LPC17xx.h>
#define key1 (1<<16) //p1.16
#define key2 (1<<17) //p1.17
#define key3 (1<<18) //p1.18
#define LED (1<<4) //p0.4
#define RELAY (1<<19) //p0.19
#define BUZZ (1<<20) //p0.20

#define KEY_PIN LPC_GPIO1->FIOPIN

int main(void)
{
LPC_GPIO0 -> FIODIR |= LED; //LED ON PORT0 O/P
LPC_GPIO0 -> FIOCLR = LED; //LED OFF

LPC_GPIO0 -> FIODIR |= RELAY; //RELAY ON PORT0 O/P


LPC_GPIO0 ->FIOCLR = RELAY; //RELAY OFF

LPC_GPIO0 -> FIODIR |= BUZZ; //BUZZER ON PORT3 O/P


LPC_GPIO0 ->FIOCLR = BUZZ; //BUZZER OFF

Department of Electronics and Communication Engineering, BIT Page 63


Embedded Systems - 18ECL66

LPC_GPIO1 -> FIODIR &= ~(key1|key2|key3); //KEYS I/P


LPC_GPIO1 ->FIOSET = (key1|key2|key3);

while(1)
{
if(!(KEY_PIN & key1))
LPC_GPIO0 -> FIOSET = LED;
else
LPC_GPIO0 -> FIOCLR = LED;
if(!(KEY_PIN & key2))
LPC_GPIO0 -> FIOSET = RELAY;
else
LPC_GPIO0 -> FIOCLR = RELAY;
if(!(KEY_PIN & key3))
LPC_GPIO0 -> FIOSET = BUZZ;
else
LPC_GPIO0 -> FIOCLR = BUZZ;
}

Department of Electronics and Communication Engineering, BIT Page 64


Embedded Systems - 18ECL66

RESULT
1. Observe the ports on logic analyzer (Simulator)
2. Observe the GPIO output window

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 65


Embedded Systems - 18ECL66

ADDITIONAL EXPERIMENTS
2. Using the Internal PWM module of ARM controller generate PWM and
vary its duty Cycle

// PORT 3PIN(26) PWM_3 OUTPUT OF PWM


//PWM (J10)->P0.27-P4.29(J24) /* PWM CONFIGURATION*/

#include <lpc17xx.h>
#define SBIT_CNTEN 0
#define SBIT_PWMEN 2
#define SBIT_PWMMR0R 1
#define SBIT_LEN3 3
#define SBIT_PWMENA3 11
#define PWM_3 20
void delay_ms(unsigned int ms)
{
unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<50000;j++);
}
int main(void)
{
int dutyCycle;
LPC_PINCON->PINSEL7 = (3<<PWM_3);
LPC_PWM1->TCR = (1<<SBIT_CNTEN) | (1<<SBIT_PWMEN);
LPC_PWM1->PR = 0x0;
LPC_PWM1->MCR = (1<<SBIT_PWMMR0R);
LPC_PWM1->MR0 = 100;

Department of Electronics and Communication Engineering, BIT Page 66


Embedded Systems - 18ECL66

LPC_PWM1->MR3 = 50;
LPC_PWM1->PCR = 1<<SBIT_PWMENA3;
while(1)
{
for(dutyCycle=0; dutyCycle<100; dutyCycle+=1)

{
LPC_PWM1->MR3 = dutyCycle;
LPC_PWM1->LER = 1<<SBIT_LEN3;
delay_ms(5);
}

for(dutyCycle=100; dutyCycle>0; dutyCycle-=1)


{
LPC_PWM1->MR3 = dutyCycle;
LPC_PWM1->LER = 1<<SBIT_LEN3;
delay_ms(5);
}
}
}

Department of Electronics and Communication Engineering, BIT Page 67


Embedded Systems - 18ECL66

RESULT
1. Observe the ports on logic analyzer (Simulator)
2. Observe the waveforms (Simulator) Record (PULSE WIDTH)
3. Observe the waveform on Digital oscilloscope

Conclusion/Inference: (To be written by students)

Evaluation of Experiment:
Design
Viva Voce – 05M Conduction – 10M Record – 10M
(Observation Book) – 05M

Faculty Signature:

Department of Electronics and Communication Engineering, BIT Page 68


Embedded Systems - 18ECL66

APPENDIX A

Pin Function Select register 0

Pin Function Select Register 1

Department of Electronics and Communication Engineering, BIT Page 69


Embedded Systems - 18ECL66

.Pin Function Select Register 2

Pin Function Select Register 3

Department of Electronics and Communication Engineering, BIT Page 70


Embedded Systems - 18ECL66

Pin Function Select Register 4

Pin Function Select Register 7

Pin Function Select Register 9

Pin Function Select Register 10

Department of Electronics and Communication Engineering, BIT Page 71


Embedded Systems - 18ECL66

APPENDIX B
LAYOUT OF ARM CORTEX M3 LPC 1768

Department of Electronics and Communication Engineering, BIT Page 72


Embedded Systems - 18ECL66

APPENDIX C

Department of Electronics and Communication Engineering, BIT Page 73


Embedded Systems - 18ECL66

Department of Electronics and Communication Engineering, BIT Page 74


Embedded Systems - 18ECL66

Department of Electronics and Communication Engineering, BIT Page 75


Embedded Systems - 18ECL66

Department of Electronics and Communication Engineering, BIT Page 76


Embedded Systems - 18ECL66

Department of Electronics and Communication Engineering, BIT Page 77


Embedded Systems - 18ECL66

Department of Electronics and Communication Engineering, BIT Page 78


Embedded Systems - 18ECL66

Department of Electronics and Communication Engineering, BIT Page 79


Embedded Systems - 18ECL66

Department of Electronics and Communication Engineering, BIT Page 80


Embedded Systems - 18ECL66

Department of Electronics and Communication Engineering, BIT Page 81


Embedded Systems - 18ECL66

APPENDIX D
JUMPER DETAILS

Department of Electronics and Communication Engineering, BIT Page 82


Embedded Systems - 18ECL66

References:
[1]. UM10360 LPC17XX USER MANUAL REV 4-23 APRIL 2012
[2]. [Link]
[3]. [Link]
[4]. [Link]
[5]. Assembly language Programming ARM Cortex-M3 – Vincent Mahout

Department of Electronics and Communication Engineering, BIT Page 83


Embedded Systems - 18ECL66

ARM Cortex-M3 KIT

Department of Electronics and Communication Engineering, BIT Page 84

You might also like