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.
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.
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) |
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).
Designator | Name | Default Position | Default Option | Description |
---|---|---|---|---|
JP1 | PWR.SEL. | Left | 3V3 | Power supply selection, left position 3V3, right position 5V |
Code examples for Brushless 2 click, written for MikroElektronika hardware and compilers are available on Libstock.
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 }