Open access peer-reviewed chapter

Design of Controller for Brushless Direct Current Motors Using FPGA

Written By

Suneeta Harlapur

Submitted: 22 March 2018 Reviewed: 02 July 2018 Published: 28 November 2018

DOI: 10.5772/intechopen.79873

From the Edited Volume

Digital Systems

Edited by Vahid Asadpour

Chapter metrics overview

1,657 Chapter Downloads

View Full Metrics


Brushless direct current (BLDC) motors are the pillar of advanced controllers. This chapter presents a portion of the central thoughts hidden plan of FPGA based BLDC motor controller. It covers a considerable amount of ground, yet at a genuinely essential level to make central ideas clear. This chapter gives a great strategy which is useful to aid the outline and control of financially savvy, productive brushless direct current (BLDC) motors. Speed Control of BLDC motor utilizing PIC microcontrollers requires more equipment, and with the accessibility of FPGA adaptable highlights inspired to build up a financially savvy and dependable control with variable speed go. In this chapter, utilizing an algorithm which utilizes the Resolver signals caught from the motor is created with the assistance of Resolver to Digital converters. The VHDL program produces the terminating beats required to drive the MOSFETs of three stage completely controlled scaffold converter driven by drivers. The provided outline procedure is observed to be great and proficient.


  • BLDC
  • FPGA
  • RDC
  • VHDL

1. Introduction

Brushless direct current (BLDC) motor controllers have received considerable attention in the past few years. The desirable features of brushed DC torque motors like torque-speed characteristics, accurate speed control are maintained in the BLDC motor approach, the problems posed by brush DC motors like arcing, which cause high EMI and frequent changes of brushes and commutators have been eliminated or minimized.

1.1. History of brushless DC motor

Most punctual confirmation of brushless DC motor was in 1962, directly after Wilson and Trickey shaped a “DC Machine with Solid State Commutation”. It was in this way created owing to summit torque, summit reaction drive for claim to fame dedications, for example, tape and circle drives for PCs, mechanical autonomy and situating frameworks and in flying machine where brush wear was grievous because of low stickiness. In conjunction with approach denoting equivalence capable and changeless magnet stuffs with high power, high voltage transistors in the ahead of schedule to mid-1980s the capacity to create such a motor reasonable turned into a realism.

Impressive primary substantial brushless DC motors of 50 hp. were composed at POWERTEC Industrial Corporation in the late 1980s by Robert E. Lordo. Today, the greater part of the significant motor makers makes brushless DC motors. Brushless DC drives take a shot at the same standard as all DC motors yet the motor is worked “back to front” along with the fields on top of pole of the motor and its “armature” all things considered. The fields turn and effective “armature” stays stationary.

Keeping in mind the end goal to copy the activity of the commutator, an encoder was mounted in contact with the pole of the motor to intellect the position of the fields on the pole. The controller “meets” the attractive position data and decides through the basic rationale of which motor lead ought to have current setting off to a winding and which motor lead ought to give back the current from the winding.

1.2. Construction and operation of the BLDC motor

A BLDC motor comprises of a stator made out of covered steel stacked up to convey the windings. The brushless motors are for the most part controlled by utilizing a three stage power semiconductor span. In numerous motors, the essential quantities of loops are imitated to have littler introduction steps and littler torque swells.

A BLDC motor configured in a star pattern with three coils is considered here. The rotor in a typical BLDC motor is made out of permanent magnets. Increasing the number of poles does give better torque at the cost of reduced maximum possible speed [1, 2]. The motor requires a rotor position sensor for beginning and giving legitimate substitution succession to turn on the force gadgets in the inverter span. In light of the rotor position, the force gadgets are commutated successively for each 60°.

The replacement succession for BLDC motors has three windings. The first is empowered to positive force (current goes into the winding), the second twisting is for negative force (current ways out from the winding) and the third one is in a non-invigorated condition. The cooperation between the attractive field produced by the stator loops and the lasting magnets makes the required torque.

The BLDC motor drive framework comprises of a DC power supply changed on to the stator stage windings of the motor through an inverter by force exchanging gadgets. The discovery of rotor position decides the exchanging arrangement of the inverter. Three-stage inverters are for the most part used to control these motors, requiring a rotor position sensor for beginning and giving the correct recompense grouping to stator windings. These position sensors can be Hall sensors, Resolvers, or Absolute position optical encoders. Though sensorless BLDC motor control is feasible using back-EMFs, they have some disadvantages. But still, sensorless control of BLDC motor has been receiving great interest.

1.3. Electronic commutation

With a specific end goal to make the motor pivot, the curls are invigorated in a pre-characterized succession, making the motor turn in one course. Running the grouping in the converse request makes the motor keep running the other way. The course of the current decides the introduction of the attractive field created by the loop.

The attractive field pulls in and repulses the changeless magnet rotor. By changing the present stream in the curls and in this way the extremity of the attractive fields at the right minute and in the right succession, the motor turns. Rotation of the current through the stator curls is alluded to as ‘commutation’.

A three-phase BLDC motor has six steps of commutation. In six-step commutation, only two out of the three BLDC motor windings are used at a time, as shown in Figure 1 using a three-phase half-bridge inverter arrangement.

Figure 1.

Six stages of commutation.

Steps are equivalent to 60 electrical degrees, and so, six steps make a full, 360° rotation. When each of the six states in the recompense arrangement has been executed, the grouping is rehashed to proceed with the revolution of the motor. This succession speaks to a full electrical turn. For motors with numerous post matches, the electrical revolution does not relate to mechanical turn.

In a BLDC motor, the commutation is achieved using feedback sensors. Hall Effect Sensors, Resolvers and Optical encoders are commonly used feedback sensors. In this research work, a resolver fitted to the motor shaft has been used as the feedback device, whose two signals are converted to a precise shaft position, using a resolver to digital converter (AD2S83) with a resolution of 12-bits.

1.3.1. Three phase inverter

The BLDC motor control comprises of creating DC streams in the motor stages. This control is subdivided into two free operations: in the first place, stator and rotor flux synchronization, and after that control of the present worth. Both operations are acknowledged through the three-stage inverter portrayed in the accompanying plan. The flux synchronization has been gotten from the position data originating from resolver. From the position, the controller characterizes the proper pair of MOSFET, which must be driven. The direction of the current to a settled 60° reference can be figured it out as shown in Table 1 and circuit shown in Figure 2 respectively.

Sectors degreeCoil excitationMOSFET ON
0–60°W-VT5, T4
60–120°W-UT5, T2
120–180°V-UT3, T2
180–240°V-WT3, T6
240–300°U-WT1, T6
300–360°U-VT1, T4

Table 1.

Sector degree versus coil excitation.

Figure 2.

Three phase inverter and stator coil excitation.

1.3.2. Resolvers

Resolvers are transducers that convert the angular position and/or angular velocity of a rotating shaft to an electrical signal. They deliver signals proportional to the sine and cosine of the shaft angle. When the rotor is excited with a reference voltage of the form A sin(ωt), the voltages induced across the two stator windings are of the form:


where ‘θ’ is the shaft angle of the rotor. The two resolver signal outputs form the input to a Resolver to Digital Converter (RDC), which digitizes the shaft angle information into a digital format, for further processing by FPGA for the electronic commutation.

1.3.3. Resolver to digital converter

The resolver mounted on the motor shaft takes a shot at the transformer standard. The essential twisting is on the resolver’s rotor and relying upon its pole edge, the prompted voltage in the two auxiliary windings are moved by 90°. The position information is obtained in a digital format using an Analog Devices Resolver to Digital Converter (RDC) [3]. The RDC also provides velocity signal in analog form with a 32.5 rps/V dc.

1.3.4. Field programmable gate array (FPGA)

The Spartan-3 FPGA [4] with advanced process technology delivers more functionality in BLDC motor controller. The Spartan-3 family is a superior alternative to mask programmed ASICs and avoids the high initial cost, lengthy development cycles, and the inherent inflexibility of conventional ASICs. FPGA programmability permits modifications in the field without disturbing the hardware setup.

The Spartan-3 XC3S400 gadget comprises of 896 Configurable Logic Blocks (CLBs) contains RAM-based Look-Up Tables (LUTs) to actualize rationale and capacity components so that there will be no need of outer memory. Info/yield Blocks (IOBs) control the stream of information between the 116 I/O sets. Computerized Clock Manager (DCM) squares give self-aligning, completely advanced answers for conveying, deferring, duplicating, partitioning, and stage moving clock signals.

1.4. Implementation of BLDC motor controller on FPGA

The Spartan-3 XC3S400 FPGA has a very good alternative to mask programmed ASICs and avoids the high cost and lengthy development process of BLDC motor controller.

1.4.1. Implementation of open loop BLDC motor controller on FPGA

The FPGA works like a controller to read the information from resolver to digital converter and to perform suitable electronic commutation. The controller is implemented for the constant speed by controlling the width of the PWM signal. The scheme of FPGA role in open loop BLDC motor controller is shown in Figure 3.

Figure 3.

FPGA as open loop BLDC motor controller.

1.4.2. Implementation of closed loop BLDC motor controller on FPGA

The FPGA forms a controller to read-in resolver to digital converter, perform electronic commutation by reading the servo error from the analog to digital converter.

The speed control function is implemented by controlling the width of the PWM gated pulses. This plan of FPGA part in BLDC motor speed controller is appeared in Figure 4.

Figure 4.

FPGA as closed loop BLDC motor controller. Speed controller of BLDC motor

The variable velocity control of a BLDC motor is acquired by utilizing inverter yield which has a variable recurrence and variable voltage source. The speed of the motor is related to the number of poles and frequency of the supplied voltage as below:


where N—speed in rpm, P—number of poles and f—frequency of the supply.

The selected BLDC motor for this work has six numbers of poles and tested for 1000 rpm speed with a 50 Hz power supply. The period of this supply is 20 ms and the duration of each stage of the six step commutation is 3.33 ms. Thus, the set frequency is configured according to the rpm required.

The variable voltage is obtained, using PWM technique by modifying the width of the pulses. This variable voltage sends variable current to the stator coils based on the required torque of the load.

In this work, a hybrid approach has been selected for the BLDC motor speed controller. The speed and the current loops have been implemented by using an operational amplifier. The digitized error is read by using the FPGA to compute the pulse width of the waveform to be sent to the gate control of MOSFETs. A closed loop speed controller requires a reference speed to follow. The motor speed is fed back to determine the error between the reference speed and motor speed. This error in speed is amplified and fed to a current loop where the actual motor current measured with LEM sensor is compared for the determination of the torque error. This error is amplified and fed to a 8-bit Analog to Digital Converter (Model ADC.0800). This digitized error is fed to the FPGA to determine the PWM width so as to control the stator voltage and current to the stator coils. This speed-controller scheme is shown in Figure 5.

Figure 5.

Block diagram of speed control of a BLDC motor.

The generated gated signals are passed on through opto-isolators to the MOSFET gate drivers. The three-phase full bridge circuit drives the motor. This BLDC motor has a resolver mounted on its rotor shaft to provide its angular position. This motor delivers a rated torque of 0.41 Nm at the rated speed of 7000 rpm.

The gate pulses generated from the FPGA are given to the driver circuit which consists of MOSFET- based inverter bridge. When the motor starts rotating, the coils are energized correspondent with the sequence.

The three phase currents are controlled to incorporate a quasi-square waveform in order to synchronize with back EMF to produce the constant torque. The resolver provides the motor shaft position in terms of sine and cosine waveforms.

The resolver feedback signals are in analog form, which is converted in to digital form with the help of resolver- to- digital converter (RDC). The RDC outputs are fed to the FPGA for further processing. The controller provides two error signals Velocity feedback and Current feedback.


2. Summary

FPGA has been interfaced to a RDC for position feedback information of the motor shaft. The electronic commutation sequence is generated and loaded into the output port to drive the three-phase inverter. The speed control is implemented with suitable analog electronics in conjunction with PWM determination, both for duty cycle and frequency by the FPGA. Mathematical modeling of the BLDC motors has been implemented and the MATLAB Simulink simulation is carried out to determine the static and dynamic response of the drive system.

Because of their elite brushless DC motors are increasing wide acknowledgment in telescope drive framework. The velocity control for a brushless DC engine has been outlined and incorporated into a FPGA. Keeping in mind the end goal to control motor torque, current controller is composed and executed in a FPGA SPARTAN-3.


  1. 1. Gambhir R, Jha AK. Brushless DC motor: Construction and applications. International Journal of Engineering Science. 2013;2(5):72-77
  2. 2. Jahns TM, Kliman GB, Neumann TW. Interior permanent magnet synchronous motors for adjustable-speed drives. IEEE Transaction on Industrial Application. 1986;35:738-746
  3. 3. Analog Devices AD2S83 Data Sheets
  4. 4. Xilinx Spartan 3 Family Data Sheets

Written By

Suneeta Harlapur

Submitted: 22 March 2018 Reviewed: 02 July 2018 Published: 28 November 2018