ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

Complete Circuit Design of DC Motor Driver 50 V, 10 A - Power Electronics

Updated on February 14, 2013



This is the final stage of the design for a 50 V, 10 A DC motor drive. You can follow the link(s) below to the previous article(s) that this hub builds up on.


Hardware implementation of simulated circuit.
Hardware implementation of simulated circuit.

The Final Circuit !

Now considering all the previous stages we have covered in our design we can finally evaluate our final circuit.

The figure on the right shows the hardware implementation of the complete circuit on a veroboard.

At the top you can see 10 switches. Eight (8) of these switches are used to give the microcontroller input speed in form of 1s and 0s. The MSB decides the direction of the rotation and the other 7 digits define the speed in that particular direction. This is defined in Stage 6.

You can also see the AND, NOT gate ICs used in the top left of the circuit. The purpose of these ICs is defined in Stage 3: Generation of Dead-Time / Dead-Band in Electronic Circuits. Similarly a little below the microcontroller you can see the buffer mentioned in Stage 3.

Below that comes our stage for optical isolation. We need to provide isolation between the microcontroller stage and the power stage (for explained reasons view Stage 4: Optical Isolation and Gate Drive Circuits.

The gate drive circuit (Stage 4) is labelled at the bottom of the brown veroboard. In my circuit implementation, I used a lot of variable resistors (the blue components in the gate drive circuit). This is actually NOT a good practice since for PCB and permanent implementation we must always fixed value resistors so as not to alter resistance values.

Finally on the green veroboard we have the H-Bridge implementation using the components discussed in Stage 2. The H-Bridge has two connection leads protruding out of the circuit which can be connected as input to the motor. For other connection and leads see the Instructions section below in this hub.

Now we only have to consider the final isolation (feedback isolation) provided between the motor and the microcontroller shown in the flowchart shown in the hub: Design of DC Motor Drive (50V, 10A). Thankfully this isolation is provided through the Optical Encoder used for measuring the speed and direction of the motor (See details here).

Hence we complete our circuit.

The Final Simulation and Complete Circuit Design on Multisim

Shown below is the final circuit design simulated in Multisim.

Evaluation and Comments

The hardwired circuit was tested by using a motor as the load. The circuit worked quite perfectly up to VCC of 20V. The 50 V design specification could not be met as the switches had low Vgs specification of 20V. Since gate-drive signals go up to VCC, high Vgs would damage the transistors. To avoid this, zener diodes can be attached to the gates of the transistors. However for my implemenation, the zener could not work correctly because their switching frequency was not high enough and thus I had to limit the Vcc to 20V.

The current drawn by the motor was quite low (about 1.4A) compared to the design specification of 10A. The motor ran smoothly without load and with load (load was applied by applying friction to the motor shaft). The H-Bridge was tested at maximum of 1.8A and worked fine with minimal heating. Heat-sinks worked perfectly and the circuit drove the motor.

The snapshots from the oscilloscope are shown in the figures below.

The first two figures (Figure 1 and 2) show the signals with dead-time introduced. These signals are taken at the input to the buffer and show the gate level output. Figure 1 shows the NMOS signals while Figure 2 shows the PMOS signals.

Figure 3 and Figure 4 show these signals as the appear out of the opto-coupler. These amplitude of these signals has been limited deliberately to around 5 V, as at high voltages the switching operation of the opto-coupler is disturbed.

Notice all the waveforms are of frequency 7.86 kHz which falls within our specifications.

Finally Figure 5 shows the gate-signals as they appear on the NMOS gates of the H-Bridge. Similarly Figure 6 shows the gate signals on opposite legs of the H-Bridge and shows how the NMOS is switched off while the PMOS is on and vice-versa.

Figure 1: Gate Level Delay – NMOS Signals
Figure 1: Gate Level Delay – NMOS Signals
Figure 2: Gate Level  Delay – PMOS Signals
Figure 2: Gate Level Delay – PMOS Signals
Figure 3: Optocoupler Output – NMOS signals
Figure 3: Optocoupler Output – NMOS signals
Figure 4: Optocoupler output – PMOS signals
Figure 4: Optocoupler output – PMOS signals
Figure 5: NMOS gate signals with H-Bridge attached
Figure 5: NMOS gate signals with H-Bridge attached
Figure 6: PMOS and NMOS signals (opposite  legs) PMOS is on and  NMOS is off and vice versa.
Figure 6: PMOS and NMOS signals (opposite legs) PMOS is on and NMOS is off and vice versa.

The Learning Outcomes

What would you learn if you do this project? Here is a brief list of the concepts and learning outcomes involved in this project (DC Motor Drive 50 V, 10 A).

  • H-Bridge operation and concept of controlled power.
  • Selection of components and gravity of time characteristics of different components
  • Concept of free-wheeling diodes and their need when using inductive loads.
  • Design and Implementation of H-Bridge.
  • Understood the need of dead-band and learnt how to introduce it.
  • Gate-drive circuitry for PMOS and NMOS switches.
  • Optical isolation of modules.
  • Use of microcontroller to generate PWM wave.
  • Proportional feedback control to vary duty-cycle of PWM wave.
  • Reading and translating motor speed into digital signals.
  • Use of veroboard, soldering, heat-sinks and bases.

Proposed Improvements

The circuit could have been improved in number of ways:

  1. Using zener diodes to limit Vgs would have made it possible to use a higher Vcc voltage.
  2. Using an optical encoder with more pulses per revolution would result in higher resolution. The current optical encoder gives 500 counts per revolution and even after processing and doubling the counts, 1 count represents the jump of around 20 rpm. In our code, we have not doubled the counts by the optical encoder and thus we have further less resolution of speed control.
  3. The current program only features speed control for four discrete speeds. A more diverse and better program would enable us to control speed ranging from 0 rpm to 1500 rpm, with 20 rpm step. Such a program was constructed and simulated in Keil µVision and the simulation went perfectly. However, when the microcontroller was programmed with this hex file, problems occurred in duty-cycle control and thus we had to go back to the old code.
  4. Constructing a PCB would result in a better power module with higher ratings. Veroboards cannot handle large currents and can become quite messy and space consuming.
  5. Integrating a simple +5 volt supply within the circuit using LM7805 linear regulator would have made the circuit cleaner. A simple voltage divider can be implemented to drop voltage from the Vcc.
  6. Two pin-connectors or more pin-connectors can be integrated to avoid wires emerging from the circuit.

Instructions to operate the Fabricated Circuit

Although you do not have the fabricated circuit in front of you but these instructions would give you an idea of how you could make connections and possibly write a well outlined report on your project.

Layout of the Circuit on Varoboard
Layout of the Circuit on Varoboard

The hardwired circuit had been properly labeled on the veroboard. Nonetheless the layout of the circuit is shown in the figure above. This figure corresponds to the first figure in this hub, which is a photograph of the circuit on veroboard.

The input (reference counts) can be set from the switches in the top right corner. The switch labeled R is used to reset the microcontroller. The switch crossed out is not connected and merely attached for any further improvements in the circuit where it may be of any use.

The other 8 switches are labeled from 0 to 7 in order as they are connected to Port 2 of the microcontroller. For example to enter 8F into Port 2, we would enable switches 3, 4, 5, 6 and 7 to high and switches 0, 1 and 2 to low (ground).

The circuit requires voltage input in four forms:

  1. Vcc: the supply voltage wires are labeled Vcc.
  2. +5 V: this is required to operate the NAND, NOT ICs and the microcontroller. Currently no independent +5 V supply has been integrated into the circuit.
  3. Ground: the wires requiring ground are labeled GND
  4. Counts: this is the signal from the optical encoder.

Moreover, two more wires come out from the veroboard at the bottom of the circuit, these are to be connected to the motor. These wires are from the H-Bridge.



You can follow the link(s) below to the previous article(s) that this hub builds up on.


If you have any queries or want help on your project / design, fire away and I shall get back to you as soon as possible with as much help as I can provide.

Your comments are most appreciated and would be an enlightening beacon for my hubs to come.


    0 of 8192 characters used
    Post Comment

    • profile image

      Alex 4 years ago

      Thank you reddview. Problem resolved. The issue was in the opto coupler as you suggested. You rock ! thanks

    • reddview profile image

      reddview 4 years ago

      I would suggest a troubleshoot with at different stages. First of all check your microcontroller output, then signals at various points in the gate drive stage and finally check signals at each power transistor. Since you say that the circuit works at no load, I expect that the tests for troubleshooting separately will all be positive. No need to worry but this is an important standard way of troubleshooting.

      From my intuition and engineering knowledge, I would suggest you look into the gate drive circuit at load conditions. My guess would be that the Opto coupler current is insufficient for ON conditions when the collector current in the power transistor rises. Check at various loads (start with small currents). In any case of further problems, I would suggest you send a list of components you have used and the important waveforms. I will see what I can do.

    • profile image

      Alex 4 years ago

      Hello reddview,

      great article ... the design is good and works fine in simulation...

      However I implemented with the same mosfets as you have suggested and the drive circuit works fine at no load. When I attach the motor, the output is not the expected and the drive circuit sort of fails.

      Could you help me out here?