DC Motor 8 Click Board
DC Motor 8 Click Board
Overview
The DC Motor 8 Click Board™ is a DC motor driver. It can drive simple DC motors with brushes, providing them with a significant amount of current and voltage up to 40V. The Click Board™ has one control input, that uses the PWM signal from the host MCU. It uses the half-bridge topology to regulate the speed of the motor rotation, employs advanced dead-time circuitry that monitors the output stage, providing maximum switching efficiency and features an advanced technique to avoid shoot-through currents.
.
The DC Motor 8 Click Board™ is a DC motor driver. It can drive simple DC motors with brushes, providing them with a significant amount of current and voltage up to 40V. The click has one control input, that uses the PWM signal from the host MCU. It uses the half-bridge topology to regulate the speed of the motor rotation, employs advanced dead-time circuitry that monitors the output stage, providing maximum switching efficiency and features an advanced technique to avoid shoot-through currents.
Features, such as high-efficiency factor, low overall power consumptions and complete isolation of the output stage, enable this device to be used in various battery operated handheld tools, fans and in general - whenever a powerful and reliable DC motor driver is required.
How Does The DC Motor 8 Click Board™ Work?
The DC Motor 8 Click Board™ relies on the MIC4605, 85V half-bridge MOSFET driver with adaptive dead time and shoot-through protection, from Microchip. This IC uses the input on its PWM pin to regulate the switching state of the output MOSFETs. The fact that it is 85V tolerant, allows for a substantial margin against kickback voltage that appears as the result of the rotation of the motor. In practice, at least twice the power supply used for the motor should be considered as a safe margin. This IC has more than enough to accommodate for the maximum voltage allowed on its input, which is 40V.
The DC Motor 8 Click Board™ in a half-bridge topology, which means that it can run the connected motor in one direction only. However, the polarity of the connected motor can be flipped, which will result in a change of the rotational direction of the motor. The connected input voltage must not be reversed, it has to stay connected as labeled on the PCB. Although the maximum input voltage rating is 40V, it is a good practice never to supply the motor with the maximum allowed voltage, as it may result in overheating of the MOSFETs and other components, depending on the used motor and the mechanical load it is exposed to. The device should never be pushed to work at maximum allowed ratings.
While the PWM input is at the HIGH logic state, HO output pin that drives the high side power MOSFET is active and the circuit is closed through the high side power MOSFET, motor coil, and the ground. When the PWM input signal goes LOW, it forces the HO output to also go low, within about 35ns. The HS pin monitors the driver state - when the HS voltage drops under 2.2V, the high side MOSFET is closed and after a short delay (about 35ns of rise time) LO output is activated. A further drop of the HS voltage causes a latch, which can be only reset by the PWM signal HIGH logic level. If the HS level fails to drop under 2.2V, the internal 250ns delay is activated and the HS pin is latched anyway, after that. This prevents the HS ringing to cause an undetermined state of the LO output. When the PWM signal goes HIGH again, it will force the LO output to a LOW within another 35ns, after which the HO pin can start going into the HIGH level again.
This mechanism ensures that no shoot-through ever occurs. Shoot-through happens when both MOSFETs are active and when the current goes right through them, from the power supply to the ground, causing dissipation, ringing and even damage in some cases.
Besides the PWM pin routed to the mikroBUS™, the EN pin used to enable the device is also routed to the mikroBUS™ CS pin. Logic HIGH will set the device to work in normal mode, while LOW logic level will put the device into the power conservative shutdown mode. This pin is pulled HIGH with the onboard resistor.
The VIN power terminal used to provide up to 40V of power supply for the DC motor, is completely isolated from the driver circuitry. However, to operate correctly - the driver has to provide enough voltage for activating the MOSFETs. For this purpose, DC Motor 8 click employs a boost converter made of MIC2606, a 2MHz boost regulator from Microchip. The boost regulator circuitry provides 12V out of 5V from the mikroBUS™, which allows for ideal MOSFET switching conditions, keeping the resistance through the MOSFET (RDSON) at optimal levels.
VOUT terminal is used to connect a load. A small to medium powered DC motor with two connection points and up to 40V can be used with this click board™. The voltage at the VIN terminal is used to power the motor on, while the click itself is being powered from the mikroBUS™ voltage rails. For a proper operation, both 3.3V and 5V voltages must be present on the mikroBUS™.
SPECIFICATIONS
Type | Brushed |
Applications | It can be used in various battery operated handheld tools, fans and in general - whenever a powerful and reliable DC motor driver is required. |
On-board modules | MIC4605, 85V half-bridge MOSFET driver with adaptive dead time and shoot-through protection and MIC2606, a 2MHz boost regulator, both from Microchip |
Key Features | The DC Motor 8 Click Board™ features a good switching efficiency, low overall power consumptions and complete isolation of the output stage. It employs advanced adaptive dead-time and intelligent shoot-through protection mechanisms. |
Interface | GPIO,PWM |
Compatibility | mikroBUS |
Click board size | M (42.9 x 25.4 mm) |
Input Voltage | 3.3V,5V |
PINOUT DIAGRAM
This table shows how the pinout of the DC Motor 8 Click Board™ corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Notes | Pin | Pin | Notes | ||||
---|---|---|---|---|---|---|---|
NC | 1 | AN | PWM | 16 | PWM | ||
NC | 2 | RST | INT | 15 | NC | ||
EN | 3 | CS | RX | 14 | NC | ||
NC | 4 | SCK | TX | 13 | NC | ||
NC | 5 | MISO | SCL | 12 | NC | ||
NC | 6 | MOSI | SDA | 11 | NC | ||
Power supply | +3.3V | 7 | 3.3V | 5V | 10 | +5V | Power supply |
Ground | GND | 8 | GND | GND | 9 | GND | Ground |
DC MOTOR 8 CLICK ELECTRICAL SPECIFICATIONS
Description | Min | Typ | Max | Unit |
---|---|---|---|---|
Input voltage | 0 | 40 | V | |
Output Current | 1 | A |
ONBOARD SETTINGS AND INDICATORS
Label | Name | Default | Description |
---|---|---|---|
PWR | PWR | - | Power LED Indicator |
TB1 | VIN | - | VIN Terminal |
TB2 | VOUT | - | VOUT Terminal |
Software Support
We provide a library for the DC Motor 8 Click Board™ on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo application can run on all the main MikroElektronika development boards.
Library Description
Initializes and defines GPIO driver and constant values wich can be used in example code and also enables chip.
Key functions
void dcmotor8_setFreq(uint16_t freq, uint8_t step)
- Function sets frequency and current duty for PWM Timer5.
void dcmotor8_startMotor(uint16_t delayTime, uint8_t stopEnable)
- Function sets delay time witch decides when PWM Timer5 will be stoped and started again. If stopEnable is 1 the PWM Timer5 will be stoped, and if 0 will be not stoped.
Example Description
The demo application is composed of three sections:
- System Initialization - Initializes peripherals and pins.
- Application Initialization - Initializes click driver.
- Application Task - Sets frequency and current duty of PWM Timer5 and decides will Timer5 be stoped and when. Also makes decide when Timer5 will be started again.
void applicationTask() { char txt[4] = {0}; //Sets frequency of 20kHz and current duty of 36000 (Duty range is from 0 to 65535) dcmotor8_setFreq(_DCMOTOR8_20KHZ, _DCMOTOR8_DUTY_36000); //Enables motor stop working and sets 20 seconds working time and 4 seconds disabling time dcmotor8_startMotor(_DCMOTOR8_DELAY_20SEC, _DCMOTOR8_DELAY_4SEC, _DCMOTOR8_STOP_ENABLE); //Writes on USB UART value of current duty for PWM Timer5 IntToStr(pwmPeriod, txt); mikrobus_logWrite("Value of PWM timer period is: ", _LOG_TEXT); mikrobus_logWrite(txt, _LOG_LINE); Delay_ms(100); }
The full application code, and ready to use projects can be found on our LibStock page.
Additional Notes and Information
Depending on the development board you are using, you may need a USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
Software Support
We provide a library for the DC Motor 8 Click Board™ on our LibStock page, as well as a demo application (example), developed using MikroElektronika compilers. The demo application can run on all the main MikroElektronika development boards.
Library Description
Initializes and defines GPIO driver and constant values wich can be used in example code and also enables chip.
Key functions
void dcmotor8_setFreq(uint16_t freq, uint8_t step)
- Function sets frequency and current duty for PWM Timer5.
void dcmotor8_startMotor(uint16_t delayTime, uint8_t stopEnable)
- Function sets delay time witch decides when PWM Timer5 will be stoped and started again. If stopEnable is 1 the PWM Timer5 will be stoped, and if 0 will be not stoped.
Example Description
The demo application is composed of three sections:
- System Initialization - Initializes peripherals and pins.
- Application Initialization - Initializes click driver.
- Application Task - Sets frequency and current duty of PWM Timer5 and decides will Timer5 be stoped and when. Also makes decide when Timer5 will be started again.
void applicationTask() { char txt[4] = {0}; //Sets frequency of 20kHz and current duty of 36000 (Duty range is from 0 to 65535) dcmotor8_setFreq(_DCMOTOR8_20KHZ, _DCMOTOR8_DUTY_36000); //Enables motor stop working and sets 20 seconds working time and 4 seconds disabling time dcmotor8_startMotor(_DCMOTOR8_DELAY_20SEC, _DCMOTOR8_DELAY_4SEC, _DCMOTOR8_STOP_ENABLE); //Writes on USB UART value of current duty for PWM Timer5 IntToStr(pwmPeriod, txt); mikrobus_logWrite("Value of PWM timer period is: ", _LOG_TEXT); mikrobus_logWrite(txt, _LOG_LINE); Delay_ms(100); }
The full application code, and ready to use projects can be found on our LibStock page.
Additional Notes and Information
Depending on the development board you are using, you may need a USB UART click, USB UART 2 click or RS232 click to connect to your PC, for development systems with no UART to USB interface available on the board. The terminal available in all MikroElektronika compilers, or any other terminal application of your choice, can be used to read the message.
Frequently Asked Questions
Have a Question?
Be the first to ask a question about this.