The DRV10983 is a three-phase sensorless motor driver with integrated power MOSFETs, which can provide continuous drive current up to 2A.
The DRV10983 uses a proprietary sensorless control scheme to provide continuous sinusoidal drive, which significantly reduces the pure tone acoustics that typically occurs as a result of commutation.
The interface to the device is designed to be simple and flexible. The motor can be controlled directly through PWM, analog, or I2C inputs. Motor speed feedback is available through either the FG pin or I2C.
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 | DRV10983, a three-phase sensorless motor driver with integrated power MOSFETs. |
Key Features | Input voltage range from 8V to 28V |
Interface | GPIO,I2C |
Click board size | M (42.9 x 25.4 mm) |
This table shows how the pinout on Brushless 3 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 | SPEED | Left | PWM | Speed mode selection between analog and PWM. |
Code examples for Brushless 3 click, written for MikroElektronika hardware and compilers are available on Libstock.
The following code snippet sets the motor paremeters and measures the motor velocity.
01 sbit BRUSHLESS_3_DIR_PIN at LATC.B0; 02 sbit BRUSHLESS_3_DIR_PIN_Direction at TRISC.B0; 03 sbit BRUSHLESS_3_PWM_PIN at LATC.B1; 04 sbit BRUSHLESS_3_PWM_PIN_Direction at TRISC.B1; 05 uint8_t motorParameters [12] = { 0x39, 0x1E, 0x3A, 0x08, 0x50, 0xDA, 0x8B, 0x10, 0x27, 0x37, 0x04, 0x0C} ; 06 uint16_t Velocity; 07 char text[10]; 08 void systemInit() 09 { 10 ANCON0 = 0x00; 11 ANCON1 = 0x00; 12 ANCON2 = 0x00; 13 BRUSHLESS_3_DIR_PIN_Direction = 0; 14 BRUSHLESS_3_PWM_PIN_Direction = 0; 15 I2C1_Init (100000); 16 Delay_ms(100); 17 BRUSHLESS_3_I2CdriverInit( I2C1_Start, I2C1_Stop, I2C1_Repeated_Start, I2C1_Wr, I2C1_Rd); 18 UART1_Init(9600); 19 Delay_ms(100); 20 UART1_Write_Text("Init"); 21 } 22 void Brushless_3_Init() 23 { 24 BRUSHLESS_3_DIR_PIN = 0; 25 BRUSHLESS_3_PWM_PIN = 1; 26 writeParameters(motorParameters); 27 } 28 void Brushless_3_Task() 29 { 30 getSpeed(&Velocity); 31 IntToStr(Velocity,text); 32 UART1_Write_Text( "Motor freq :" ); 33 UART1_Write_Text(text); 34 UART1_Write_Text( "Hzrn" ); 35 delay_ms(1000); 36 } 37 void main() 38 { 39 systemInit(); 40 Brushless_3_Init(); 41 while( 1 ) 42 { 43 Brushless_3_Task(); 44 } 45 }