Go Down

Topic: Arduino Due compatible BLDC motor driver controller circuit (Read 219 times) previous topic - next topic


I want to create a BLDC motor driver, which is compatible to the Arduino Due microcontroller board.

DRV8301 is the gate driver IC, we decided to use in the controller circuit. In this IC, there is an SPI module integrated. Such that we can obtain the switch operating point in the inverter circuit.

[justify]For generating the PWM signals from the Arduino Due, I want to access pin 34, 35, 36, 37, 38 and 39[/justify]

[justify]For sensing the currents and voltages, I dedicated the pins A0, A1…..A7.[/justify]

[justify]I did not have any experience with this gate driver and I do not know how to use SPI module in Arduino Due to communicate with the gate driver IC.[/justify]

[justify]If somebody has some experience in the usage of DRV8301 IC, please help me.[/justify]


After a first reading of DRV8301 datasheet, my understanding of a close loop control of your BLDC motor might be achieved thru:

* 3 SVPWM pulse plus their opposite signals (PWMH0/PWML0 - PWMH1/PWML1 - PWMH2/PWML2)
---> Fill a buffer with a full 360° SVPWM wave
Figure 5 of this blog might help:

---> Run the 3 SVPWM signals in synchro mode with a PDC DMA
Search in the DUE sub forum for an example sketch

* The driver is fully configurable thru SPI. 

* A close loop control could be achieved with an absolute quadrature encoder, either for low or high RPM (IMO preferable to the SPI back info)
---> Sam3x has an hardware quadrature decoder feature. 
Search in the DUE sub forum for example sketchs

* Fault driver behavior can be sensed via nFAULT, nOCTW pins, plus the quadrature decoder ( plus an ADC comparison feature if necessary) to stop PWM outputs. The PWM peripheral has a FAULT register.


Ard Newbie thanks for reply

I will go through as you said and try to check the functionality of the gate driver IC as you said. If need I will put a question in the same thread



Hii Ard_newbie

I learnt that for configuring the MOSFET gate driver DRV8301 IC. I need to communicate with SPI communication interface. The word length for communication is of 16 bit length.

I am having a doubt whether I can do the 16 bit communication with SPI in Due controller Board.

Please tell me if there is way to do this kind of communication with the target IC.



32.8.9 SPI Chip Select Register (Sam3x datasheet page 703)
BITS: Bits per Transfer (select 8 to 16-bit per transfer)

Go Up