Tunisia Polytechnic School Engineering internship report Design and Implementation of Permanent Magnet DC Motors Control For Electric Wheel-Chair Application Internship carried out from the 17 th of July to 28 th of August 2011 at: Supervised by: M. Khaled OUALI (head of R&D) Elaborated by: Haythem SAKKA (3rd year Engineering Student) Academic year 2011-2012
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Tunisia Polytechnic School
Engineering internship report
Design and Implementation of Permanent Magnet DC Motors
Control For Electric Wheel-Chair Application
Internship carried out from the 17th of July to 28th of August 2011 at:
Supervised by: M. Khaled OUALI (head of R&D)
Elaborated by: Haythem SAKKA (3rd year Engineering Student)
Academic year 2011-2012
Acknowledgments
I would like first to express my Sincere thanks to M. Kaled OUALI who gave me
the opportunity to fulfill this successful training in AlphaTec
My deepest gratitude is addressed to all those involved in providing me with the
tremendous opportunity of participating in this internship; my appreciation to all
those who made my training period in AlphaTec an experience that far surpassed
my every expectation.
I would like also to thank most warmly my supervisor M. Sabeur FERGENI
and M. Mohamed MASMOUDI for their welcome and support to accomplish my
work successfully.
My welcome to AlphaTec was so warm and it was my greatest privilege to be
able to work alongside such skilled and dedicated member staff that had shown
me kindness, friendship and hospitality throughout my training period.
Tunisia Polytechnic School Engineering internship report
I. BRUSHED DC MOTOR FUNDAMENTAL .................................................................................................. 5
A. OVERVIEW.......................................................................................................................................................................................................................... 5 B. MAGNETIC PRINCIPLES AND MOTOR THEORY ......................................................................................................................................................................... 5 C. DYNAMIC MODEL OF PERMANENT MAGNET DC MOTOR ........................................................................................................................................................... 8
1. Electrical characteristics ........................................................................................................................................................................................... 8 2. Mechanical characteristics ....................................................................................................................................................................................... 9 3. State Space Representation ..................................................................................................................................................................................... 9 4. Transfer Function Block Diagram .......................................................................................................................................................................... 10 5. Speed control model (1
st order model approximation) ........................................................................................................................................ 11
II. HOW TO CONTROL A BRUSHED DC MOTOR .........................................................................................12
A. BIDIRECTIONAL ROTATION .................................................................................................................................................................................................. 12 B. SPEED CONTROL ................................................................................................................................................................................................................ 12
III. APPLICATION SETUP .............................................................................................................................13
A. DESCRIPTION OF THE APPLICATION ...................................................................................................................................................................................... 13 B. SCOPE STATEMENT ............................................................................................................................................................................................................ 13 C. SYSTEM CONFIGURATION ................................................................................................................................................................................................... 13 D. USING THE LPC1343 ........................................................................................................................................................................................................ 14 E. MOTOR SELECTION ............................................................................................................................................................................................................ 15 F. MOSFET SELECTION ......................................................................................................................................................................................................... 16 G. CONTROLLING SPEED AND DIRECTION .................................................................................................................................................................................. 16
1. Joystick selection ..................................................................................................................................................................................................... 16 2. Controlling speed and direction ............................................................................................................................................................................. 17 3. Driving model .......................................................................................................................................................................................................... 17
IV. PCB DESIGN ..........................................................................................................................................18
A. THE ALTIUM DESIGNER ENVIRONMENT ................................................................................................................................................................................ 18 B. GETTING STARTED WITH PCB DESIGN .................................................................................................................................................................................. 19 C. THE REALIZED PCB ............................................................................................................................................................................................................ 20
V. SOFTWARE ...........................................................................................................................................21
A. NXP LPCXPRESSO DEVELOPMENT PLATFORM....................................................................................................................................................................... 21 1. LPCXpresso IDE ........................................................................................................................................................................................................ 22 2. LPCXpresso development board ............................................................................................................................................................................ 23
B. EVALUATE, EXPLORE AND DEVELOP ...................................................................................................................................................................................... 23 C. LPC1343 CONFIGURATION ................................................................................................................................................................................................ 24
APPENDIX: ..................................................................................................................................................... I
BIBLIOGRAPHY ............................................................................................................................................. IV
Tunisia Polytechnic School Engineering internship report
2 | P a g e
Abstract This work is part of the research conducted by APLTHATEC
company desire to create a prototype of an electric wheelchair.
Using basic electronic components and an NPX microcontroller
platform, I designed a control board with two brushed DC motors
that enables to drive the chair using a 2-axis analog joystick.
Tunisia Polytechnic School Engineering internship report
3 | P a g e
Résumé Ce travail s’inscrit dans le cadre de la recherché menée par
APLTHATEC envie de réaliser son prototype de chaise roulante
électrique. Utilisant les composants électroniques de base et une
plateforme microcontrôleur NPX, j’avais conçu une carte de
commande de deux moteurs à collecteurs à courant continu qui
permet de piloter la chaise avec un joystick analogique à 2 axes.
Tunisia Polytechnic School Engineering internship report
4 | P a g e
Introduction
The embedded electronic applications occupy a large consumption range nationally and globally. Currently,
small Tunisian businesses ensure the production of some applications based on imported technology.
Therefore, these products have the disadvantage that they bring little added value and hinder the
development of these enterprises. ALPHATECH is a medium-sized business that wants to create products
with high added value. For this ALPHATECH implemented an R & D department in order to make its own
technology developed around low cost platforms.
Currently, APLHATECH is seeking to launch a new product: electric wheelchairs, which are highly demanded
on the Tunisian market but yet they are well sold because of their high prices compared to the living
standard of Tunisia. In this vision, the R & D ALPHATECH was responsible for implementing a prototype of
electric wheelchair at low cost. This was part of my internship where I was responsible for engineering
design and implements a control board with two DC motors controlled by a two-axis analog joystick.
To make this work, I examined the functioning and control of DC motors. Then, I designed the model of my
project and finally, I implemented my model on both Altium Designer to create the pattern of PCB and on
the used microcontroller IDE to implement the control algorithm.
Tunisia Polytechnic School Engineering internship report
5 | P a g e
I. Brushed DC motor fundamental
A. Overview
A brushed PMDC motor typically consists of stationary fixed permanent magnets (the stator) a rotating electro-magnet (the rotor) and a metal body to concentrate the flux (see Fig 1). By attraction of opposite poles and repulsion of like poles, a torque acts on the rotor and makes it turn. As soon as the rotor begins to turn, fixed brushes make and break contact with the rotating segments (commutation) in turn. The rotor coils are energized and de-energized in such way that as the rotor turns, the axis of the new rotor poles are always opposed to the stator poles. Because of the way the commutation is arranged, the rotor is in constant motion. By reversing the power supply to the motor, the current in the rotor coils and therefore the north and south poles are reversed and the motor changes its direction of rotation.
The speed and torque of the motor depend on the strength of the magnetic field generated by the energized windings of the motor, which in its turn depend on the current flowing through them. Therefore adjusting the rotor voltage (and current) will change the motor speed.
Fig. 1: Brushed Permanent Magnet Direct Current Motor
B. Magnetic Principles and Motor Theory The Lorentz Law enunciates that a current-carrying wire in a magnetic field will induce an electromotive
force. When the conductor moves out of the main field, the wire stops because there is no longer any inter
action between the flux lines and therefore no force is created.
Fig. 2: Lorentz law demonstration
Since a motor produces a continuous rotation motion, the conductor that is placed inside of the main field
(between the two magnets) must be in the shape of a loop. When the loop is connected to a DC supply,
Tunisia Polytechnic School Engineering internship report
6 | P a g e
electron current flows from point A to B of the loop, and from point C to point D on the other side of the
loop.
Because current flows through the segments of the loop that are opposite each to other, the segment on
one side pushes upward while the segment on the other side pushes downward. Because the loop is
designed to pivot on its axis, the combined force creates a twisting action called torque.
Fig. 3: Torque creation
When the loop reaches a position perpendicular to the main field, there is no interaction between the flux
lines to cause the loop to rotate. This position is called the neutral plane. Due to inertia, the loop continues
to rotate counterclockwise (CCW).
Fig. 4: Magnet neutral plane position
However, since the direction of the current flow through the loop does not change, the interaction between
the conductor segments and the main field develops a torque in the opposite wise. Instead of continuing in
the CCW direction, the loop stops and changes direction. An oscillating motion is produced until the
armatures settle in the neutral plane.
The continuous rotation of the rotor is achieved by reversing the direction of current through the loop as it
passes the neutral plane. A switching device, called a “Commutator”, achieves the current change. The
commutator is shaped like a ring that is split into the segments. Each segment is connected to an end of the
loop. The commutator and wire loop rotate together, and they are referred to as the armature.
Fig. 5: Commutator function
As the armature turns, the commutator makes contact with carbon brushes that supply current to the wire
loop. Each brush is connected to a DC power supply.
Tunisia Polytechnic School Engineering internship report
7 | P a g e
position1: In this position, current enters the loop through the negative brush and exits through the positive
brush.
Fig. 6: Start-up position
Position2: When the rotor aligns with the neutral plane, the brushes make contact with both commutator
segments. The rotor loop shorts out, and current flows from one brush to the other through the commutator
segments. The result is that no torque is produced, but the inertia causes the rotor to continue turning past
the neutral position.
Fig. 7: Neutral position and inertia role
Position3: As the rotor turns into the main field, the switching action of the commutator reverses the
direction of the current flow. This causes the current to flow into the rotor section closed to the south pole
of the magnet, as it did in position1. The torque that is developed causes the rotor to continue twisting in
the CCW direction.
Fig. 8: Commutation position
Position4: As the rotor turns out of the main field, it aligns with the neutral plane position. Inertia will cause
the rotor to continue turning into the main field, causing the rotation cycle to be repeated.
Tunisia Polytechnic School Engineering internship report
8 | P a g e
Fig. 9: Neutral position and second commutation
The rotation of the armature continues in one direction because the commutator keeps reversing the
direction which makes the current flows through the loop every half turn (180°). In this way the magnetic
fields of the rotor always interact the same way with the main field to maintain a continuous torque in one
direction.
C. Dynamic model of permanent magnet DC motor According to the previous section, the DC motor acts as convertor of the electric energy received in the input
to mechanic energy delivered in the output. The modeling aims to establish mathematical equations that
relate input quantities (current and voltage) with output ones (speed and torque). Two balance equations
can be developed by considering the electrical and mechanical characteristics of the system.
1. Electrical characteristics
The equivalent electrical circuit of a DC motor is illustrated in Fig10. It can be represented by a voltage
source (Va) across the coil of the armature. The electrical equivalent of the armature coil can be described by
an inductance (La) in series with a resistance (Ra) in series with an induced voltage (Vc) which opposes the
voltage source. The induced voltage is generated by the rotation of the electrical coil through the fixed flux
lines of the permanent magnets. This voltage is often referred to as the back emf (electromotive force).
Fig. 10: Electrical representation of PMDC motor
The Kirchoff’s voltage law around the electrical loop enables to set the electrical equation linking the voltage
(Va) across the armature and the current (Ia) through the armature:
(1)
The back efm Vc is proportional to the speed W of the rotor. It can be written as:
(2)
Tunisia Polytechnic School Engineering internship report
9 | P a g e
Substituting the equation (1) into the equation (2) gives the following differential equation:
(3)
2. Mechanical characteristics
The mechanical equation reflecting the couples acting on the rotor can be written as following:
(4)
Where is the electromagnetic torque, is the torque produced from the velocity of the rotor, is the
torque of the mechanical load, and is the inertia of the rotor and the equivalent mechanical load.
The electromagnetic torque is proportional to the current through the armature winding and can be written
as following:
(5)
Where is the torque constant and like the velocity constant is dependent on the flux density of the fixed
magnets, the reluctance of the iron core, and the number of turns in the armature winding.
The torque associated with the velocity is written:
(6)
where is the damping coefficient associated with the mechanical rotational system of the machine,
Substituting the equations (5) and (6) into (4) gives the following differential equation:
(7)
3. State Space Representation
The differential equations given in the equations (3) and (7) for the armature current and the angular
velocity can be written:
(8)
(9)
which describe the dc motor system. Putting the differential equations into state space form gives:
(10)
(11)
Tunisia Polytechnic School Engineering internship report
10 | P a g e
which is expressed symbolically as:
(12)
(13)
where
is the state vector,
is the input vector, and is the output vector.
4. Transfer Function Block Diagram
A block diagram for the system can be developed from the differential equations (8) and (9). Taking the
Laplace transform of each equation gives:
(14)
(15)
If perturbations around some steady state value are considered, the initial conditions go to zero and all the
variables become some change around a reference state, and the equations can be expressed as follows:
(16)
(17)
The above equations can then easily be put into block diagram form. The block diagram obtained from these
equations for a permanent magnet dc motor is shown in Fig. 11.
Fig. 11: Block diagram representation of (16) and (17)
The block diagram in (Fig. 11) can be simplified by making the assumption that the load torque is constant.
The only load torque to be concerned with is the friction in the system, which is relatively constant while the
motor is moving. Since the change in TL is zero, it does not need to appear in the block diagram. Also, if one
Tunisia Polytechnic School Engineering internship report
11 | P a g e
only focuses on the angular velocity as the response of interest, the block diagram becomes as shown in
(Fig. 12).
Fig. 12: Block diagram of the dc motor as modeled in this study
5. Speed control model (1st order model approximation)
In general the coefficients and are so close that it is reasonable to consider them equal, while
neglecting the losses in the electromechanical power conversion. We consider that:
(5)
Limiting ourselves to first-order dependencies, we obtain the following transfer function:
(17)
where defining:
The electromechanical time constant of the system:
(18)
The static gain:
(13)
We obtain that in the steady state of a DC motor the rotational speed is proportional to the input voltage:
Tunisia Polytechnic School Engineering internship report
12 | P a g e
II. How to control a brushed DC motor
A. Bidirectional rotation Driving a brushed DC motor in both directions, by reversing the current through it, can be accomplished by
using a full-bridge (see Fig. 13), which consists of four N-channel MOSFETs. For ‘Forward’ rotation Q1 and Q4
are switched on while Q2 and Q3 are off. For ‘Reverse’ rotation Q2 and Q3 are on while Q1 and Q4 are off.
If the upper two MOSFETs are turned off and the lower ones are turned on, the motor brakes. The motor will
‘Coast’ (free running) when the four switches are turned off.
Fig. 13: Bidirectional rotation using a full-bridge
B. Speed control The no-load motor speed is proportional to the voltage applied across the motor. Thus by simply varying the
voltage across the motor, one can control the speed of the motor. Pulse Width Modulation (PWM) is used to
implement this (see Fig. 14). It is based on a fixed frequency pulse waveform with a variable duty cycle. The
average voltage applied to the motor is proportional to the PWM duty cycle.
Fig. 14: PWM speed control
Tunisia Polytechnic School Engineering internship report
13 | P a g e
III. Application setup
A. Description of the application The application consists in designing a PCB (Printed Circuit Board) equipped with a microcontroller that
enables to drive a wheelchair through acting on a two axis analog Joystick. Two brushed PMDC motors drive
the traction wheels of the chair. A careful control of the speed and direction of each motor can cause the
chair to move in the direction wished by the user.
My main tasks in the company were:
- Designing the PCB including the selection of these components.
- Implementing a control algorithm on the selected microcontroller.
B. Scope statement I had the opportunity to accomplish my work with materials available in the enterprise. For some electronic
components I was allowed to choose from components available at the suppliers of alpha technology. For
some costly component, I had to ask my supervisor for alternatives.
C. System configuration The system configuration I adopted for my project is like shown is the figure below:
Fig. 15: Block-Diagram of designed system
In this application, the PWM signals (for H Bridges) are generated by one 16 bits Timer match outputs of the
LPC1343 microcontroller. The motor speed (duty cycle) and direction are adjusted by reading a
potentiometers (of the joystick) using two of the LPC1343s ADC inputs (see Fig. 15).
Tunisia Polytechnic School Engineering internship report
14 | P a g e
The user gives the instruction via the two axis analog joystick. The output signals of the joystick (voltages)
are captured by the LPC1343 and converted to digital. The new values are exploited to determine the proper
outputs. Then combinational logic treatment is used to drive the motors.
D. Using the LPC1343
For this application I used the LPC1343. Available in an LQFP48 or FVQFN33 package it is the most
performing member (for now) of the ARM7 Cortex M3 based LPC1300 family. It offers high speed (72 MHz)
32-bit CPU performance and includes 32KB of flash memory, 8KB of data memory, USB Device, one Fast-
mode plus (Fm+) I2C interface, one UART, 8 ADC channels, four general purpose timers, and 42 general
purpose I/O pins.
Fig. 16: LPC134x key features and Block Diagram
Tunisia Polytechnic School Engineering internship report
15 | P a g e
E. Motor selection
For this application the company provided me with a 250W motor that is shown shown below. When the
engine is no loaded its speed is 452 RPM at 24 V input. The maximum continuous current is 2A. With load
torque is 6.23 Nm; speed is 383 RPM and current may up to 13.3A.
Fig. 17: Motor Features
The base frequency of the PWM signal plays an important role in the sound of the motor, thus it affects the
human ear that can detect frequencies from 20 Hz to 20 kHz. It also influences the behavior of the motor.
Sometimes there is insufficient armature inductance to prevent the current from falling to zero during each
cycle parts. This is known as the ‘discontinuous’ current mode (see Fig. 18), and it is usually encountered
when the motor is lightly loaded. It is very undesirable because when the current is discontinuous, the speed
falls off rapidly when the load increases. With discontinuous current, the relevant part of the torque-speed
curve is very droop and it will cause some pulsing in the motor armature, making the motor much noisier.
For this application, using the mentioned motor, and in order to accomplish ‘continuous’ current mode a
PWM frequency of 8 KHz has been selected.
Tunisia Polytechnic School Engineering internship report
16 | P a g e
Fig. 18: Influence of PWM frequency
F. MOSFET selection
The ST IRF540 N-channel TrenchMOS logic level FET is used for this system. It is chosen in relation with the
selected motor, which is supplied with 24 V, and requires a maximum starting current of 13.3 A.
For a 24 V - supplied motor, the MOSFET VDS needs to be at least 40 V, while the drain current needs to be
high enough to deal with the motor (starting) current. The latter is already reduced thanks to a soft-
acceleration mechanism (in small steps up / down towards the required speed) implemented in software.
G. Controlling speed and direction
1. Joystick selection
For this application, the joystick is only represented by two potentiometers. But, they act like the 2-Axis
Joystick (#27800)1 of PARALLAX Inc.
Fig. 19: PARALLAX two axis joystick
1 Specifications shown in the appendix.
Tunisia Polytechnic School Engineering internship report
17 | P a g e
2. Controlling speed and direction
In order to control the direction and speed of the motors, two 10 kΩ potentiometers connected with two
ADC inputs of the LPC1343 are used (see Fig 4). The first potentiometer controls Forward and Backward
movements and the second controls turning Right or Left. The A/D converter has a 10-bit resolution. This
means there are 1024 possible potentiometer steps. The center position (+ hysteresis) is the resting point
for the motor speed (‘break’).
Fig.20: Analog Input ‘Speed’ and ‘Direction’ Scale
3. Driving model
Let’s consider an instruction defined by the position (X, Y) of a forward linear motion (Fig.20: green area),
both wheels are driven in the forward direction with the same speed. Variations on Y enable to vary the
speed of the movement, while changes on X enable to vary its radius. If such shifts are positive on X (only
shifts in the red zone), the speed of the left wheel is kept unchanged and is the speed of the right wheel
declines in proportion to the X offset until canceled.
Brake
Forw
ard
Backw
ard
Turn
right
Turn
right
Turn
left
Turn
left
10
23
52
2
50
1
0
Tunisia Polytechnic School Engineering internship report
18 | P a g e
IV. PCB design To accomplish this task, I had to learn to use the electronic development environment Altium Designer. This
is a software package which allows electronic circuit designers to design, draw and simulate electronic circuit
boards. Altium Designer provides a unified electronic product development environment, catering for all
aspects of the electronic development process, including:
- System Design and Capture
- Physical PCB Design
- FPGA Hardware Design
- Embedded Software Development
- Mixed-Signal Circuit Simulation
- Signal Integrity Analysis
- PCB Manufacturing
- FPGA system implementation and debugging (when working with a suitable FPGA development
board, such as an Altium NanoBoard).
A. The Altium Designer Environment Altium Designer offers a unique design environment, with all areas of design – from capture to generation of
PCB manufacturing output; from embedded software development to processing and download of an FPGA
design into a physical FPGA device – brought together in the one environment through the underlying
support of the DXP integration platform. The figure (Fig. 20) summarizes some of the key elements of the
Altium Designer environment.
Fig. 20: Altium Designer
Tunisia Polytechnic School Engineering internship report
19 | P a g e
B. Getting started with PCB Design
Altium is a vastly complex software design suite. To fulfill a PCB design project, you shall follow this process:
- Creating a new Schematic Sheet.
- Drawing the Schematic:
• Locating the Component and Loading the Libraries
• Create unfound Components
• Place the Components on the Schematic
• Wiring up the Circuit
- Creating a New PCB Document: Adding a new PCB to the Project
- Transferring the Design: Updating the PCB
- Designing the PCB:
• Setting up the PCB Workspace
• Defining the Layer Stack and Other Non-electrical Layers in a View Configuration
• Setting Up New Design Rules
Fig. 21: PCB rules and Constraints editor
• Positioning the Components on the PCB
• Manually Routing the Board
• Viewing Your Board Design in 3D Mode
Fig. 22: The 3D view rotation sphere
Tunisia Polytechnic School Engineering internship report
20 | P a g e
• Creating and Importing 3D Bodies for Component Footprints
• Verifying Your Board Design
Fig. 23: Completed board in 3D
C. The realized PCB I designed the PCB of the circuit represented in the previous section by the block diagram (Fig. 15). The
difficulties I encountered during this work were technical rather than theoretical. I learned many technical
tips concerning optimizing the use of components, characteristics of wires in both control and power circuit.
Also, I faced many optimization constraints concerning the use of the microcontroller’s resources and
adapting alimentation to the components characteristics.
The main measures I took were:
- Putting flyback diodes to protect transistors of the control bridge from inductive reverse load.
- Putting protective capacities to prevent over loading the transistors.
- Avoiding the use of some annoying forms of tracks.
- Using wide tracks for the power circuit.
- Applying to a minimum the transistors.
- Minimizing the power consumption of the LPC1343 by choosing pins so as it uses only one Timer to
generate all PWM signals needed to drive both motors.
The schematic is represented in the appendix.
Tunisia Polytechnic School Engineering internship report
21 | P a g e
V. Software
The software of my application is written in C language under LPCXpresso NXP environment. It performs the following main tasks:
Read potentiometers for desired speed and orientation
Set PWM duty cycles and GPIO outputs.
Fig. 24 shows a flow chart of the main loop.
Fig. 24: Main routine
A. NXP LPCXpresso development platform
LPCXpresso is a new, low-cost development platform available from NXP. The software consists of an
enhanced, Eclipse-based IDE, a GNU C compiler, linker, libraries, and an enhanced GDB debugger. The
hardware consists of the LPCXpresso development board which has an LPC-Link debug interface and an NXP
LPC ARM-based microcontroller target. LPCXpresso is an end-to-end solution enabling embedded engineers
to develop their applications from initial evaluation to final production.
The LPCXpresso IDE, powered by Code Red Technologies, is based on the popular Eclipse development
platform and includes several LPC-specific enhancements. It is an industry-standard GNU toolchain with an
optimized C library that gives engineers all the tools necessary to develop high-quality software solutions
quickly and cost-effectively.
Tunisia Polytechnic School Engineering internship report
22 | P a g e
The LPCXpresso target board, jointly developed by NXP, Code Red Technologies, and Embedded Artists,
includes an integrated JTAG debugger (LPC-Link), so there is no need for a separate JTAG debug probe. The
target portion of the board can be connected to expansion boards to provide a greater variety of interfaces,
and I/O devices. The on-board LPC-Link debugger provides a high-speed USB to JTAG/SWD interface to the
IDE and it can be connected to other debug targets such as a customer prototype. Users can also use the
LPCXpresso IDE with the Red Probe JTAG adapter from Code Red Technologies.
Fig. 25: LPCXpresso development platform
1. LPCXpresso IDE
LPCXpresso’s IDE is a highly integrated software development environment for NXP’s LPC Microcontrollers,
which includes all the tools necessary to develop high quality software solutions in a timely and cost
effective fashion. LPCXpresso is based on Eclipse with many LPC specific enhancements. It also features the
latest version of the industry standard GNU tool chain with a proprietary optimized C library providing
professional quality tools at low cost. The LPCXpresso IDE can build an executable file of any size with full
code optimization and it supports a download limit of 128 kB after registration. LPCXpresso supports the full
embedded product design cycle by moving beyond chip evaluation boards and supporting development on
external target boards.
Fig. 26: LPCXpresso IDE
Tunisia Polytechnic School Engineering internship report
23 | P a g e
2. LPCXpresso development board
Fig. 27: LPCXpresso development board
The LPCXpresso board contains a JTAG/SWD debugger called the “LPC-Link” and a target MCU. LPC-Link is
equipped with a 10-pin JTAG header (highlighted on the above image) and it is seamlessly connected to the
target via USB (the USB interface and other debug features are provided by NXP’s ARM9 based LPC3154
MCU). Cutting the tracks between the LPC-link and the target will make the LPC-Link a stand-alone JTAG
debugger. This enables the LPCXpresso platform to be connected to an external target and used to develop a
wide variety of NXP’s Cortex-M0, Cortex-M3, and ARM7/9 based applications.
The target includes a small prototyping area and easily accessible connections for expansion. The LPCXpresso
board with target can be used:
On its own for software development and benchmarking
Connected to an off-the-shelf baseboard for rapid proof-of-concepts
Connected to customer-designed board for a full prototype
B. Evaluate, explore and develop Users can envisage three stages from evaluation to product development. During evaluation, features and
peripherals of the target MCU can be easily tested with the prototyping area and easily accessible to the
target board. Complementing the target board is also easy-to-use example projects and a useful Getting
Started guide. For rapid proof-of-concepts, users can get an off-the-shelf base board from Embedded Artists
and quickly explore the next level of applications. And finally LPCXpresso users can seamlessly develop their
final application by using the LPC-Link’s 10-pin JTAG connector to attach any JTAG-capable custom board.
This way, users can now enjoy the same user experience right from evaluation to product development.
Tunisia Polytechnic School Engineering internship report
24 | P a g e
Fig. 28: Product development stages
C. LPC1343 configuration As it is seen in the flow chart (fig. 14), three main configurations must be set via configuration registers:
GPIO configuration.
ADC configuration.
Timer configuration.
1. GPIO configuration
The I/O configuration registers control the electrical characteristics of the pins. The following characteristics
are configurable:
pin function
internal pull-up/pull-down or Repeater mode function
hysteresis
analog input or digital mode for pins hosting the ADC inputs
I2C mode for pins hosting the I2C-bus function
The IOCON registers control the function (GPIO or peripheral function), the input mode, and the hysteresis
of all PIO pins. In addition, the I2C-bus pins can be configured for different I2C-bus modes. If a pin is used as
input pin for the ADC, an analog input mode can be selected.
Tunisia Polytechnic School Engineering internship report
25 | P a g e
Fig. 29: Standard I/O pin configuration
General Purpose Input Output can be configured as input or output by software. Each GPIO register can be
up to 12 bits wide and can be read or written using word or half-word operations at word addresses.
Fig. 30: GPIO register overview
As shown in the figure above, the GPIO resister offers many abilities. Two only are needed for my
application:
Tunisia Polytechnic School Engineering internship report
26 | P a g e
Data level (GPIODATA register).
Data direction ( GPIODIR).
a) GPIO data register
The GPIODATA register holds the current state of the pin (HIGH or LOW), independently of whether the pin
is configured as a GPIO input or output or as another digital function. If the pin is configured as GPIO output,
the current value of the GPIODATA register is driven to the pin.
Fig. 31: GPIO data register
The reading of the GPIODATA register always returns the current logic level (state) of the pin independently
of its configuration. Because there is a single data register for both the value of the output driver and the
state of the pin’s input, writing operations have different effects depending on the pin’s configuration:
• If a pin is configured as GPIO input, a write to the GPIODATA register has no effect on the pin
level. A read returns the current state of the pin.
• If a pin is configured as GPIO output, the current value of GPIODATA register is driven to the pin.
This value can be a result of writing to the GPIODATA register, or it can reflect the previous state
of the pin if the pin is switched to GPIO output from GPIO input or another digital function. A
read returns the current state of the output latch.
• If a pin is configured as another digital function (input or output), a write to the GPIODATA
register has no effect on the pin level. A read returns the current state of the pin even if it is
configured as an output. This means that by reading the GPIODATA register, the digital output or
input value of a function other than GPIO on that pin can be observed.
b) GPIO data direction
Fig. 32: GPIO data direction register
Tunisia Polytechnic School Engineering internship report
27 | P a g e
2. ADC configuration:
The LPC13xx family includes an 8 channel 10-bit successive approximation Analog-to-Digital Converter (ADC)
with a maximum conversion rate of 400 kHz.
The ADC is configured using the following registers:
• Pins: The ADC pin functions are configured in the IOCONFIG register block.
• Power and peripheral clock: In the SYSAHBCLKCTRL register. Power to the ADC at run-time is
controlled through the PDRUNCFG register.
For this application, I used two ADC input linked with PIO0_11 and PIO1_0 pins which support ADC function.
Fig. 33: IOCON_R_PIO0_11 register bit description
Fig. 34: Enable clock for ADC
Tunisia Polytechnic School Engineering internship report
28 | P a g e
Fig. 35: Power ADC
3. Timer configuration (16-bit Timer)
The LPC13xx family includes two 16-bit counter/timers with a programmable 16-bit prescaler that efforts
counter or timer operation. These timers are equipped with one 16-bit capture channel that can take a
snapshot of the timer value at input signal transitions. A capture event may also optionally generate an
interrupt. Also they are matched to Four 16-bit match registers that 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.
In addition to four 16-bit match registers that 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.
For each timer, up to four match registers can be configured as PWM allowing the use of up to three match outputs as single edge controlled PWM outputs.
Each Counter/timer is designed to count cycles of the peripheral clock (PCLK) or an externally supplied clock and can optionally generate interrupts or perform other actions at specified timer values based on four match registers. Each counter/timer also includes one capture input to trap the timer value at an input signal transition, optionally generating an interrupt. In PWM mode, three match registers on CT16B0 and two match registers on CT16B1 can be used to provide
a single-edge controlled PWM output on the match output pins. It is recommended to use the match
registers that are not pinned out to control the PWM cycle length.
Rules for single edge controlled PWM outputs:
1. All single edge controlled PWM outputs go LOW at the beginning of each PWM cycle (timer is set to
zero) unless their match value is equal to zero.
2. Each PWM output will go HIGH when its match value is reached. If no match occurs (i.e. the match
value is greater than the PWM cycle length), the PWM output remains continuously LOW.
3. If a match value larger than the PWM cycle length is written to the match register, and the PWM
signal is HIGH already, then the PWM signal will be cleared on the next start of the next PWM cycle.
4. If a match register contains the same value as the timer reset value (the PWM cycle length), then the
PWM output will be reset to LOW on the next clock tick. Therefore, the PWM output will always
consist of a one clock tick wide positive pulse with a period determined by the PWM cycle length
(i.e. the timer reload value).
Tunisia Polytechnic School Engineering internship report
29 | P a g e
5. If a match register is set to zero, then the PWM output will go to HIGH the first time the timer goes
back to zero and will stay HIGH continuously.
Note: When the match outputs are selected to serve as PWM outputs, the timer reset (MRnR) and timer stop
(MRnS) bits in the Match Control Register MCR must be set to 0 except for the match register setting the
PWM cycle length. For this register, set the MRnR bit to 1 to enable the timer reset when the timer value
matches the value of the corresponding match register.
Fig. 36: 16-bit counter/timer block diagram
Tunisia Polytechnic School Engineering internship report
30 | P a g e
The CT16B0/1 are configured using the following registers:
• Pins: The CT16B0/1 pins must be configured in the IOCONFIG register block
• Power and peripheral clock: In the SYSAHBCLKCTRL register, set bit 7 and bit 8
In my application I used the CT16B1 timer linked to PIO1_9 and PIO1_10. This choice has been made to
economize the energy consumption. In fact PIO1_9 and PIO1_10 can be outputs for the same counter
CT16B1 and consequently this enable to generate both PMW signals useing only one timer.
Fig. 37: Configure PIO1_9 to PWM function
Tunisia Polytechnic School Engineering internship report
31 | P a g e
Fig. 38: Configure matching registers
Tunisia Polytechnic School Engineering internship report
32 | P a g e
Conclusion
This training presents my first experience in the electronics engineering of embedded systems. This
experience has been very rewarding either in terms of scientific knowledge or professional and technical
matters. It gave me the opportunity to study the classes of electric motors (bearing in mind that electrical
has never been my option studied). It also allowed me to work on professional microcontroller platforms
and software tools.
The Internship was considered successful by my supervisor and has a usable result on the company. But for
me I see that it would take a lot of work and more research to improve the project.
I
Appendix:
Appendix.1: Schematic document
II
Appendix.2: Printed circuit board design
III
Appendix.3: Schematic of the joystick
IV
Bibliography Documents
AMIR FAIZY. DC MOTOR CONTROL USING CHOPPER. National Institute of Technology Rourkela India.
2010.
User Guide: Welcome to the Altium Designer Environment. Altium. 2006.
User Guide: Getting started with NXP LPCXpresso. NXP. 2011.
User Guides: LPC1311/13/42/43 User manual. NXP. 2011.