We detect you are using an unsupported browser. For the best experience, please visit the site using Chrome, Firefox, Safari, or Edge. X

Brushed DC (BDC) motors get their name from the brushes that are used for commutation. Because its speed and torque are proportional to the applied voltage and current, a BDC motor is easy to control. BDC motors are cost-effective, easy to design in and simple to control, making them suitable for use in a wide variety of applications. Our microcontrollers (MCUs), gate drivers and single-chip motor drivers enable you to create compact, robust and efficient brushed DC drives.

Typical Applications


  • Toys
  • Cellular phones
  • Wipers
  • Door locks
  • Window lifts
  • Antenna retractors
  • Seat adjusters
  • Anti-lock braking systems
  • Cordless hand drills
  • Electric lawnmowers

Recommended Products for Brushed DC Motor Control


Products On/Off
Control
Speed
Control
(Open/Closed)
Torque
Control
Position
Control
(QEI)
Microcontrollers (MCUs) 8-bit PIC® and
AVR® MCUs
8-bit PIC and
AVR MCUs
8-bit PIC and
AVR MCUs
 
High-Side Switch
Gate Driver
MIC50xx MIC50xx MIC50xx MIC50xx
Low-Side Switch
Gate Driver
MIC44xx MIC44xx MIC44xx MIC44xx
Bidirectional
Gate Drivers
ATA6823C
ATA6824C
MIC4606
ATA6823C
ATA6824C
MIC4606
ATA6823C
ATA6824C
MIC4606
ATA6823C
ATA6824C
MIC4606
Print

Some Basics About Brushed DC Motors


How a Brushed DC Motor Works

  • Typically, the rotor, also known as the armature, has windings that terminate on a commutator
  • Brushes make and break contact with commutation segments to commutate power to the armature
  • The stator, or outer cylinder, of a permanent magnet DC motor has two or more magnets
  • The opposite polarities of the energized winding and the stator magnets attract, causing the rotor to rotate until it is aligned with the stator
  • As the rotor comes into alignment, the brushes move across the commutator contacts and energize the next winding

Brushed DC Motor Characteristics

  • Good controllability: on/off, proportional
  • Linear torque/current curve
  • Speed proportional to voltage applied
  • Requires maintenance
  • Low overloading capability
  • Low heat dissipation

Implementing Brushed DC Motor Control


How It Works


The speed of the brushed DC motor is controlled by the voltage applied to the armature, and the torque by the armature current. The flux and the torque can easily be controlled separately. This is the main principle on which all the modern control methods now rely. The controller is used to regulate the torque, speed, position or direction of the motor. Control can be implemented either in open or closed loop and the system can use feedback from optical encoder and limit switches.

Microcontroller Features for Bushed DC Motor Control


Basic I/O On/off control
Capture/Compare/Pulse-Width Modulation (CCP) Variable speed, torque
Comparators Overcurrent detection and protection
Analog-to-Digital Converters (ADCs) Motor voltage, current measurement and analog control input
Programable Gain Amplifiers (PGAs) Current measurement for torque control
Quadrature Encoder Interface (QEI) Interface with optical encoders

Gate Driver Configuration


Unidirectional Low-Side Configuration

This drive can control a BDC motor in one direction and is often used in safety-critical applications.

Unidirectional High-Side Configuration

This lowest-cost drive technique enables most applications to simply use an output pin from a PIC® or AVR® MCU to turn on the MOSFET.

Bidirectional H-Bridge Configuration

This drive can control a BDC motor in both directions.

Motor Control Hardware and Software Solutions


Featured Software Tools

Motor Control Application Algorithm and Software Library

To support the development of motor applications, we provide Brushed DC motor control examples.

MPLAB® X Integrated Development Environment (IDE)

MPLAB X Integrated Development Environment (IDE) is an expandable, highly configurable software program that incorporates powerful tools to help you discover, configure, develop, debug and qualify embedded designs for Microchip’s microcontrollers and digital signal controllers.

MPLAB Code Configurator (MCC)

MPLAB Code Configurator (MCC) is a free, graphical programming environment that generates seamless, easy-to-understand C code to be inserted into your project.

Featured Hardware Tools

Products

We're having trouble displaying information on this page right now. Please visit our Parametric Chart tool to search these products and their data.
View All Parametrics
Product Status Automotive Recommended 5K Pricing Family Max CPU Speed (MHz) CPU Speed (MIPS/DMIPS) Part Family FPU Operation Voltage Max (V) Temp Range Min Temp Range Max Max I/O Pins Pincount Program Memory Size (KB) Program Memory Size (KWords) Auxiliary Flash (KB) Multiple Flash Panels Error Correction Code Program Flash SRAM (Bytes) Data EEPROM/HEF (Bytes) Emulated EEPROM in Flash Boot Memory (KB) Direct Memory Access Channels DRAM Interface Number of EBIs QSPI ADC Input Number of ADCs Max ADC Resolution (Bits) Max ADC Sampling Rate (ksps) Max ADC Sample/Hold Temp Sensor DAC Outputs Number of DACs Max DAC Resolution (Bits) Number of Comparators Comparator max speed (ns) Number of Op Amps Zero Cross detect UART LIN SPI I2C I2S Number of USB Modules USB Interface USB Active Clock Tuning Number of CAN Modules Type of CAN module Max 16-Bit Digital Timers Max 32-Bit Digital Timers Hardware RTCC/RTC Watch Dog Timer Angular Timer Number of PWM Time Bases PWM Resolution (ns) Capture / Compare/PWM (CCP) Enhanced Capture/Compare/PWM (ECCP) Complementary Waveform Generator / Complementary Output Generator Single output CCP (SCCP) Multiple output CCP (MCCP) Motor Control PWM Outputs Quadrature Encoder Interface SMPS PWM Outputs Stand alone PWMs Standalone Output Compare/ Standard PWM Output Compare Channels Input Capture Programmable Switched Mode Controller Class B Support CRC Class D Amplifier Outputs Configurable Logic Cell (CLC/CCL) Configurable Logic Cell Type Peripheral Trigger Generator Peripheral Pin Select / Pin Muxing Internal Oscillator Internal Osc better than 1% accuracy Brown-Out Reset Low Voltage Detection Power On Reset Internal Voltage Reference (Bandgap) Supported in MPLAB Code Configurator Packages
PIC16F737 In Production $3.58 8-bit MCU 20 5 PIC16F777 No 5.5 -40 125 25 28 7 4 0 No 368 0 No 0 No 0 11 1 10 30 1 No 0 0 0 2 50 0 No 1 No 1 1 0 0 None No 0 None 1 0 No Yes No 0 0 3 0 0 0 0 3 0 0 0 0 3 3 0 No No 0 No No 8 MHz No BOR None Yes No 28/QFN, 28/SOIC, 28/SPDIP, 28/SSOP
PIC16F747 In Production $4.05 8-bit MCU 20 5 PIC16F777 No 5.5 -40 125 36 40 7 4 0 No 368 0 No 0 No 0 14 1 10 30 1 No 0 0 0 2 50 0 No 1 No 1 1 0 0 None No 0 None 1 0 No Yes No 0 0 3 0 0 0 0 3 0 0 0 0 3 3 0 No No 0 No No 8 MHz No BOR None Yes No 40/PDIP, 44/QFN, 44/TQFP
PIC16F767 In Production $4.15 8-bit MCU 20 5 PIC16F777 No 5.5 -40 125 25 28 14 8 0 No 368 0 No 0 No 0 11 1 10 30 1 No 0 0 0 2 0 No 1 No 1 1 0 0 None No 0 None 1 0 No Yes No 0 0 3 0 0 0 0 3 0 0 0 0 3 3 0 No No 0 No No 8 MHz No BOR None Yes No 28/QFN, 28/SOIC, 28/SPDIP, 28/SSOP
PIC16F777 In Production $4.57 8-bit MCU 20 5 PIC16F777 No 5.5 -40 125 36 40 14 8 0 No 368 0 No 0 No 0 14 1 10 30 1 No 0 0 0 2 0 No 1 No 1 1 0 0 None No 0 None 1 0 No Yes No 0 0 3 0 0 0 0 3 0 0 0 0 3 3 0 No No 0 No No 8 MHz No BOR None Yes No 40/PDIP, 44/TQFP
PIC18F2331 In Production $3.44 8-bit MCU 40 10 PIC18F4431 No 5.5 -40 125 24 28 8 4 0 No 768 256 Yes 0 No 0 5 1 10 200 1 No 0 0 0 0 0 No 1 Yes 1 1 0 0 None No 0 None 3 0 No Yes No 0 0 2 0 0 0 0 6 1 0 0 0 2 2 0 No No 0 No No 8 MHz, 32 kHz No Programmable BOR Programmable LVD No No 28/QFN-S, 28/SOIC, 28/SPDIP
PIC18F2431 In Production $3.42 8-bit MCU 40 10 PIC18F4431 No 5.5 -40 125 24 28 16 8 0 No 768 256 Yes 0 No 0 5 1 10 200 1 No 0 0 0 0 0 No 1 Yes 1 1 0 0 None No 0 None 3 0 No Yes No 0 0 2 0 0 0 0 6 1 0 0 0 2 2 0 No No 0 No No 8 MHz, 32 kHz No Programmable BOR Programmable LVD No No 28/QFN-S, 28/SOIC, 28/SPDIP
PIC18F4331 In Production $3.86 8-bit MCU 40 10 PIC18F4431 No 5.5 -40 125 36 40 8 4 0 No 768 256 Yes 0 No 0 9 1 10 200 1 No 0 0 0 0 0 No 1 Yes 1 1 0 0 None No 0 None 3 0 No Yes No 0 0 2 0 0 0 0 8 1 0 0 0 2 0 0 No No 0 No No 8 MHz, 32 kHz No BOR None Yes No 40/PDIP, 44/QFN, 44/TQFP
PIC18F4431 In Production $4.03 8-bit MCU 40 10 PIC18F4431 No 5.5 -40 125 36 40 16 8 0 No 768 256 Yes 0 No 0 9 1 10 200 1 No 0 0 0 0 0 No 1 Yes 1 1 0 0 None No 0 None 3 0 No Yes No 0 0 2 0 0 0 0 8 1 0 0 0 2 0 0 No No 0 No No 8 MHz, 32 kHz No Programmable BOR Programmable LVD Yes No 40/PDIP, 44/QFN, 44/TQFP
ATSAMD09C13 In Production No $0.71 32-bit MCU 48 45 SAMD09 No 3.6 -40 85 12 14 8 2 0 No No 4096 0 Yes 6 No 0 5 1 12 350 1 No 0 0 0 0 116 0 No 2 Yes 2 2 0 0 None No 0 None 2 1 Yes Yes No 0 0 0 0 0 0 0 6 0 0 0 0 6 3 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 14/SOIC
ATSAMD09D14 In Production No $0.80 32-bit MCU 48 45 SAMD09 No 3.6 -40 85 22 14 16 4 0 No No 4096 0 Yes 6 No 0 5 1 12 350 1 No 0 0 0 0 116 0 No 2 Yes 2 2 0 0 None No 0 None 2 1 Yes Yes No 0 0 0 0 0 0 0 6 0 0 0 0 6 3 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 24/VQFN
ATSAMD10C13 In Production No $0.76 32-bit MCU 48 45 SAMD10 No 3.63 -40 105 12 14 8 2 0 No No 4096 0 Yes 6 No 0 5 1 12 350 1 Yes 1 1 10 2 116 0 No 2 2 2 0 0 None No 0 None 2 1 Yes Yes No 0 0 0 0 0 0 0 8 0 0 0 2 6 3 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 14/SOIC
ATSAMD10C14 In Production No $0.82 32-bit MCU 48 45 SAMD10 No 3.63 -40 105 12 14 16 4 0 No No 4096 0 Yes 6 No 0 5 1 12 350 1 Yes 1 1 10 2 116 0 No 2 2 2 0 0 None No 0 None 2 1 Yes Yes No 0 0 0 0 0 0 0 8 0 0 0 2 6 3 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 14/SOIC
ATSAMD10D13 In Production No $0.80 32-bit MCU 48 45 SAMD10 No 3.63 -40 105 22 24 8 2 0 No No 4096 0 Yes 6 No 0 10 1 12 350 1 Yes 1 1 10 2 116 0 No 3 Yes 3 3 0 0 None No 0 None 2 1 Yes Yes No 0 0 0 0 0 0 0 8 0 0 0 4 6 3 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 20/SOIC, 24/VQFN
ATSAMD10D14 In Production No $0.86 32-bit MCU 48 45 SAMD10 No 3.63 -40 105 22 24 16 4 0 No No 4096 0 Yes 6 No 0 10 1 12 350 1 Yes 1 1 10 2 116 0 No 3 Yes 3 3 0 0 None No 0 None 2 1 Yes Yes No 0 0 0 0 0 0 0 8 0 0 0 4 6 3 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 20/SOIC, 20/WLCSP, 24/VQFN
ATSAMD11C14 In Production No $0.87 32-bit MCU 48 45 SAMD11 No 3.63 -40 105 12 14 16 4 0 No No 4096 0 Yes 6 No 0 5 1 12 350 1 Yes 1 1 10 2 116 0 No 2 2 2 0 1 Full Speed No 0 None 2 1 Yes Yes No 0 0 0 0 0 0 0 8 0 0 0 4 6 3 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 14/SOIC
ATSAMD11D14 In Production No $0.96 32-bit MCU 48 45 SAMD11 No 3.63 -40 105 22 24 16 4 0 No No 4096 0 Yes 6 No 0 10 1 12 350 1 Yes 1 1 10 2 116 0 No 3 Yes 3 3 0 1 Full Speed No 0 None 2 1 Yes Yes No 0 0 0 0 0 0 0 8 0 0 0 4 6 3 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 20/SOIC, 20/WLCSP, 24/VQFN
ATSAMD21E15L In Production No $1.35 32-bit MCU 48 45 SAMD21 No 3.63 -40 125 26 32 32 8 0 No No 4096 1024 Yes 12 No 0 14 1 12 350 1 Yes 1 1 10 4 116 0 No 5 Yes 5 5 1 0 None No 0 None 5 2 Yes Yes No 0 0 0 0 0 0 0 12 0 0 0 6 14 11 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 32/TQFP, 32/VQFN
ATSAMD21E16L In Production No $1.56 32-bit MCU 48 45 SAMD21 No 3.63 -40 125 26 32 64 16 0 No No 8192 2048 Yes 12 No 0 14 1 12 350 1 Yes 1 1 10 4 116 0 No 5 Yes 5 5 1 0 None No 0 None 5 2 Yes Yes No 0 0 0 0 0 0 0 12 0 0 0 6 14 11 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 32/TQFP, 32/VQFN
ATSAMD21E17L In Production No $1.66 32-bit MCU 48 45 SAM D21 No 3.63 -40 125 26 32 128 32 0 No 16384 4098 No 12 No 0 14 1 12 350 1 Yes 1 1 10 4 116 0 No 5 Yes 5 5 1 0 None No 0 None 5 2 Yes Yes No 0 0 0 0 0 0 0 18 0 0 0 6 14 11 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 32/TQFP, 32/VQFN
ATSAMD21G16L In Production No $1.64 32-bit MCU 48 45 SAMD21 No 3.63 -40 125 38 48 64 16 0 No No 8192 2048 Yes 12 No 0 18 1 12 350 1 Yes 1 1 10 4 116 0 No 5 Yes 5 5 1 0 None No 0 None 5 2 Yes Yes No 0 0 0 0 0 0 0 14 0 0 0 10 18 13 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 48/VQFN
ATSAMD21G17L In Production No $1.66 32-bit MCU 48 45 SAM D21 No 3.63 -40 125 38 48 128 32 0 No 16384 4098 No 12 No 0 18 1 12 350 1 Yes 1 1 10 4 116 0 No 5 Yes 5 5 1 0 None No 0 None 5 2 Yes Yes No 0 0 0 0 0 0 0 22 0 0 0 10 18 13 0 No Yes 0 No Yes 32khz, 32Khz ULP, 8Mhz No Yes Yes 48/VQFN
ATSAME70J19 In Production No $6.43 32-bit MCU 300 600 SAME70 Yes 3.6 -40 105 114 144 512 128 0 No Yes 262144 0 No 16 24 sdram 0 1 24 2 12 1700 2 Yes 2 1 12 1 100 0 No 8 Yes 5 3 1 1 High Speed No 2 CAN-FD 12 0 Yes No No 1 0 0 0 0 0 0 16 4 0 0 24 24 24 0 No No 0 No Yes 4,8,12Mhz, 32Khz No None Yes Yes No 64/LQFP
ATSAME70J20 In Production No $7.14 32-bit MCU 300 600 SAME70 Yes 3.6 -40 105 44 64 1024 256 0 No Yes 393216 0 No 16 24 No 0 0 5 2 12 1700 2 Yes 1 1 12 1 100 0 No 5 Yes 1 2 1 1 High Speed No 1 CAN-FD 12 0 Yes No No 1 0 0 0 0 0 0 15 1 0 0 3 3 3 0 No No 0 No Yes 4,8,12Mhz, 32Khz No Yes None Yes Yes No 64/LQFP
ATSAME70J21 In Production No $8.72 32-bit MCU 300 600 SAME70 Yes 3.6 -40 105 44 64 2048 512 0 No Yes 393216 0 No 16 24 No 0 0 5 2 12 1700 2 Yes 1 1 12 1 100 0 No 5 Yes 1 2 1 1 High Speed No 1 CAN-FD 12 0 Yes No No 1 0 0 0 0 0 0 15 1 0 0 3 3 3 0 No No 0 No Yes 4,8,12Mhz, 32Khz No Yes None Yes Yes No 64/LQFP
ATSAME70N19 In Production No $6.76 32-bit MCU 300 600 SAME70 Yes 3.6 -40 105 114 144 512 128 0 No Yes 262144 0 No 16 24 sdram 0 1 24 2 12 1700