Top Banner
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
38
Welcome message from author
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
Page 1: Internship Report

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

Page 2: Internship Report

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.

Page 3: Internship Report

Tunisia Polytechnic School Engineering internship report

1 | P a g e

Table of Contents

ABSTRACT ..................................................................................................................................................... 2

RÉSUMÉ ........................................................................................................................................................ 3

INTRODUCTION ............................................................................................................................................. 4

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

1. GPIO configuration ................................................................................................................................................................................................. 24 2. ADC configuration: .................................................................................................................................................................................................. 27 3. Timer configuration (16-bit Timer) ........................................................................................................................................................................ 28

CONCLUSION................................................................................................................................................32

APPENDIX: ..................................................................................................................................................... I

BIBLIOGRAPHY ............................................................................................................................................. IV

Page 4: Internship Report

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.

Page 5: Internship Report

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.

Page 6: Internship Report

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.

Page 7: Internship Report

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,

Page 8: Internship Report

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.

Page 9: Internship Report

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.

Page 10: Internship Report

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)

Page 11: Internship Report

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)

Page 12: Internship Report

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

Page 13: Internship Report

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:

Page 14: Internship Report

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

Page 15: Internship Report

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).

Page 16: Internship Report

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

Page 17: Internship Report

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.

Page 18: Internship Report

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.

Page 19: Internship Report

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

Page 20: Internship Report

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

Page 21: Internship Report

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

Page 22: Internship Report

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.

Page 23: Internship Report

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.

Page 24: Internship Report

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

Page 25: Internship Report

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.

Page 26: Internship Report

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.

Page 27: Internship Report

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:

Page 28: Internship Report

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

Page 29: Internship Report

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

Page 30: Internship Report

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).

Page 31: Internship Report

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

Page 32: Internship Report

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

Page 33: Internship Report

Tunisia Polytechnic School Engineering internship report

31 | P a g e

Fig. 38: Configure matching registers

Page 34: Internship Report

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.

Page 35: Internship Report

I

Appendix:

Appendix.1: Schematic document

Page 36: Internship Report

II

Appendix.2: Printed circuit board design

Page 37: Internship Report

III

Appendix.3: Schematic of the joystick

Page 38: Internship Report

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.

Internal documents of the enterprise.

Websites

http://www.nxp.com

http://en.wikipedia.org