Two pairs of screw terminals are positioned on the top of the board. One is for bringing an external power supply; the other is for connecting a motor.
TB6549FG has four operating modes: clockwise, counter-clockwise, short brake and stop. The operating mode is configured through IN1 and IN2 pins. A separately controlled standby mode is also available.
For safety, the TB6549FG IC incorporates overcurrent protetciont and a thermal shutdown circuit.
The click communicates with the target MCU through the mikroBUS™ PWM pin, with additional functionality provided by IN1, IN2 and SLP pins (in place of default mikroBUS™ AN, RST and CS pins). Designed to use a 3.3 power supply only.
| Type | DC |
| Applications | Driving high power DC motors |
| On-board modules | Toshiba TB6549FG full-bridge driver |
| Key Features | Drives motors up to 3.5A with 30V |
| Key Benefits | Four operating modes: CW, CCW, short brake and stop, Built-in overcurrent protection and thermal shutdown circuit |
| Interface | GPIO,PWM |
| Input Voltage | 3.3V or 5V |
| Compatibility | mikroBUS |
| Click board size | L (57.15 x 25.4 mm) |
DC Motor 3 click is a mikroBUS™ add-on board with a Toshiba TB6549FG full-bridge driver for direct current motors. The IC is capable of outputting currents of up to 4.5 A with 30V, making it suitable for high-power motors.
This example shows how to setup the DC Motor 3 on ARM, and use buttons to turn the motor, as well as speed up or slow down the motor.
1 #include "dc_motor3.h"
2
3 unsigned int current_duty;
4 unsigned int pwm_period;
5
6 sbit SLP at GPIOD_ODR.B14;
7 sbit IN2 at GPIOC_ODR.B3;
8 sbit IN1 at GPIOA_ODR.B5;
9
10 void main()
11 {
12 GPIO_Digital_Input (&GPIOE_BASE, _GPIO_PINMASK_8 | _GPIO_PINMASK_9 | _GPIO_PINMASK_10 | _GPIO_PINMASK_11 | _GPIO_PINMASK_12); // configure PORTE pins as input
13
14
15 GPIO_Digital_Output (&GPIOD_BASE, _GPIO_PINMASK_14 );
16 GPIO_Digital_Output (&GPIOC_BASE, _GPIO_PINMASK_3 );
17 GPIO_Digital_Output (&GPIOA_BASE, _GPIO_PINMASK_5 );
18
19 current_duty = 40000; // initial value for current_duty
20 pwm_period = PWM_TIM4_Init(5000);
21
22 PWM_TIM4_Set_Duty(current_duty, _PWM_NON_INVERTED, _PWM_CHANNEL1); // Set current duty for PWM_TIM1
23 PWM_TIM4_Start(_PWM_CHANNEL1, &_GPIO_MODULE_TIM4_CH1_PD12);
24
25
26 while(1)
27 {
28 if (Button(&GPIOE_IDR, 8, 50, 1))
29 {
30 dc_motor3_clockwise();
31 }
32
33 if (Button(&GPIOE_IDR, 9, 50, 1))
34 {
35 dc_motor3_counter_clockwise();
36 }
37
38 if (Button(&GPIOE_IDR, 10, 50, 1))
39 {
40
41 Delay_ms(1);
42 current_duty *= 2;
43 PWM_TIM4_Set_Duty(current_duty, _PWM_NON_INVERTED, _PWM_CHANNEL1);
44 }
45
46 if (Button(&GPIOE_IDR, 11, 50, 1))
47 {
48 Delay_ms(1);
49 current_duty /= 2;
50 PWM_TIM4_Set_Duty(current_duty, _PWM_NON_INVERTED, _PWM_CHANNEL1);
51 }
52
53 if (Button(&GPIOE_IDR, 12, 50, 1))
54 {
55 dc_motor3_stop();
56 }
57 Delay_ms(1);
58 }
59
60 }
Code examples for DC MOTOR 3 click are available for ARM and AVR compilers. Download them from Libstock