L6234 Breakout board commutation sequence for BLDC control

Dear forum,

I've recently bought some really nice brushless three phase motors, nanotec DB22L01 to be exact. (equipped with high-level logic hall sensors yay!)

What I wish to achieve is velocity control and after that position control.
Most BLDC drivers are either RC ESC's for low resistance motors or industrial grade for high power motors that are really expensive.

For example, the BLDC driver from nanotec, complementary to this motor, is twice the price of the motor itself.

A quick search on this forum indicates that the triple half bridge L6234 is a popular choice. I've only found one commercial breakout board with this chip on it on a french website called drotek

It has the same peripherals (resistors, capacitors and diodes) as described in the application note

There is a really nice blog post that I've found very helpful and also uses the same chip: BerryJam – Spining BLDC(Gimbal) motors at super slooooooow speeds with Arduino and L6234

There is only one thing I can't wrap my head around:

  • The L6234 has three enable (EN) and three input (IN) pins
  • Each of the EN pins turns on one half bridge
  • If, for example, the IN_1 pin is connected to logic low the lower part of the first half bridge is turned on and if its connected to high the upper part of the half bridge is turned on.

My intuition tells me to PWM the EN pins from 0 to 255 corresponding to the phase of the signal. And toggle the IN pins on zero-crossings of the commutation sequence.
(Someone mentioned this on the forum before)

The blog post by Berryjam, however, connects all 3 enable pins to logic high as does the breakout board.
Berryjam actually shows this works. But are there some negative side effects to connecting all three enable pins to logic high?

To explain myself better I have made some terrible paint pictures,

From Berryjams website; electrical phase versus PWM:

at an electrical phase of 90 degrees. the upper part of the first bridge is always on and the second and third are switched between upper and lower half. The two possible configurations are:


This is OK, because if the upper half is turned on there is no potential and current does not flow if IN_2 and IN_3 switch at the same time.

However, if we look at an electrical phase of for example 60 degrees;

However this situation might also occur at 60 degrees:

Is this a problem at higher speeds? And maybe even inefficient?
I have bought the earlier mentioned breakout board and will try it out but want to know the possible culprits of setting all enable pins to high

TL;DR, what is the downside of continuously connecting all enable pins on the L6234 to logic high and using PWM on the IN pins to switch between the upper part and lower part of the triple half bridge.

Your intuition is indeed wrong, three-phase PWM doesn't normally work like that, all enables are on permanently.

The quiescent state is 50% duty cycle, precisely synchronized on all phases. Thus the
windings see no relative voltage at all and no current flows.

To vary the drive the duty cycles are changed such that the average duty cycle for the 3
phases is still (about) 50%, but duty cycle is different for each phase. This controls the period for
which the phases see a drive voltage.

If you think of an equilateral triangle rotating between two horizontal lines, each point represents a
duty cycle for one of the phases, and the lines are 0% and 100%. You just need to ensure the
duty cycles match the vertical position of each point of the triangle, the size of the triangle is the
amount of driver, the angle is the phase of the drive.

The simplest scheme is to rotate the triangle about a 50% centre, but the image you present shows
the most efficient scheme where the triangle centre moves around a bit to allow a larger triangle
(more drive) to fit between the 0%, 100% lines. The green line is the centre of the triangle, the others
are the points of the maximum sized triangle (in PWM values, not percent).

Thanks for your reply MarkT,

I forgot that the three PWM signals are in phase with the same frequency, just varying the duty cycle. The chaotic behavior I thought would happen, just doesn't. :art:
When I get the breakout I will report back on how it works at faster speeds.