1. Field of Invention
The present invention relates to a controller for a 3-phase brushless DC motor, and in particular to a controller for detecting a position of a rotor in a 3-phase brushless DC motor by sensor-less detection, in order to perform a commutation operation of the motor.
2. Description of Related Art
In driving a 3-phase brushless DC (referred to as BLDC, hereinafter) motor, a position of a rotor of the motor should be detected in order to perform the commutation. Basically, there are two methods for detecting the position of the rotor: with or without a sensor; the former is referred to as “sensor detection” and the latter is referred to as “sensor-less detection”.
In sensor detection, since a position sensor is required, the sensor and the associated wiring and assembly greatly increase the cost and also consume space; the whole dimension of the motor package can not be reduced. In addition, while the position sensor is integrated with the motor, the reliability of the sensor may be adversely affected by high temperature, high pressure, and so on.
In view of the above problems of the sensor detection approach, the sensor-less detection is a better approach since it requires no position sensor. The sensor-less detection detects the position of the rotor, according to a back electromotive force (referred to as BEMF, hereinafter) induced when the motor is rotating. The BEMF is a terminal voltage induced in an unexcited (floating) winding by change of a magnetic field when the rotor of the motor is rotating. The information on the position of the rotor in the BLDC motor can be achieved by detecting a zero crossing point (referred to as ZCP, hereinafter) of the BEMF.
FIG. 4 illustrates a typical example of a power driver circuit 400 for a BLDC motor. As shown in FIG. 4, the BLDC motor may be driven in a desired phase sequence by turning on/off the sets of transistors Qa+ and Qa−, Qb+ and Qb−, andQc+ and Qc− to switch the power supply to different phases (phases A, B, and C) of the motor. The on/off operations of the transistor sets in the driver circuit 400 for the commutation operation are typically controlled by pulse width modulation (PWM) signals.
There are two types of PWM control schemes for the driver circuit 400: upper arm driving and lower arm driving. In the upper arm driving scheme, the switching devices Qa+, Qb+, and Qc+ on the upper side are turned on/off under control of PWM signals, while the corresponding switching devices Qa−, Qb−, and Qc− on the lower side are fixedly connected to a negative power supply (for example, 0V). In the lower arm driving scheme, the switching devices Qa−, Qb−, and Qc− on the lower side are switched under control of PWM signals, while the corresponding switching devices Qa+, Qb+, and Qc+ on the upper side are fixedly connected to a positive power supply (for example, +Vdc).
The ZCP and an operation for generating a ZCP signal will be described with reference to FIG. 2. FIG. 2 illustrates, by way of example, a waveform of the BEMF signal in a certain phase such as phase B when the motor operates in the lower arm driving scheme, and also illustrates a waveform of a corresponding PWM signal. In FIG. 2, PWM AL in the lower part of the figure denotes the waveform of the PWM signal (AL), which is used to control the lower arm power transistor Qa− for phase A in the driver circuit for the BLDC motor, and BEMF_B in the upper part denotes the waveform of the BEMF in phase B of the motor corresponding to the PWM signal. As shown in FIG. 2, transient states (noises) occur in the BEMF_B signal in correspondence to the falling edge and rising edge of each duty cycle of the PWM signal. Further, the BEMF_B signal is at low level but in a rising trend when the PWM signal is on, while it is high and remains constant when the PWM signal is off. The low level BEMF_B signal gradually rises to cross a zero crossing point (ZCP), which is (½)Vdc in FIG. 2. Therefore, the ZCP can be obtained by detecting the voltage value of the corresponding BEMF signal during the on-time of every PWM cycle. However, the transient states should be ignored so as not to cause any incorrect judgment in detecting the voltage value of the BEMF signal, because only the voltage level of the BEMF signal between transient states are meaningful. That is, in FIG. 2, a sampling operation for extracting the voltage value of the signal BEMF_B should be performed on the part of the signal BEMF_B after the transient state caused by the rising edge of the duty-on period and before the transient state caused by the falling edge of the duty-on period during every PWM cycle. The extracted value of the BEMF signal thus obtained is compared with a preset value so as to generate a ZCP signal. For example, a low level ZCP signal is generated when the BEMF value is less than the preset value, and a high level ZCP signal is generated when the BEMF signal value is greater than the preset value. The information of the position of the rotor can be obtained from a change of the phase of the generated ZCP signal (for example, a change from low level to high level).
FIG. 5 shows an example of a ZCP detection circuit 500 for detecting the ZCPs of BEMFs in 3 phases of a BLDC motor, according to prior art. The ZCP detection circuit 500 shown in FIG. 5 uses a hardware circuit to process the BEMF signals. The ZCP detection circuit 500 is provided with low-pass filters 506a, 506b, and 506c for filtering PWM chopping signals and commutation interference signals. However, because the low-pass filters cause phase delay and cannot completely filter the PWM chopping signals, it is likely to cause the succeeding comparison circuits 504a, 504b, and 50c4 to output incorrect comparison results, i.e., the incorrect ZCP signals, due to incorrect input signals. To eliminate such incorrect output results, a complicated hybrid PWM signal is required to control the switching operations in either the upper arm driving scheme or the lower arm driving scheme.
FIG. 6 shows an example of a 3-phase BLDC motor controller 600 according to the prior art, and FIG. 7 shows a comparison circuit used in the controller 600 for generating a ZCP signal by comparing a BEMF signal and a reference value. The controller 600 operates by sensor-less detection and it includes a control chip 602 to perform the control operation. In upper arm driving scheme, the controller 600 operates in synchronization with the off period of the PWM signal, and the comparison circuit shown in FIG. 7 compares the reference voltage and the BEMF signal to produce a ZCP signal. However, since the off period of the PWM is very short when the BLDC motor rotates in a high speed, and the transient states of the BEMF signals of the BLDC motor have a long settling time due to the high inductance of the motor, it is difficult to determine the sampling point for extracting a stable voltage value of the BEMF signal, and accordingly a correct ZCP signal for the BEMF may not be produced when the motor is rotating in a high speed. Therefore, the rotating speed of the motor is limited if an accurate control is desired. In the other case where the controller 600 operates in synchronization with the on period, the comparison circuit still may produce an incorrect ZCP signal when comparing the voltage of the BEMF signal and the reference voltage, because of the overshoots or undershoots of the BEMF signal.
Therefore, it is desirable to provide a controller that is able to reliably and correctly detect the ZCP even if the motor rotates in a high speed, and preferably without using any hardware comparison circuit.