- Order number: MIKROE-2754
- Manufacturer product ID: MIKROE-2754
Brushless 2 click carries the DRV10964 BLDC motor controller with an integrated output stage from Texas Instruments. The click is designed to run on either 3.3V or 5V power supply. It communicates with the target microcontroller over the following pins on the mikroBUS™ line: AN, RST, CS, PWM, INT.
How the click works
A 3 wire BLDC motor can be connected over the screw terminals; speed is controlled through PWM pin on the mikroBUS™ line. The click also has feedback on the interrupt pin (INT), so you can see exactly how fast the motor is going.
DRV10964 motor driver features
The DRV10964 is a three-phase sensorless motor driver with integrated power MOSFETs. It is specifically designed for high-efficiency, low-noise and low-external component count motor drive applications. The proprietary sensorless windowless 180° sinusoidal control scheme offers ultra-quiet motor drive performance.
The DRV10964 contains an intelligent lock detect function, combined with other internal protection circuits to ensure safe operation.
Specifications
Type | DC |
Applications | The automotive industry, drones (because of the good power-to weight ratio of brushless motors), computers, medical equipment, HVAC systems, small home appliances, robotics, battery powered systems, small cooling fans in computers, toys, etc. |
On-board modules | DRV10964 5-V, three-phase sinusoidal sensorless BLDC motor driver |
Key Features | Input voltage range 2.1 to 5.5 V |
Interface | GPIO,PWM |
Input Voltage | 3.3V or 5V |
Click board size | S (28.6 x 25.4 mm) |
Pinout diagram
This table shows how the pinout on Brushless 2 click corresponds to the pinout on the mikroBUS™ socket (the latter shown in the two middle columns).
Jumpers and settings
Designator | Name | Default Position | Default Option | Description |
---|---|---|---|---|
JP1 | PWR.SEL. | Left | 3V3 | Power supply selection, left position 3V3, right position 5V |
Programming
Code examples for Brushless 2 click, written for MikroElektronika hardware and compilers are available on Libstock.
Code snippet
This code example shows how to change the speed and direction of the motor by pressing buttons on the development board.
01 uint8_t const maxPwmDuty = 255; 02 uint8_t currentDuty = 20 ; 03 uint8_t oldstate = 0; 04 05 void systemInit() 06 { 07 ANCON0 = 0x00; 08 ANCON1 = 0x00; 09 ANCON2 = 0x00; 10 PWM2_Init(5000); 11 PWM2_Start(); 12 PWM2_Set_Duty(currentDuty); 13 MOTOR_DIR_PIN_Direction = 0; 14 } 15 16 void Brushless_2_Init() 17 { 18 MOTOR_DIR_PIN = 1; 19 } 20 21 void Brushless_2_Task() 22 { 23 if (Button(&PORTB, 1, 1, 1)) 24 { 25 currentDuty++; 26 PWM2_Set_Duty(currentDuty); 27 if (currentDuty > maxPwmDuty) 28 currentDuty = 0; 29 30 } 31 32 if (Button(&PORTB, 5, 1, 1)) 33 { 34 oldstate = 1; 35 } 36 if (oldstate && Button(&PORTB, 5, 1, 0)) 37 { 38 MOTOR_DIR_PIN = ~MOTOR_DIR_PIN; 39 oldstate = 0; 40 } 41 } 42 43 void main() 44 { 45 systemInit(); 46 Brushless_2_Init(); 47 48 while( 1 ) 49 { 50 Brushless_2_Task(); 51 } 52 }