Understanding 3PWM mode

Hi, when looking through the code for the 3PWM mode on this page: BLDCDriver 3PWM | Arduino-FOC I noticed that the phases can be put into a “High impedance mode”. While the other phases are set to HIGH. There is an explanation that says " high impedance mode - disabled or open"

So do I understand correctly that the “enable pin” of the driver for that gate is turned off (so that the phase wont be connected to neither GND nor VCC) ?

Also, there is a graph showing something like 3 sinewaves with the peaks kinda chopped off. How does this moment of high impedance translates to the graph? Like at which point in time?

Bonus question: what would happen if the gates cant be left floating? How would one control the motor? How would the waves look like? I ask since I’ve seen many drivers with a “common enable” configuration


It does not. It would be used in trapezoidal modulation modes, but not in sinusoidal or space vector modulation.

Such drivers cannot support Hi-Z mode, so they can only use sine or space vector modulation. They can’t switch the phases off in trapezoidal modulation and they therefore cannot do BEMF or phase voltage detection (which SimpleFOC doesn’t support yet anyways).

So basically I don’t think you need to worry about this unless you were planning to work on implementing BEMF sensing…

1 Like

So FOC can be used with a common enable configuration driver, the thing is that in order to do that sine or space vector modulation have to be used. Correct?

Can simpleFOC do this?

Yes, that’s correct. As long as the driver has 3 seperate PWM inputs it can work with a single common enable input.

Even if the driver has 3 seperate enable inputs you don’t have to use them, and could tie them to the same MCU pin, or even just permanently make them active with a pull-up (or down) resistor.