0
\$\begingroup\$

How can you determine BLDC motor rotation direction as logic high/low by reading hall switches? Not using an MCU, just analog/digital/logic ICs.

\$\endgroup\$
8
  • \$\begingroup\$ When you say "hall switches" do you mean "hall effect sensors used to switch the commutation on a brushless DC motor"? If so, then it's the order that switches are turn on/off. \$\endgroup\$
    – Puffafish
    Commented Sep 2, 2016 at 14:31
  • \$\begingroup\$ You will need a state machine, hopefully a digital one though some crude hacks with analog delays might work if you only care about a narrow range of speed. This is near the territory where the effort of avoiding an MCU just isn't effective unless the volume will be huge or you are doing it as an intellectual exercise - even the IC's you'd probably end up using will be larger than the applicable MCUs. \$\endgroup\$ Commented Sep 2, 2016 at 14:34
  • \$\begingroup\$ @ChrisStratton: In the general case, you are correct. However if the signals from the Hall sensors overlap (like in a quadrature encoder), then a simple DFF is all you need to distinguish direction. \$\endgroup\$
    – Dave Tweed
    Commented Sep 2, 2016 at 14:43
  • \$\begingroup\$ @Puffafish yes, exactly. \$\endgroup\$
    – Eray CANLI
    Commented Sep 2, 2016 at 14:49
  • \$\begingroup\$ @ChrisStratton so I need to design a state machine, using like logic ICs, flip-flops, gates etc. which I am not keen on. \$\endgroup\$
    – Eray CANLI
    Commented Sep 2, 2016 at 14:52

3 Answers 3

1
\$\begingroup\$

This is very similar to a 3-phase phase sequence detector application. The circuit of Figure 1 will get you most of the way to your requirements.

schematic

simulate this circuit – Schematic created using CircuitLab

Figure 1. A single CD4013 dual D flip-flop will suffice.

Q2 will pulse for an ABC rotation. It will remain off for an ACB rotation.

\$\endgroup\$
4
  • \$\begingroup\$ So, how can we get rotation direction, if we are using 120degree phase difference BLDC ? \$\endgroup\$
    – Eray CANLI
    Commented Nov 9, 2016 at 13:07
  • \$\begingroup\$ What part of the answer do you not understand? \$\endgroup\$
    – Transistor
    Commented Nov 9, 2016 at 18:13
  • \$\begingroup\$ I understand this application and it works. But in a 120 degree phase BLDC, hall outputs are not the same. Logic high parts of outputs overlap. So, does not function the same. \$\endgroup\$
    – Eray CANLI
    Commented Dec 5, 2016 at 6:27
  • \$\begingroup\$ That's probably the C input holding the outputs in the reset state. You'll need to add a one-shot or monostable to the C input to give a short reset pulse. The other option is to invert all of the signals. Would that cure the overlap? \$\endgroup\$
    – Transistor
    Commented Dec 7, 2016 at 19:58
1
\$\begingroup\$

A simple way to do this is by using a D type flip-flop. If the hall effects of your BLDC have 120° phase shift, connect one hall signal to the D input and the other on the CLK input. The output will be low in a rotation direction and high in the other. LTSpice motor rotation direction simulation

\$\endgroup\$
1
  • \$\begingroup\$ This is the right answer for 120°-duty-cycle Hall signals. \$\endgroup\$
    – addaon
    Commented Jul 3, 2022 at 3:39
0
\$\begingroup\$

If you search the literature (e.g: http://www.edn.com/design/sensors/4407580/1/Brushless-DC-Motors-Part-II--Control-Principles), you will find out that there are many copies of the same 'truth table' that give you exactly which switch should be turned on/off in your commutator based on the hall sensor state.

Once you have the truth tables, you can build a basic logic circuit from ANDs, ORs and inverter gates.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.