Field Oriented Control + Space Vector Modulation possible with Arduino Zero ?

Hi everyone,

I want to implement Field Oriented Control for a BLDC which i used to drive with 6-step Trapezoidal Commutation.

I checked many application notes and i think i got the intuition correct. What got me wondered is if Zero is powerfull enough to do that.

The general layout is like the following.

I will measure the current and the rotor angle - which is done by external hardware and send them to Arduino, which will process em with appropriate transformations and calculate a correction voltage to be applied to motor terminals.

This process will be done around 10000 times a sec and from what i have read Zero should be enough to do that. An application note suggests that a 60 mhz processor does that at % 40. I would like a clarifitication if i am right or wrong.

Secondly, to apply the correction voltage to the motor terminals, i want to use space vector modulation which seems to require 6 syncronous PWMs which should also run around 10 or 20 kHz. This part seems to be tricky since i was using just 3 pwms to control BLDC, keeping the highside MOSFETS always open.

As far as i know Zero offer 6 Pwm pins but would they be enough to realise a space vector modulation

Any suggestion or correction is much appreciated

I think that the PWM part is possible. Not sure about the angle and current measurement, at least the coil currents will vary quickly.

See the many BLDC threads for general details.