I am evaluating LPC1549 for 3 Phase BLDC motor control using NXP sample code (http://www.nxp.com/docs/en/application-note/AN11523.zip) and the corresponding development kit (LPC1549 LPCXpresso Motor Control Kit (BLDC)|NXP ). Just from the initial running, both forward and reverse direction (using bidirectional source code) runs are fine, and speed can be varied. However, when the waveforms are observed with oscilloscope, some weired thing happens in the reverse direction. Also the current consumption is about 3 times higher than the forward current at similar speed (lower speed 0.2A vs 0.6A, higher speed 1.2 A vs 3.8 A).
Forward direction hall sensor input (A, B, C) vs Phases (A, B, C)
Reverse direction hall sensor input (A, B, C) vs Phases (A, B, C) - at lower speed
Reverse direction hall sensor input (A, B, C) vs Phases (A, B, C) - at higher speed
Commutation sequence seems fine in both. At higher speed in both forward and reverse some glitches were observed in hall sensor input. That may be due oscilloscope limitation as well.
Interesting things is, if the hall sensor input are swapped (Phase A and C) and motor phases are swapped (Phase B and C), and forward is commanded through software, phase outputs seems similar and healthy in both direction, and current consumption is low (low speed: 0.2 A, high speed 1.2 A). Having that result by swapping in hardware means, we are feeding the same phase sequence as it should be in reverse. It looks more of a software issue than hardware (driver stage and motors look ok). Has anybody experienced similar with SCTimer? Any points I am missing?