Patent Description:
This disclosure relates to sensorless motor controls, and in particular to sensorless control of brushless motors in power tools.

Power tools may be of different types depending on the type of output provided by the power tool. For example, a power tool may be a drill, hammer, grinder, impact wrench, circular saw, reciprocating saw, and so on. Some power tools may be powered by an alternating current (AC) power source while others may be portable and may be powered by a direct current (DC) power source such as a battery pack. Power tools may use AC or DC motors.

Some power tools have a movable switch such as a trigger or a speed dial that can be used to vary the speed of the motor or the power output by the tool. The switch can be moved from a resting position where the power output of the tool is minimum (e.g., zero), and a fully activated (e.g., pulled) position where the power output of the tool is maximum. Thus, the tool can output the maximum power only when the trigger is fully activated. Also, after the trigger is fully activated, the tool's power output cannot be increased beyond its maximum power. The present disclosure addresses these and other issues related to power tools as described below in the detail.

Use of Brushless Direct-Current (BLDC) motors in power tools has become common in recent years. A typical BLDC motor includes a stator including a series of windings that form three or more phases, and a rotor including a series of magnets that magnetically interact with the stator windings. As the phases of the windings are sequentially energized, they cause rotation of the rotor. BLDC motors generate more power and are more efficient that similarly-sized conventional brushes DC motors and universal motors. BLDC motors are electronically commutated, requiring a controller to commutate proper phases of the motor based on the angular position of the rotor. Conventionally, the motor is provided with a series of Hall sensors that detect a magnetic field of the rotor and provide signals to the controller indicative of the rotor position.

Known techniques for sensorless control of BLDC motors are available in applications such as outdoor products where the motor operates at predictable speed ranges. One such technique involves monitoring the motor induced voltage generated by the back-electromotive force (back-EMF) of the motor in the motor windings to detect a rotational position of the motor. Specifically, as the rotor rotates it induces current through a non-active phase of the motor, which can be detected by the controller to estimate a rotary location of the rotor. Such techniques are suitable for motor applications designed to operate at high speed. For many power tool applications such as drills, impact drivers, etc. that operate over various speed and torque ranges, however, use of such techniques alone may not be suitable. This is particularly true for power tools operating at very low speed, where the user may turn the tool in a direction opposite the intended motor rotation, causing the rotor to rotate in an unexpected direction. What is thus needed is a sensorless control technique suitable for use with power tools that operate at low speed / high torque ranges.

Additionally, various techniques are known for increasing and optimizing power output of a BLDC motor. One such technique involves increasing a conduction band of the phase voltages applied to the motor. Typically, in trapezoidal motor control for a three-phase BLDC motor, the conduction band is set to <NUM> electrical degrees and only two phases conduct at a given time. It has been found, however, that increasing the conduction band to more than <NUM> electrical degrees, thus allowing some overlap between the phases of the motor, increasing the motor power output. A similar technique involves increasing an advance angle by which each phase current of the motor is shifted relative to the rotor position. A variable conduction band and/or advance angle control can be implemented relative to the rotor position with relative ease when using Hall sensors. What is needed is a technique for implementation of variable conduction band and/or advance angle control in a sensorless control scheme. <CIT> discloses an inverter controller for driving a brushless DC motor with a position sensing circuit. The position sensing circuit senses a rotor position with respect to a stator from an induction voltage of the brushless DC motor. <CIT> discloses a power tool where variable conduction band/advance angle is utilized for closed-loop speed control to increase power to the motor as load increases.

Moreover, in BLDC control system, the motor control is prone to defects and errors due to electromechanical faults or software bugs. <CIT> discloses a secondary controller for redundancy control responsible for shutting off power to the motor in the event of motor overspeed or incorrect rotor rotation. The secondary controller in this system receives the Hall signals to calculate motor speed and direction of rotation. What is needed is a secondary controller capable of protecting the motor against overspeed or incorrect rotor rotation in a sensorless control scheme.

The present invention is defined in the independent claims <NUM>, <NUM> with preferred embodiments disclosed in the dependent claims.

The drawings described herein are for illustration purposes only and are not intended to limit the scope of this disclosure in any way.

The following description illustrates the claimed invention by way of example and not by way of limitation. The description clearly enables one skilled in the art to make and use the disclosure, describes several embodiments, adaptations, variations, alternatives, and uses of the disclosure, including what is presently believed to be the best mode of carrying out the claimed invention. Additionally, it is to be understood that the disclosure is not limited in its application to the details of construction and the arrangements of components set forth in the following description or illustrated in the drawings. The disclosure is capable of other embodiments and of being practiced or being carried out in various ways.

Referring to <FIG>, a side cross-sectional view of a power tool <NUM> is provided. In an embodiment, power tool <NUM> includes a housing <NUM>, a motor <NUM> housed therein, a module casing <NUM>, and a planar circuit board <NUM>. The housing <NUM> includes a motor case <NUM> that supports the motor <NUM> and a handle portion <NUM>.

A gear case <NUM> is secured to an end of the motor case <NUM> opposite the handle portion <NUM>. The gear case <NUM> includes at least one gearset <NUM>, an output shaft <NUM>, and a threaded opening <NUM> to which an accessory tool is secured, either directly or via a nut (not shown). The gearset <NUM> is positioned within the gear case <NUM> and is drivably coupled to the motor <NUM>. The output shaft <NUM> is drivably connected to the gearset <NUM> within the gear case <NUM> and extends perpendicular to the longitudinal axis of the housing <NUM>. A trigger or sliding switch (not shown) is positioned on a side of the motor case <NUM> and allows for the user to turn the power tool <NUM> ON and OFF.

The handle portion <NUM> extends axially from the motor case <NUM> toward a second end of the housing <NUM> and includes two clamp shells or housing covers that mate with the module casing <NUM> around the planar circuit board <NUM>. An alternative-current (AC) power cord <NUM> is attached to the handle portion <NUM> at the second end of the housing <NUM> to supply AC electric power to the power tool <NUM>, though it should be understood that power tool <NUM> may include a battery receptacle at the end of the handle portion <NUM> for removeably receiving a battery pack to supply direct-current (DC) power to the power tool <NUM>,.

Planar circuit board includes a control circuit board <NUM> and a power circuit board <NUM> arranged along the axis of the power tool <NUM> substantially in parallel. Control circuit board <NUM> accommodates a controller (not shown) and associated circuitry for controlling the speed and other operation of the motor <NUM>. Power circuit board <NUM> accommodates a series of power switches (not shown), which may be configured as, for example, a multi-phase inverter switch circuit, that are controlled by the controller and regulate the supply of power from the power cord <NUM> to the motor <NUM>. Power circuit board <NUM> further includes one or more capacitors <NUM> as well as a rectifier (not shown) that generate a DC voltage on a DC bus line supplied to the power switches.

Additionally, an auxiliary capacitor <NUM> may be housed at the end of the handle portion <NUM> that can be switchably connected to the DC bus line when the AC voltage includes large voltage ripples, as described in detail in <CIT>.

While the present description is provided with reference to a grinder, it is readily understood that the broader aspects of the present disclosure are applicable to other types of power tools, including but not limited to sander, drill, impact driver, tapper, fastener driver, and saw. For example, the power tool <NUM> may include a chuck that is configured to receive a drill bit or a screw bit, thereby allowing the power tool <NUM> to be used as a power drill or a power screwdriver. For more detail of an exemplary power tool described above, reference is made to <CIT>.

In an embodiment, motor <NUM> is a brushless direct-current (BLDC) motor including a rotor including rotor shaft <NUM> on which a rotor lamination stack <NUM> accommodating a series of permanent magnets (not shown) is mounted. The motor <NUM> further includes a stator including a stator lamination stack <NUM> on which a series of stator windings <NUM> are wound. The rotor lamination stack <NUM> is received within the stator lamination stack <NUM> and magnetically interacts with the stator windings <NUM> to cause rotation of the rotor shaft <NUM> around a longitudinal axis of the tool <NUM>. In an embodiment, as described in detail in this disclosure, motor <NUM> is a sensorless BLDC motor, meaning it includes no sense magnet or positional sensor to help the controller control the commutation of the motor <NUM>.

Referring to <FIG>, a partial cross-sectional view of a conventional motor with positional sensors is depicted. As shown here, motor <NUM> is provided with a radial wall or end cap <NUM> with an opening <NUM> that receives the rotor shaft <NUM> therethrough. The end cap <NUM> forms a bearing pocket <NUM> around the rotor shaft <NUM> opposite the rotor lamination stack <NUM>. Bearing pocket <NUM> securely receives and support a rotor bearing <NUM> therein to structurally support the rotor with respect to the stator. Additionally, bearing pocket <NUM> houses a sense magnet ring <NUM> that is also mounted on the rotor shaft <NUM>. A radial slot <NUM> formed in the bearing pocket <NUM> allows for insertion of a positional sensor board <NUM> in close proximity to the sense magnet ring <NUM>. Positional sensor board <NUM> supports a series of Hall sensors <NUM>, which sense the position of the sense magnet ring <NUM> and provide the angular position of the rotor to the controller.

<FIG> depicts a partial cross-sectional view of a sensorless BLDC motor according to embodiments of this disclosure. In an embodiment, motor <NUM> is similar to the motor of <FIG> but does not include a sense magnet and a positional sensor board. Bearing pocket <NUM> in this embodiment includes a recess facing the motor <NUM> that is large enough to receive and support the rotor bearing <NUM>. The bearing pocket <NUM> need not have the length to receive a sense magnet and a positional sensor board and is therefore at most <NUM>% smaller in width than bearing pocket <NUM> of <FIG>. This decrease contributes to an overall reduction of <NUM>-<NUM> millimeters from the length of the motor. It also reduces manufacturing costs and eases the assembly process.

Referring to <FIG>, a circuit block diagram of battery-powered power tool <NUM> including a motor <NUM> and a motor control circuit <NUM> is depicted, according to an embodiment. In an embodiment, motor control circuit <NUM> includes a power unit <NUM> and a control unit <NUM>. Components of power unit <NUM> and control unit <NUM> may be respectively mounted on power circuit board <NUM> and control circuit board <NUM> of <FIG>. In <FIG>, power tool <NUM> received DC power from a DC power source such as a battery pack, such as a removeable battery pack, via B+ and B- terminals, on a DC bus line <NUM>.

In an embodiment, power unit <NUM> may include a power switch circuit <NUM> coupled to between the DC bus line <NUM> and motor windings to drive BLDC motor <NUM>. In an embodiment, power switch circuit <NUM> may be a three-phase bridge driver circuit including six controllable semiconductor power devices, e.g. Field-Effect Transistors (FETs), Bipolar Junction Transistors (BJTs), Insulated-Gate Bipolar Transistors (IGBTs), etc..

In an embodiment, control unit <NUM> may include a controller <NUM>, a gate driver <NUM>, a power supply regulator <NUM>, and a power switch <NUM>. In an embodiment, controller <NUM> is a programmable device arranged to control a switching operation of the power devices in power switching circuit <NUM>. In an embodiment, controller <NUM> calculates the rotational position of the rotor using a variety of method, including by measuring the inductive voltage of the motor <NUM>, also referred to as the motor back-EMF (Electro-Motive Force) voltage, as discussed later in detail. Controller <NUM> may also receive a variable-speed signal from variable-speed actuator or a speed-dial. Based on the calculated rotor position and the variable-speed signal, controller <NUM> controls commutation sequence of the motor <NUM>. This is done by outputting drive signals UH, VH, WH, UL, VL, and WL through the gate driver <NUM>, which provides a voltage level needed to drive the gates of the semiconductor switches within the power switch circuit <NUM>. By control a PWM switching operation of the power switch circuit <NUM> via the drive signals, the controller <NUM> controls the direction and speed by which the motor windings are sequentially energized, thus electronically controlling the motor <NUM> commutation.

In an embodiment, power supply regulator <NUM> may include one or more voltage regulators to step down the power supply to a voltage level compatible for operating the controller <NUM> and/or the gate driver <NUM>. In an embodiment, power supply regulator <NUM> may include a buck converter and/or a linear regulator to reduce the power voltage of the power supply to, for example, 15V for powering the gate driver <NUM>, and down to, for example, <NUM>. 2V for powering the controller <NUM>.

In an embodiment, power switch <NUM> may be provided between the power supply regulator <NUM> and the gate driver <NUM>. Power switch <NUM> may be a current-carrying ON/OFF switch coupled to the ON/OFF trigger or the variable-speed actuator to allow the user to begin operating the motor <NUM>, as discussed above. Power switch <NUM> in this embodiment disables supply of power to the motor <NUM> by cutting power to the gate drivers <NUM>. It is noted, however, that power switch <NUM> may be provided at a different location, for example, within the power unit <NUM> between the rectifier circuit <NUM> and the power switch circuit <NUM>. It is further noted that in an embodiment, power tool <NUM> may be provided without an ON/OFF switch <NUM>, and the controller <NUM> may be configured to activate the power devices in power switch circuit <NUM> when the ON/OFF trigger (or variable-speed actuator) is actuated by the user.

<FIG> depicts a block circuit diagram of a corded power tool <NUM> that received powers from an AC power supply such as, for example, an AC power generator or the power grid. As the name implies, BLDC motors are designed to work with DC power. Thus, in an embodiment, power unit <NUM> is provided with a rectifier circuit <NUM> on between the power supply and the power switch circuit <NUM>. In an embodiment, power from the AC power lines as designated by VAC and GND is passed through the rectifier circuit <NUM> to convert or remove the negative half-cycles of the AC power, thus providing a DC voltage on the DC bus line <NUM>. In an embodiment, rectifier circuit <NUM> may include a full-wave bridge diode rectifier <NUM> to convert the negative half-cycles of the AC power to positive half-cycles. Alternatively, in an embodiment, rectifier circuit <NUM> may include a half-wave rectifier to eliminate the half-cycles of the AC power. In an embodiment, rectifier circuit <NUM> may further include a bus capacitor <NUM> provided on the DC bus line <NUM>. In another embodiment, active rectification may be employed, e.g., for active power factor correction. In an embodiment, bus capacitor <NUM> may have a relatively small value to reduce voltage high-frequency transients on the AC power supply, without significantly smoothening the AC voltage waveform.

<FIG> depicts an exemplary power switch circuit <NUM> configured as a three-phase inverter bridge circuit, according to an embodiment. This circuit corresponds to a three-phase motor including, for example, <NUM> sets of windings pairs, with each pair wound on two opposite stator teeth. It should be understood that the inverter bridge circuit may include more phases corresponding to a higher number of phases of the motor. As shown herein, the three-phase inverter bridge circuit includes three high-side FETs and three low-side FETs. The gates of the high-side FETs driven via drive signals UH, VH, and WH, and the gates of the low-side FETs are driven via drive signals UL, VL, and WL. In an embodiment, the drains of the high-side FETs are coupled to the sources of the low-side FETs to output power signals PU, PV, and PW for driving the BLDC motor <NUM>.

In an embodiment, a resistor R_Shunt is disposed in series with the negative terminal of the power supply. Resistor R_Shunt is used by the controller <NUM> to measure the instantaneous current through the motor <NUM>, for the purposes described later in this disclosure.

<FIG> depicts an exemplary waveform diagram of a pulse-width modulation (PWM) drive sequence of the three-phase inventor bridge circuit of <FIG> within a full <NUM>-degree conduction cycle. In an embodiment, controller <NUM> controls power switch circuit <NUM> to supply trapezoidal voltage waveforms to each phase of the motor <NUM>. In an embodiment where motor <NUM> is a three-phase motor, each trapezoidal waveform includes a conduction band (or conduction angle) of <NUM> degrees during normal operation, for a total of <NUM> degrees of rotor rotation. Specifically, as shown in this figure, within a full <NUM>° cycle, each of the drive signals associated with the high-side and low-side power switches is activated during a <NUM>° conduction band ("CB"). In this manner, each associated phase of the motor is energized by activating a high-side switch and a low-side switch, which create a current path through the associated phase of the motor. In this example, the high-side switches are pulse-width modulated by the control unit <NUM> as a function of the desired motor <NUM> rotational speed, while the low-side switches are active-high for the duration of their conduction band. It should be noted, however, that low-side switches may alternatively be synchronously rectified. During the CB of a high-side switch, the corresponding low-side switch is kept low, but the other two low-side switches are activated for half the CB of the high-side switch to provide a current path between the power supply and the motor windings. For simplicity, the <NUM>-degree of rotor rotation can be divided to six sectors of <NUM> degrees each, where within each sector, only one of the high-side switches and one of the low-side switches is active.

Referring back to <FIG> and <FIG>, controller <NUM> detects the angular position of the rotor using various methods described herein, and particularly using the motor back-EMF above a certain speed threshold. Motor back-EMF results from inductive current generated on the floating phase of the motor as a result of magnetic interaction between that phase and the rotor magnets as the rotor rotates. The voltage shape of the back-EMF signal waveform for each phase is indicative of the rotational location of the motor.

In an embodiment, to detect the motor back-EMF voltage, an attenuator <NUM> is electrically coupled to the U, V, and W terminals of the motor <NUM>. Attenuator <NUM> is a voltage divider that, in an exemplary embodiment, includes two resistors, and simply divides the voltage by a constant in order to reduce the motor back-EMF voltage to a voltage that is within the operating voltage range of the motor (e.g., typically <NUM>. A Low-Pass Filter (LPF) <NUM> is coupled to the output of the attenuator <NUM> to remove impulse noise and, in an embodiment, convert the PWM pulse drain to an analog voltage by averaging the high and low periods of the back-EMF voltage signal.

The controller <NUM> receives three voltage output from the LPF <NUM> corresponding to the phases of the motor <NUM>. As the motor <NUM> is commutated, the controller <NUM> monitors the motor back-EMF voltage on the open phase of the motor <NUM>. The open phase refers to the phase that is not actively driven within a given sector. For example, within sector <NUM> shown in <FIG>, where the controller <NUM> is driving UH and VL, the controller <NUM> monitors the voltage on phase W. By monitoring zero-crossing of the open-phase voltage, the controller <NUM> can determine when to commutate the next sector. Furthermore, by monitoring the frequency and sequence of the back-EMF phase voltages over a number of sectors, the controller <NUM> is able to determine speed and rotational direction of the rotor. Controller <NUM> can take corrective action when it determines that motor speed is too high, which may be caused by system failure, or the rotor is rotation in the correct direction, which may occur at start-up or during normal due to the power tool accessory hitting a pinch on the workpiece. Such corrective action may include, but is not limited to, allowing the motor to coast, braking the motor, or correcting the commutation sequence of the motor to obtain the desired speed or rotation direction.

In an embodiment, in addition to controller <NUM>, control unit <NUM> further includes a secondary controller <NUM> provided to determine motor speed and rotation direction. Secondary controller <NUM> may be of the same size and processing power as controller <NUM>, or alternatively may be a relatively small and low power processor. For example, secondary controller <NUM> may be a microprocessor or microcontroller chip, for example an <NUM>-bit micro-controller (such as a PIC10F200 Microchip®) that is smaller and less expensive than controller <NUM>. Controller <NUM> and secondary controller <NUM> may be mounted on the same circuit board or separate circuit boards disposed in different parts of the power tool <NUM>. In an embodiment, like controller <NUM>, secondary controller receives a low-voltage supply of power from the power supply regulator <NUM>. It also receives three voltage signals corresponding to phases of the motor <NUM> from the LPF <NUM>. However, unlike controller <NUM>, secondary controller <NUM>, secondary controller <NUM> does not control motor commutation or other power tool control functions. Rather, secondary controller <NUM> is merely programmed to determine the speed and rotational direction of the motor <NUM> based on the voltage signals from the LPF <NUM>, and to shut down power to the motor <NUM> in the event it detects an overspeed condition or incorrect rotation of the motor <NUM>. In an embodiment, secondary controller <NUM> shuts down power to the motor <NUM> by activating a disable signal that disables the gate driver <NUM>. Secondary controller <NUM> ensures, that in the event of electrical or software failure by the controller <NUM>, the motor <NUM> does not continue operating at high speed or incorrect direction. Secondary controller <NUM> is discussed in greater detail later in this disclosure.

An aspect of the invention is described herein with reference to <FIG>, according to an embodiment.

<FIG> depicts an exemplary waveform diagram of the motor phase voltages detected by the controller <NUM> during a full <NUM>-degree rotation of the motor, according to an embodiment. In sector <NUM>, as discussed above, the controller <NUM> actively drives U and V phases and designates W phase as the open-phase on which the motor back-EMF is monitored. When the controller <NUM> detects a zero-crossing on the W phase within this sector, it determines that the rotor is in the middle of the present sector. If no advance angle is provided, controller <NUM> begins to commutate the next sector after a predetermined angle, e.g. in this example, <NUM> degrees. This sequence is continued in sector <NUM>, where the V phase is monitored for motor back-EMF, and so on.

As discussed above, controller <NUM> relies primarily on the motor back-EMF to calculate the position of the rotor and determine the exact timing of the next commutation. While this execution is reliable at speeds above a certain threshold, the motor back-EMF voltage is not sufficiently steady and reliable for sensorless rotor position detection. Furthermore, at start-up, the controller <NUM> needs to know the position of the rotor to start commutation. Accordingly, the controller <NUM> is programmed and configured to perform three different algorithms based on the speed of the motor, as described here.

Referring now to <FIG>, a flow diagram executed by the controller <NUM> for sensorless motor commutation is described, according to an embodiment. In an embodiment, the controller <NUM> starts at step <NUM> and proceeds to execute a process herein referred to as Initial Position Detection (IPD) at step <NUM>. In this step, as described below in detail, the controller <NUM> detects the initial angular position of the rotor. In step <NUM>, the controller <NUM> determines whether the rotor speed is below a transitory threshold. The transitory threshold in this example is <NUM> RPM, but may be higher or lower depending on motor size, power output, etc. If the speed is below the transitory threshold, which it is immediately after IPD, controller <NUM> proceeds to execute a process herein referred to as Low Speed Motor Commutation (LSMC) at step <NUM>. This process is used an as alternative to commutation using motor back-EMF and will be described below in detail. If the rotor speed is equal to or greater than the transitory threshold, the controller <NUM> executed commutation using motor back-EMF, as described above with reference to <FIG>. In executing either process, the controller <NUM> monitors a condition indicative of tool shut down to determine whether to end motor operation in <NUM>. Such condition may include, but is not limited to, user release of the power tool trigger switch or a fault condition such as motor over-voltage, over-current, over-temperature, etc. If such condition occurs, the controller <NUM> either brakes the motor or shuts off power to the motor to allow it to coast down. Otherwise, it repeats this process beginning at step <NUM>.

The process of Initial Position Detection (IPD) is described herein with reference to <FIG>, according to an embodiment.

<FIG> depicts a table of sequence of voltage pulses injected during Initial Position Detection (IPD), according to an embodiment. In IPD, the controller <NUM> sequentially injects a series of voltage pulses to each sector of the motor as shown in this table. For example, voltage V1 is applied to sector <NUM> by activating switches S1a, S2b and S3b (<FIG>) of the power switch circuit <NUM>; voltage V1 is applied to sector <NUM> by activating switches S1a, S2a and S3b of the power switch circuit <NUM>; etc. In an embodiment, each pulse has a <NUM>µsec duration.

After each voltage pulse, the controller <NUM> measures the current across the shunt resistor R_Shunt (<FIG>). The sector corresponding to the position of the rotor generates the highest inductive current in response to the voltage pulse. <FIG> depicts an exemplary diagram showing the measured current corresponding to each voltage pulse. The sector corresponding to the larger current measurement - in this example sector <NUM> - is identified by the controller <NUM> as the initial position of the rotor, as shown in <FIG>.

The Low Speed Motor Commutation (LSMC) process is described herein with reference to <FIG>, according to an embodiment. In LSMC, the controller <NUM> relies on injection of voltage test pulses to the present sector and the next expected sector to determine the timing of when commutation should transition to the next sector, as described here in detail.

<FIG> exhibits an exemplary table representing commutation sequence data stored in a memory (not shown) accessible by the controller <NUM> for controlling the motor commutation. Within each sector, controller <NUM> can look up the present sector commutation sequence, as well as the previous sector and next sector commutation sequence. For example, if the rotor is currently in sector <NUM>, controller <NUM> can look up the previous sector commutation sequence (VH, WL) and next sector commutation sequence (WH, UL) from the table.

<FIG> depicts an exemplary waveform diagram including voltage test pulses injected to consecutive sectors to determine commutation timing of the next sector, according to an embodiment. In this example, the rotor is presently in sector <NUM>, and therefore the present sector commutation sequence is UH (which is pulse-width modulated) and WL (which is kept HIGH for the duration of the sector). In an embodiment, controller <NUM> controls the drive signals such that, the PWM drive is periodically paused after every set number of cycles. Two test voltage pulses having the same width (Tp) are injected on (UH, WL) (for the present sector) and (VH, WL) (for the next sector) in sequence. The controller <NUM> also monitors the motor current via R_Shunt (<FIG>) and determines the slope of the motor current corresponding to the two test voltage pulses. If the motor determines that the ΔI < <NUM>, where ΔI = ΔIU (Slope of the present sector current) - ΔlV (Slope of the next sector current), it continues to commutate the present sector. This process is repeated for as long as ΔI < <NUM>. Once controller <NUM> detects that ΔI > <NUM>, it designates sector <NUM> as the present sector, and process is continued by periodically injecting test voltage pulses into sector <NUM> (present sector) and sector <NUM> (next sector).

It is noted that <FIG> merely depicts a transition period between sectors <NUM> and <NUM>, and actual number of PWM cycles and test pulses within each sector is much greater than shown.

In an embodiment, instead of comparing slopes of the current measurements, the applied voltage pulses may be of fixed width and the rise in amplitude in the measured motor currents may be compared instead. Alternatively, voltage pulses may be applied until the associated measured current increases to a predetermined amplitude, and the width of the voltage pulses may be compared.

In an embodiment, the controller may execute PWM control of the power switch circuit <NUM> at a lower frequency below a low-frequency speed threshold. In an embodiment, this low-frequency speed threshold may be the same as the transitory threshold (for example <NUM>,<NUM> rpm) discussed above for transitioning between the LSMC commutation and commutation using motor back-EMF. Alternatively, this low-frequency threshold may be set to a lower or higher speed value. In an embodiment, below the low-frequency speed threshold, the controller <NUM> executes PWM control at a lower frequency to allow itself more time to inject test pulses and measure the associated motor currents. Once motor speed reaches and/or exceeds the low-frequency speed threshold, the controller reverts to its normal operating frequency for PWM control.

In an alternative embodiment, the PWM control of the power switch circuit <NUM> remains the set at the normal operating frequency, even at low speed, while the motor is being commutated, and the frequency is set to a lower value during periods in which the PWM drive is paused and test pulses are being injected. For example, in <FIG>, the operating frequency may be set to a lower value (e.g., <NUM>) while the two test pulses are being injected on (UH, WL) (for the present sector) and (VH, WL) (for the next sector), and to a normal operating frequency value (e.g., <NUM>) for execution of PWM drive.

In an embodiment, the lower frequency value may be <NUM>% to <NUM>% of the normal operating frequency. In an example, where normal operating frequency is <NUM>, the lower frequency value may be approximately <NUM>.

A challenge that arises at very low speed operation of power tools is that the rotor may inadvertently rotate in the incorrect direction due to outside forces. This may occur, for example, when encountering a pinch on the workpiece, where the inertia of the tool may cause the tool to rotate after the tool accessory gets stuck in the workpiece. Also, the user's attempts to disengage the accessory from the workpiece by turning the tool opposite to the intended direction may attribute to this condition. It is important for the controller <NUM> to be able to detect when the rotor is rotating in the incorrect direction to take corrective action and adjust the commutation sequence accordingly.

To address this problem, according to an embodiment of the invention, controller <NUM> subdivides each sector to two halves, and injects test voltage pulses as described above only in the latter half of the respective segment. In the first half of the segment, instead of injecting test voltage pulses in the present sector and the next sector, controller <NUM> injects test voltage pulses in the present sector and the previous sector. This is because incorrect rotation of the rotor is likely problematic in the first half of the sector, where movement of the rotor to the incorrect sector can have devastating effects on commutation control. In this manner, if the controller <NUM> can detect if the rotor is inadvertently moved to the previous sector and adjust the commutation sequence accordingly to correct the rotational direction of the motor.

<FIG> depicts an exemplary waveform diagram showing motor commutation sequence within a full <NUM> degree of rotor rotation and test pulses for each sector, according to an embodiment. As shown here, within each sector, a first set of pulses are injected in the present sector for the entirety of the sector. Within the first half of each sector, a second set of test pulses are injected in the previous sector in order to detect inadvertent rotation of the rotor to the previous sector. The slopes of current measurements corresponding to the respective first and second sets of test pulses are compared in a manner described above with respect to <FIG>, and if it is determined that ΔI > <NUM>, where ΔI = (Slope of the present sector current) - (Slope of the previous sector current), the controller <NUM> determines that the rotor has rotated inadvertently to the previous sector and takes corrective action. Within the second half of the sector, a third set of test pulses are injected in the next sector and slopes of current measurements corresponding to the respective first and third sets of test pulses are compared to determine commutation of the next sector, as described with reference to <FIG>.

By way of example, if the rotor is currently in sector <NUM> (i.e., present sector = UH, WL), within the first half of sector <NUM> (i.e., <NUM>-<NUM> degrees), the injection of test pulses occur on the present sector (UH, WL) and the previous sector (UH, VL). If the slope of the current measurement corresponding to the test pulse of the present sector is greater than the slope of the current measurement corresponding to the test pulse of the previous sector, the controller <NUM> determines that the rotor has rotated incorrectly to sector <NUM>. Within the second half of sector <NUM> (i.e., <NUM>-<NUM> degrees), the injection of test pulses occurs on the present sector (UH, WL) and the next sector (VH, WL). If the slope of the current measurement corresponding to the test pulse of the present sector is greater than the slope of the current measurement corresponding to the test pulse of the next sector, the controller <NUM> determines that the rotor has rotated to sector <NUM> and begins commutation of sector <NUM>.

Similarly, if the rotor is currently in sector <NUM>, within the first half of sector <NUM> (i.e., <NUM>-<NUM> degrees), the injection of test pulses occur on (VH,WL) for the present sector and (VH, WL) for the previous sector. Within the second half of sector <NUM> (i.e., <NUM>-<NUM> degrees), the injection of test pulses occurs on (VH, WL) for the present sector and the (VH, WL) for the next sector.

In an embodiment, controller <NUM> monitors the open-phase voltage within each sector and, as shown in <FIG>, transitions between the first half of the sector and the second half of the sector when it detects a zero-crossing of the open-phase voltage. In an embodiment, although the back-EMF voltage is generally unreliable at low speed for detecting the timing of commutation of the next sector, it is sufficiently reliable for detecting, at least to close proximity, the halfway point of each sector where the controller <NUM> should begin monitoring the next sector instead of the previous sector.

In an embodiment, controller <NUM> determines a half-way point of the DC bus voltage waveform (e.g., 60V for a power tool powered by a 120V nominal voltage power supply) and compares the open-phase voltage to the DC bus halfway point (half_bus). If the BEMF is falling for the present sector and open-phase voltage > half_bus, controller <NUM> determines that the actual rotor position is in the first half of the present sector and check for transition to the previous sector to detect a possible bounce back. If the BEMF is falling for the present sector and open-phase voltage < half_bus, controller <NUM> determines that the actual rotor position is in the second half of the present sector and check for transition to the next sector.

In an embodiment, controller <NUM> applies fix-width test pulses to the present sector and the previous and/or next sectors. Alternatively, controller <NUM> may apply variable-width pulses as suited. In that case, rather than comparison of the change of current amplitude, controller <NUM> compares the slopes of the two current measurements - <MAT> to <MAT>, where TP1 and TP2 are widths of voltages pulses applied to present sector and the previous and/or next sector respectively - to determine whether the sector has moved from the present sector.

In an embodiment, the frequency at which test pulses are applied may vary depending of the rotational speed of the motor. For example, at output speeds of below <NUM> RPM, controller <NUM> may apply test pulses at a <NUM> frequency (i.e., every <NUM>), and at output speeds of over <NUM> RPM, controller <NUM> may apply test pulses at <NUM> frequency (i.e., every <NUM>).

In an embodiment, controller <NUM> may further normalize the current curves to compensate for variations in the DC bus voltage, as discussed here. As shown in <FIG>, the DC bus voltage may fluctuate due to, for example, voltage ripples in an AC power source or high impedance of a battery pack. These variations in the DC bus voltage affect the amount of voltage supplied to the motor via the test pulses and thus compromise the effectiveness of directly comparing the associated current measurements. To overcome this issue, in an embodiment, controller <NUM> measures the DC bus voltage at the time the test pulses are injected to the present sector (Vdc1) and the adjacent (i.e., previous or next) sector (Vdc2). Controller <NUM> then normalizes the current measurements ΔI<NUM> and ΔI<NUM> according to the DC bus voltage and compares (ΔI<NUM> x Vdc1) and (ΔI<NUM> xVdc2) to determine whether and when to commutate the adjacent sector.

Referring now to <FIG>, a flow diagram executed by the controller <NUM> for Low-Speed Motor Commutation (LSMC) is described, according to an embodiment. In an embodiment, to execute LSMC at step <NUM>, controller <NUM> commutates the present sector at a given PWM duty cycle for a predetermined number of cycles at step <NUM>. At step <NUM>, controller <NUM> provisionally pauses commutation of the present sector and insert a test pulse in the present sector. At step <NUM>, controller <NUM> determines if the sector is past its halfway point. Controller <NUM> may do so by setting a flag once it detects a zero-crossing of the open-phase voltage. If it is past the halfway point, at step <NUM>, controller <NUM> inserts a test pulse in the next sector, as determined by the table of <FIG>. Controller <NUM> measures current signals associated with the present sector test pulse and the next sector test pulse at step <NUM>. At step <NUM>, controller <NUM> determines whether the present sector pulse current slope > next sector pulse current slope, and if so, it moves to the next sector (i.e., sets next sector as the present sector) at step <NUM>. Controller <NUM> then repeats this process beginning at step <NUM>.

If controller <NUM> determines at step <NUM> that the present sector is not past its halfway point, it proceeds to insert a test pulse in the previous sector as determined by the table of <FIG> at step <NUM>. Controller <NUM> measures current signals associated with the present sector test pulse and the previous sector test pulse at step <NUM>. At step <NUM>, controller <NUM> determines whether the present sector pulse current slope > previous sector pulse current slope, and if so, it moves to the previous sector (i.e., sets previous sector as the present sector) at step <NUM> in order to correct the commutation sequence and get the rotor rotating in the correct direction. Controller <NUM> then repeats this process beginning at step <NUM>.

As previously discussed, at speeds higher than the transitory threshold (for example at above <NUM>,<NUM> rpm for some power tools) discussed above, the motor back-EMF can be reliably used by controller <NUM> to detect the rotor position. Controller <NUM> does this by detecting the zero-crossing of the open-phase voltage within each sector and commutating the next sector accordingly.

One way for the controller to determine the zero-cross is to continuously sample and monitor the open phase voltage. However, such continuous sampling takes a lot of processing power.

An improved technique for detecting the zero-crossing is described herein with reference to <FIG>, according to an embodiment.

In an embodiment, controller <NUM> conducts sampling of the open phase voltage periodically at a rate of one sample per PWM duty cycle. <FIG> depicts an exemplary waveform diagram depicting the sampling of the open phase voltage, which in this example is the V-phase during sector <NUM>. As the V-phase voltage begins to rise, controller <NUM> samples the V-phase voltage once for every PWM duty cycle applied to the U phase. Once controller <NUM> detects that the sampled V-phase voltage is greater than or equal to the DC bus zero-cross (i.e., halfway point of the DC bus voltage, which is approximately equal to half the power supply voltage), it determines that an open-phase zero-cross has occurred. Controller <NUM> uses the open-phase zero-cross detection to commutate the adjacent cycle (e.g., in these examples, with a <NUM>-degree phase shift).

Sampling at the rate explained above is suitable for relatively low speeds, e.g., between <NUM> RPM to <NUM> RPM in some power tools. In the given example, the sampling of the V-phase open voltage once it exceeds the DC bus zero-cross occurs a short time after the actual zero-cross, giving the controller <NUM> ample time to prepare for commutating the next sector (sector <NUM>) before the rotor moved to the next sector. However, sampling the open phase voltage at the rate of once per PWM duty cycle at higher speed levels may result in delayed and inaccurate detection of a zero-crossing event. For example, as shown in <FIG>, sampling the V-phase open voltage at the rate of once per PWM duty cycle results in detection of the V-phase zero-cross event after the rotor has already moved to the next sector (sector <NUM>), causing the controller <NUM> commutation control to lag behind the actual rotor position.

In order to avoid this issue, according to an embodiment of the invention, as shown in <FIG>, at relatively high rotor speed (e.g., above <NUM>,<NUM> RPM in some power tool applications), controller <NUM> is configured to sample the open-phase voltage twicer per PWM duty cycle. The controller identifies a mid-way point of the PWM duty cycle, takes a first sample of the open circuit voltage prior to (e.g., <NUM> before) the midpoint of PWM duty cycle, and a second sample after (e.g., <NUM> after) the midpoint of PWM. In an embodiment, using these sampling points, controller <NUM> constructs a profile of the open-phase voltage and predicts based on the difference between the two voltage samples (ΔVbemf) and the difference between the first sample and the DC bus voltage zero-cross point (ΔVhalf_bus), and uses the profile to predict the timing of the open-phase voltage zero-crossing. In an embodiment, this determination may be made as:.

<FIG> depicts an exemplary flow diagram executed by the controller <NUM> for detecting the zero-crossing of the open-phase voltage at different motor speed ranges during execution of commutation using motor back-EMF, according to an embodiment. In an embodiment, in the process of commutation using back-EMF <NUM> (see <FIG>), controller <NUM> proceeds to determine rotor rotational speed at step <NUM> and compare the rotor speed to a first threshold (in this example, <NUM>,<NUM> RPM) at step <NUM>. If rotor speed is less than the first threshold, at step <NUM>, controller <NUM> samples the open-phase voltage once per PWM duty cycle, at <NUM> before the falling edge of the PWM cycle applied to the active phase. This sampling point is effective due to the small duty of the PWM cycles within this speed range. If the first voltage sample indicates that (sampled open circuit voltage - half_bus) has a different polarity as compared to the previous sample, the controller immediately determines that the rotor has moved to a new a new sector and begins to commutate the next sector.

If rotor speed is greater than or equal to the first threshold, at step <NUM>, controller <NUM> determines whether the speed is less than a second threshold (in this example, <NUM>,<NUM> RPM). If rotor speed is less than the second threshold, controller may designate the sampling time of the open-voltage based on the PWM duty cycle, i.e., whether the PWM duty cycle is below a threshold (in this example, <NUM>%) at step <NUM>. If PWM duty cycle is below the threshold, the open-phase voltage is sampled <NUM> before the falling edge of the PWM duty cycle at step <NUM>. Otherwise, the open-phase voltage is sampled <NUM> after the midway point of the PWM duty cycle at step <NUM>.

If rotor speed is greater than or equal to the second threshold, at step <NUM>, controller <NUM> samples the open-phase voltage <NUM> before and after the PWM midway point. At step <NUM>, controller <NUM> determines whether the second sample is above the DC bus zero-crossing, and if so, at step <NUM>, it determines that the rotor has already rotated to the next sector and begins to commutate the next sector. Otherwise, at step <NUM>, i.e., if both samples are below the half_bus, a linear extrapolation method is used to predict when the open phase voltage will exceed the half_bus, as shown in <FIG>. If it is determined that the open phase voltage will exceed the half_bus prior to the next PWM duty cycle, the controller sets up a corresponding time delay and begins commutating the next sector at the end of that time delay, i.e., prior to the next PWM duty cycle.

Another aspect of the invention is described herein with reference to <FIG>.

<FIG> depicts a waveform diagram of the control sequence of the three-phase inventor bridge discussed above operating at <NUM>% PWM duty cycle, according to an embodiment. In this figure, each of the three high-side FETs are active at a <NUM>° conduction bands (abbreviated as "CB" herein). In other words, the full rotational range of the motor is divided by the number of phases of the motor (i.e., <NUM> degrees) to obtain the conduction band for each phase, and the phases of the motor are activated in sequence at that conduction band.

In BLDC systems, due to inefficiencies associated with the power switches and the inductance of the motor itself, the current waveform lags behind the back-EMF voltage waveform of the motor. As a result, when driving the motor as shown in <FIG>, the BLDC motor does not produce the maximum torque that it is capable of. The ratio of the actual power absorbed by the load to the apparent power flowing in the circuit, referred to as power factor, is low when the current and voltage waveforms are not in synch. To overcome this issue, in most BLDC motors, the conduction bands of the power switches are shifted by an advance angle of, for example <NUM>°, to maximize the power factor and the amount of torque that the motor is capable of producing. <FIG> depicts the waveform diagram of the control sequence of <FIG>, shown with an advance angle (AA) of <NUM>°, according to an embodiment.

It has further been found that increasing the conduction band of the brushless motor phases to a value greater than the baseline <NUM>° conduction band results in increased output power and increased speed for a given torque amount. To increase the conduction band, the centerline of each conduction band is maintained, and the leading and trailing edges of the conduction band are equally increased. <FIG> depicts a waveform diagram of the control sequence of the three-phase inventor bridge discussed above with a conduction band of <NUM>°, according to an embodiment of the invention, where the leading and trailing edges of each conduction band are shifted by <NUM> degrees each as compared to <FIG>.

It has further been found that increasing both the conduction band and the advance angle in tandem increases power output and system efficiency even more. For example, where the conduction band is <NUM> degrees, the motor efficiency increases by setting the advance angle to <NUM> degrees rather than the conventional <NUM> degrees. <FIG> depicts an embodiment of the invention where the advance angle of each phase of the brushless motor is varied depending on the conduction band. In the illustrative example, where the conduction band is at <NUM>°, the advance angle is set to <NUM>°. In an embodiment, various conduction band/ advance angle (CB/AA) correlations may be programmed in the control unit <NUM> as a look-up table or an equation defining the relationship. The controller may set the CB/AA value based on the desired output speed or output power and drive the motor accordingly.

Increasing CB/AA beyond the baseline <NUM>/<NUM>-degree level may provide many advantages to extending the power and speed range of the power tool. Reference is made by way of example to <CIT> and <CIT>. These publications disclose power tool where variable CB/AA is utilized for closed-loop speed control to increase power to the motor as load increases; to operate the motor at a high operating range even when powered by a power supply having relatively low voltage; and to extend the operating range of the trigger switch.

In BLDC motors having Hall sensors, implementation of variable conduction band and/or advance angle control is conducted in relation to the position signals from the Hall sensors. The controller relies on position signals to identify what sector the rotor is located in and can advance the commutation angle relative to the centerline of the Hall sensor signals. Alternatively and/or additionally, the Hall sensors may be positioned offset relative to the sectors (for example by <NUM> degrees) such that the position signals already include a mechanical advance angle. The controller may also expand the conduction band by shifting the leading and trailing edges relative to the baseline commutation conduction band of <NUM> degrees.

According to an embodiment, in BLDC motors using a sensorless control scheme, controller <NUM> controls implementation of variable conduction band and/or advance angle relative to the beginning, zero-crossing, or an end of the open phase voltage signal within each sector, as described herein in detail.

<FIG> depicts an exemplary waveform diagram showing the motor voltage signals PU, PV, and PW within a full <NUM> degree of motor rotation. The commutation drive sectors and open-phase sectors of the V phase only are labeled in this figure. In this figure, the controller <NUM> does not apply an advance angle or vary the conduction band from the baseline value (i.e., CB/AA = <NUM> degrees). Thus, commutation rising edge of a next cycle takes place after the open-phase voltage has reached the bus voltage. For example, in transitioning from sector <NUM> to sector <NUM> of the V phase, controller <NUM> continues to sample the PV open-phase voltage within sector <NUM> as it ramps up until it reaches the bus voltage. Commutation rising edge <NUM> of the V phase thus takes place at <NUM> degrees. This ensures that commutation of sector <NUM> is in-line with the actual position of the rotor in sector <NUM>. Similarly, the commutation trailing edge <NUM> of the V phase takes place when the PW open-phase voltage within sector <NUM> reaches the bus voltage, i.e., at <NUM> degrees.

Alternatively, controller <NUM> detects a zero-cross of the open phase and calculates, based on motor speed and/or by interpolating the open-phase voltage waveform, the commutation leading and trailing edges relative to the zero-cross of the open phase. For example, in transitioning from sector <NUM> to sector <NUM> of the V phase, controller <NUM> may detect the zero-cross of the PV open-phase voltage within sector <NUM> as it ramps up and sets the commutation leading edge <NUM> of sector <NUM> at <NUM> degrees thereafter.

In an embodiment, after each phase commutation cycle, a voltage pulse <NUM> is often detected immediately after the end of the commutation cycle, i.e., at the beginning of the open cycle of that phase, as shown in <FIG>. This voltage pulse <NUM> is associated with a change in phase inductive current through the phase windings. Specifically, this voltage pulse results from a combination of three voltages: <NUM>) the voltage developed in the stator windings between the open-phase and the preceding active-phase (e.g., U phase and W phase) terminals due to the decaying current on the open-phase, <NUM>) the back-EMF voltage developed in the same windings as they interact with corresponding rotor magnets, and <NUM>) the back-EMF voltage developed in the windings between the open-phase and the ensuing active phase (e.g., U phase and W phase) as they interact with the other rotor magnets. The voltage pulse period <NUM> ends when the current on the open-phase fully decays. The voltage pulse is nearly undetectable or has a very small magnitude at no load, and the magnitude of the voltage pulse increases as the load (and thus the current through the motor) increases.

<FIG> depicts an exemplary waveform diagram similar to <FIG>, but with a <NUM>-degree advance angle (CB/AA = <NUM>/<NUM>). In this figure, rather than starting motor commutation of the next sector at the end of the open-phase cycle of the present sector, controller <NUM> begins commutating the next sector once it detects the zero-crossing of the open phase signal within the present sector. In other words, the <NUM>-degree advance angle aligns the commutation of the next sector with the zero-cross of the open-phase voltage of the present sector. In an embodiment, controller <NUM> detects zero-cross of the open-phase voltage during any of the methods previously described, e.g., by sampling the open-phase voltage until it reaches ½ of the bus voltage value or ½ the power supply voltage. Once the zero-cross of the open-phase voltage is reached during the present sector, controller <NUM> sets the commutation leading edge <NUM> of the next sector, which cuts off the upward slope of the open-phase voltage. This is shown, for example, at <NUM> degrees for the PV phase signal, where the PV phase signal transitions instantly from an upward-sloping open-phase voltage signal to a drive voltage signal. PV is driven at a <NUM>-degree conduction band, i.e., until controller <NUM> stops driving PV at <NUM> degrees, at which points the V phase becomes a floating open phase again. The commutation trailing edge <NUM> is set when the PW open-phase voltage reaches ½ of the bus voltage value or ½ the power supply voltage, i.e., at or approximately close to the leading edge of the W phase commutation.

At the beginning of the open phase beginning at <NUM> degrees, PV phase signal exhibits a voltage pulse <NUM> followed by a period <NUM> where its voltage is high. The duration of the voltage pulses <NUM> and period <NUM> are merely exemplary in this figure and may vary depending on the motor torque and power requirements. This voltage pulse <NUM> and the ensuing period <NUM> result from interaction of induced voltages between various stator windings described above. After the period <NUM>, which in this example is at <NUM> degrees, the back-EMF voltage on the PV open-phase signal begins to fall. In an embodiment, controller <NUM> samples the PV open-phase voltage periodically to detect its zero-crossing. As discussed above, the zero-crossing is detected when the PV open-phase voltage becomes equal to or less than <NUM>% of the bus voltage. This point corresponds to <NUM> degrees of rotor rotation. At this point the controller <NUM> begins commutating the next sector with a <NUM>-degree advance angle, causing the PV phase signal to instantly transition from the downward-sloping open-phase voltage to zero.

The above embodiment discloses controlling motor commutation sensorlessly using the motor back-EMF voltage signals at a <NUM>-degree advance angle. In an embodiment, controller <NUM> can implement variable advance angle of less than or greater than <NUM> degrees by varying the commutation of the following cycle relative to the open-phase voltage, as described below with reference to <FIG> and <FIG>. In each example, controller <NUM> sets the commutation leading edge as V_bus * a, where V_bus denotes the voltage of the DC bus line or the voltage of the power supply, and a is in the range of <NUM> to <NUM> and is calculated based on the desired advance angle and/or conduction band.

<FIG> depicts an exemplary waveform diagram similar to <FIG> and <FIG>, but with an advance angle of between <NUM> to <NUM> degrees, in this example <NUM>-degrees (i.e., CB/AA = <NUM>/<NUM>), according to an embodiment. In an embodiment, to control the motor with an advance angle of x degrees where <NUM> < x < <NUM>, the controller <NUM> transitions the open phase to active drive at (<NUM> - x) degrees after the zero-crossing. This is accomplished by setting the commutation rising edge <NUM> to V_bus * <NUM>. In the example of <FIG>, the transition is made at <NUM> degrees after the zero-crossing, which results in a <NUM>-degree advance angle relative to the beginning of the next sector.

<FIG> depicts an exemplary waveform diagram similar to <FIG> and <FIG>, but with an advance angle of between <NUM> to <NUM> degrees, in this example <NUM>-degrees (i.e., CB/AA = <NUM>/<NUM>), according to an embodiment. To control the motor commutation with an advance angle of x degrees where <NUM> < x < <NUM>, the controller <NUM> transitions the open phase to active drive at (<NUM> - x) degrees after the beginning of the present sector, i.e., after the beginning of the upward-sloping or downward-sloping open phase voltage. This is accomplished by setting the commutation rising edge <NUM> to V_bus * <NUM>. In the example of <FIG>, the transition is made at <NUM> degrees after the beginning of the present sector, which results in a <NUM>-degree advance angle relative to the beginning of the next sector.

<FIG> depicts an exemplary waveform diagram similar to <FIG> and <FIG>, but with an increased conduction band of <NUM>-degrees. In an embodiment, controller <NUM> expands the leading and trailing edges of each conduction band by an additional <NUM> degrees for a total of <NUM>-degree conduction. Expanding the leading and trailing edges equally allows for maintaining the advance angle at <NUM> degrees despite the shift in the leading edge (i.e., CB/AA = <NUM>/<NUM>). In other words, while the leading and trailing edges of each conduction band are shifted in comparison to <FIG>, the centerline of each conduction band remains the same, thus maintaining the same advance angle.

In an embodiment, to control motor commutation with expanded conduction band, controller <NUM> calculates the leading edge as a function of the open phase voltage relative to the bus voltage. For example, in <FIG>, the commutation leading edge <NUM> of the V phase is set when the PV open-phase voltage is equal to or greater than V_bus * <NUM>, which corresponds to the <NUM> degree position within sector <NUM>.

In an embodiment, controller <NUM> calculates the trailing edge as a function of the leading edge of the next phase commutation + b, where b = CB - <NUM>. For example, in <FIG>, the leading edge <NUM> of the W phase commutation cycle is at <NUM> degrees, so the trailing edge <NUM> of the V phase is enforced at <NUM> + (<NUM> - <NUM>) = <NUM> degrees of rotation. Controller <NUM> may use a counter that is based on the rotational speed of the motor to apply the trailing edge of the V phase b degrees after the leading edge of the W phase.

In an alternative embodiment, controller <NUM> may calculate the trailing edge as a function of an extrapolation of the open phase voltage relative to the bus voltage. For example, in <FIG>, the commutation trailing edge <NUM> of the V phase is set when an extrapolation of PW open-phase voltage is equal to or greater than V_bus * <NUM>. <NUM>, which corresponds to <NUM> degrees of rotation.

In an embodiment, controller <NUM> may set variable conduction band and/or advance angle as a function of an instantaneous measure of the open-phase voltage relative to its maximum values (i.e., bus voltage or power source voltage). Controller <NUM> may adjust the commutation leading edge as a function of V_bus * a, where a becomes smaller as a combination of conduction band and advance angle requires shifting the leading edge <NUM> closer to the beginning of the open phase. In an embodiment, the conduction band and advance angle may be expanded as long as the sampling frequency of the open-phase voltage enables the controller <NUM> to detect a slope on the open-phase voltage waveform before the open-phase voltage reaches V_bus * a. The value a may be calculated as a mathematical function of conduction band and/or advance angle, or using a look-up table as exemplified in Table <NUM> below.

In an embodiment, variable conduction band and/or advance angle may be used to increase power to the motor. One such application is closed-loop speed control, where the motor conduction band and/or advance angle is varied as the loan on the motor increases in order to minimize the differential between the actual output speed and a target speed of the motor (e.g., as set by a trigger switch or speed dial in variable-speed power tools).

<FIG> depicts an exemplary flow diagram for process <NUM> executed by controller <NUM> to apply variable conduction band and/or advance angle in sensorless trapezoidal motor control of a multi-phase motor, according to an embodiment. In an embodiment, starting at <NUM>, controller <NUM> calculates motor output speed using the methods disclosed above at <NUM>. In an embodiment, controller <NUM> calculates a different (delta) between the calculated motor speed and a target motor speed at <NUM>. In an embodiment, controller <NUM> sets a conduction band / advance angle (CB/AA) value based on the calculated delta at <NUM>. The CB/AA may be set to a value greater than a baseline value of <NUM>/<NUM> degrees in order to supply more power to the motor, thus increasing the rotational speed of the motor to match the target speed. In an embodiment, controller <NUM> calculates values a and b as functions of the set CB/AA at <NUM>. Value a, as described above, denotes a fraction of the open-phase voltage and is in the range of <NUM> to <NUM>, preferably greater than or equal to <NUM>/<NUM>, more preferably greater than or equal to <NUM>/<NUM>, and even more preferably greater than or equal to <NUM>/<NUM>. The value b, as described above, is equal to CB- <NUM>.

In an embodiment, controller <NUM> monitors the open-phase voltage at <NUM> and compares the instantaneous measure of open-phase voltage to v_bus * a at <NUM>. If the open-phase voltage is greater than or equal to v_bus * a, controller <NUM> sets the commutation leading edge to begin commutating at <NUM>. Controller <NUM> begins to monitor the next open-phase voltage at <NUM>. Controller <NUM> sets the trailing edge of the commutation cycle within b degrees of the leading edge of the next phase commutation cycle at <NUM>. The b degree period is enforced using a counter that operates as a function of the motor output speed at <NUM>. The process continues at <NUM>.

<FIG> depicts an exemplary waveform diagram showing the motor voltage signals exhibiting a conduction band / advance angle of <NUM>/<NUM> degrees, where high current yields an additional <NUM> degree of advancing, according to an embodiment. In this embodiment, controller <NUM> drives the motor at a CB/AA of <NUM>/<NUM> degrees. As explained above, due to higher currents in the stator windings at higher load, the current in the open phase takes longer to fully decay, resulting in greater time of the voltage pulses in comparison to <FIG>. It was found that by the inventors of this applications that in some power tools, under heavy load, a combination of larger voltage pulses and other motor characteristics lead to an additional advance angle of up to <NUM> degrees. This can be seen in <FIG>, where the open-phase voltage waveforms exhibit a <NUM>-degree shift in comparison to <FIG>. Thus, even though controller <NUM> intends to drive the motor at CB/AA of <NUM>/<NUM> degrees, motor is inadvertently driven at CB/AA of <NUM>/<NUM> degrees at high load.

If controller <NUM> intends to drive the motor at CB/AA of over <NUM>/<NUM> degrees, for example at <NUM>/<NUM>, the effective advance angle on the motor will be <NUM> degrees. This means the controller <NUM> begins commuting, for example, sector <NUM> while the rotor is still physically in sector <NUM>. In an embodiment, advance angle of more than <NUM> degrees is not practical. What is needed is a scheme to increase the conduction band, particularly at high load where it is desirable to increase power input into the motor, while avoiding the associated increase in advance angle beyond <NUM> degrees.

Accordingly, in an embodiment of the invention, in order to avoid advancing the rotor by more than <NUM> degrees under heavy load, controller <NUM> is configured to increase the conduction band by maintaining the leading edge of the conduction band and shifting only the trailing edge of the conduction band to increase the conduction band from <NUM> degrees.

<FIG> depicts an exemplary waveform diagram similar to <FIG>, but with the trailing edge of the conduction band shifted by <NUM> degrees to achieve a conduction band of <NUM> degrees, in an embodiment. In this embodiment, a total CB/AA of <NUM>/<NUM> degrees is exhibited. As shown, the leading edge <NUM> (e.g., <NUM> degrees for the V phase) remains unchanged in <FIG> and <FIG>, but the trailing edge <NUM> is shifted by <NUM> degrees (e.g., from <NUM> degrees in <FIG> to <NUM> degrees in <FIG>). The trailing edge <NUM> is succeeded by an open-phase period including wider voltage pulse, followed by a shortened voltage slope that begins at a lower magnitude than the drive voltage signal and ends at the point of zero-cross detection. This configuration ensures that the leading edge is not advanced more than <NUM> degrees in spite of the motor's inherent added angle advancing of up to <NUM> degrees under high load.

As described above with reference to <FIG> and <FIG>, in an embodiment of the invention, a secondary controller <NUM> is provided in addition to controller <NUM>. Secondary controller <NUM> senses speed and/or direction of the motor and acts as a secondary safety check to protect the tool and the user against inadvertent high motor speed and incorrect direction of rotation. The secondary controller <NUM> is described here in detail.

In an embodiment, as described above, secondary controller <NUM> may be a microprocessor or microcontroller chip, for example an <NUM>-bit micro-controller (such as a PIC10F200 Microchip®) that is smaller and less expensive than controller <NUM>. Controller <NUM> and secondary controller <NUM> may be mounted on the same circuit board or separate circuit boards disposed in different parts of the power tool <NUM>.

With continued reference to <FIG> and <FIG>, in an embodiment, like controller <NUM>, secondary controller receives a low-voltage supply of power from the power supply regulator <NUM>. It also receives three voltage signals corresponding to phases of the motor <NUM> from the LPF <NUM>. However, unlike controller <NUM>, secondary controller <NUM>, secondary controller <NUM> does not control motor commutation or other power tool control functions. Rather, in an embodiment, secondary controller <NUM> is merely programmed to determine the speed and rotational direction of the motor <NUM> based on the voltage signals from the LPF <NUM>, and to shut down power to the motor <NUM> in the event it detects an overspeed condition or incorrect rotation of the motor <NUM>. In an embodiment, secondary controller <NUM> is provided with a pre-set upper speed threshold which, when exceeded, causes the secondary controller <NUM> to take corrective action to shut off power to the motor <NUM>. Alternatively, secondary controller <NUM> may receive a speed signal from a speed dial or trigger switch of the power tool <NUM>, sets a target speed according to the speed signal, and takes corrective action to shut off power to the motor <NUM> when the speed of the motor exceeds the target speed. In an embodiment, secondary controller <NUM> shuts off power to the motor <NUM> by activating a disable signal that disables the gate driver <NUM>. Secondary controller <NUM> ensures, that in the event of electrical or software failure by the controller <NUM>, the motor <NUM> does not continue operating at high speed or incorrect direction.

In an embodiment, secondary controller <NUM> is programmed to determine which of the three voltage signals is the open-phase voltage based on the shape of the three voltage signals. A phase signal that is in pulse-width modulation is being actively driven by the controller <NUM>, whereas a phase signal that is sloped is the open-phase signal carrying the motor back-EMF. Secondary controller <NUM> in this manner monitors the motor back-EMF and, based on the frequency of the back-EMF zero-crossings, and the sequence of the open phases, it determines the speed and direction of rotation of the motor <NUM>. Secondary controller <NUM> may also monitor the zero-crossing on only one of the three signals to determine the speed of the motor, and on two of the signals to determine its direction of rotation.

In an embodiment, instead of detecting the zero-crossings of the voltage waveforms, the secondary controller may detect other characteristics of the voltage signals as they transition from high to low or low to high. this manner, secondary controller <NUM> protects the power tool <NUM> from system failure without commutating the motor <NUM> or even receiving the motor commutation signals.

<FIG> depict an exemplary circuit block diagram of power tool <NUM> that similar in many aspects to <FIG> above, except that secondary controller <NUM> does not detect motor speed or direction of rotation based on back-EMF signals. Rather, in this embodiment, secondary controller <NUM> receives at least two (or more) of the motor drive signals (i.e., controller <NUM> output signals or gate driver <NUM> output signals) and determines motor speed and rotation direction based on the frequency and sequence of said signals. It is noted that at least two drive signals are needed to determine the direction of rotation of the motor, though motor speed alone can be calculated based on a single drive signal.

In an exemplary embodiment as shown in <FIG>, secondary controller <NUM> receives two gate driver signals UL and VL, which as shown in <FIG> are the gate drive inputs to low-side power switches S1b and S2b. Since the high-side gate drivers are used for PWM control, the low-side gate drivers are better suited for monitoring the transition points between adjacent sectors.

In an embodiment, one of the two gate driver signals UL or VL is used for monitoring the speed. For example, secondary controller <NUM> may be programmed to monitor the rising edge of the UL signal and determine the motor speed based on the frequency of the monitored rising edges.

The technique described above is most suitable when the low-side gate driver signals are not subject to PWM control. However, when using synchronous rectification (as described later in detail) or other de facto PWM control on the low-side gate drivers, secondary controller <NUM> may be unable to detect the correct leading edge of the gate drive signals uniformly from one electrical period to the next as a result of high frequency of the PWM signals. This affects the reliability of speed and/or direction determination by the secondary controller <NUM>. Thus, in an embodiment, secondary controller <NUM> uses a filtering and processing technique to enhance its ability to detect accurate speed and direction and rotation, as described here. In this technique, secondary controller <NUM> receives all three high-side gate driver signals, or all three low-side gate driver signals, outputted from the gate driver <NUM>.

<FIG> depicts a waveform diagram of gate driver signals UL, VL and WL driven with PWM control, according to an embodiment. In an embodiment, these voltage signals are divided down through a voltage divider (not shown) to obtain voltage levels compatible with the secondary controller <NUM>. Further, an analog low-pass filter (not shown) similar to LPF <NUM> is used remove significant portions of high frequencies from the gate drive signals UL, VL and WL. <FIG> depicts a waveform diagram showing the analog-filtered signals UL, VL and WL. Secondary controller <NUM> further processes these signals by subtracting the drive signals from one another, e.g., UL - VL, and VL - WL, to obtain two analog waveforms. This is shown in <FIG> by way of example. In an embodiment, any two independent subtractions of U, V, and W, will suffice for this implementation.

Subtracting the successive drive signals from one another is particularly beneficial in sensorless control schemes such as field-oriented control (FOC). In such schemes, for improved operation of a three-phase brushless motor, a technique called field weakening is often employed. Field weakening is accomplished by introducing a small quantity of a third harmonic of the fundamental frequency into the fundamental drive signal. The third harmonic has a frequency three times the frequency of the fundamental frequency. Each phase receives the same amount of third harmonic injection. Because each phase is separated by <NUM> degrees, or one-third, of the period of the fundamental frequency, and because the third harmonic has a period of one-third of the period of the fundamental frequency, subtracting two phases has the effect of exactly cancelling out the injected third harmonic, thus rendering the resultant a more pure fundamental sinewave. If there is no third harmonic injection, the subtraction scheme described above still acts the construct two resultant waveforms from the three drive signals.

In an embodiment, secondary controller <NUM> further processes the two resultant waveforms with additional digital filtering to improve the sinusoidal quality of the analog waveforms, as shown in <FIG> by way of example. In an embodiment, secondary controller <NUM> uses these sinusoidal waveforms to determine the speed and direction of rotation of the motor <NUM>. In an embodiment, secondary controller <NUM> may calculate speed by examining a frequency of upward-sloping zero-crossing of the one of the waveform signals. Similarly, secondary controller <NUM> may calculate direction of rotation by examining the sequence of upward-sloping zero-crossings of the two waveform signals. The resultant sinusoidal waveforms provide the secondary controller <NUM> with reliable means to detect speed and rotation of direction as compared to unprocessed gate drive signals.

While examples provided herein depict and describe sensorless brushless motor control systems, it should be understood that the embodiments executed by secondary controller <NUM> described here may also be employed in a system where controller <NUM> detects rotor position uses position sensors (e.g., Hall sensors). In other words, while secondary controller <NUM> of this disclosure detects speed and rotation direction of the motor <NUM> without positional sensors, controller <NUM> may execute either a sensor or sensorless control execution.

<FIG> depicts an exemplary flow diagram for process <NUM> executed by secondary controller <NUM> to determine motor speed. In an embodiment, in process <NUM>, starting with <NUM>, secondary controller <NUM> detects monitors the UL signal to detect the rising edge within each rotation of the motor at <NUM>. Secondary controller <NUM> calculates the speed of the motor based on the frequency of the rising edge of the UL signal at <NUM>. The shorter the time between consecutive rising edges of the UL signal, the faster the speed of rotation. Secondary controller <NUM> compares the calculated speed to a speed threshold at <NUM>. Each time secondary controller <NUM> determines that an overspeed has taken place, it increments an overspeed counter at <NUM> (overspeed counter is set to <NUM> at start point <NUM>). If an overspeed event is not detected at <NUM>, the overspeed counter is decremented until it reaches <NUM>. This is done to ensure that a certain number of overspeed events are detected before corrective action is initiated by secondary controller. After the overspeed counter is incremented at <NUM>, the overspeed counter is compared to a counter threshold at <NUM>. If the overspeed counter is greater than the counter threshold, secondary controller <NUM> determines that an overspeed condition has occurred continuously over at least several rotations of the motor and initiates corrective action at <NUM>. The process ends at <NUM>.

In an embodiment, corrective action by the secondary controller <NUM> may be to disable the gate driver <NUM>, disable the controller <NUM>, disable the power supply regulator <NUM>, or disable supply of power to the motor by shutting off a switch (not shown) along the current path. Alternatively, corrective action may entail braking the motor as will be described later in detail.

In an embodiment, both gate driver signals are used for determining the direction of rotation of the rotor. For example, secondary controller <NUM> may be programmed to monitor the rising edges of the UL and VL signals and determine the direction of rotation of the rotor based on the sequence of the monitored rising edges.

<FIG> depicts an exemplary flow diagram for process <NUM> executed by secondary controller <NUM> to determine whether the rotor is rotating in an incorrect direction. In an embodiment, in process <NUM>, starting with <NUM>, secondary controller <NUM> detects monitors the rising and falling edges of the UL and VL signals within each rotation of the motor at <NUM>. If the rising edge of UL is detected before the rising edge of VL (step <NUM>); the falling edge of UL is detected approximately simultaneously with the rising edge of VL (step <NUM>); and the falling edge of UL is detected before the falling edge of VL (step <NUM>), the secondary controller <NUM> proceeds as normal to the next cycle at <NUM> and repeats this process at <NUM>. Otherwise, the secondary controller <NUM> determines that the rotor is rotating in an incorrect direction and takes corrective action at <NUM>. Once again, corrective action may be disabling one of the circuit components, shutting off supply of power to the motor, or braking the motor. The process ends at <NUM>.

In an embodiment, similarly to overspeed detection, secondary controller <NUM> may implement a counter used to ensure that a reverse rotation event has occurred for several cycles before it takes corrective action at <NUM>. The counter may be incremented every time a reverse rotation event is detected and decremented every time a reverse rotation even is not detected. Corrective action is taken only if the counter passes a counter threshold.

As previously described, motor commutation may be controlled with a conduction band different from the baseline value of <NUM>° to control power output and speed for a given torque amount. Controlling motor commutation with a conduction band of <NUM>° ensures that within each sector, the rising edge of one phase and the falling edge of another phase are significantly inline. However, when controller <NUM> executes control motor commutation with a variable conduction band, the rising edge of the next sector does not align with the falling edge of the present sector. To take this into account, according to an embodiment, secondary controller <NUM> adopts an alternative process <NUM> for detecting incorrect rotor direction, as described here.

<FIG> depicts an exemplary flow diagram for process <NUM> executed by secondary controller <NUM> to determine whether the rotor is rotating in an incorrect direction, when controller <NUM> executes control motor commutation with a variable conduction band, according to an embodiment. In an embodiment, in process <NUM>, starting with <NUM>, secondary controller <NUM> detects monitors the rising and falling edges of the UL and VL signals within each rotation of the motor at <NUM>. If the rising edge of UL is detected before the rising edge of VL (step <NUM>); the rising edge of VL is detected before the falling edge of UL (step <NUM>); and the falling edge of UL is detected before the falling edge of VL (step <NUM>), the secondary controller <NUM> proceeds as normal to the next cycle at <NUM> and repeats this process at <NUM>. Otherwise, the secondary controller <NUM> determines that the rotor is rotating in an incorrect direction and takes corrective action at <NUM>. Once again, corrective action may be disabling one of the circuit components, shutting off supply of power to the motor, or braking the motor.

An alternative embodiment of the invention is described herein with reference to <FIG> and <FIG>, where motor commutation is controlled using synchronous rectification.

<FIG> depicts an exemplary waveform diagram of a pulse-width modulation (PWM) drive sequence using synchronous rectification (also referred to as active freewheeling) within a full <NUM>-degree conduction cycle, according to an embodiment. In an embodiment, controller <NUM> controls power switch circuit <NUM> to supply trapezoidal voltage waveforms to each phase of the motor <NUM> by applying pulse-width modulated (PWM) drive signals UH, VH and WH to the high-side power switches. In non-synchronous rectification, the flyback diodes (see <FIG>) are disposed in parallel to the low-side power switches S1b-S3b to eliminate flyback voltage spikes. Each flyback diode has an internal resistance, which generates a considerable amount of heat. Synchronous rectification reduces the amount of heat generated by each flyback diode by providing an alternative (parallel) current path for freewheeling (flyback) current. Specifically, in synchronous rectification, the low-side power switch corresponding to the actively-driven high-side power switch is also driven using a PWM signal that is mirror opposite to the high-side PWM drive signal. For example, in sectors <NUM> and <NUM>, controller <NUM> applies a PWM drive signal to UL that is the mirror opposite of the PWM drive signal that it applies to UH.

As described above with reference to <FIG>, secondary controller <NUM> relies on edge transition detection of low-side drive signals VL and UL to detect speed and direction of rotation of the motor. When using synchronous rectification, however, the PWM drive signal exhibits numerous edge transitions within each full rotation of the rotor that should not be relied on for speed and direction measurement.

To overcome this problem, according to an embodiment, secondary controller <NUM> is configured to compare the detected rising edges of the low-side drive signals VL and UL to their subsequent falling edges and ignore the detected edges if the elapsed time between the rising and falling edges is too small. Since PWM drive signals have very short pulses, a rising edge that is followed too closely by a falling edge is deemed to be part of an active freewheeling PWM drive signal rather than a commutation signal.

<FIG> depicts an exemplary flow diagram <NUM> for process executed by the secondary controller <NUM> for proper detection of commutation signal rising and falling edges commutation used for speed and rotation detection when controlling motor commutation with active freewheeling, according to an embodiment. In other words process <NUM> is executed by secondary controller <NUM> in steps <NUM> and <NUM> of flow diagrams <NUM> (<FIG>) and <NUM> (<FIG>) respectively to determine whether detected rising and falling edges are part of a commutation signal that can be relied on for speed and rotation detection, or are part of an active freewheeling PWM drive signal, according to an embodiment. In an embodiment, in process <NUM>, starting with <NUM>, secondary controller <NUM> detects monitors a rising edge of either a UL or VL signal within each rotation of the motor at <NUM>. Next, secondary controller <NUM> waits to detect a subsequent falling edge of the same signal UL or VL at <NUM>. Secondary controller <NUM> measures the time between the detected rising and falling edges. If the time lapse between the rising and falling edges is greater than a time threshold at <NUM>, secondary controller <NUM> determines that the detected rising and falling edges are the commutation rising and falling edges needed for speed and rotation direction detection at <NUM>. The detected rising and falling edges are utilizes in processes <NUM> and <NUM> described above. Otherwise, at <NUM>, the secondary controller <NUM> ignores the detected rising and falling edges. The process edges at <NUM>.

In an embodiment, the time threshold is greater than the time it takes to complete a full PWM cycle at any motor speed, but smaller than the time it takes for a full rotor rotation at maximum speed. In an exemplary embodiment, the time threshold is between <NUM> to <NUM> microseconds, preferably between <NUM> to <NUM> microseconds.

In an embodiment, where controller <NUM> is configured to electronically brake the motor upon trigger release or upon detection of a fault condition. This is normally done by, for example, simultaneously driving the three low-side power switches to short the motor windings and cause the inductive current of the motor to stop the rotation of the rotor. In the event of a brake, the rising edges of UL, VL and WL occur simultaneously.

Similarly, during motor start-up, controller <NUM> may execute a bootstrapping algorithm to charge a series of bootstrap capacitors within the gate driver <NUM> used to drive the high-side power switches. This is also performed by applying pulses to the power switches simultaneously.

To account for braking and bootstrapping, according to an embodiment, secondary controller <NUM> is configured to ignore simultaneous rising edges or simultaneous falling edges of the low-side gate drive signals. For example, where secondary controller <NUM> monitors VL and UL signals, it compares the rising edges of VL and UL and ignores them for purposes of speed and direction detection if they are simultaneous or within a time threshold (e.g., several microseconds) of one another.

Another embodiment of the invention is described herein with reference to <FIG>.

<FIG> depicts a partial block circuit diagram of power tool <NUM> as previously described, of which the power switch circuit <NUM>, gate driver <NUM>, controller <NUM>, and secondary controller <NUM> are only shown here, according to an embodiment. In this embodiment, secondary controller <NUM> is utilized as a secondary check against the fault detection and protection provided by the controller <NUM>. This arrangement a single fault tolerance mechanism for power tool <NUM> to meet regulatory safety standards. Some examples of these secondary safety checks are described herein.

In an embodiment, controller <NUM> and secondary controller <NUM> receive a signal from a Trigger State Unit <NUM>, which changes the signal whenever the trigger switch is pressed or released. In an embodiment, the secondary controller <NUM> makes corrective action if it detects that the motor is being driven (e.g. by detecting that the gate drive signals are being sequentially activated) while the trigger has not been pressed. In an embodiment, secondary controller <NUM> may be used for self-reset protection by ensuring that controller <NUM> alone cannot restart the motor, for example due to faulty code or outside electromagnetic interference. In self-reset protection, secondary controller <NUM> issues start and stop signals based on the signal from the Trigger State Unit <NUM>, and the motor is prevented from being powered unless both controller <NUM> and secondary controller <NUM> are in agreement on motor start.

In an embodiment, controller <NUM> and secondary controller <NUM> receive a signal from a Guard Detection Unit <NUM> indicative of whether a safety guard has been detected around the output spindle of a power tool such as a grinder. Some safety standards require that tools such as grinders be prevented from being operated if no safety guard is installed by the user. In an embodiment, the secondary controller <NUM> makes corrective action if it detects that the motor is being driven while no safety guard has been detected.

In an embodiment, controller <NUM> and secondary controller <NUM> receive a signal from a Side Handle Detection and/or Actuation Unit <NUM> indicative of whether a safety side handle has been attached to a side of a power tool such as a grinder. In a further embodiment, a second signal may be provided indicative of whether the side handle is in fact being gripped by the user. Once again, side handle detection and/or grip detection are safety features that may be desirable if not required for power tools such as grinders. In an embodiment, the secondary controller <NUM> makes corrective action if it detects that the motor is being driven while no side handle has been detected and/or the side handle is not being gripped by the user.

In an embodiment, controller <NUM> and secondary controller <NUM> receive a signal from a Bale Handle Actuation Unit <NUM> indicative of whether a bale handle is being actuated by a user on a tool such as a chain saw. In an embodiment, the secondary controller <NUM> makes corrective action if it detects that the motor is being driven while the bale handle is not being actuated by the user.

In an embodiment, in a power tool such as nailer, controller <NUM> and secondary controller <NUM> receive a signal from a Contact Trip unit <NUM>. Many nailers require the trigger switch and the contact trip to be actuated in sequence for the tool to operate safely. In an embodiment, the secondary controller <NUM> can monitor the inputs from the Trigger State Unit <NUM> and the Contact Trip unit <NUM> to determine that the trigger switch and the contact trip have been engaged in the correct sequence and take corrective action if the correct sequence has not been followed.

In an embodiment, once again for a power tool such as a nailer, controller <NUM> and secondary controller <NUM> receive a signal from a Motor Position Sensor <NUM>. Many nailers require that the motor run for a limited number of revolutions per trigger press. In an embodiment, Motor Position Sensor <NUM> detects a linear position of the motor. The secondary controller <NUM> receives this signal and the input from the Trigger State Unit <NUM> to determine the motor travel distance from the time of the trigger press. In an embodiment, the secondary controller <NUM> makes corrective action if it detects that the motor has traveled too far relative to the trigger press.

In an embodiment, controller <NUM> and secondary controller <NUM> receive other fault signals from the power tool (for example, from a thermistor <NUM> disposed near the motor, the power electronics, transmission components, etc.) or from a battery pack <NUM> (e.g., battery under-voltage, over-current, over-temperature, or other fault conditions). In an embodiment, the secondary controller <NUM> makes corrective action upon receipt of any of these fault conditions.

In an embodiment, as described above, corrective action taken by the secondary controller <NUM> includes, but is not limited to, disabling the gate driver <NUM>, disabling the controller <NUM>, disabling the power supply regulator <NUM>, or shutting off a switch (not shown) along the current path to the motor. Alternatively, corrective action may entail electronically braking the motor. Electronic braking of the motor is particularly desirable where the motor may take too long to coast due to high inertia of the output accessory and/or where allowing the motor to coast may be too dangerous to the user. In an embodiment, electronic braking by secondary controller <NUM> may be self-executing, e.g., when secondary controller <NUM> detects an over-speed or incorrect rotation condition or based on tool or battery pack fault conditions examples of which were described above.

<FIG> depicts a partial block circuit diagram of power tool <NUM> as previously described, of which the power switch circuit <NUM>, gate driver <NUM>, controller <NUM>, and secondary controller <NUM> are only shown here. <FIG> further illustrates the secondary controller <NUM> being configured to override the drive signals to the power switch circuit <NUM> to electronically brake the motor <NUM>, according to an embodiment. In an embodiment, secondary controller <NUM> outputs two signals H-Brk and L-Brk. H-Brk is coupled to the high-side drive signals UH, VH and WH via diodes <NUM>. L-Brk is coupled to the low-side drive signals UL, VL and WL via diodes <NUM>. In an embodiment, controller <NUM> electronically braking the motor <NUM> by turning off the high-side power switches (i.e., by grounding the gate drive signals UH, VH and WH) and simultaneously turning on the low-side power switches (i.e., by activating the gate drive signals UL, VL and WL) to short the motor windings. This allow the inductive current of the motor to magnetically stop the rotation of the rotor. As a secondary check against software or hardware failure of controller <NUM>, secondary controller <NUM> also electronically brakes the motor by grounding the H-Brk signal and driving the L-Brk signal to ensure that the high-side power switches are simultaneously turned off and the low-side power switches are simultaneously turned on.

In an embodiment, secondary controller <NUM> may be configured to execute soft-braking by applying a pulse-width modulated (PWM) signal to the L-Brk signal. The duty cycle of the PWM signal controls the soft-braking force applied to the motor and accordingly the amount of time it takes for the motor to come to a stop. In an embodiment, secondary controller <NUM> may be configured to apply various braking profiles, examples of which are disclosed in US Patent Publication No. <NUM>/<NUM>.

In an embodiment, secondary controller <NUM> may output six signals individually coupled to UH, VH, WH, UL, VL and WL drive signals. This arrangement would require more output pins from the secondary controller <NUM> chip, but dispose of diodes <NUM> and <NUM>. In yet another embodiment, a logic block may be utilized (including, for example, AND logic for the high-side drive signals and OR logic for low-side drive signals) that receives drive signals from controller <NUM> and secondary controller <NUM> and concurrently drives the gate signals.

Referring once again to <FIG>, in an embodiment, in addition to sensing the three lower gate drive signals, secondary controller <NUM> may also sense the ON/OFF status of the power tool based on, for example, the position of the power switch <NUM> of <FIG>, or based on a signal from the power tool trigger switch. In an embodiment, secondary controller <NUM> may be configured to prevent dangerous self-restart by controller <NUM>. Dangerous restart of a power tool takes place when a tool is coupled to a power source while the tool switch or trigger is in an ON position. In an embodiment, if controller <NUM> takes a corrective action resulting in all low-side drive signals simultaneously inactive - for example, by allowing the motor to coast - while the power switch <NUM> is still ON, the secondary controller <NUM> will assert its corrective action and will continue to disable supply of power to the motor <NUM> unless it senses power switch <NUM> change to OFF, and then to ON again. Similarly, in a system where controller <NUM> and/or secondary controller <NUM> are configured to electronically brake the motor <NUM> by simultaneously activating the low-side drive signals, when secondary controller <NUM> senses that the three low-side drive signals are simultaneously activated with the power switch in the ON position, it will assert its corrective action and will continue to disable supply of power to the motor <NUM> unless it senses power switch <NUM> change to OFF, and then to ON again. These actions by the secondary controller <NUM> prevent the motor <NUM> from restarting, after a corrective action, so long as the power tool trigger or power switch remains ON, even if the condition responsible for the corrective action has passed.

The scope of protection is defined in the appended claims.

Claim 1:
A power tool comprising:
a brushless motor (<NUM>) having a stator defining a plurality of phases, a rotor rotatable relative to the stator, and a plurality of power terminals electrically connected to the plurality of phases;
a power unit (<NUM>) having a plurality of power switches connected electrically between a power source and the plurality of motor terminals and operable to deliver power to the motor; and
a control unit (<NUM>) interfaced with the power unit to output a drive signal to one or more of the plurality of motor switches to drive the plurality of phases of the motor using a trapezoidal control scheme over a plurality of sectors of the rotor rotation,
wherein the control unit is configured to set a conduction band to a baseline value that is greater than <NUM> degrees, the conduction band corresponding to an angle within which one of the plurality of phases of the motor is commutated, and characterized in that
the control unit is configured to set at least one commutation transition point as a function of the set conduction band, and within each sector of the plurality of sectors of the rotor rotation, monitor an open-phase voltage of the motor to detect a back electromotive force voltage of the motor and control commutation of at least one phase based on the open-phase voltage of the motor in relation to the at least one commutation transition point, wherein the at least one commutation transition point is a voltage threshold set as a fraction of a maximum open-phase voltage.