0% found this document useful (0 votes)
44 views80 pages

3-Phase PMSM Vector Control

The document is a Designer Reference Manual for 3-Phase Permanent Magnet Synchronous Motor (PMSM) Vector Control, detailing control theory, system concepts, hardware implementation, and software design. It includes information on mathematical descriptions, vector control transformations, and various sensing processes. The manual is intended for use with Freescale's hybrid controller and provides guidelines for implementing PMSM control systems.

Uploaded by

princeev45
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
44 views80 pages

3-Phase PMSM Vector Control

The document is a Designer Reference Manual for 3-Phase Permanent Magnet Synchronous Motor (PMSM) Vector Control, detailing control theory, system concepts, hardware implementation, and software design. It includes information on mathematical descriptions, vector control transformations, and various sensing processes. The manual is intended for use with Freescale's hybrid controller and provides guidelines for implementing PMSM control systems.

Uploaded by

princeev45
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 80

3-Phase PMSM Vector Control

Designer Reference Manual

56800
Hybrid Controller

DRM063
Rev. 2
08/2004

freescale.com
3-Phase PMSM Vector Control
Designer Reference Manual

by: Jaroslav Musil


Freescale Czech Systems Laboratories
Roznov pod Radhostem, Czech Republic

Original code by Libor Prokop, Pavel Grasblum


To provide the most up-to-date information, the revision of our documents on the World Wide Web will be
the most current. Your printed copy may be an earlier revision. To verify you have the latest information
available, refer to:
http://www.freescale.com

Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc.
This product incorporates SuperFlash® technology licensed from SST.
© Freescale Semiconductor, Inc., 2004. All rights reserved.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 3
Revision History

The following revision history table summarizes changes contained in this document. For your
convenience, the page number designators have been linked to the appropriate location.

Revision History
Revision Page
Date Description
Level Number(s)
January
1 Limited initial release N/A
2003
August,
2 Reformatted to latest Freescale Semiconductor documentation standards Throughout
2004

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

4 Freescale Semiconductor
Table of Contents

Chapter 1
Introduction
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2 Freescale DSP Advantages and Features. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Chapter 2
Control Theory
2.1 Permanent Magnet Synchronous Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Mathematical Description of PM Synchronous Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Space Vector Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Digital Control of PM Synchronous Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3.1 Vector Control of PM Synchronous Motor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 Block Diagram of Vector Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.3 Vector Control Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.3.1 Clarke Transformation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3.3.2 Transformation from α,β to d-q Coord. and Backwards . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.3.3 Transformation from α,β to d-q Coord. and Backwards . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.4 PMSM Vector Control and Field-Weakening Controller. . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.4.1 Control in Normal Operating Range . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3.4.2 Control in Field-Weakening Range. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Chapter 3
System Concept
3.1 System Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2 Vector Control Drive Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3 System Blocks Concept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.1 Position and Speed Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.3.1.1 Position Sensing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.1.2 Speed Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.1.3 Minimum and Maximum Speed Calculation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
3.3.1.4 Position Reset with Rotor Alignment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.3.2 Current Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.3.3 Voltage Sensing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.3.4 Power Module Temperature Sensing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Chapter 4
Hardware
4.1 Hardware Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4.2 DSP56F805EVM Controller Board . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3 3-Phase AC BLDC High Voltage Power Stage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.4 In-Line Optoisolation Box. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.5 Motor-Brake Specifications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 5
Table of Contents

Chapter 5
Software Design
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2 Main Software Flow Chart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3 Data Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.3.1 Application Control Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
5.3.2 LED Indication Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3.3 Analog Sensing Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3.4 Position and Speed Measurement Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3.5 PMSM (PM Synchronous Motor) Control Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3.5.1 Current Control Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.3.5.2 Speed Ramp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3.5.3 Speed, Alignment Control Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.3.5.4 Field-Weakening Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3.6 Brake Control Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3.7 Brake Control Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
5.3.8 PWM Generation Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.3.9 Fault Control Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.4 State Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.4.1 DSP Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.4.2 Application Control State Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
5.4.3 PMSM Control State Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
5.4.4 Fault Control State Diagram. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.4.5 Analog Sensing State Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.5 Implementation Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.5.1 Scaling of Quantities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.5.1.1 Voltage Scaling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.5.1.2 Current Scaling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.5.1.3 Speed Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5.5.1.4 Position Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.5.1.5 Temperature Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.5.1.6 PI Controller Tuning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.5.1.7 Subprocesses Relation and State Transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.5.1.8 Run/Stop Switch and Button Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

Chapter 6
Application Setup
6.1 Application Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.1.1 Control Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.1.2 Drive Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.2 Application Set-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.2.1 PM Synchronous Motor Versus BLDC Motor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.2.2 DSP56F805EVM Application Set-Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.3 Projects Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
6.4 Application Build and Execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

6 Freescale Semiconductor
Chapter 1
Introduction

1.1 Introduction
This paper describes the design of a 3-phase Permanent Magnet (PM) synchronous motor drive based
on Freescale’s DSP56F805 dedicated motor control device.
PM synchronous motors are very popular in a wide application area. The PM synchronous motor lacks a
commutator and is therefore more reliable than the DC motor. The PM synchronous motor also has
advantages when compared to an AC induction motor. Because a PM synchronous motor achieves
higher efficiency by generating the rotor magnetic flux with rotor magnets, a PM synchronous motor is
used in high-end white goods (such as refrigerators, washing machines, dishwashers); high-end pumps;
fans; and in other appliances which require high reliability and efficiency.
The concept of the application is a speed closed-loop PM synchronous drive using a Vector Control
technique. It serves as an example of a PM synchronous motor control design using a Freescale DSP.
This reference design includes basic motor theory, system design concept, hardware implementation,
and software design, including the PC master software visualization tool.

1.2 Freescale DSP Advantages and Features


The Freescale DSP56F805 is well suited for digital motor control, combining the DSP’s calculation
capability with the MCU’s controller features on a single chip. These DSP’s offer many dedicated
peripherals, such as Pulse Width Modulation (PWM) module(s), an Analog-to-Digital Converter (ADC),
Timers, communication peripherals (SCI, SPI, CAN), on-board Flash and RAM.
The DSP56F805 provides the following peripheral blocks:
• Two Pulse Width Modulator modules (PWMA and PWMB), each with 6 PWM outputs, 3 Current
Sense inputs, and 4 Fault inputs; fault tolerant design with deadtime insertion, supporting both
center- and edge-aligned modes
• Twelve-bit Analog-to-Digital Converters (ADCs), supporting 2 simultaneous conversions with dual
4-pin multiplexed inputs; the ADC can be synchronized by PWM modules
• Two Quadrature Decoders (Quad Dec0 & Quad Dec1), each with 4 inputs, or 2 additional Quad
Timers A and B
• Two dedicated General Purpose Quad Timers totaling 6 pins: Timer C with 2 pins and Timer D with
4 pins
• CAN 2.0 A/B Module with 2-pin ports used to transmit and receive
• Two Serial Communication Interfaces (SCI0 & SCI1), each with 2 pins, or 4 additional General
Purpose I/O (GPIO) lines
• Serial Peripheral Interface (SPI), with configurable 4-pin port, or 4 additional GPIO lines
• Computer Operating Properly (COP) timer

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 7
Introduction

• Two dedicated external interrupt pins


• Fourteen dedicated GPIO pins, 18 multiplexed GPIO pins
• External reset pin for hardware reset
• JTAG/On-Chip Emulation (OnCE)
• Software-programmable, Phase Lock Loop-based frequency synthesizer for the DSP core clock

Table 1-1. Memory Configuration


DSP56F801 DSP56F803 DSP56F805 DSP56F807

Program Flash 8188 x 16-bit 32252 x 16-bit 32252 x 16-bit 61436 x 16-bit

Data Flash 2K x 16-bit 4K x 16-bit 4K x 16-bit 8K x 16-bit

Program RAM 1K x 16-bit 512 x 16-bit 512 x 16-bit 2K x 16-bit

Data RAM 1K x 16-bit 2K x 16-bit 2K x 16-bit 4K x 16-bit

Boot Flash 2K x 16-bit 2K x 16-bit 2K x16-bit 2K x 16-bit

In addition to the fast Analog-to-Digital converter and the 16-bit Quadrature Timers, the most interesting
peripheral, from the PM synchronous motor control point of view, is the Pulse Width Modulation (PWM)
module. The PWM module offers a high degree of freedom in its configuration, allowing efficient control
of the PM synchronous motor.
The PWM has the following features:
• Three complementary PWM signal pairs, or 6 independent PWM signals
• Features of complementary channel operation
• Deadtime insertion
• Separate top and bottom pulse width correction via current status inputs or software
• Separate top and bottom polarity control
• Edge-aligned or center-aligned PWM signals
• 15 bits of resolution
• Half-cycle reload capability
• Integral reload rates from 1 to 16
• Individual software-controlled PWM outputs
• Mask and swap of PWM outputs
• Programmable fault protection
• Polarity control
• 20 mA current sink capability on PWM pins
• Write-protectable registers

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

8 Freescale Semiconductor
Freescale DSP Advantages and Features

The PM synchronous motor control utilizes the PWM block set in the complementary PWM mode,
permitting generation of control signals for all switches of the power stage with inserted deadtime. The
PWM block generates three sine wave outputs mutually shifted by 120 degrees.
The Analog-to-Digital Converter (ADC) consists of a digital control module and two analog sample and
hold (S/H) circuits. It has the following features:
• 12-bit resolution
• Maximum ADC clock frequency is 5 MHz with 200 ns period
• Single conversion time of 8.5 ADC clock cycles (8.5 x 200 ns = 1.7 µs)
• Additional conversion time of 6 ADC clock cycles (6 x 200 ns = 1.2 µs)
• Eight conversions in 26.5 ADC clock cycles (26.5 x 200 ns = 5.3 µs) using simultaneous mode
• ADC can be synchronized to the PWM via the sync signal
• Simultaneous or sequential sampling
• Internal multiplexer to select 2 of 8 inputs
• Ability to sequentially scan and store up to 8 measurements
• Ability to simultaneously sample and hold 2 inputs
• Optional interrupts at end of scan, if an out-of-range limit is exceeded, or at zero crossing
• Optional sample correction by subtracting a preprogrammed offset value
• Signed or unsigned result
• Single-ended or differential inputs
The application utilizes the ADC block in simultaneous mode and sequential scan. It is synchronized with
PWM pulses. This configuration allows the simultaneous conversion within the required time of required
analog values, of all phase currents, voltage and temperature.
The Quadrature Timer is an extremely flexible module, providing all required services relating to time
events. It has the following features:
• Each timer module consists of four 16-bit counters/timers
• Count up/down
• Counters are cascadable
• Programmable count modulo
• Maximum count rate equals peripheral clock/2 when counting external events
• Maximum count rate equals peripheral clock when using internal clocks
• Count once or repeatedly
• Counters are preloadable
• Counters can share available input pins
• Each counter has a separate prescaler
• Each counter has capture and compare capability
The PM synchronous motor vector control application utilizes four channels of the Quadrature Timer
module for position and speed sensing. A fifth channel of the Quadrature Timer module is set to generate
a time base for speed sensing and a speed controller.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 9
Introduction

The Quadrature Decoder is a module providing decoding of position signals from a Quadrature Encoder
mounted on a motor shaft. It has the following features:
• Includes logic to decode quadrature signals
• Configurable digital filter for inputs
• 32-bit position counter
• 16-bit position difference counter
• Maximum count frequency equals the peripheral clock rate
• Position counter can be initialized by software or external events
• Preloadable 16-bit revolution counter
• Inputs can be connected to a general purpose timer to aid low speed velocity.
The PM synchronous motor vector control application utilizes the Quadrature Decoder connected to a
Quad Timer module A. It uses the decoder’s digital input filter to filter the encoder’s signals, but does not
make use of its decoding functions, freeing the decoder’s digital processing capabilities to be used by
another application.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

10 Freescale Semiconductor
Chapter 2
Control Theory

2.1 Permanent Magnet Synchronous Motor


The PM synchronous motor is a rotating electric machine with a classic 3-phase stator like that of an
induction motor; the rotor has surface-mounted permanent magnets (see Figure 2-1).

Stator

Stator winding
(in slots)

Shaft

Rotor

Air gap

Permanent magnets

Figure 2-1. PM Synchronous Motor — Cross Section

In this respect, the PM synchronous motor is equivalent to an induction motor, where the air gap magnetic
field is produced by a permanent magnet, so the rotor magnetic field is constant. PM synchronous motors
offer a number of advantages in designing modern motion control systems. The use of a permanent
magnet to generate substantial air gap magnetic flux makes it possible to design highly efficient PM
motors.

2.2 Mathematical Description of PM Synchronous Motor


The model used for vector control design can be understood by using space vector theory. The
three-phase motor quantities (such as voltages, currents, magnetic flux, etc.) are expressed in terms of
complex space vectors. Such a model is valid for any instantaneous variation of voltage and current and
adequately describes the performance of the machine under both steady-state and transient operation.
The complex space vectors can be described using only two orthogonal axes. We can look at the motor
as a two-phase machine. Using a two-phase motor model reduces the number of equations and simplifies
the control design.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 11
Control Theory

2.2.1 Space Vector Definition


Assume isa, isb, isc are the instantaneous balanced three-phase stator currents:
i sa + i sb + i sc = 0 (2-1)

Then we can define the stator current space vector as follows:


i s = k  i sa + ai sb + a i sc
2
 
(2-2)

where a and a2 are the spatial operators, a = e


j2π/3 2 j4π/3
,a =e and k is the transformation constant,
chosen as k=2/3. Figure 2-2 shows the stator current space vector projection:

β
phase- b

is β

Figure 2-2. Stator Current Space Vector and Its Projection

The space vector defined by (2-2) can be expressed utilizing two-axis theory. The real part of the space
vector is equal to the instantaneous value of the direct-axis stator current component, isα, and whose
imaginary part is equal to the quadrature-axis stator current component, isβ. Thus, the stator current space
vector, in the stationary reference frame attached to the stator can be expressed as:
i s = i sα + ji sβ (2-3)

In symmetrical three-phase machines, the direct and quadrature axis stator currents isα, isβ are fictitious
quadrature-phase (two-phase) current components, which are related to the actual three-phase stator
currents as follows:
i sα = k  i sa – --- i sb – --- i sc
1 1

(2-4)
2 2 

3
i sβ = k ------- ( i sb – i sc ) (2-5)
2
where k=2/3 is a transformation constant.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

12 Freescale Semiconductor
Mathematical Description of PM Synchronous Motor

The space vectors of other motor quantities (voltages, currents, magnetic fluxes etc.) can be defined in
the same way as the stator current space vector.
For a description of the PM synchronous motor, the symmetrical three-phase smooth-air-gap machine
with sinusoidally-distributed windings is considered. The voltage equations of stator in the instantaneous
form can then be expressed as:
d
u SA = R S i SA + ψ SA (2-6)
dt
d
u SB = R S i SB + ψ SB (2-7)
dt
d
u SC = R S i SC + ψ SC (2-8)
dt
where uSA, uSB, and uSC are the instantaneous values of stator voltages, iSA, iSB, and iSC are the
instantaneous values of stator currents, and ψSA, ψSB, ψSC are instantaneous values of stator flux
linkages, in phase SA, SB, and SC.
Due to the large number of equations in the instantaneous form, the equations (2-6), (2-7), and (2-8), it is
more practical to rewrite the instantaneous equations using two axis theory (Clarke transformation). The
PM synchronous motor can be expressed as:
d
u Sα = R S i Sα + Ψ Sα (2-9)
dt
d
u Sβ = R S i Sβ + Ψ Sβ (2-10)
dt

Ψ Sα = L S i Sα + Ψ M cos ( Θ r ) (2-11)

Ψ Sβ = L S i Sβ + Ψ M sin ( Θ r ) (2-12)

dω p 3
= --- --- p ( Ψ Sα i Sβ – Ψ Sβ i Sα ) – T L (2-13)
dt J 2

where:
α,β is the stator orthogonal coordinate system
uSα,β is the stator voltage
iSα,β is the stator current
ΨSα,β is the stator magnetic flux
ΨM is the rotor magnetic flux
RS is the stator phase resistance
LS is the stator phase inductance
ω / ωF is the electrical rotor speed / fields speed
p is the number of poles per phase
J is the inertia
TL is the load torque
Θr is the rotor position in α,β coordinate system

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 13
Control Theory

The equations (2-9) through (2-13) represent the model of PM synchronous motor in the stationary frame
α, β fixed to the stator.
Besides the stationary reference frame attached to the stator, motor model voltage space vector
equations can be formulated in a general reference frame, which rotates at a general speed ωg. If a
general reference frame is used, with direct and quadrature axes x,y rotating at a general instantaneous
speed ωg = dθg/dt, as shown in Figure 2-3, where θg is the angle between the direct axis of the stationary
reference frame (α) attached to the stator and the real axis (x) of the general reference frame, then (2-14)
defines the stator current space vector in general reference frame:
– jθ g
i sg = i s e = i sx + ji sy (2-14)

y β

Figure 2-3. Application of the General Reference Frame

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

14 Freescale Semiconductor
Mathematical Description of PM Synchronous Motor

The stator voltage and flux-linkage space vectors can be similarly obtained in the general reference
frame.
Similar considerations hold for the space vectors of the rotor voltages, currents and flux linkages. The real
axis (rα) of the reference frame attached to the rotor is displaced from the direct axis of the stator
reference frame by the rotor angle θr. Since it can be seen that the angle between the real axis (x) of the
general reference frame and the real axis of the reference frame rotating with the rotor (rα) is θg-θr, in the
general reference frame, the space vector of the rotor currents can be expressed as:
–j ( θg – θr )
i rg = i r e = i rx + ji ry (2-15)

where i r is the space vector of the rotor current in the rotor reference frame.
The space vectors of the rotor voltages and rotor flux linkages in the general reference frame can be
similarly expressed.
The motor model voltage equations in the general reference frame can be expressed by utilizing
introduced transformations of the motor quantities from one reference frame to the general reference
frame. The PM synchronous motor model is often used in vector control algorithms. The aim of vector
control is to implement control schemes which produce high dynamic performance and are similar to
those used to control DC machines. To achieve this, the reference frames may be aligned with the stator
flux-linkage space vector, the rotor flux-linkage space vector or the magnetizing space vector. The most
popular reference frame is the reference frame attached to the rotor flux linkage space vector, with direct
axis (d) and quadrature axis (q).
After transformation into d-q coordinates, the motor model as follows:
d
u Sd = R S i Sd + Ψ Sd – ω F Ψ Sq (2-16)
dt
d
u Sq = R S i Sq + Ψ Sq + ω F Ψ Sd (2-17)
dt

Ψ Sd = L S i Sd + Ψ M (2-18)

Ψ Sq = L S i Sq (2-19)

dω p 3
= --- --- p ( Ψ Sd i Sq – Ψ Sq i Sd ) – T L (2-20)
dt J 2

By considering that below base speed isd = 0, the equation (2-20) can be reduced to the following form:
dω p 3
= --- --- p ( Ψ M i Sq ) – T L (2-21)
dt J 2

From the equation (2-21), it can be seen that the torque is dependent and can be directly controlled by
the current isq only.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 15
Control Theory

2.3 Digital Control of PM Synchronous Motor


In adjustable-speed applications, the PM synchronous motors are powered by inverters. The inverter
converts DC power to AC power at the required frequency and amplitude. The typical 3-phase inverter is
illustrated in Figure 2-4.
U DCB

Q1 Q3 Q5

PWM_Q1 PWM_Q3 PWM_Q5

C1

Q2 Q4 Q6

PWM_Q2 PWM_Q4 PWM_Q6

GND
Phase_A Phase_B Phase_C
Figure 2-4. 3-Phase Inverter

The inverter consists of three half-bridge units where the upper and lower switches are controlled
complimentarily, meaning when the upper one is turned on, the lower one must be turned off, and vice
versa. Because the power device’s turn off time is longer than its turn on time, some deadtime must be
inserted between the turn off of one transistor of the half-bridge, and the turn on of its complementary
device. The output voltage is mostly created by a pulse width modulation (PWM) technique, where an
isosceles triangle carrier wave is compared with a fundamental-frequency sine modulating wave, and the
natural points of intersection determine the switching points of the power devices of a half bridge inverter.
This technique is shown in Figure 2-5. The 3-phase voltage waves are shifted 120° to each other and,
thus, a 3-phase motor can be supplied.
Generated PWM Carrier
Sine Wave Wave
1

0
ωt

-1

1
PWM Output T
1 0
(Upper Switch)
ωt
1
PWM Output T
2 0
(Lower Switch)

Figure 2-5. Pulse Width Modulation

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

16 Freescale Semiconductor
Digital Control of PM Synchronous Motor

The most popular power devices for motor control applications are Power MOSFETs and IGBTs.
A Power MOSFET is a voltage-controlled transistor. It is designed for high-frequency operation and has
a low voltage drop; thus, it has low power losses. However, the saturation temperature sensitivity limits
the MOSFET application in high-power applications.
An insulated-gate bipolar transistor (IGBT) is a bipolar transistor controlled by a MOSFET on its base. The
IGBT requires low drive current, has fast switching time, and is suitable for high switching frequencies.
The disadvantage is the higher voltage drop of a bipolar transistor, causing higher conduction losses.

2.3.1 Vector Control of PM Synchronous Motor


Vector Control is an elegant control method of a PM synchronous motor, where field-oriented theory is
used to control space vectors of magnetic flux, current, and voltage. It is possible to set up the coordinate
system to decompose the vectors into a magnetic field-generating part and a torque-generating part. The
structure of the motor controller (Vector Control controller) is then almost the same as for a
separately-excited DC motor, which simplifies the control of PM synchronous motor. This Vector Control
technique was developed specifically to achieve a similarly dynamic performance in PM synchronous
motors.
As explained in 3.3 System Blocks Concept, we chose a widely used speed control with inner current
closed-loop, where the rotor flux is controlled by a field-weakening controller.
In this method, we must break down the field-generating and torque-generating parts of the stator current
to be able to separately control the magnetic flux and the torque. In order to do so, we need to set up the
rotary coordinate system connected to the rotor magnetic field; this system is generally called a “d-q
coordinate system”. Very high CPU performance is needed to perform the transformation from rotary to
stationary coordinate systems. Therefore, the Freescale DSP56F805 is very well suited for use in a
Vector Control algorithm. All transformations which are needed for Vector Control will be described in the
next section.

2.3.2 Block Diagram of Vector Control


Figure 2-6 shows the basic structure of Vector Control of the PM synchronous motor. To perform Vector
Control, follow these steps:
• Measure the motor quantities (phase voltages and currents)
• Transform them into the two-phase system (α,β) using Clarke transformation
• Calculate the rotor flux space vector magnitude and position angle
• Transform stator currents into the d-q coordinate system using Park transformation
• The stator current torque- (isq) and flux- (isd) producing components are controlled separately by
the controllers
• The output stator voltage space vector is calculated using the decoupling block
• The stator voltage space vector is transformed back from the d-q coordinate system into the
two-phase system and fixed with the stator by inverse Park transformation
• Using sine wave modulation, the output 3-phase voltage is generated

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 17
18

Control Theory
Speed Line Input
3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Command USq_lin

- - USd USα

Decoupling
Space - Vector
USq
Modulation
USβ
Motor Flux
Command USd_lin

ΨRd pwm a
pwm b
pwm c 3-Phase Power Stage

ISq
ISα ISa
Rotor Flux
Forward Park Position Rotor Flux Forward Clarke ISb

ISd
Transformation Calculation ISβ Transformation ISc

AC Induction
Motor

Speed Speed
Sensor

Figure 2-6. Block Diagram of PM Synchronous Motor Vector Control


Freescale Semiconductor
Digital Control of PM Synchronous Motor

2.3.3 Vector Control Transformations


Transforming the PM synchronous motor into a DC motor is based on points of view. As shown in 2.3.2
Block Diagram of Vector Control, a coordinate transformation is required.
The following transformations are involved in Vector Control:
• Transformations from a 3-phase to a 2-phase system (Clarke transformation)
• Rotation of orthogonal system
– α,β to d-q (Park transformation)
– d-q to α,β (Inverse Park transformation)

2.3.3.1 Clarke Transformation


Figure 2-7 shows how the three-phase system is transformed into a two-phase system.

β
phase- b

iS
iSβ
iSb - measured iSa - measured
iSα α, phase-a

iSc - calculated

phase- c
Figure 2-7. Clarke Transformation

To transfer the graphical representation into mathematical language:

1 1
1 – --- – --- a
α = K 2 2
(2-22)
b
β 3 3
0 ------- – ------- c
2 2

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 19
Control Theory

In most cases, the 3-phase system is symmetrical, which means that the sum of the phase quantities is
always zero.
α = K  a – --- b – --- c =
1 1 3

a+b+c = 0 = K --- a (2-23)
2 2  2
The constant “K” can be freely chosen and equalizing the α-quantity and a-phase quantity is
recommended. Then:
2
α = a ⇒ K = --- (2-24)
3
We can fully define the Park-Clarke transformation:
2 1 1
--- – --- – --- a 1 0 0 a
α = 3 3 3
(2-25)
b = a+b+c = 0 = 1 1 b
------- – -------
β 0
1 1
------- – ------- c
0
3 3 c
3 3

2.3.3.2 Transformation from α,β to d-q Coord. and Backwards


Vector Control is performed entirely in the d-q coordinate system to make the control of PM synchronous
motors elegant and easy; see 2.3.2 Block Diagram of Vector Control.
To transfer the graphical representation into mathematical language:
1 1
1 – --- – --- a
α = K 2 2
(2-26)
b
β 3 3
0 ------- – ------- c
2 2

In most cases, the 3-phase system is symmetrical, which means that the sum of the phase quantities is
always zero.

α = K  a – --- b – --- c =
1 1 3

a+b+c = 0 = K --- a (2-27)
2 2  2

The constant “K” can be freely chosen and equalizing the α-quantity and a-phase quantity is
recommended. Then:
2
α = a ⇒ K = --- (2-28)
3
We can fully define the Park-Clarke transformation:
2 1 1
--- – --- – --- a 1 0 0 a
α = 3 3 3
(2-29)
b = a+b+c = 0 = 1 1
------- – ------- b
β 0
1 1
------- – ------- c
0
3 3 c
3 3

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

20 Freescale Semiconductor
Digital Control of PM Synchronous Motor

2.3.3.3 Transformation from α,β to d-q Coord. and Backwards


Vector Control is performed entirely in the d-q coordinate system to make the control of PM synchronous
motors elegant and easy; see 2.3.2 Block Diagram of Vector Control.
Of course, this requires transformation in both directions and the control action must be transformed back
to the motor side.
First, establish the d-q coordinate system:
ΨM = Ψ Mα + Ψ Mβ (2-30)

Ψ Mβ
sin ϑ Field = -------------
Ψ Md
(2-31)
Ψ Mα
cos ϑ Field = --------------
Ψ Md

Then transform from α,β to d-q coordinates:

d = cos ϑ Field sin ϑ Field α (2-32)


q – sin ϑ Field cos ϑ Field β

Figure 2-8 illustrates this transformation.

q β

ΨM d

ΨMβ ϑField
α
ΨMα
Figure 2-8. Establishing the d-q Coord. System (Park Transformation)

The backward (Inverse Park) transformation (from d-q to α,β) ισ:

α = cos ϑ Field – sin ϑ Field d


(2-33)
β sin ϑ Field cos ϑ Field q

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 21
Control Theory

2.3.4 PMSM Vector Control and Field-Weakening Controller


This section describes the control regarding the required stator current vectors isd, isq.
There are two speed ranges (shown in Figure 2-8), which differ by controlled current vector:
• Control in Normal Operating Range is a control mode for a speed required below nominal motor
speed
• Control in Field-Weakening Range is a control mode for a speed required above nominal motor
speed

2.3.4.1 Control in Normal Operating Range


Assume an ideal PM synchronous motor with constant stator reluctance, Ls = const. The equations (2-17),
(2-18), and (2-19) can then be written as:
d
u Sq = R S i Sq + L S i Sq + ω F ( L S i Sd + Ψ M ) (2-34)
dt
As demonstrated from PM synchronous motor equations, the maximum efficiency of the ideal PM
synchronous motor is obtained when maintaining the current flux-producing component isd at zero.
Therefore, in the drive from Figure 2-6, the Field-Weakening Controller sets isd = 0 in the normal operating
range. The speed regulator controls the current torque-producing component isq.
A real 3-phase power inverter has voltage and current rating limitations:
1. The absolute value of stator voltage us is physically limited according to DCBus voltage to
u_sdq_max limit
2. The absolute value of the stator current is should be maintained below a limit of I_SDQ_MAX given
by the maximum current rating

nominal speed
stator voltage us
u_sdq_max

normal operating field weakenning speed


0 range range

stator current id
Figure 2-9. Normal Operation and Field-Weakening

In the normal operating range, the current torque-producing component isq can be set up to I_SDQ_MAX,
since isd = 0.
Due to the voltage limitation, the maximum speed in the normal motor operating range is limited for isd = 0,
to a nominal motor speed as shown in Figure 2-9 and (2-34).

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

22 Freescale Semiconductor
Digital Control of PM Synchronous Motor

2.3.4.2 Control in Field-Weakening Range


Where a higher maximum motor speed is required, the field-weakening technique must be used. That is
provided by maintaining the flux-producing current component isd, in the field-weakening range, as shown
in Figure 2-9.
Due to the limitation of absolute current value, the current torque-producing component isq, then must be
maintained below a limited value.
2 2 (2-35)
i Sq < I_SDQ_MAX – i Sd

One possibility to maintain the flux-producing current component isd for field weakening is to use a look-up
table.
A more-progressive method uses a Field-Weakening Controller, which generates a negative current
flux-producing component isq, whenever the absolute value of stator voltage exceeds u_S_max_FWLimit.
The field-weakening limit u_S_max_FWLimit is set to be close to the maximum voltage limit of the
3-phase power inverter u_sdq_max with some reserve for regulation. Since the DCBus voltage
determines the u_sdq_max limit, the u_S_max_FWLimit is set according to the DCBus. The
u_S_max_FWLimit can be a constant or it can be calculated from a measured DCBus voltage. The
Field-Weakening controller is described in 5.3.5.4 Field-Weakening Process.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 23
Control Theory

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

24 Freescale Semiconductor
Chapter 3
System Concept

3.1 System Specification


The motor control system is designed to drive a 3-phase PM synchronous motor in a speed closed-loop.
The application meets the following performance specifications:
• Vector control of PM motor using the quadrature encoder as a position sensor
• Targeted for DSP56F805EVM
• Running on a 3-phase PM synchronous motor control development platform at variable line voltage
110 – 230 V AC
• Control technique incorporates:
– Vector Control with speed closed-loop and field-weakening
– Rotation in both directions
– Motoring and generator mode with brake
– Start from any motor position with rotor alignment
– Minimum speed of 50 rpm
– Maximum speed of 3000 rpm at input power line 230 V AC
– Maximal speed of 1500 rpm at input power line 115 V AC
– Manual interface (Start/Stop switch, Up/Down push button control, LED indicator)
– PC master software control interface (motor start/stop, speed set-up)
– PC master software remote monitor
– Power stage board identification
– Overvoltage, undervoltage, overcurrent, and overheating fault protection
The PM synchronous drive introduced here is designed to power a high-voltage PM synchronous motor
with a quadrature encoder. It has the specifications shown in Table 3-1.
:
Table 3-1. High Voltage Hardware Set Specifications
Motor Characteristics
Motor Type 6 poles, 3-phase, star connected, BLDC motor
Speed Range 2500rpm (at 310 V DC bus)
Maximum Electrical Power 150 W
Phase Voltage 3*220 V
Phase Current 0.55 A
Drive Characteristics
Speed Range < 3000 rpm
Input Voltage 310 V DC
Maximum DCBus Voltage 380 V
Control Algorithm Speed Closed-Loop Control
Optoisolation Required

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 25
System Concept

3.2 Vector Control Drive Concept


A standard system concept is used with this drive; see Figure 3-1. The system incorporates the following
hardware parts:
• Three-phase PM synchronous motor high-voltage development platform
• Feedback sensors for:
– Position (quadrature encoder)
– DCBus voltage
– Phase currents
– DCBus overcurrent detection
– Temperature
• DSP56F805 Evaluation Module
The drive can be controlled in two different operational modes:
1. In the Manual operational mode, the required speed is set by the Start/Stop switch and the
Up/Down push buttons.
2. In the PC master software operational mode, the required speed and Start/Stop switch are set by
the PC.
The control process is described in the following paragraphs.

3-phase BLDC Power Stage

U_Dc bus
AC
Line AC

PMSM

6
DC LOAD
Free Master UP DOWN START
STOP Quadrature
Temperature
Encoder
Faults Isa Isb Isc
PWM
SCI
GPIO ADC Quad
SCI GPIO PWM PWM Timer
Driver GPIO Driver
GPIO Driver ADC Driver QT Driver
PWM Driver PWM Driver
Break
Application Fault Protection Control Dutycycle a
Dutycycle b Is_a
Control Dutycycle c Is_b
U_dcb Is_c
Omega_ Req
Sinus Sector
waveform
Modulation
Is_q_Req
Omega_ Req Us_alpha_comp
Current q Us_beta_comp Position
(Back-EMF feedforward)

Speed PI &
Controller Controller Us_alpha
Speed
Decoupling

Sensing
Us_q
Inverse Park DC-bus U_dcb
Omega_ atual_mech

Transformation ripple
d,q->alpha,beta compensation
Weakening

Us_d
Controller

Us_beta
Field

Current d
PI
Controller sin theta_atual_el
cos

Is_q Is_beta Is_a_comp


Forward Park Forward Clark Is_b_comp
Current
Transformation Transformation Sensing
Us_q Us_d Is_d alpha,beta->d,q Is_alpha a,b,c ->alpha,beta Is_c_comp Processing

Omega_ atual_mech

DSP56F80x

Figure 3-1. Drive Concept

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

26 Freescale Semiconductor
System Blocks Concept

When the Start command is accepted (using the Start/Stop Switch or PC master software command), the
required speed is calculated according to the Up/Down push buttons or PC master software commands.
The required speed proceeds through an acceleration/deceleration ramp, and a reference command is
put to the speed controller. The actual speed is calculated from the pulses of the quadrature encoder. The
comparison between the required speed command and the actual measured speed generates a speed
error. Based on the error, the speed controller generates a current, Is_qReq, which corresponds to torque.
A second part of stator current Is_dReq, which corresponds to flux, is given by the Field-Weakening
Controller. Simultaneously, the stator currents Is_a, Is_b, and Is_c are measured and transformed from
instantaneous values into the stationary reference frame α, β, and consecutively into the rotary reference
frame d-q (Park - Clarke transformation). Based on the errors between required and actual currents in the
rotary reference frame, the current controllers generate output voltages Us_q and Us_d (in the rotary
reference frame d-q). The voltages Us_q and Us_d are transformed back into the stationary reference
frame α, β, and, after DCBus ripple elimination, are recalculated to the 3-phase voltage system, which is
applied to the motor.
Beside the main control loop, the DCBus voltage, DCBus current and power stage temperature are
measured during the control process. They are used for overvoltage, undervoltage, overcurrent, and
overheating protection of the drive. The undervoltage and overheating protection is performed by
software, while the overcurrent and overvoltage fault signal utilizes a fault input of the DSP.
If any of the previously-mentioned faults occur, the motor control PWM outputs are disabled in order to
protect the drive, and the fault state of the system is displayed by the on-board LED.
A hardware error is also detected if the wrong power stage is used. Each power stage contains a simple
module generating a logic sequence unique for that type of power stage. During chip initialization, this
sequence is read and evaluated according to the decoding table. If the correct power stage is identified,
the program can continue. In the case of wrong hardware, the program stays in an infinite loop, displaying
the fault condition.

3.3 System Blocks Concept

3.3.1 Position and Speed Sensing


DSP56F805 has a quadrature decoder. This peripheral is commonly used for position and speed sensing.
The quadrature decoder position counter counts up/down each edge of Phase A and Phase B signals
according to their order. On each revolution, the position counter is cleared by an index pulse; see
Figure 3-2.

Figure 3-2. Quadrature Encoder Signals

This means that the zero position is linked with the index pulse, but Vector Control requires the zero
position, where the rotor is aligned to the d axis; see 3.3.1.4 Position Reset with Rotor Alignment.
Therefore, using a quadrature decoder to decode the encoder’s signal requires either the calculation of
an offset which aligns the quadrature decoder position counter with the aligned rotor position (zero
position), or the coupling of the zero rotor position with the index pulse of a quadrature encoder. To avoid

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 27
System Concept

the calculation of the rotor position offset, the quadrature decoder is not used in this application. The
decoder’s digital processing capabilities are then free to be used by another application.
In addition to the quadrature decoder, the input signals (Phase A, Phase B, and Index) are connected to
quad timer module A. The quad timer module consists of four quadrature timers. Due to the wide
variability of quad timer modules, it is possible to use this module to decode quadrature encoder signals,
sense position, and speed. A configuration of the quad timer module is shown in Figure 3.3.

Figure 3-3. Quad Timer Module A Configuration

3.3.1.1 Position Sensing


The position and speed sensing algorithm uses all of the timers in module A and an additional timer as a
time base. Timers A0 and A1 are used for position sensing. Timer A0 permits connection of three input
signals to the quadrature timer A1, even if timer A1 has only two inputs (primary and secondary),
accomplished by using timer A0 as a quadrature decoder only. It is set to count in the quadrature mode,
count to zero, and then reinitialize. This timer setting is used to decode quadrature signals only. Timer A1
is connected to timer A0 in cascade mode. In this mode, the information about counting up/down is
connected internally to timer A1; thus, the secondary input of timer A1 is free to be used for the index
pulse. The counter A1 is set to count to +/- ((4*number of pulses per revolution) - 1) and reinitialize after
compare. The value of the timer A1 corresponds to the rotor position.
The position of the index pulse is sensed to avoid the loss of some pulses under the influence of noise
during extended motor operation, which can result in incorrect rotor position sensing. If some pulses are
lost, a different position of the index pulse is detected, and a position sensing error is signaled. If a check
of the index pulse is not required, timer A1 can be removed and timer A0 set as the position counter A1.
The resulting value of timer A1 is scaled to range <-1; 1), which corresponds to <-π; π).

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

28 Freescale Semiconductor
System Blocks Concept

3.3.1.2 Speed Sensing


There are two common ways to measure speed. The first method measures the time between two
following edges of quadrature encoder, and the second method measures a position difference (a number
of pulses) per constant period. The first method is used at low speed. At the moment when the measured
period is very short, the speed calculation algorithm switches to the second method.
The proposed algorithm combines both methods. The algorithm simultaneously measures the number of
quadrature encoder pulses per constant period, and an accurate time interval between the first and last
pulse is counted during that constant period. The speed can then be expressed as:
k⋅N
speed = ----------- (3-1)
T
where:
speed calculated speed
k scaling constant
N number of pulses per constant period
T accurate period of N pulses
The algorithm requires two timers for counting pulses and measuring their period, and a third timer as a
time base; see Figure 3.3. Timer A2 counts the pulses of the quadrature encoder, and timer A3 counts a
system clock divided by 2. The values in both timers can be captured by each edge of the Phase A signal.
The time base is provided by timer D0, which is set to call the speed processing algorithm every 900µs.
An explanation of how the speed processing algorithm works follows.
First, the new captured values of both timers are read. The difference in the number of pulses and their
accurate time interval are calculated from actual and previous values. The new values are then saved for
the next period, and the capture register is enabled. From that moment, the first edge of Phase A signal
captures the values of both timers (A2, A3) and the capture register is disabled. This process is repeated
on each call of the speed processing algorithm; see Figure 3-4.

Figure 3-4. Speed Processing

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 29
System Concept

3.3.1.3 Minimum and Maximum Speed Calculation


The minimum speed is calculated with the following equation:
60
ω min = ------------------------ (3-2)
4NT calc

where:
ωmin Minimum obtainable speed [rpm]
N Number of pulses per revolution [1/rev]
Tcalc Period of speed measurement (calculation period) [s]
In the application, the quadrature encoder has 1024 pulses per revolution and a calculation period of
900 µs was chosen on the basis of a motor mechanical constant. Thus, Equation 3-2 calculates the
minimum speed as 16.3 rpm.
The maximum speed can be expressed as:
60
ω max = ---------------------------- (3-3)
4NT clkT2

where:
ωmax Maximum obtainable speed [rpm]
N Number of pulses per revolution [1/rev]
TclkT2 Period of input clock to timer A2 [s]
Substitution in (3-3) for N and TclkT2 (timer A2 input clock = system clock 36 MHz/2) yields a maximum
speed of 263672 rpm. As demonstrated, the algorithm can measure speed across a wide range. Because
such high speed is not practical, the maximum speed can be reduced to a required range by the constant
k in (3-1). The constant k can be calculated as:

60
κ = −−−−−−−−−−−−−−−−−−−−−−−−−− (3-4)
4NT clkT2 ω µαξ

where:
k Scaling constant in (3-1)
ωmax Maximum of the speed range [rpm]
N Number of pulses per revolution [1/rev]
TclkT2 Period of input clock to timer A2 [s]
In this application, the maximum measurable speed is limited to 6000 rpm.

NOTE
To ensure an accurate speed calculation, you must choose the input clock
of timer A2 so that the calculation period of speed processing (in this case,
900 µs) is represented in timer A2 as a value lower than 0x7FFFH
(900.10-6/TclkT2<=0x7FFFH).

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

30 Freescale Semiconductor
System Blocks Concept

3.3.1.4 Position Reset with Rotor Alignment


After reset, the rotor position is unknown, because a quadrature encoder does not give an absolute
position until the index pulse arrives. As shown in Figure 3-5, the rotor position must be aligned with the
d axis of the d-q coordinate system before a motor begins running. The alignment algorithm is shown in
Figure 3-6. First, the position is set to zero, independent of the actual rotor position. (The value of the
quadrature encoder does not affect this setting). Then the Id current is set to alignment current. The rotor
is now aligned to the required position. After rotor stabilization, the encoder is reset to the zero position,
then the Id current is set back to zero, and alignment is finished. The alignment is executed only once
during the first transition from the Stop to Run state of the Run/Stop switch.

q unknown rotor position


(not aligned)

zero rotor position


(aligned)
ΨM ϑField = 0

d α
Figure 3-5. Rotor Alignment

Alignment

Set fixed position Reset encoder


(0°) position

Iq=0 Iq=0
Id=IAlignment Id=0

Wait for rotor Set position from


stabilization encoder

End

Figure 3-6. Rotor Alignment Flow Chart

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 31
System Concept

3.3.2 Current Sensing


Phase currents are measured by a shunt resistor in each phase. A voltage drop on the shunt resistor is
amplified by an operational amplifier, and shifted up by 1.65 V. The resultant voltage is converted by an
A/D converter (see Figure 3-7 and Figure 3-8).

Q1 Q3 Q5
SKB04N60 SKB04N60 SKB04N60

Gate_AT Gate_BT Gate_CT

Phase_A Phase_B Phase_C

Q2 Q4 Q6
SKB04N60 SKB04N60 SKB04N60

Gate_AB Gate_BB Gate_CB

Source_AB Source_BB Source_CB

I_sense_A1 sense R1 I_sense_B1 sense R2 I_sense_C1 sense R3

0.1 1% 0.1 1% 0.1 1%


I_sense_A2 sense I_sense_B2 sense I_sense_C2 sense

Figure 3-7. Current Shunt Resistors

R318 75k-1%

R320 10k-1%
6 1.65V +/- 1.65V @ +/- Imax
I_sense_C1 -
7
I_sense_C
I_sense_C2 5 +

R321 10k-1%
R322 U301B
R323 390 75k-1% MC33502D
1.65V ref
+3.3V_A
+
R324
8

C307 C306 100k-1%


100nF 3.3uF/10V 5

LM285M R325
U304 33k-1%
GNDA
4

GNDA

Figure 3-8. Current Amplifier

As shown in Figure 3-7, the currents cannot be measured at any moment. For example, the current flows
through Phase A (and shunt resistor R1) only if transistor Q2 is switched on. Likewise, the current in
Phase B can be measured if transistor Q4 is switched on, and the current in Phase C can be measured
if transistor Q6 is switched on. To get a moment of current sensing, a voltage shape analysis must be
done.
The voltage shapes of two different PWM periods are shown in Figure 3-11. The voltage shapes
correspond to center-aligned PWM sine wave modulation. As shown, the best moment of current
sampling is in the middle of the PWM period, where all bottom transistors are switched on.
To set the exact moment of sampling, the DSP56F805 family offers the ability to synchronize ADC and
PWM modules via the SYNC signal. This exceptional hardware feature, patented by Motorola, is used for
current sensing. The PWM outputs a synchronization pulse, which is connected as an input to the
synchronization module TC2 (Quad Timer C, counter/timer 2). A high-true pulse occurs for each reload

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

32 Freescale Semiconductor
System Blocks Concept

of the PWM, regardless of the state of the LDOK bit. The intended purpose of TC2 is to provide a
user-selectable delay between the PWM SYNC signal and the updating of the ADC values. A conversion
process can be initiated by the SYNC input, which is an output of TC2. The time diagram of the automatic
synchronization between PWM and ADC is shown in Figure 3-9.

PWM COUNTER

PWM SYNC

PWM
GENERATOR
OUTPUTS 0, 1
dead-time/2 dead-time/2

PWM
PINS 0, 1

POWER
STAGE dead-time dead-time
VOLTAGE

TC2
COUNTER
t1
TC2
OUTPUT
t2
ADC
CONVERSION

ADC
ISR

Figure 3-9. Time Diagram of PWM and ADC Synchronization

However, all three currents cannot be measured from one voltage shape. The PWM period II in
Figure 3-11 shows a moment when the bottom transistor of Phase A is switched on for a very short time.
If the on-time is shorter than a critical time, the current can not be accurately measured. The critical time
is given by hardware configuration (transistor commutation times, response delays of the processing
electronics, etc.). Therefore, only two currents are measured and a third current is calculated from the
following equation:
0 = iA + iB + iC
(3-5)
A decision must now be made about which phase current should be calculated. The simplest technique
is to calculate the current of the most positive voltage phase. For example, Phase A generates the most
positive voltage within section 0 - 60°, Phase B within section 60° - 120°, and so on; see Figure 3-11.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 33
System Concept

I. II.
PWM PERIOD PWM RELOAD

PHASE_A

PHASE_B

PHASE_C

critical pulse width


ADC sampling point
Figure 3-10. Voltage Shapes of Two Different PWM Periods
II. I.
1

0.8
duty cycle ratios

0.6

0.4
Phase A
0.2 Phase B
Phase C
0
0 60 120 180 240 300 360
angle

Sector 1 Sector 2 Sector 3 Sector 4 Sector 5 Sector 6


Figure 3-11. 3-phase Sine wave Voltages and Corresp. Sector Value
In this case, the output voltages are divided into six sectors, as shown in Figure 3-11. The current
calculation is then made according to the actual sector value.
Sectors 1 and 6:
iA = – iB – iC (3-6)
Sectors 2 and 3:
iB = – iA – iC (3-7)
Sectors 4 and 5:
iC = – iB – iA (3-8)

NOTE
The sector value is used for current calculation only, and has no other
meaning in the sine wave modulation. But if we use any type of space
vector modulation, we can get the sector value as part of space vector
calculation.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

34 Freescale Semiconductor
System Blocks Concept

3.3.3 Voltage Sensing


The DCBus voltage sensor is represented by a simple voltage divider. The DCBus voltage does not
change rapidly. It is nearly constant, with the ripple given by the power supply structure. If a bridge rectifier
is used for rectification of the AC line voltage, the ripple frequency is twice the AC line frequency. If the
power stage is designed correctly, the ripple amplitude should not exceed 10% of the nominal DCBus
value.
The measured DCBus voltage must be filtered to eliminate noise. One of the easiest and fastest
techniques is the first order filter, which calculates the average filtered value recursively from the last two
samples and coefficient C:
u DCBusFilt ( n + 1 ) = ( Cu DCBusFilt ( n + 1 ) – Cu DCBusFilt ( n ) ) – u (n) (3-9)
DCBusFilt
To speed up the initialization of the voltage sensing (the filter has exponential dependency with constant
of 1/N samples), the moving average filter, which calculates the average value from the last N samples,
can be used for initialization:
–N
u DCBusFilt =
∑n = 1 uDCBus ( n ) (3-10)

3.3.4 Power Module Temperature Sensing


The measured power module temperature is used for thermal protection The hardware realization is
shown in Figure 3-12. The circuit consists of four diodes connected in series, a bias resistor, and a noise
suppression capacitor. The four diodes have a combined temperature coefficient of 8.8 mV/οC. The
resulting signal, Temp_sense, is fed back to an A/D input, where software can be used to set safe
operating limits. In this application, the temperature, in Celsius, is calculated according to the conversion
equation:
Temp_sense – b
temp = -------------------------------------------- (3-11)
a
where:
temp Power module temperature in centigrades
Temp_sense Voltage drop on the diodes, which is measured by ADC [V]
a Diodes-dependent conversion constant (a = –0.0073738)
b Diodes-dependent conversion constant (b = 2.4596)

+3.3V_A

R1
2.2k - 1%

Temp_sense
D1 D2
BAV99LT1 BAV99LT1 C1
100nF

Figure 3-12. Temperature Sensing

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 35
System Concept

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

36 Freescale Semiconductor
Chapter 4
Hardware

4.1 Hardware Implementation


The application runs on Freescale’s motor control DSP56F805EVM, Freescale’s 3-Phase AC/BLDC high
voltage power stage and the BLDC high voltage motor with a quadrature encoder and integrated brake.
All components are an integral part of Freescale’s embedded motion control development tools.
Application hardware set-up is shown in Figure 4-1.
The system hardware set-up for a particular DSP varies only by the EVM Board used. The application
level of the software is identical for all DSPs. The EVM and chip differences are handled by the off-chip
software drivers for the particular DSP EVM board.

UNI-3 Connectors Table Encoder Connectors Table


Controller Conn. Controller Conn.
DSP56F803 P1 DSP56F803 J2
DSP56F805 J30 DSP56F805 J23
DSP56F807 J1 DSP56F807 J4

U2 U1
40w flat ribbon cable
L
J11.1
N J11.2 3ph AC/BLDC
J30
High Voltage
PE J14 (P1) DSP5680xEVM
Power Stage J1
100 - 240VAC
49 - 61 Hz RS232 JTAG
J13.1 J13.2 J13.3
White

Black
Red

MB1 Motor-Brake ECINLHIVACBLDC U3

SM40V SG40N In-line Opto Box


ECMTRHIVBLDC
RS232 to PC JTAG to PC
J5
RS232 Connectors Table JTAG Connectors Table
Controller Conn. Controller Conn.
White
Black

DSP56F803 P4 DSP56F803 J1
Red

DSP56F805 P3 DSP56F805 J29


DSP56F807 P3 DSP56F807 J3
Not Connected

Figure 4-1. High-Voltage Hardware System Configuration

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 37
Hardware

All system parts are supplied and documented in these references:


• U1 — Controller Board for the:
DSP56F805
Supplied as DSP56F805EVM
Described in the DSP56F805 Evaluation Module Hardware User’s Manual
• U2 — 3-phase AC/BLDC High-Voltage Power Stage
Supplied in a kit with the In-Line Optoisolation Box (Order #ECINLHIVACBLDC)
Described in the 3-phase Brushless DC High Voltage Power Stage Manual
• U3 — In-Line Optoisolation Box
Supplied in a kit with the 3-phase AC/BLDC High Voltage Power Stage (Order
#ECINLHIVACBLDC) or solo (Order #ECOPTINL)
Described in the In-Line Optoisolation Box Manual
• MB1 — Motor-Brake SM40V + SG40N
Supplied as Order #ECMTRHIVBLDC
WARNING
It is strongly recommended to use an In-line Optoisolation Box during
development to avoid any damage to the development equipment.
NOTE
The application software is targeted for a PM synchronous motor with sine
wave Back-EMF shape. In this application, a BLDC motor is used instead,
due to the availability of the BLDC motor (MB1). Although the Back-EMF
shape of this motor is not an ideal sine wave, it can be controlled by the
application software. The drive parameters will be ideal with a PMSM motor
with an exact sine wave Back-EMF shape.
A detailed description of the individual board can be found in the appropriate DSP56F80x Evaluation
Module User’s Manual, or on the Freescale web site http://www.freescale.com. The User’s Manual
includes the schematic of the board, description of individual function blocks, and a bill of materials. The
individual boards can be ordered from Freescale as standard products.

4.2 DSP56F805EVM Controller Board


The DSP56F805EVM is used to demonstrate the abilities of the DSP56F805 and to provide a hardware
tool allowing the development of applications that use the DSP56F805.
The DSP56F805EVM is an evaluation module board that includes a DSP56F805 part, peripheral
expansion connectors, external memory and a CAN interface. The expansion connectors are for signal
monitoring and user feature expandability.
The DSP56F805EVM is designed for the following purposes:
• Allowing new users to become familiar with the features of the 56800 architecture. The tools and
examples provided with the DSP56F805EVM facilitate evaluation of the feature set and the
benefits of the family.
• Serving as a platform for real-time software development. The tool suite enables the user to
develop and simulate routines, download the software to on-chip or on-board RAM, run it, and
TM
debug it using a debugger via the JTAG/OnCE port. The breakpoint features of the OnCE port

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

38 Freescale Semiconductor
DSP56F805EVM Controller Board

enable the user to easily specify complex break conditions and to execute user-developed
software at full-speed, until the break conditions are satisfied. The ability to examine and modify all
user accessible registers, memory and peripherals through the OnCE port greatly facilitates the
task of the developer.
• Serving as a platform for hardware development. The hardware platform enables the user to
connect external hardware peripherals. The on-board peripherals can be disabled, providing the
user with the ability to reassign any and all of the DSP's peripherals. The OnCE port's unobtrusive
design means that all of the memory on the board and on the DSP chip are available to the user.
The DSP56F805EVM provides the features necessary for a user to write and debug software,
demonstrate the functionality of that software and interface with the customer's application-specific
device(s). The DSP56F805EVM is flexible enough to allow a user to fully exploit the DSP56F805's
features to optimize the performance of their product, as shown in Figure 4-2.

DSP56F805

RESET 4-Channel
RESET SPI
LOGIC 10-bit D/A

MODE/IRQ RS-232 DSub


MODE/IRQ SCI #0
LOGIC Interface 9-Pin

Program Address, CAN Interface


Memory Data &
64Kx16-Bit SCI #1 Peripheral Debug LEDs
Control
CAN Expansion PWM LEDs
Data
TIMER Connector(s)
Memory Over V Sense
64Kx16-Bit GPIO
Over I Sense
Memory
Expansion Zero Crossing
Connector(s) Detect
JTAG PWM #1
JTAG/OnCE Primary
Connector A/D UNI-3

DSub Parallel JTAG Secondary


25-Pin Interface UNI-3
PWM #2

Low Freq. Power Supply


XTAL/EXTAL 3.3 V & 3.3V, 5.0V &
Crystal
GND 3.3VA

Figure 4-2. Block Diagram of the DSP56F805EVM

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 39
Hardware

4.3 3-Phase AC BLDC High Voltage Power Stage


Freescale’s embedded motion control series high-voltage (HV) ac power stage is a 180-watt (one-fourth
horsepower), 3-phase power stage that will operate off of dc input voltages from 140 to 230 volts and ac
line voltages from 100 to 240 volts. In combination with one of the embedded motion control series control
boards and an optoisolation board, it provides a software development platform that allows algorithms to
be written and tested without the need to design and build a power stage. It supports a wide variety of
algorithms for both ac induction and brushless dc (BLDC) motors.
Input connections are made via 40-pin ribbon cable connector J14. Power connections to the motor are
made on output connector J13. Phase A, phase B, and phase C are labeled PH_A, Ph_B, and Ph_C on
the board. Power requirements are met with a single external 140- to 230-volt dc power supply or an ac
line voltage. Either input is supplied through connector J11. Current measuring circuitry is set up for 2.93
amps full scale. Both bus and phase leg currents are measured. A cycle-by-cycle over-current trip point
is set at 2.69 amps.
The high-voltage ac power stage has both a printed circuit board and a power substrate. The printed
circuit board contains IGBT gate drive circuits, analog signal conditioning, low-voltage power supplies,
power factor control circuitry, and some of the large, passive, power components. All of the power
electronics which need to dissipate heat are mounted on the power substrate. This substrate includes the
power IGBTs, brake resistors, current sensing resistors, a power factor correction MOSFET, and
temperature sensing diodes. Figure 4-3 shows a block diagram.

HV POWER
INPUT SWITCH MODE PFC CONTROL
POWER SUPPLY dc BUS BRAKE

3-PHASE IGBT
POWER MODULE
3-PHASE AC
SIGNALS GATE
TO
TO/FROM DRIVERS MOTOR
CONTROL PHASE CURRENT
BOARD PHASE VOLTAGE
BUS CURRENT
BUS VOLTAGE
MONITOR
BOARD
ID BLOCK

ZERO CROSS
BACK-EMF SENSE

Figure 4-3. 3-Phase AC High Voltage Power Stage

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

40 Freescale Semiconductor
In-Line Optoisolation Box

The electrical characteristics in Table 4-1 apply to operation at 25°C with a 160-Vdc power supply voltage.

Table 4-1. Electrical Characteristics of Power Stage


Characteristic Symbol Min Typ Max Units
dc input voltage Vdc 140 160 230 V
ac input voltage Vac 100 208 240 V
Quiescent current ICC — 70 — mA
Min logic 1 input voltage VIH 2.0 — — V
Max logic 0 input voltage VIL — — 0.8 V
Input resistance RIn — 10 kΩ —
Analog output range VOut 0 — 3.3 V
Bus current sense voltage ISense — 563 — mV/A
Bus voltage sense voltage VBus — 8.09 — mV/V
Peak output current IPK — — 2.8 A
Brake resistor dissipation (continuous) PBK — — 50 W
Brake resistor dissipation (15 sec pk) PBK(Pk) — — 100 W
Total power dissipation Pdiss — — 85 W

4.4 In-Line Optoisolation Box


Freescale’s embedded motion control series In-Line Optoisolation box links JTAG and RS-232 signals
from a workstation to a controller connected to a high-voltage power stage. The box isolates the
workstation, and peripherals that may be attached to the workstation, from dangerous voltages that are
present on the power stage. The In-Line Optoisolation box’s galvanic isolation barrier also isolates signals
from high noise in the power stage and provides a noise-robust systems architecture.
Signal translation is virtually one-for-one. JTAG signals are passed from workstation to controller and
vice-versa via high-speed, high dv/dt, logic isolators. RS-232 signals are passed via high-speed
optocouplers. Delay times are typically 27 ns for JTAG signals, and 250 ns for RS-232 signals. Grounds
are separated by the optocouplers’ galvanic isolation barrier.
The In-Line Optoisolation box is connected to the target board JTAG connector by the 14-line flat ribbon
flex cable. There are two options on the workstation side: connection by the 25-line cable to the parallel
port or by the 14-line flat ribbon flex to the Host/Target Interface.
To create isolation of the RS-232 interface, the In-Line Optoisolation box is connected to the target board
by the 9-line cable as well as to the workstation.
A single external 12 V DC power supply meets the power requirements for the In-Line Optoisolation Box.
On-board power supply consists of isolated DC-to-DC converter from TRACO for the target side power
supply, and linear voltage regulators for the 5V and 3.3V power supply of the workstation side. Reverse
input voltage protection is provided by a rectifier bridge.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 41
Hardware

The electrical characteristics in Table 4-2 apply to operation at 25°C, and a 12-Vdc power supply voltage.

Table 4-2. Electrical Characteristics of In-Line Optoisolation Box


Characteristic Symbol Min Typ Max Units Notes

Power supply voltage VDC 10.8 12 13.2 V

Quiescent current ICC — 80 — mA

Min logic 1 input voltage (JTAG) VIH 2.0 — — V LVT logic (3.3 V)

Max Logic 0 input voltage (JTAG) VIL — — 0.8 V LVT logic (3.3 V)

Max RS232 mark input voltage VM — — –3.0 V

Min RS232 space input voltage VS — — 3.0 V

Max JTAG clock frequency FTCK — — 4 MHz

JTAG delay time tJDLY — 27 — ns

RS232 delay time tRDLY — 250 — ns

4.5 Motor-Brake Specifications


The AC induction motor-brake set incorporates a 3-phase AC induction motor and attached BLDC motor
brake. The AC induction motor has four poles. The incremental position encoder is coupled to the motor
shaft, and position Hall sensors are mounted between motor and brake. They allow sensing of the position
if required by the control algorithm. Detailed motor-brake specifications are listed in Table 4-3. In a target
application a customer specific motor is used.
Table 4-3. Motor — Brake Specifications
Set Manufactured EM Brno, Czech Republic
Motor Specification: AM40V
eMotor Type:
3-Phase AC Induction Motor
Pole-Number: 4
Nominal Speed: 1300 rpm
Nominal Voltage: 3 x 200 V
Nominal Current: 0.88 A
Brake Specification: SG40N
Brake Type:
3-Phase BLDC Motor
Nominal Voltage: 3 x 27 V
Nominal Current: 2.6 A
Pole-Number: 6
Nominal Speed: 1500 rpm
Position Encoder Baumer Electric
Type:
BHK 16.05A 1024-12-5
Pulses per Revolution: 1024

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

42 Freescale Semiconductor
Chapter 5
Software Design

5.1 Introduction
This section describes the design of the drive’s software blocks. The software description comprises
these topics:
• Main Software Flow Chart
• Data Flow
• State Diagram
For more information on the system blocks used, refer to 3.2 Vector Control Drive Concept.

5.2 Main Software Flow Chart


The main software flow chart incorporates the Main routine entered from Reset (see Figure 5-1) and
Interrupt states (see Figure 5-2, Figure 5-3). The Main routine includes the initialization of the DSP and
the main loop.
The software consist of processes: Application Control, PM Synchronous Motor (PMSM) Control, Analog
sensing, Position and Speed Measurement, Fault Control, and Brake Control.
The Application Control process is the highest software level which precedes settings for other software
levels. The input of this level is the Run/Stop switch, Up/Down buttons for manual control, and PC master
software (via the registers shown in 5.3 Data Flow). This process is handled by Application Control
Processing called from Main; see Figure 5-1.
The PMSM (PM Synchronous Motor) Control process provides most of the motor control functionality. It
is split into Current Processing and Speed Processing. Current Processing is called from ADC Complete
Interrupt (see Figure 5-2) once per two PWM reloads, with a period 125 µs. It can also be set to each
PWM reload (62.5 µs), but the PC master software recorder pcmasterdrvRecorder() must be removed
from the code. Speed Processing is called from the Quadrature Timer D0 Interrupt (see Figure 5-3) with
the period PER_TMR_POS_SPEED_US (900 µs). The advantage of splitting the current and the speed
control processes is that current control can be executed with a high priority and frequency of calls, while
the execution of the speed control is not that highly prioritized.
The Analog sensing process handles sensing, filtering and correction of analog variables (phase currents,
temperature, DCBus voltage). It is provided by Analog Sensing Processing (see Figure 5-2) and Analog
Sensing ADC Phase Set. Analog Sensing ADC Phase Set is split from Analog Sensing Processing
because it sets ADC according to the svmSector variable, calculated after PMSM Control Current
Processing.
Position and Speed Measurement processes are provided by hardware Timer modules and the functions
giving the actual speed and position; see 3.3.1 Position and Speed Sensing.
LED Indication Processing is called from Quadrature Timer D0 Interrupt, which provides the time base for
LED flashing.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 43
Software Design

Reset

DSP Initialization

Fault Control — Background:


if faultCtrlStatus - AnalogFaultEnbl
{check Undervoltage, Overheating
faults}
if Position sensing,Overvoltage,
Overcurrent faults
{set appFaultStatus
trigger beginning of Fault State}

Application Control — Processing:


according to appOpMode:
{control/check switch
set omega_required_mech}
according to appState:
{trigger appState Run/Stop/Init/
set PMSM Control Run/Stop
set Fault Control status
set Brake Control Run/Stop
set LED Indication}

Brake Control — Processing:


if u_dc_bus_filt > U_DCB_ON_BRAKE_SYSU
{Brake On}
if u_dc_bus_filt < U_DCB_OFF_BRAKE_SYSU
{Brake Off}

Figure 5-1. Software Flow Chart — General Overview I


The Fault Control process is split into Background and PWM Fault ISR. Background (see Figure 5-1)
checks the Overheating, Undervoltage and Position Sensing Faults. The PWM Fault ISR part (see
Figure 5-2) takes care of Overvoltage and Overcurrent Faults, which causes a PWM A Fault interrupt.
The Brake Control process is dedicated to the brake transistor control, which maintains the DCBus
voltage level. It is called from Main (see Figure 5-1).
The Up/Down Button and Switch Control processes are subprocesses of Application Control and are
described in 5.5.1.8 Run/Stop Switch and Button Control.
The Up/Down Button processes are split into Button Processing Interrupt, called from Quadrature Timer
D0 Interrupt (see Figure 5-3); Button Processing BackGround (inside Analog Sensing); Interrupt Up
Button; and Interrupt Down Button (see Figure 5-2).
The Switch process is split into Switch Filter Processing, called from Quadrature Timer D0 Interrupt (see
Figure 5-3); and Switch Get State, called from Application Control processing, which handles manual
switch control, and Switch Get State PC master software (in PC master application operating mode).

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

44 Freescale Semiconductor
Main Software Flow Chart

Interrupt Interrupt
ADC Complete Down Button

Analog Sensing- Processing Down Button — ISR part:


according to anSensingCtrlStatus if debounceCounterDown = 0:
sensing/initialization: set UP_BUTTON, buttonStatus
{sense Temperature debounceCounterDown =
calculate Filtered Temperature = DEBOUNCE_VALUE
sense, correct 2 Phase Currents
calculate 3 Phase Currents
sense Voltage
correct Voltage Return
calculate Filtered Voltage}

PMSM Control
-Current Processing:
proceeds according to pmsmCtrlStatus Interrupt
Up Button
sin cos generation:
get position from Position Mea-
surement Up Button — ISR part:
sin (theta_actual_el) if debounceCounterUp = 0:
cos (theta_actual_el) set UP_BUTTON, buttonStatus
debounceCounterUp =
= DEBOUNCE_VALUE
Current Control:
Currents Transformation (a,b,c to d-q)
(Field-Weakening Controller)
Return
Current d Regulator
Current q Regulator
Voltages Transformation (d-q to α,β)
DCBus Ripple Compensation
Space Vector Module sets pwmABC
Interrupt
PWM A Fault
PWM:
set duty cycles to pwmABC
Fault Control — PWM Fault ISR part:
if Overcurrent or Overvoltage:
Analog Sensing-ADC Phase Set {set appFaultStatus = Overvoltage /
set ADC converter phase current Overcurrent
samples - two (easily measured) triggers beginning of Fault State (disable PWM...)}
phases

Return
Return

Figure 5-2. Software Flow Chart — General Overview II

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 45
Software Design

Interrupt
D0 QTimer

Speed Measurement Processing

PMSM Control
Speed, Alignment Processing:
proceeds according to its status

get speed from Speed Measurement

pmsmCtrlStatus?

AlignFlag RunFlag
others

Alignment: Speed Control:


Software Timer Software Timer
if Timeout if Timeout:
{PMSM Control - End Alignment} {Field-Weakening Controller
Speed Regulator
Speed Ramp}

LED Indication Processing

Switch Filter Processing

Button Processing - Interrupt part


decrements debounceCounterUp(Down)

Return

Figure 5-3. S/W Flow Chart — General Overview III

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

46 Freescale Semiconductor
Data Flow

5.3 Data Flow


The PM synchronous motor vector control drive control algorithm is described in the data flow charts
shown in Figure 5-4 and Figure 5-5. The variables and constants described should be clear from their
names.

Start/Stop Up/Down PC Green LED


Switch Buttons Master

omega_reqPCM_mech, appOpMode appState


appPcmCtrlStatus

Application LED
Indication
Control brakeCtrlStatus
faultCtrlStatus

appFaultStatus omega_required_mech pmsmCtrlStatus


i_Sa, i_Sb, i_Sc
anSensingCtrlStatus u_dc_bus
temperature
PHASEA,PHASEB,INDEX
temperature_filt
Analog Sensing
PC
(Temperature, DCBus volt.
Master Position, Speed Phase Currents a,b,c)
Software Measurement
u_dc_bus
i_Sabc_comp svmSector
omega_actual_mech theta_actual_el u_dc_bus_filt

theta_align_el_C i_Sd_Alignment
PMSM
Control
I_SDQ_MAX
reloadSWtmrSpeedControl
SVM_INV_INDEX,
reloadSWtmrAlignment pwmABC u_Reserve_FW

SVM_INV_INDEX,
u_OverMax
PWM Generation
coefBEMF, coefBEMFShift

PWM Outputs

Pwm_AT Pwm_AB Pwm_BT Pwm_BB Pwm_CT Pwm_CB

Figure 5-4. Data Flow — Part 1

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 47
Software Design

PWM Faults
TEMPERATURE_MAX_F16 (Overvoltage/Overcurrent)

temperature_filt
u_dc_bus_min_fault_C i_Sabc_comp
Check Index
Position
u_dc_bus_filt
faultCtrlStatus

Fault Control
u_dc_bus_on_brake

Brake pmsmCtrlStatus appFaultStatus


Control PWMEN bit
PC
u_dc_bus_off_brake Master
Software

brakeCtrlStatus
PWM Generation
PWM Outputs

IO_BRAKE

Pwm_AT Pwm_AB Pwm_BT Pwm_BB Pwm_CT Pwm_CB

Figure 5-5. Data Flow — Part 2

The data flows consist of the processes described in the following sections.

5.3.1 Application Control Process


The Application Control process is the highest software level, which precedes settings for other software
levels.
The process state is determined by the variable appState.
The application can be controlled either:
• Manually
• From PC master software
The manual/PC master application operating mode is determined by the setting of appOpMode.
For manual control, the input of this process is the Run/Stop switch and Up/Down buttons.
The PC master software communicates via omega_reqPCM_mech, which is the required angular speed
from PC master software; appPcmCtrlStatus, which consists of the flags StartStopCtrl for Start/Stop;
RequestCtrl for changing the application’s operating mode appOpMode to manual or PC control; and
appFaultStatus, indicating faults.
The other processes are controlled by setting pmsmCtrlStatus, omega_required_mech,
appPcmCtrlStatus, brakeCtrlStatus, faultCtrlStatus.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

48 Freescale Semiconductor
Data Flow

5.3.2 LED Indication Process


This process controls the LED flashing according to appState.

5.3.3 Analog Sensing Process


The Analog sensing process handles sensing, filtering and correction of analog variables (phase currents,
temperature, DC Bus voltage).

5.3.4 Position and Speed Measurement Process


The Position and Speed Measurement process gives mechanical angular speed omega_actual_mech
and electrical position theta_actual_el.

5.3.5 PMSM (PM Synchronous Motor) Control Process


The PMSM (PM Synchronous Motor) Control process provides most of the motor control functionality.
Figure 5-6 shows the data flow inside the process PMSM Control. It shows essential subprocesses of the
process: Sine; Cosine Transformations; Current Control; Speed; Alignment Control; and
Field-Weakening.
The Sine and Cosine Transformations generate sinCos_theta_el with the components sine, cosine
according to electrical position theta_actual_el. It is provided in a look-up table.

5.3.5.1 Current Control Process


The data flow inside the process Current Control is detailed in Figure 5-7. The measured phase currents
i_Sabc_comp are transformed into i_SDQ_lin using sinCos_theta_el; see 2.3.3 Vector Control
Transformations. Both d and q components are regulated by independent PI regulators to i_SDQ_desired
values. The outputs of the regulators are u_SDQ_lin.
The Feed Forward process provides the following calculations:

coefBEMFShft (5-1)
u_SDQ.q_axis = coefBEMF ⋅ 2 ⋅ omega_actual_mech + u_SDQ_lin.q_axis

u_SDQ.d_axis = u_SDQ_lin.d_axis
(5-2)
The u_SDQ voltages are transformed into u_SAlphaBeta (see 2.3.4 PMSM Vector Control and
Field-Weakening Controller) by the Voltage Transformation process. The Scaling DCBus Ripple
Compensation block scales u_SAlphaBeta (according u_dc_bus_filt) to u_Salpha_RipElim, described in
the svmlimDcBusRip function in the Motor Control Library. The space vector modulation process
generates duty cycle pwmABC and svmSector according to u_Salpha_RipElim.
The u_LimitF16 is a voltage limit for current controllers. The u_OverMax constant is used to increase the
limitation of u_SDQ voltages over maximum SVM_INV_INDEX/2*u_dc_bus_filt determined by the DCBus
voltage and space vector modulation. Although the pwmABC will be limited by the space vector
modulation process functions, the reserve is used for field-weakening controller dynamics. In the stable
state, the u_SDQ voltages vector will not exceed u_S_max_FWLimit; see 5.3.5.4 Field-Weakening
Process.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 49
Software Design

omega_required_mech

Speed Ramp
reloadSWtmrAlignment Control reloadSWtmrSpeedControl

omega_actual_mech omega_desired_mech i_Sd_Alignment I_SDQ_MAX SVM_INV_INDEX,


u_Reserve_FW

PIRegParams_omega_mech.
theta_align_el_C PositivePILimit
Speed, Align
Control Field-Weakening

theta_actual_el
u_SDQ
i_SDQ_desired i_SDQ_desired
Sin, Cos q_axis d_axis
Transformation
pmsmCtrlStatus u_dc_bus_filt
sinCos_theta_el

coefBEMF, coefBEMFShift Current u_S_max_FWLimit


Control

i_Sabc_comp
svmSector

SVM_INV_INDEX, I_SDQ_MAX_F16 pwmABC


u_OverMax

Figure 5-6. Data Flow — PMSM Control

5.3.5.2 Speed Ramp


The process generates angular speed omega_desired_mech from angular speed omega_required_mech
with a linear ramp. The speed ramp is implemented so as not to saturate the speed regulator during
acceleration.

5.3.5.3 Speed, Alignment Control Process


The process controls the i_SDQ_desired.q_axis current according to the PMSM Control Process Status.
For Alignment status, it sets i_SDQ_desired.d_axis to i_Sd_Alignment and i_SDQ_desired.q_axis to 0.
For Run status, it controls the omega_actual_mech speed to omega_desired_mech by calculation of the
PI regulator with i_SDQ_desired.q_axis output.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

50 Freescale Semiconductor
Data Flow

i_Sabc_comp sinCos_theta_el

Current Transformation
a,b,c -> d-q

i_SDQ_desired.q_axis i_SDQ.q_axis i_SDQ.d_axis i_SDQ_desired.d_axis

u_LimitF16 I_SDQ_MAX_F16
Current q Current d
Regulator Regulator
omega_actual_mech
u_SDQ_lin.q_axis u_SDQ_lin.d_axis
pmsmCtrlStatus
coefBEMF, coefBEMFShift
Feed Forward

sinCos_theta_el u_SDQ
u_LimitF16

Voltage Transformation
d-q -> alpha, beta
SVM_INV_INDEX/2*
*u_dc_bus_filt +
+u_OverMax
u_SAlphaBeta

Scaling
DCBus Ripple
Compensation
u_dc_bus_filt SVM_INV_INDEX,
u_OverMax
u_Salpha_RipElim

Space Vector
Modulation

pwmABC svmSector

Figure 5-7. Data Flow — PMSM Control — Current Control

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 51
Software Design

5.3.5.4 Field-Weakening Process

u_dc_bus_filt SVM_INV_INDEX u_Reserve_FW

SVM_INV_INDEX/2*u_dc_bus_filt-u_Reserve_FW

0 - I_SDQ_MAX_F16
u_S_max_FWLimit

u_SD.d_axis +
max limit min limit i_SDQ_desired.d_axis
2 2 1/2 -
(d_axis +q_axis )
u_SD.q_axis PI regulator

Figure 5-8. Field-Weakening Controller


The field-weakening process provides control of i_SDQ_desired.d_axis in order to achieve higher motor
speeds by the field-weakening technique. The control algorithm is shown in Figure 5-8. The
u_S_max_FWLimit is computed from u_dc_bus_filt. The u_Reserve_FW is subtracted, in order to have
some voltage reserve, to the maximum SVM_INV_INDEX/2*u_dc_bus_filt determined by DCBus voltage
and space vector modulation. The reserve is used for field-weakening controller dynamics; in the stable
state, the u_SDQ voltages vector will not exceed u_S_max_FWLimit.
This process also provides voltage limitation i_SDQ_desired.d_axis2 + i_SDQ_desired.q_axis2 <
(I_SDQ_MAX_F16)2 by setting:

2 2
PIRegParams_omega_mech.PositivePILimit = I_SDQ_MAX_F16 – i_SDQ_desired.d_axis (5-3)

2 2
PIRegParams_omega_mech.NegativePILimit = – I_SDQ_MAX_F16 – i_SDQ_desired.d_axis (5-4)

5.3.6 Brake Control Process


The brake control process maintains DCBus voltage level via the IO_BRAKE driver, which controls the
brake switch. The voltage comparison levels are u_dc_bus_on_brake, which is initialized with either the
U_DCB_ON_BRAKE_MAINS230_F16 or U_DCB_ON_BRAKE_MAINS115_F16 constant according to
mains voltage, and u_dc_bus_off_brake, initialized with U_DCB_OFF_BRAKE_MAINS230_F16 or
U_DCB_OFF_BRAKE_MAINS115_F16.

5.3.7 Brake Control Process


The brake control process maintains DCBus voltage level via the IO_BRAKE driver, which controls the
brake switch. The voltage comparison levels are u_dc_bus_on_brake, which is initialized with either the
U_DCB_ON_BRAKE_MAINS230_F16 or U_DCB_ON_BRAKE_MAINS115_F16 constant according to
mains voltage, and u_dc_bus_off_brake, initialized with U_DCB_OFF_BRAKE_MAINS230_F16 or
U_DCB_OFF_BRAKE_MAINS115_F16.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

52 Freescale Semiconductor
State Diagram

5.3.8 PWM Generation Process


The PWM generation process controls the generation of PWM signals, driving the 3-phase inverter.
The input is pwmABC, with three PWM components scaled to the range <0,1> of type Frac16. The scaling
(according to PWM module setting) and the PWM module control (on the DSP) is provided by the PWM
driver.

5.3.9 Fault Control Process


The Fault Control process checks the Overheating, Undervoltage, Overvoltage, Overcurrent and Position
Sensing faults.
Overheating and Undervoltage are checked by the comparisons temperature_filt <
TEMPERATURE_MAX_F16 and u_dc_bus_filt < u_dc_bus_min_fault_C, where u_dc_bus_min_fault_C
is initialized with U_DCB_MIN_FAULT_MAINS230_F16 or U_DCB_MIN_FAULT_MAINS115_F16. The
Position Sensing fault is checked with the Check Index Position process.
The Overvoltage and Overcurrent faults are set in the PWMA Fault interrupt.

5.4 State Diagram


The software can be split into the processes shown in 5.3 Data Flow.
The following processes are described below:
• Application Control State Diagram
• PMSM Control State Diagram
• Fault Control State Diagram
• Analog Sensing State Diagram
All processes start with the DSP Initialization state after Reset.

5.4.1 DSP Initialization


The DSP Initialization state:
• Initializes:
– PWM
– Application Control
– PM Synchronous Motor Control
– Analog Sensing
– Brake Control
– Fault Control
– LED Indication
– Button Control
• Sets manual application operating mode
• Enables masked interrupts
• Application Control: Initialization Triggers, which set all affected processes to the Begin Application
Initialization state

5.4.2 Application Control State Diagram


The Application Control process is detailed in Figure 5-9.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 53
Software Design

Reset

DSP
Initialization

done

Application Control:
switchState = Stop &
Fault Control: faults cleared Init
Initializations proceeding
appState = APP_INIT
Init Fault Control (pcb identification)
set appOpMode

Application Control: appPcmCtrlStatus. switchState = Stop &


Fault RequestCtrl = 1 initializations finished
Fault Control:
Begin Fault switchState = Run
done Application Control:
Application Control: Stop
Application Control:
Fault Begin appState = APP_STOP
Begin Run
clear pmsmCtrlStatus.RunFlag set appState = APP_RUN
clear pmsmCtrlStatus.AlignFlag done
set appState = APP_FAULT
done
Application Control:
Begin Stop
Application Control:
set appState = APP_STOP
Run
appState = APP_RUN

switchState = Stop
Fault Control: Begin Fault

Figure 5-9. State Diagram – Application Control

After reset, the DSP Initialization state is entered. The peripherals and variables are initialized in this state,
and the application operating mode appOpMode is set to Manual Control.
When the state is finished, the Application Control Init state follows. As shown in Figure 5-9, appState =
APP_INIT; all subprocesses requiring initialization are proceeding; pcb identification is provided; the
PWM is disabled; and so no voltage is applied on motor phases.
If the appPcmCtrlStatus.RequestCtrl flag is set from PC master software, the application operating mode
appOpMode is toggled and the application operating mode can only be changed in this state. If the
switchState = Stop, the Application Control enters the Stop state.
The switchState is set according to the manual switch on the EVM or PC master software register
AppPcmCtrlStatus.StartStopCtrl, depending on the application operating mode.
In the Stop state, appState = APP_STOP and the PWM is disabled, so no voltage is applied on motor
phases. When switchState = Run, the Begin Run state is processed. If there is a request to change
application operating mode, appPcmCtrlStatus.RequestCtrl = 1, the application Init is entered and the
application operating mode request can only be accepted in the Init or Stop state by transition to the Init
state.
In the Begin Run state, all the processes provide settings to the Run state.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

54 Freescale Semiconductor
State Diagram

In the Run state, the PWM is enabled, so voltage is applied on motor phases. The motor is running
according to the state of all subprocesses. If switchState = Stop, the Stop state is entered.
If and fault is detected during the Begin Fault state, which is a subprocess of Fault control, the Begin Fault
state is entered. It sets appState = APP_FAULT; the PWM is disabled; and the subprocess PMSM Control
is set to Stop. The Fault state can only move onto the Init state when switchState = Stop, and the Fault
Control subprocess has successfully cleared all faults.

5.4.3 PMSM Control State Diagram


A state diagram of the Commutation Control process is illustrated in Figure 5-10.

Application Control: Init

PMSM Control:
Initialization
clear AlignInitDoneFlag
Application Control: Begin Running
done pmsmCtrlStatus.AlignInitDoneFlag = No

done
PMSM Control: PMSM Control:
Stop or Fault Begin Alignment
set Alignment current
PMSM Control: set Alignment timeout
Begin Running
Begin Stop or Fault set AlignFlag done
AlignInitDoneFlag = 1
clear RunFlag
clear AlignFlag
Application Control: Begin Stop/Fault PMSM Control:
Alignment
timeout search
Current ramp
done
PMSM Control:
PMSM Control: Alignment Timeout
Begin Run
Run set RunFlag PMSM Control:
End Alignment
done Set Zero Position
set AlignInitDoneFlag
clear AlignFlag

Figure 5-10. State Diagram — PMSM Control

When Application Control initializes, the PMSM Control subprocess initialization state is entered. The
AlignInitDoneFlag is cleared, which means that alignment can proceed. The next PMSM Control state is
Begin Stop or Fault. RunFlag and AlignFlag are cleared and the Stop or Fault state is entered. When
Application Control: Begin Run, the PMSM Control subprocess enters the Begin Alignment or Begin Run
state, depending on whether or not the alignment initialization has already proceeded (flagged by
AlignInitDoneFlag). The alignment state is necessary for setting the zero position of position sensing; see
3.3.1.4 Position Reset with Rotor Alignment. In the state Begin Alignment, the Alignment current and
duration are set; the alignment is provided by setting desired current for d_axis to i_Sd_Alignment and q_axis
to 0. The alignment state provides current control and timeout search. When alignment timeout occurs,

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 55
Software Design

End Alignment is entered. In that state, the Position Sensing Zero Position is set, so the position sensor
is aligned with the real vector of the rotor flux. When the End Alignment state ends, the PMSM Control
enters a regular Run state, where the motor is running at the required speed. If the Application Control
state is set to Begin Stop or Begin Fault, the PMSM Control enters the Begin Stop or Fault, then the Stop
or Fault.

5.4.4 Fault Control State Diagram


The state diagram of the Fault Control subprocess is illustrated in Figure 5-11. After the initialization, the
fault conditions are searched. If any fault occurs, the appFaultStatus variable is set according to detected
error; PWM is switched on (PWMEN bit = 0); the Fault state is entered. This state also causes Application
Control: Fault state. If the faults are successfully cleared, this is signaled to the Application Control
process. The Fault state is left when the Application Control Init state is entered.

Reset

Fault Control:
DSP Initialization

Application Control: Init

Fault Control:
Application Initialization
clear appFaultStatus
pcb identification

done

Fault Control:
No Fault
searching faults
Fault:
Undervoltage (filtered)
Overheating (filtered)
Overcurrent (fault pin)
Overvoltage (fault pin)
wrong PCB
Position Sensing fault
Fault Control:
Begin Fault
Application Control Begin Fault
setting of appFaultStatus
PWMEN bit = 0

done

Fault Control:
Fault
clear/test faults

Figure 5-11. State Diagram Fault Control

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

56 Freescale Semiconductor
Implementation Notes

5.4.5 Analog Sensing State Diagram


The state diagram of the Analog Sensing subprocess is shown in Figure 5-12. The DSP Initialization state
initializes hardware modules like ADC, synchronization with PWM, etc. In Begin Init, Initialization is
started, so the variables for initialization sum and the InitDoneFlag are cleared. In the Init Proceed state,
the temperature, DCBus voltage and phase current samples are sensed and summed. After required
analog sensing, Init samples are sensed, and the Init Finished state is entered. There, the samples’
average is calculated, from the sum divided by the number of analog sensing Init samples. According to
the phase currents’ average value, the phase current offsets are initialized.
All variable sensing is initialized and the state Init Done is entered, so the variables from analog sensing
are valid for other processes. In this state, temperature and DCBus voltage are filtered in first order filters.
Reset

Analog Sensing
DSP Initialization

Application Control: Begin Init

Analog Sensing: done Analog Sensing


Begin Init
Init. Proceed:
clear variables
sense and sum samples
clear InitDoneFlag
count samples
samples counter =
Application Control: Begin Init analog sensing init samples

Analog Sensing
Analog Sensing
Init Finished:
Init Done,
samples average
normal operation:
set current offsets
done
set InitDoneFlag

Figure 5-12. State Diagram — Analog Sensing

5.5 Implementation Notes


5.5.1 Scaling of Quantities
The PM synchronous motor vector control application uses a fractional representation for all real
quantities except time.
The PM synchronous motor vector control application uses a fractional representation for all real
quantities except time.
The N-bit signed fractional format is represented using 1.[N-1] format (1 sign bit, N-1 fractional bits).
Signed fractional numbers (SF) lie in the following range:
–[ N – 1 ]
– 1.0 ≤ SF ≤ +1.0 -2 (5-5)
For words and long-word signed fractions, the most negative number that can be represented is –1.0,
whose internal representation is $8000 and $80000000, respectively. The most positive word is $7FFF
or 1.0 –2–15, and the most positive long-word is $7FFFFFFF or 1.0 –2–31.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 57
Software Design

The following equation shows the relationship between the real and fractional representations:
Real Value
Fractional Value = -------------------------------------------------------------------- (5-6)
Real Quantity Range Max
where:
Fractional Value is the fractional representation of the real value [Frac16]
Real Value is the real value of the quantity [V, A, RPM, etc.]
Real Quantity Range Max is the maximum of the quantity range, defined in the application
[V, A, RPM, etc.]
The C language standard does not have any fractional variable type defined. Therefore, fractional
operations are provided by CodeWarrior intrinsics functions (e.g. mult_r() ). As a substitution for the
fractional type variables, the application uses types Frac16 and Frac32. These are in fact defined as
integer 16-bit signed variables and integer 32-bit signed variables. The difference between Frac16 and
pure integer variables is that Frac16 and Frac32 declared variables should only be used with fractional
operations (intrinsics functions).
A recalculation from real to a fractional form and Frac16, Frac32 value is made with the following
equations:
Real Value
Frac16 Value = 32768 ⋅ -------------------------------------------------------------------- (5-7)
Real Quantity Range Max
for Frac16 16-bit signed value and:
31 Real Value
Frac32 Value = 2 ⋅ -------------------------------------------------------------------- (5-8)
Real Quantity Range Max
for Frac32 32-bit signed value.
Real Value
Fractional Value = -------------------------------------------------------------------- (5-9)
Real Quantity Range Max
Fractional form, a conversion from Fraction Value to Frac16 and Frac32 Value can be provided by the C
language macro.

5.5.1.1 Voltage Scaling


Voltage scaling results from the sensing circuits of the hardware used; for details see the 3-Phase
AC/BLDC High-Voltage Power Stage User’s Manual.
Voltage quantities are scaled to the maximum measurable voltage, which is dependent on the hardware.
The relationship between real and fractional representations of voltage quantities is:
u Real
u Frac = -------------------------------------------------------- (5-10)
VOLT_RANGE_MAX
where:
uFrac Fractional representation of voltage quantities [-]
uReal Real voltage quantities in physical units [V]
VOLT_RANGE_MAX Defined voltage range maximum used for scaling in physical units[V]
In the application, the VOLT_RANGE_MAX value is the maximum measurable DCBus voltage:
VOLT_RANGE_MAX = 407 V
All application voltage variables are scaled in the same way (u_dc_bus, u_dc_bus_filt, u_SAlphaBeta,
u_SDQ, u_SAlphaBeta, and so on).

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

58 Freescale Semiconductor
Implementation Notes

5.5.1.2 Current Scaling


Current scaling also results from the sensing circuits of the hardware used; for details see 3-Phase
AC/BLDC High-Voltage Power Stage User’s Manual.
The relationship between real and fractional representation of current quantities is:
i Real
i Frac = ---------------------------------------------------------- (5-11)
CURR_RANGE_MAX
where:
iFrac Fractional representation of current quantities [-]
iReal Real current quantities in physical units [A]
CURR_RANGE_MAXDefined current range maximum used for scaling in physical units[A]
In the application, the CURR_RANGE_MAX value is the maximum measurable current:
CURR_RANGE_MAX = 5.86 A
All application current variables are scaled in the same way (components of i_Sabc_comp, i_SAlphaBeta,
i_SDQ, i_SDQ_desired, i_Sd_Alignment and so forth).
NOTE
As shown in 3-Phase AC/BLDC High-Voltage Power Stage User’s Manual,
the current sensing circuit provides measurement of the current in the
range from CURR_MIN = -2.93 A to CURR_MAX = +2.93 A, giving the
voltage for the ADC input ranges from 0 to 3.3 V with 1.65 V offset. The
DSP5680x’s ADC converter is able to automatically cancel (subtract) the
offset. The fractional representation of the measured current is then in the
range <-0.5, 0.5), while the possible representation of a fractional value is
<-1,1), as shown in (5-7). Therefore, CURR_RANGE_MAX is calculated
according to the following equation:
CURR_RANGE_MAX = CURR_MAX-CURR_MIN = 2 ⋅ CURR_MAX (5-12)

5.5.1.3 Speed Scaling


Speed quantities are scaled to the defined speed range maximum, which should be set lower than all
speed variables in the application, so it was set higher than the maximum mechanical speed of the drive.
The relationship between real and fractional representation of speed quantities is:
ω Real
ω Frac = --------------------------------------------------------------- (5-13)
OMEGA_RANGE_MAX
where:
ωFrac Fractional representation of speed quantities [-]
ωReal Real speed quantities in physical units [rpm]
OMEGA_RANGE_MAX Defined speed range maximum used for scaling in physical units [rpm]
In the application, the OMEGA_RANGE_MAX value is defined as:
OMEGA_RANGE_MAX = 6000rpm
Other speed variables are scaled in the same way (omega_reqPCM_mech, omega_desired_mech,
omega_required_mech, omega_reqMAX_mech, omega_reqMIN_mech, omega_actual_mech).

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 59
Software Design

The relation between speed scaling and speed measurement with encoder is described in 3.3.1.2 Speed
Sensing. In the final software, the constant OMEGA_SCALE is identical with the scaling constant k in
equations (3-1) and (3-3), and OMEGA_RANGE_MAX is ωMax.

5.5.1.4 Position Scaling


Position Scaling is described in 3.3.1.1 Position Sensing.

5.5.1.5 Temperature Scaling


As shown in 3.3.4 Power Module Temperature Sensing, the temperature variable does not have a linear
dependency.

5.5.1.6 PI Controller Tuning


The application consists of four PI controllers. Two controllers are used for the Id and Iq currents, one for
speed control and the other for field-weakening. The controller’s constants are given by simulation in
Mathlab and were experimentally specified. A detailed description of controller tuning is beyond the scope
of this application note.

5.5.1.7 Subprocesses Relation and State Transitions


As shown in 5.2 Main Software Flow Chart and 5.4 State Diagram, the software is split into subprocesses
according to functionality. The application code is designed to be able to extract individual processes,
such as Analog Sensing, and use them for customer applications. The C language functions dedicated
for each process are located in one place in the software, so they can be easily used for other
applications. The function naming usually starts with the name of the process, for example,
AnalogSensingInitProceed().
As 5.4 State Diagram shows, the processes’ or subprocesses’, state transients have some mutual
relations. For example, Application Control: Begin Initialization is a condition for transient of the Analog
Sensing process: Init Done to Begin Init state. In the code, the interface between processes is provided
via “trigger” functions. The naming convention is for these functions is: <ProcessName><State>Trig().
The functionality will be explained in following example:
The “trigger” function Process1StateTrig() is called from process1. The transient functions of process2,
process3,etc., which must be triggered by Process1State, are put inside the Process1StateTrig().

5.5.1.8 Run/Stop Switch and Button Control


In the DSP56F805EVM and the DSP56F807EVM, the Run/Stop switch is connected to a GPIO pin. The
state of the Run/Stop switch can be read directly from the GPIO Data Register. In the DSP56F803EVM,
there are fewer free GPIO pins, so the switch is connected to ADC input AN7 and the switch status is
obtained with the AD Converter. The switch logical status is obtained by comparing the measured value
with the threshold value.
Also, the buttons are usually connected to GPIO pins. But in this application, the buttons are connected
to IQRA and IRQB interrupts. The EVM boards do not resolve the button contact bouncing, which may
occur while pushing and releasing the button, so this issue must be resolved by software.
The IRQA and IRQB interrupts are maskable interrupts connected directly to the DSP’s core. The IRQA
and IRQB lines are internally synchronized with the processor’s internal clock and can be programmed
as level-sensitive or edge-sensitive. The IRQA and IRQB interrupts have no interrupt flag, so this flag is

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

60 Freescale Semiconductor
Implementation Notes

replaced by a software flag. The following algorithm is used to check the state of the IRQ line and is
described for one interrupt.
The IRQ interrupt is set to be negative-level-sensitive. When the button is pressed, the logical level 0 is
applied on the IRQ line and the interrupt occurs; see Figure 5-13. To avoid multiple calls of ISR due to
contact bounces, the ISR disables the IRQ interrupt, sets the debounce counter to a predefined value and
sets the variable buttonStatus to 1. The variable buttonStatus represents the interrupt flag. Using the
DSP56F80x’s software timer, the ButtonProcessing function is periodically called, as shown in
Figure 5-13. The function ButtonProcessing decrements the debounce counter and if the counter is 0, the
IRQ interrupt is again enabled. The button press is checked by the ButtonEdge function; see Figure 5-14.
When the variable buttonStatus is set, the ButtonEdge function returns “1” and clears buttonStatus. When
the variable buttonStatus is not set, the ButtonEdge function returns “0”.
According to the ButtonProcessing calling period, the value of the debounce counter should be set close
to 180ms. This value is sufficient to prevent multiple IRQ ISR calls due to contact bounces.

IRQ ISR ButtonProcessing

Decrement debounce
Disable IRQ Interrupt
counter

Set buttonStatus
No
Debounce counter = 0

Set debounce counter Yes

Enable IRQ interrupt

Return

Return

Figure 5-13. Button Control — IRQ ISR and ButtonProcessing

ButtonEdge

No
buttonStatus=1

Yes

Clear buttonStatus

Return 1 Return 0

Figure 5-14. Button Control — ButtonEdge

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 61
Software Design

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

62 Freescale Semiconductor
Chapter 6
Application Setup

6.1 Application Description


The vector control algorithm is calculated on the Freescale DSP56F805. The algorithm generates the
3-phase PWM signals for Permanent Magnet (PM) synchronous motor inverter according to the
user-required inputs, measured and calculated signals.
The concept of the PMSM drive incorporates the following hardware components:
• BLDC motor-brake set
• 3-phase AC/BLDC high voltage power stage
• DSP56F805EVM boards
• ECOPTINL — In-line optoisolation box, which is connected between the host computer and the
DSP56F805EVM
The BLDC motor--brake set incorporates a 3-phase BLDC motor and attached BLDC motor brake. The
BLDC motor has six poles. The incremental position sensor (encoder) is coupled on the motor shaft and
position Hall Sensors are mounted between the motor and the brake. They allow to position sensing if
required by the control algorithm. The detailed motor-brake specifications are listed in Table 6-1.

NOTE
The application software is targeted for PM Synchronous motor with
sine-wave Back-EMF shape. In this particular demo application, the BLDC
motor is used instead, due to the availability of the BLDC motor-Brake
SM40V+SG40N, supplied as ECMTRHIVBLDC. Although the Back-EMF
shape of this motor is not ideally sine-wave, it can be controlled by the
application software. The drive parameters will be improved when a PMSM
motor with an exact sine-wave Back-EMF shape is used.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 63
Application Setup

Table 6-1. Motor--Brake Specifications


Motor Characteristics
Motor Type 6 poles, 3-phase, star connected, BLDC motor
Speed Range 2500 rpm (at 310 V)
Max. Electrical Power 150 W
Phase Voltage 3*220 V
Phase Current 0.55 A
Drive Characteristics
Speed Range < 2500 rpm
Input Voltage 310 V DC
Max DC Bus Voltage 380 V
Control Algorithm Speed Closed Loop Control
Optoisolation Required
Motor Characteristics
Motor Type 6 poles,3-phase, star connected, BLDC motor
Speed Range 2500 rpm (at 310 V)
Max. Electrical Power 150 W

The drive can be controlled in two different operating modes:


• Manual operating mode — the required speed is set by UP/DOWN push buttons and the drive is
started and stopped by the RUN/STOP switch on the EVM board.
• PC master software operating mode — the required speed is set by the PC master software active
bar graph and the drive is started and stopped by the START MOTOR and STOP MOTOR controls.
Measured quantities:
• DC Bus voltage
• Phase currents (phase A, phase B, phase C)
• Power module temperature
• Rotor speed
The faults used for drive protection:
• Overvoltage (PC master software error message = Overvoltage fault)
• Undervoltage (PC master software error message = Undervoltage fault)
• Overcurrent (PC master software error message = Overcurrent fault)
• Overheating (PC master software error message = Overheating fault)
• Wrong-hardware (PC master software error message = Wrong HW used)

6.1.1 Control Process


After RESET, the drive enters the INIT state in manual operation mode.When the RUN/STOP switch is
detected in the STOP position and there are no faults pending, the STOP application state is entered.
Otherwise, the drive waits in the INIT state or if faults are detected, the drive goes to the FAULT state. In
the INIT and STOP states, the operation mode can be changed from PC master software. In the manual
operational mode, the application is operated by the RUN/STOP switch and UP/DOWN buttons; in the
PCMaster remote mode, the application is operated remotely by PCMaster.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

64 Freescale Semiconductor
Application Description

When the Start command is accepted (using the RUN/STOP Switch or PC master software command),
the rotor position is aligned to a predefined position to obtain a known rotor position. The rotor alignment
is done at the first start command only. Required speed is then calculated according to UP/DOWN push
buttons or PC master software commands (if in PC master software remote mode). The required speed
goes through an acceleration/deceleration ramp. The comparison between the actual speed command
and the measured speed generates a speed error. Based on the error, the speed controller generates a
stator current Is_qReq, which corresponds to torque. A second part of the stator current Is_dReq, which
corresponds to flux, is given by the Field Weakening Controller. Simultaneously, the stator currents Is_a,
Is_b and Is_c are measured and transformed from instantaneous values to the stationary reference frame
α, β and consecutively to the rotary reference frame d-q (Clarke-Park transformation). Based on the errors
between required and actual currents in the rotary reference frame, the current controllers generate
output voltages Us_q and Us_d (in the rotary reference frame d-q). The voltages Us_q and Us_d are
transformed back to the stationary reference frame α, β and, after DC Bus ripple elimination, are
recalculated to the 3-phase voltage system which is applied on the motor.

6.1.2 Drive Protection


The DC Bus voltage, DC Bus current and power stage temperature are measured during the control
process. They protect the drive from over voltage, undervoltage, overcurrent and overheating. The
undervoltage and overheating protection is performed by software, while the overcurrent and over voltage
fault signal utilizes a fault input of the DSP. The power stage is identified using board identification. If the
correct power stage is not identified, the fault “Wrong Power Stage” disables the drive operation. Line
voltage is measured during application initialization and the application automatically adjusts itself to run
at either 115 V AC or 230 V AC, depending on the measured value.
If any of the above-mentioned faults occur, the motor control PWM outputs are disabled to protect the
drive, and the application enters the FAULT state. The FAULT state can be left only when the fault
conditions disappear and the RUN/STOP switch is moved to the STOP position manual mode and by the
PC master software in the PC master software remote mode.
The application can run on:
• External RAM or Flash
• 3-Phase AC/BLDC High-Voltage Power Stage powered by 115 V AC or 230 V AC
• Manual or PC master software Operating Mode
The correct power stage and voltage level is identified automatically and the appropriate constants are
set.
The 3-phase PM synchronous motor control application can operate in two modes:
1. Manual Operating Mode
The drive is controlled by the RUN/STOP switch (S6). The motor speed is set by the UP (S2-IRQB)
and DOWN (S1-IRQA) push buttons; see Figure 6-1. If the application runs and motor spinning is
disabled (i.e., the system is ready) the USER LED (LED3, shown in Figure 6-2) will blink. When
motor spinning is enabled, the USER LED is On. Refer to Table 6-2 for application states.
2. PC master software (Remote) Operating Mode
The drive is controlled remotely from a PC through the SCI communication channel of the DSP
device via an RS-232 physical interface. The drive is enabled by the RUN/STOP switch, which can
be used to safely stop the application at any time. PC master software enables to set the required
speed of the motor.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 65
Application Setup

Figure 6-1. RUN/STOP Switch and UP/DOWN Buttons

Figure 6-2. USER and PWM LEDs at DSP56F805EVM

Table 6-2. Motor Application States


Application State Motor State Green LED State
Stopped Stopped Blinking at a frequency of 2Hz
Running Spinning On
Fault Stopped Blinking at a frequency of 8Hz

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

66 Freescale Semiconductor
Application Description

The following PC master software control actions are supported:


• Set PC master software Mode of the motor control system
• Set Manual Mode of the motor control system
• Start the motor
• Stop the motor
• Set the Required Speed of the motor
PC master software displays the following information:
• Required Speed of the motor
• Actual Speed of the motor
• Application status — Init/Stop/Run/Fault
• DC Bus voltage level
• Identified line voltage
• Fault Status — No_Fault/Overvoltage/Overcurrent/Undervoltage/Overheating
• Identified Power Stage
Start the PC master software window’s application, 3ph_pmsm_vector_control.pmp. Figure 6-3 illustrates
the PC master software control window after this project has been launched.

Figure 6-3. PC Master Software Control Window

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 67
Application Setup

NOTE
If the PC master software project (.pmp file) is unable to control the
application, it is possible that the wrong load map (.elf file) has been
selected. PC master software uses the load map to determine addresses
for global variables being monitored. Once the PC master software project
has been launched, this option may be selected in the PC master software
window under Project/Select Other Map FileReload.

6.2 Application Set-Up


Figure 6-4 illustrates the hardware set-up for the 3-phase PM Synchronous Motor Control application.
The EVM board, power stage and motor are mounted into a suitcase for demonstration purposes.

Figure 6-4. Set-up of the 3-phase PMSM Control Application

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

68 Freescale Semiconductor
Application Set-Up

WARNING
Danger, high-voltage--risk of electric shock!
The application PCB modules and serial interface (connector, cable)
are not electrically isolated from the mains voltage--they are live.
Use the In-line Optoisolation Box (ECOPTINL) between the PC and
DSP56805 EVM as protection from dangerous voltage on the PC-user
side, and to prevent damage to the PC and other hardware.
Do not touch any part of the EVM or the serial cable between the EVM
and the In-line Optoisolation Box unless you are using an insulation
transformer. The application is designed to be fully controllable only
from PC master software.
To avoid inadvertently touching live parts, use plastic covers.
In the rest of this application, the description supposes use of the
insulation transformer.
The correct order of phases (phase A, phase B, phase C) for the PM Synchronous motor is:
• phase A = white wire
• phase B = red wire
• phase C = black wire
When facing a motor shaft, if the phase order is: phase A, phase B, phase C, the motor shaft should rotate
clockwise (i.e., positive direction, positive speed).
For detailed information, see the DSP56F805 Evaluation Module Hardware Reference Manual. The serial
cable is needed for the PC master software debugging/control.
The system consists of the following components:
• BLDC Motor Type SM 40 V, EM Brno s.r.o., Czech Republic
• Load Type SG 40N, EM Brno s.r.o., Czech RepublicDSP56F805 Board:
• Encoder BHK 16.05A1024-12-5, Baumer Electric, Switzerland
• 3-ph AC BLDC HiV Power Stage 180W
• In-line Optoisolation Box (ECOPTINL) + JTAG cable
• Two serial cables - needed for the PC master software debugging tool only.
• The parallel cable - needed for the Metrowerks Code Warrior debugging and s/w loading.

6.2.1 PM Synchronous Motor Versus BLDC Motor


The application software is targeted for PM Synchronous motor with sine-wave Back-EMF shape. In this
particular demo application, the BLDC motor is used instead, due to the availability of the BLDC
motor--Brake SM40V+SG40N, supplied as ECMTRHIVBLDC. Although the Back-EMF shape of this
motor is not ideally sine-wave, it can be controlled by the application software. The drive parameters will
be improved when a PMSM motor with an exact sine-wave Back-EMF shape is used.

6.2.2 DSP56F805EVM Application Set-Up


To execute the Three-Phase PM Synchronous Motor Vector Control, the DSP56F805EVM board requires
the strap settings shown in Figure 6-5 and Table 6-3.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 69
Application Setup

9 7 3 3
2 8 7
1 6 4 2
JG6 3 1 1 1
3 JG14 JG12 JG13 1
JG10 2
JG4
3 1 USER
9
6
3
7
4
J23 J24
3 1
1 3 3
JG14 2 2
JG10
JG17 1 1
PWM

JG15 Y1
JG6
1
JG12 JG13

1 DSP56F805EVM JTAG
JG4
1
JG16
JG15 JG1 JG2 1
1 JG18

1 U1 JG16 J29

JG1 1
JG3 JG8 JG8
S/N
U15
3 S4 S5 S6
JG7
JG9 1
JG5
GP1 GP2 RUN/STOP U9 U10
S1 S2 S3
JG11
P1 P1 JG5
1 LED3
P3 IRQA IRQB RESET
JG2
3

JG9 JG3 3 1 JG7


1 2
JG18 JG17
JG11
7 8

Figure 6-5. DSP56F805EVM Jumper Reference

Table 6-3. DSP56F805EVM Jumper Settings


Jumper Group Comment Connections
JG1 PD0 input selected as a high 1-2
JG2 PD1 input selected as a high 1-2
JG3 Primary UNI-3 serial selected 1-2, 3-4, 5-6, 7-8
JG4 Secondary UNI-3 serial selected 1-2, 3-4, 5-6, 7-8
JG5 Enable on-board parallel JTAG Command Converter Interface NC
JG6 Use on-board crystal for DSP oscillator input 2-3
JG7 Select DSP’s Mode 0 operation upon exit from reset 1-2
JG8 Enable on-board SRAM 1-2
JG9 Enable RS-232 output 1-2
JG10 Secondary UNI-3 Analog temperature input unused NC
JG11 Use Host power for Host target interface 1-2
JG12 Primary Encoder input selected for quadrature encoder signals 2-3, 5-6, 8-9
JG13 Secondary Encoder input selected 2-3, 5-6, 8-9
JG14 Primary UNI-3 3-Phase Current Sense selected as Analog Inputs 2-3, 5-6, 8-9
JG15 Secondary UNI-3 Phase A Overcurrent selected for FAULTA1 1-2
JG16 Secondary UNI-3 Phase B Overcurrent selected for FAULTB1 1-2
JG17 CAN termination unselected NC
JG18 Use on-board crystal for DSP oscillator input 1-2

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

70 Freescale Semiconductor
Projects Files

NOTE
When running the EVM target system in a stand-alone mode from Flash,
the JG5 jumper must be set in the 1-2 configuration to disable the command
converter parallel port interface.

6.3 Projects Files


The Three-Phase PM Synchronous Motor Vector Control application is composed of the following files:
• ...\3ph_pmsm_vector_control_sa\3ph_pmsm_vector_control.c, main program
• ...\3ph_pmsm_vector_control_sa\3ph_pmsm_vector_control_sa.mcp, application project file
• ...\3ph_pmsm_vector_control_sa\ApplicationConfig\appconfig.h, application configuration
file
• ...\3ph_pmsm_vector_control_sa\SystemConfig\ExtRam\linker_ram.cmd, linker command
file for external RAM
• ...\3ph_pmsm_vector_control_sa\SystemConfig\Flash\linker_flash.cmd, linker command file
for Flash
• ...\3ph_pmsm_vector_control_sa\SystemConfig\Flash\flash.cfg, configuration file for Flash
• ...\3ph_pmsm_vector_control_sa\PCMaster\3ph_pmsm_vector_control.pmp, PC master
software file
These files are located in the application folder.
• ...\controller_new.c, .h: source and header files for PI controller
• ...\ramp.c, .h: source and header files for ramp generation
• ...\svm.c, .h: source and header files for space vector modulation
• ...\cptrfm.c, .h: source and header files for Clark and Park transformation
• ...\mfr16.c, .h, mfr32.c, .h, mfr32sqrt.asm, portasm.h: source, header and asm files providing
fractional math intrinsics
Other functions used in the application:
• ...\boardId.c, .h: source and header files for the board identification function
The application can run:
• Using DSP56800_Quick_Start environment
• Stand Alone
In case the application is using libraries of the DSP5680_Quick_Start tool, the application project file
refers to the necessary resources (algorithms and peripheral drivers) of the tool.
In case the application is running stand-alone, all the necessary resources (algorithms and peripheral
drivers) are part of the application project file. All the resources are copied into the following folder under
the application folder so the libraries of the DSP56800_Quick_Start are not required any more:
• ...\3ph_pmsm_vector_control_sa\src\include, folder for general C-header files
• ...\3ph_pmsm_vector_control_sa\src\dsp56805, folder for the device specific source files, e.g.
drivers
• ...\3ph_pmsm_vector_control_sa\src\pc_master_support, folder for PC master software
source files
• ...\3ph_pmsm_vector_control_sa\src\algorithms\, folder for algorithms

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 71
Application Setup

6.4 Application Build and Execute


When building the Three-Phase PM Synchronous Motor Vector Control, the user can create an
application that runs from internal Flash or External RAM. To select the type of application to build, open
the 3ph_pmsm_vector_control.mcp project and select the target build type, as shown in Figure 6-6. A
definition of the projects associated with these target build types may be viewed under the Targets tab of
the project window.

Figure 6-6. Target Build Selection

The project may now be built by executing the Make command, as shown in Figure 6-7. This will build
and link the Three-Phase PM Synchronous Motor Vector Control Application and all needed Metrowerks
and Quick_Start libraries.

Figure 6-7. Execute Make Command

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

72 Freescale Semiconductor
Application Build and Execute

To execute the Three-Phase PM Synchronous Motor Vector Control application, select Project\Debug in
the CodeWarrior IDE, followed by the Run command. For more help with these commands, refer to the
CodeWarrior tutorial documentation in the following file located in the CodeWarrior installation folder:
<...>\CodeWarrior Documentation\PDF\Targeting_DSP56800.pdf
If the Flash target is selected, CodeWarrior will automatically program the internal Flash of the DSP with
the executable generated during Build. If the External RAM target is selected, the executable will be
loaded to off-chip RAM.
Once Flash has been programmed with the executable, the EVM target system may be run in a
stand-alone mode from Flash. To do this, set the JG5 jumper in the 1-2 configuration to disable the
parallel port, and press the RESET button.
Once the application is running, move the RUN/STOP switch to the RUN position and set the required
speed using the UP/DOWN push buttons. Pressing the UP/DOWN buttons should incrementally increase
the motor speed until it reaches maximum speed. If successful, the motor will be spinning.
NOTE
If the RUN/STOP switch is set to the RUN position when the application
starts, toggle the RUN/STOP switch between the STOP and RUN positions
to enable motor spinning. This is a protection feature that prevents the
motor from starting when the application is executed from CodeWarrior.
You should also see a lighted green LED, which indicates that the application is running. If the application
is stopped, the green LED will blink at a 2 Hz frequency. If an Undervoltage fault occurs, the green LED
will blink at a frequency of 8 Hz.

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 73
Application Setup

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

74 Freescale Semiconductor
Appendix A
References

1. Design of Brushless Permanent-magnet Motors, J.R. Hendershot JR and T.J.E. Miller, Magna
Physics Publishing and Clarendon Press, 1994
2. Brushless DC Motor Control using the MC68HC708MC4, AN1702/D, John Deatherage and Jeff
Hunsinger, Motorola
3. DSP56F805 Evaluation Module Hardware User’s Manual, DSP56F805EVMUM/D, Motorola
4. 3-Phase AC/BLDC High-Voltage Power Stage User’s Manual, MEMC3PBLDCPSUM/D, Motorola,
2000
5. DSP56F800 Family Manual, DSP56F800FM/D, Motorola
6. Evaluation Motor Board User’s Manual, MEMCEVMBUM/D, Motorola
7. Embedded Software Development Kit for 56800/56800E, MSW3SDK000AA, available on
Freescale SPS web page, Motorola, 2001
8. Sensorless Vector and Direct Torque Control, P. Vas (1998), Oxford University Press, ISBN
0-19-856465-1, New York.
9. Elektricke pohony, Caha, Z.; Cerny, M. (1990), SNTL, ISBN 80-03-00417-7, Praha.
10. Freescale SPS web page: http://www.freescale.com
11. CodeWarrior for Motorola DSP56800 Embedded Systems, CWDSP56800, Metrowerks 2001
12. DSP56F805 Evaluation Module Hardware User’s Manual, DSP56F805EVMUM/D, Motorola 2001
13. Motorola Embedded Motion Control 3-Phase AC BLDC High-Voltage Power Stage Stage User’s
Manual, ECOPTHIVACBLDC, Motorola 2000
14. Motorola Embedded Motion Control In-Line Optoisolation Box User’s Manual, MEMCILOBUM/D,
Motorola 2000
15. User Manual for PC master software, Motorola 2001
16. DSP56800_Quick_Start User’s Manual, MCSL 2002
17. Motor Control Algorithms Description, MCSL 2002

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 75
3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

76 Freescale Semiconductor
Appendix B
Glossary

AC — Alternating Current
ADC — See “analogue-to-digital converter”
brush — A component transferring electrical power from non-rotational terminals, mounted on the stator,
to the rotor
BLDC — Brushless dc motor
commutation — A process providing the creation of a rotation field by switching of power transistor
(electronic replacement of brush and commutator)
commutator — A mechanical device alternating DC current in DC commutator motor and providing
rotation of DC commutator motor
COP — Computer Operating Properly timer
DC — Direct Current
DSP — Digital Signal Processor
DSP56F80x — A Freescale family of 16-bit DSPs dedicated for motor control
DT — see “Dead Time (DT)”
Dead Time (DT) — short time that must be inserted between the turning off of one transistor in the inverter
half bridge and turning on of the complementary transistor due to the limited switching speed of
the transistors
duty cycle — A ratio of the amount of time the signal is on versus the time it is off. Duty cycle is usually
represented by a percentage.
GPIO — General Purpose Input/Output
Hall Sensors — A position sensor giving six defined events (each 60 electrical degrees) per electrical
revolution (for 3-phase motor)
HV — High Voltage (115 V AC or 230 V AC)
interrupt — A temporary break in the sequential execution of a program to respond to signals from
peripheral devices by executing a subroutine
input/output (I/O) — Input/output interfaces between a computer system and the external world. A CPU
reads an input to sense the level of an external signal and writes to an output to change the level
on an external signal
JTAG — Interface allowing On-Chip Emulation and Programming
LED — Light Emitting Diode

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

Freescale Semiconductor 77
logic 1 — A voltage level approximately equal to the input power voltage (VDD)
logic 0 — A voltage level approximately equal to the ground voltage (VSS)
LV — Low Voltage (12 V DC)
PI controller — Proportional-Integral controller
phase-locked loop (PLL) — A clock generator circuit in which a voltage controlled oscillator produces
an oscillation which is synchronized to a reference signal
PM — Permanent Magnet
PMSM — Permanent Magnet Synchronous Motor
PWM — Pulse Width Modulation
Quadrature Decoder — A module providing decoding of position from a quadrature encoder mounted
on a motor shaft
Quad Timer — A module with four 16-bit timers
reset — To force a device to a known condition
RPM — Revolutions per minute
SCI — See “serial communication interface module (SCI)”
serial communications interface module (SCI) — A module that supports asynchronous
communication
serial peripheral interface module (SPI) — A module that supports synchronous communication
software — Instructions and data that control the operation of a microcontroller
software interrupt (SWI) — An instruction that causes an interrupt and its associated vector fetch
SPI — See “serial peripheral interface module (SPI)”
timer — A module used to relate events in a system to a point in time

3-Phase PMSM Vector Control Designer Reference Manual, Rev. 2

78 Freescale Semiconductor
How to Reach Us: Information in this document is provided solely to enable system and software implementers to use
Freescale Semiconductor products. There are no express or implied copyright licenses granted
USA/Europe/Locations not listed: hereunder to design or fabricate any integrated circuits or integrated circuits based on the information
Freescale Semiconductor Literature Distribution in this document.
P.O. Box 5405, Denver, Colorado 80217
1-800-521-6274 or 480-768-2130 Freescale Semiconductor reserves the right to make changes without further notice to any products
herein. Freescale Semiconductor makes no warranty, representation or guarantee regarding the
Japan:
suitability of its products for any particular purpose, nor does Freescale Semiconductor assume any
Freescale Semiconductor Japan Ltd.
SPS, Technical Information Center liability arising out of the application or use of any product or circuit, and specifically disclaims any
3-20-1, Minami-Azabu and all liability, including without limitation consequential or incidental damages. “Typical” parameters
Minato-ku
which may be provided in Freescale Semiconductor data sheets and/or specifications can and do
Tokyo 106-8573, Japan
81-3-3440-3569 vary in different applications and actual performance may vary over time. All operating parameters,
including “Typicals” must be validated for each customer application by customer’s technical experts.
Asia/Pacific:
Freescale Semiconductor does not convey any license under its patent rights nor the rights of others.
Freescale Semiconductor H.K. Ltd.
2 Dai King Street Freescale Semiconductor products are not designed, intended, or authorized for use as components
Tai Po Industrial Estate in systems intended for surgical implant into the body, or other applications intended to support or
Tai Po, N.T. Hong Kong
sustain life, or for any other application in which the failure of the Freescale Semiconductor product
852-26668334
could create a situation where personal injury or death may occur. Should Buyer purchase or use
Learn More: Freescale Semiconductor products for any such unintended or unauthorized application, Buyer shall
For more information about Freescale
indemnify and hold Freescale Semiconductor and its officers, employees, subsidiaries, affiliates, and
Semiconductor products, please visit
http://www.freescale.com distributors harmless against all claims, costs, damages, and expenses, and reasonable attorney
fees arising out of, directly or indirectly, any claim of personal injury or death associated with such
unintended or unauthorized use, even if such claim alleges that Freescale Semiconductor was
negligent regarding the design or manufacture of the part.

Freescale™ and the Freescale logo are trademarks of Freescale Semiconductor, Inc. All other
product or service names are the property of their respective owners.
© Freescale Semiconductor, Inc. 2004.

DRM063
Rev. 2, 08/2004

You might also like