Control timing and sequencing for a multi-phase electric motor

Described embodiments provide an electronic circuit for controlling a motor. The electronic circuit includes a magnetic field sensing circuit responsive to magnetic field sensing elements disposed to sense rotation of the motor. The magnetic field sensing elements generate magnetic field signals, each having a state indicative of at least one of the rotational position and a rotation speed of the motor. A position and speed sensing circuit generates a signal representative of the rotational position of the motor and tracks state changes of the magnetic field signals. A gate driver circuit generates motor drive signals that drive the motor based upon the sensed rotational position. The position and speed sensing circuit generates a qualified control signal based upon a determined valid state change of the magnetic field signals. The gate driver circuit generates the motor drive signals based, at least in part, upon the qualified control signal.

CROSS-REFERENCE TO RELATED APPLICATIONS

BACKGROUND

Circuits to control and drive brushless direct current (BLDC) electric motors are known. Such motors might be implemented as multi-phase electric motors having drive signals corresponding to electrical windings of the motor. In some implementations, the control circuit might include or be coupled to one or more sensors, for example, Hall effect sensors or other similar devices, to sense a position and/or rotational speed of the motor. For example, Hall effect sensors might be employed to sense a magnetic field associated with the motor (or an object coupled to the motor, for example a fan or a crankshaft) as it rotates and, thus, determine a position and/or rotational speed.

In some arrangements, the sensed position and/or rotational speed might be employed to determine the drive signals for the electric motor. For example, the control circuit might change or modulate a shape of the drive signals that drive the electric motor, sense a direction of motion of the motor (e.g., forward or reverse), sense “windmilling” conditions where the motor is moving without being driven by the drive signals, or provide a phase advance of the drive signals to align a phase of a back electromotive force of the motor and a phase of the current through the motor.

In some arrangements, the Hall effect sensors might be sensitive to noise and/or generate output glitches, which can, in turn, lead to the drive signals of the motor being inaccurate relative to the state (e.g., position and/or rotational speed) of the motor. Such inaccuracies between the drive signals and the motor state can cause motor slow down and motor shutdown conditions.

In view of the above, it would be desirable to provide electric motor control circuits and associated methods that can more accurately determine the rotational position of the motor.

SUMMARY

One aspect provides an electronic circuit for controlling a moto. The electronic circuit includes a magnetic field sensing circuit responsive to a plurality of magnetic field sensing elements that sense rotation of the motor and generate a respective plurality of magnetic field signals. Each magnetic field signal has a respective state indicative of a rotational position of the motor. A position and speed sensing circuit generates a signal representative of at least one of the rotational position of the motor and a rotational speed of the motor. The position and speed sensing circuit also tracks state changes of the plurality of magnetic field signals. A gate driver circuit generates one or more motor drive signals that drive the motor based, at least in part, upon the sensed rotational position. The one or more motor drive signals control a voltage applied to the motor. The position and speed sensing circuit generates at least one qualified control signal based upon a determined valid state change of the plurality of magnetic field signals. The gate driver circuit generate the one or more motor drive signals based, at least in part, upon the qualified control signal.

In an embodiment, a given state of the plurality of magnetic field signals corresponds to a digital output generated based upon the sensed rotation of the motor by the plurality of magnetic field sensing elements. In an embodiment, the position and speed sensing circuit modifies one or more status indicators based upon the state of the plurality of magnetic field signals. In an embodiment, the one or more status indicators include a previous state indicator associated with at least one previous state of the plurality of magnetic field signals. A current state indicator is associated with a current state of the plurality of magnetic field signals. A motor direction indicator is set to one of a plurality of values based upon a detected direction of rotation of the motor and a desired direction of rotation of the motor.

In an embodiment, the position and speed sensing circuit determines that a valid state change of the plurality of magnetic field signals has occurred when the motor direction indicator is not set and the current state indicator is equal to an expected value determined based upon the previous state indicator. The at least one qualified control signal is generated for each valid state change.

In an embodiment, the position and speed sensing circuit determines that an invalid state change of the plurality of magnetic field signals has occurred when the motor direction indicator is not set and the current state indicator is not equal to an expected value determined based upon the previous state indicator, wherein no qualified control signal is generated for each invalid state change. In an embodiment, the position and speed sensing circuit ignores an invalid state change until the motor direction indicator is set for a predetermined number of state changes of the plurality of magnetic field signals and the motor direction indicator has been set for the predetermined number of state changes, when the at least one qualified control signal is generated and the motor direction indicator is cleared to a value associated with a valid state change. In an embodiment, the predetermined number of state changes is two. In an embodiment, the position and speed sensing circuit, for a determined invalid state change of the plurality of magnetic field signals, sets the motor direction indicator to a value associated with the invalid state change, and set the expected value based upon the current state indicator.

In another aspect, an electronic circuit for controlling a motor is provided that includes a magnetic field sensing circuit. The magnetic field sensing circuit is responsive to a plurality of magnetic field sensing elements disposed to sense rotation of the motor and generates a respective plurality of magnetic field signals. Each magnetic field signal has a respective state indicative of a rotational position of the motor. A position and speed sensing circuit generates a signal representative of at least one of the rotational position of the motor and a rotational speed of the motor, wherein the rotational position is associated with state changes of the plurality of magnetic field signals. A gate driver circuit generates one or more motor drive signals that drive the motor based, at least in part, upon the sensed rotational position, wherein the one or more motor drive signals control a voltage applied to the motor. The position and speed sensing circuit generates at least one qualified control signal a predetermined number of times for an associated valid state change of the plurality of magnetic field signals.

In an embodiment, the predetermined number is one. In an embodiment, a given state of the plurality of magnetic field signals corresponds to a digital output generated based upon the sensed rotational position of the motor. In an embodiment, the position and speed sensing circuit modifies one or more status indicators based upon the determined state of the plurality of magnetic field signals. In an embodiment, the one or more status indicators include a previous state indicator associated with at least one previous state of the plurality of magnetic field signals, a current state indicator associated with a current state of the plurality of magnetic field signals, and a motor direction indicator associated with a detected direction of rotation of the motor.

In an embodiment, the position and speed sensing circuit determines that a valid state change of the plurality of magnetic field signals has occurred when the motor direction indicator is not set and the current state indicator is equal to an expected value determined based upon the previous state indicator. For each valid state change, the at least one qualified control signal is generated.

In an embodiment, the position and speed sensing circuit determines that an invalid state change of the plurality of magnetic field signals has occurred when motor direction indicator is not set and the current state indicator is not equal to an expected value determined based upon the previous state indicator, and no qualified control signal is generated for each invalid state change. In an embodiment, the position and speed sensing circuit ignores an invalid state change until the motor direction indicator is set for a predetermined number of consecutive state changes of the plurality of magnetic field signals. When the motor direction indicator has been set for the predetermined number of consecutive state changes, the at least one qualified control signal is generated and the motor direction indicator is cleared to a value associated with a valid state change. In an embodiment, the predetermined number of consecutive state changes is two.

In an embodiment, the gate driver circuit generates the one or more motor drive signals as one of: a trapezoidal signal, a sine wave signal, and a square wave signal. In an embodiment, the at least one control signal is insensitive to glitches in state changes of the plurality of magnetic field signals. In an embodiment, the plurality of magnetic field sensing elements includes Hall effect magnetic field sensing elements. In an embodiment, the motor is a multi-phase electric motor and the gate driver circuit includes a plurality of half-bridge circuits, each half-bridge circuit associated with a given phase of the multi-phase electric motor, wherein each half-bridge circuit is configured to generate a corresponding one of the motor drive signals, each motor drive signal having a phase that is offset from others of the motor drive signals.

In an embodiment, the one or more motor drive signals include pulse width modulated signals having respective modulations corresponding to relationships of at least one of a current through the motor and a phase of a voltage applied to the motor. In an embodiment, the gate driver circuit generates the motor drive signals having respective phase advances, the phase advances to align a phase of a current through the motor and a phase of a voltage applied to the motor.

In another aspect, a method of controlling a motor by a motor control circuit is provided. The method includes sensing, responsive to a plurality of magnetic field sensing elements, a rotational position of the motor. A respective plurality of magnetic field signals is generated, each having a respective state indicative of the sensed rotational position of the motor. A signal representative of at least one of the rotational position of the motor and a rotational speed of the motor is generated and state changes of the plurality of magnetic field signals are tracked. One or more motor drive signals are generated that drive the motor based, at least in part, upon the sensed rotational position of the motor, wherein the one or more motor drive signals control a voltage applied to the motor. At least one qualified control signal is generated a predetermined number of times for an associated valid state change of the plurality of magnetic field signals.

In an embodiment, the method also includes generating a given state of the plurality of magnetic field signals as a digital signal based upon the sensed rotational position of the motor. In an embodiment, the method also includes modifying one or more status indicators based upon the determined state of the plurality of magnetic field signals.

In an embodiment, the one or more status indicators include a previous state indicator associated with at least one previous state of the plurality of magnetic field signals, a current state indicator associated with a current state of the plurality of magnetic field signals, and a motor direction indicator associated with a detected direction of rotation of the motor.

In an embodiment, the method also includes determining that a valid state change of the plurality of magnetic field signals has occurred when the motor direction indicator is not set and the current state indicator is equal to an expected value determined based upon the previous state indicator, and generating, for each valid state change, the at least one qualified control signal.

In an embodiment, the method also includes determining that an invalid state change of the plurality of magnetic field signals has occurred when motor direction indicator is not set and the current state indicator is not equal to an expected value determined based upon the previous state indicator. Invalid state changes of the plurality of magnetic field signals are ignored until the motor direction indicator is set for a predetermined number of consecutive state changes of the plurality of magnetic field signals. When the motor direction indicator has been set for the predetermined number of consecutive state changes, the method includes generating the at least one qualified control signal, and clearing the motor direction indicator. In an embodiment, the predetermined number of consecutive state changes is two.

DETAILED DESCRIPTION

As used herein, the term “magnetic field sensing element” is used to describe a variety of electronic elements that can sense a magnetic field. The magnetic field sensing element can be, but is not limited to, a Hall effect element, a magnetoresistance element, or a magnetotransistor. There are different types of Hall effect elements, for example, a planar Hall element, a vertical Hall element, and a Circular Vertical Hall (CVH) element. There are also different types of magnetoresistance elements, for example, a semiconductor magnetoresistance element such as Indium Antimonide (InSb), a giant magnetoresistance (GMR) element, for example, a spin valve, an anisotropic magnetoresistance element (AMR), a tunneling magnetoresistance (TMR) element, and a magnetic tunnel junction (MTJ). The magnetic field sensing element might be a single element or, alternatively, might include two or more magnetic field sensing elements arranged in various configurations, e.g., a half bridge or full (Wheatstone) bridge. Depending on the device type and other application requirements, the magnetic field sensing element might be a device made of a type IV semiconductor material such as Silicon (Si) or Germanium (Ge), or a type III-V semiconductor material like Gallium-Arsenide (GaAs) or an Indium compound, e.g., Indium-Antimonide (InSb).

Some of the above-described magnetic field sensing elements tend to have an axis of maximum sensitivity parallel to a substrate that supports the magnetic field sensing element, and others of the above-described magnetic field sensing elements tend to have an axis of maximum sensitivity perpendicular to a substrate that supports the magnetic field sensing element. In particular, planar Hall elements tend to have axes of sensitivity perpendicular to a substrate, while metal based or metallic magnetoresistance elements (e.g., GMR, TMR, AMR) and vertical Hall elements tend to have axes of sensitivity parallel to a substrate.

As used herein, the term “magnetic field sensor” is used to describe a circuit that uses a magnetic field sensing element, generally in combination with other circuits. Magnetic field sensors are used in a variety of applications, including, but not limited to, an angle sensor that senses an angle of a direction of a magnetic field, a current sensor that senses a magnetic field generated by a current carried by a current-carrying conductor, a magnetic switch that senses the proximity of a ferromagnetic object, a rotation detector that senses passing ferromagnetic articles, for example, magnetic domains of a ring magnet or a ferromagnetic target (e.g., gear teeth) where the magnetic field sensor is used in combination with a back bias or other magnet, and a magnetic field sensor that senses a magnetic field density of a magnetic field.

As used herein below, the term “target object” is used to describe a mechanical structure, movement of which is sensed by a magnetic field sensor.

Described embodiments provide a motor control system for an electric motor that maintains accurate sensing of the rotational position and direction of rotation of the electric motor. As will be described, motor control systems often employ magnetic field sensing elements to sense magnetic fields that change with respect to the rotational position, speed of rotation and/or the direction of rotation of the electric motor. Described motor control systems maintain accurate sensing of the rotational position, speed and direction of rotation of the electric motor, even if the system experiences large current steps in the motor windings or other transients. Such current steps can generate large magnetic fields and, thus, inaccurate outputs of the magnetic field sensing elements. Inaccurate outputs of the magnetic field sensing elements can, in turn, lead to drive signals of the electric motor being inaccurate relative to the state of the motor (e.g., the rotational position, speed of rotation and/or the direction of rotation). Such inaccuracies between the drive signals and the motor state can cause error conditions such as motor slow down and motor shutdown.

As will be described, embodiments provide an electronic circuit for controlling a motor. The electronic circuit includes a magnetic field sensing circuit responsive to magnetic field sensing elements disposed to sense rotation of the motor. The magnetic field sensing elements generate magnetic field signals, each having a state indicative of a rotational position of the motor. A position and speed sensing circuit generates a signal representative of the rotational position of the motor and a rotational speed of the motor and tracks state changes of the plurality of magnetic field signals. A gate driver circuit generates one or more motor drive signals that drive the motor based, at least in part, upon the sensed rotational position and control a voltage applied to the motor. The position and speed sensing circuit generates a qualified control signal based upon a determined valid state change of the plurality of magnetic field signals. The gate driver circuit generates the one or more motor drive signals based, at least in part, upon the qualified control signal.

Referring toFIG. 1, an illustrative motor system100is shown having a motor control circuit102coupled to motor104. In some embodiments, motor control circuit102is implemented as an integrated circuit chip having a plurality of input/output (I/O) pins, shown as labelled with respect to the function of each pin, for coupling to external signals and devices.

Although shown inFIG. 1as being a three-phase motor, in some embodiments, motor104could employ other numbers of phases, as would be understood by one of ordinary skill in the art. When motor104is a three-phase motor, the motor includes three windings (not shown), each of which, as would be understood by one of skill in the art, can be depicted as an equivalent circuit having an inductor in series with a resistor and in series with a back electromotive force (EMF) voltage source. Each winding is driven by an associated motor drive signal, shown as motor drive signals OUTA, OUTB and OUTC. While a three-phase electric motor is shown, the same techniques apply to an electric motor having more than or fewer than three phases, and a corresponding more than or fewer than three drive signals.

Motor control circuit102includes drive modulator116coupled to receive speed demand signal10from an external device coupled to motor control circuit102(e.g., via the PWM pin). In general, speed demand signal10is indicative of a requested speed of motor104. In some embodiments, speed demand signal10can be provided in one of a variety of formats, for example, a Single Edge Nibble Transmission (SENT) format, a Serial Peripheral Interface (SPI) format, a Local Interconnect Network (LIN) format, a CAN (Controller Area Network) format, an Inter-Integrated Circuit (I2C) format, or other similar signal formats. For example, speed demand signal10can be a voltage signal having a selected voltage value indicative of a desired speed of motor104. Speed demand signal10can also be, for example, a pulse width modulated (PWM) signal having a selected duty cycle indicative of the desired speed of motor104. Further, speed demand signal10can be a digital signal having a digital value indicative of the desired speed of motor104.

In some embodiments, the type of speed demand signal10to be received by the PWM pin can be selected by a signal, SEL, applied to a SEL pin of motor control circuit102, for example by switch70. Although shown as a single pole double throw switch, in which case there are two selections, switch70can switch between more than two selections, or the SEL signal can be generated by other circuits (not shown). In some embodiments, the SEL signal and the PWM signal are coupled to duty cycle generator118, which might provide a digital signal indicative of speed demand signal10to drive modulator116. The PWM signal is also provided to drive modulator116.

Duty cycle generator118might include a multiplexer (not shown) to provide a signal to a filter (not shown) to generate a filtered signal representative of a maximum PWM duty cycle that is ultimately applied to motor104. An analog-to-digital converter (not shown) of duty cycle generator118might be coupled to the PWM signal and generate digital signals representative of a demand for relative speed (e.g., zero to one hundred percent) of motor104when speed demand signal10is an analog signal (e.g., a voltage signal or a PWM signal). In embodiments where speed demand signal10is a digital signal, duty cycle generator118might not operate.

Speed demand signal10can request (i.e., demand) a relative speed (e.g., from zero to one hundred percent) of motor104. In some embodiments, the relative speed of motor104can be controlled by way of a selection of a maximum duty cycle of a PWM waveform that drives motor104. The PWM drive signals that drive motor104are not to be confused with speed demand signal10, which can be a PWM signal with a duty cycle selected to indicate a desired relative motor speed. It should be understood that the demand signal requests a relative speed, however, the absolute speed of the motor is determined by a variety factors, including, but not limited to, a type of motor and a load imposed upon the motor.

In embodiments in which speed demand signal10is a PWM signal, a duty cycle of speed demand signal10between about twenty-five percent and about one hundred percent is approximately linearly related to a resulting maximum duty cycle of PWM motor drive signals OUTA, OUTB and OUTC that drive motor104, which are also between about twenty-five percent and about one hundred percent, respectively. In some embodiments, a PWM speed demand signal10with a duty cycle of less than about twenty-five percent results in motor104receiving no drive and motor104coasts to a stop.

Similarly, in some particular embodiments in which speed demand signal10is a voltage signal having voltage values, voltage values from about one volt to about 4.3 volts are approximately linearly related to a resulting maximum duty cycle of PWM motor drive signals OUTA, OUTB and OUTC that drive motor104, which are from about twenty-five percent to about one hundred percent, respectively. In some embodiments, a voltage value of speed demand signal10less than about one volt results in motor104receiving no drive and motor104coasts to a stop.

In some embodiments, a phase advance signal, PHA, is applied to a PHA pin of motor control circuit102, for example by circuitry external to motor control circuit102(shown as switch72). The PHA signal is indicative of a selected one of a plurality of relationships between rotational speeds of motor104and phase advances of motor drive signals OUTA, OUTB and OUTC that drive motor104. Motor control circuit102generates the motor drive signals OUTA, OUTB and OUTC having respective phase advances in response to the selected one of the plurality of relationships and in response to a detected rotational speed and/or detected position of motor104. Motor drive signals OUTA, OUTB and OUTC are described more fully below in conjunction withFIGS. 2 and 3.

In some embodiments, motor104drives an associated fan106that can be used, for example, in a household appliance, for example, in a refrigerator. More generally, however, motor104can be employed to operate different types or sizes of loads (e.g., fans) in a variety of applications, for example, in different household appliances. Since various applications might have various loads, accurate detection of the position and/or rotation speed of motor104is needed.

One or more magnetic field sensing elements108,110and112, which, for example, might be implemented as one or more Hall effect elements, each generate differential signals at corresponding pins of motor control circuit102. For simplicity, magnetic field sensing elements108,110and112are referred to herein as Hall elements, although other types of magnetic field sensing elements could be employed, such as a magnetoresistance element or a magnetotransistor, as described above. In described embodiments, Hall element108provides differential Hall signals HA+ and HA−, Hall element110provides differential Hall signals HB+ and HB−, and Hall element112provides differential Hall signals HC+ and HC−. Hall elements108,110and112are disposed in close proximity to motor104and at positions that enable Hall elements108,110and112to sense passing magnets within motor104. In one embodiment, Hall elements108,110and112are positioned relative to each other so as to provide output signals that are one hundred twenty degrees offset from each other. While Hall elements108,110and112are shown, in other embodiments, other types of magnetic field sensing elements can be used.

It will be appreciated that motor104can include a plurality of magnets. For these arrangements, it should be appreciated that a full cycle of the signal generated by each one of Hall elements108,110and112is achieved upon one of the plurality of magnets passing by a respective one of the Hall elements108,110and112. Thus, each one of the Hall elements108,110and112can generate a respective signal having a plurality of full cycles for each rotation of motor104.

Motor control circuit102receives a positive power supply voltage (VBB) at a corresponding VBB pin, and a negative (or ground or circuit common) power supply voltage (GND) at a corresponding GND pin. Motor control circuit102provides a reference voltage (VREF) at a corresponding VREF pin, for example to power external devices, such as Hall elements108,110and112, with a known voltage generated by voltage regulator114from the power supply voltage VBB.

Motor control circuit102provides a frequency generator (FG) signal at a corresponding FG pin, which has a frequency representative of an absolute speed of rotation of motor104. The FG signal might be generated by transistor124(e.g., a field effect transistor or FET) coupled in a common drain configuration using an external resistor to generate the FG signal. The FG signal can be provided to other circuits (not shown) external to motor control circuit102.

Gate driver126receives one or more signals24afrom drive modulator116to generate variable duty cycle PWM motor drive signals OUTA, OUTB and OUTC to drive motor104. More particularly, gate driver126generates gate drive signals26a,26b,26c,26d,26e,26fto drive FETs Q1, Q2, Q3, Q4, Q5and Q6, respectively. The FETs Q1, Q2, Q3, Q4, Q5and Q6generate the variable duty cycle PWM motor drive signals OUTA, OUTB and OUTC that cause motor104to rotate. FETs Q1and Q2, Q3and Q4, and Q5and Q6each form a corresponding half-bridge circuit, each half-bridge circuit generating a drive signal corresponding to a given phase of motor104(e.g., the motor drive signals OUTA, OUTB and OUTC also each correspond to a given phase of motor104).

Each of transistors Q1, Q2, Q3, Q4, Q5and Q6is shown inFIG. 1as being an N-channel metal oxide semiconductor field effect transistor (MOSFET) and, thus, each transistor has a corresponding intrinsic body diode arranged from drain (cathode) to source (anode) of the MOSFET, making the MOSFET able to block current in only one direction. The body diodes are thus frequently utilized as freewheeling diodes for inductive loads, such as motor104, for example when the MOSFET is used as a switch in a half-bridge circuit.

The six transistors Q1, Q2, Q3, Q4, Q5and Q6are synchronized by gate driver126to operate in saturation to provide motor drive signals OUTA, OUTB and OUTC, respectively, to motor104. In some embodiments, such as shown inFIG. 1, transistors Q1, Q2, Q3, Q4, Q5and Q6are internal to motor control circuit102. In other embodiments, transistors Q1, Q2, Q3, Q4, Q5and Q6might be external devices coupled to motor control circuit102. Although shown inFIG. 1as being N-channel MOSFETs, other types of switching elements might be employed, for example P-channel MOSFETs, bipolar junction transistors (BJTs), Silicon-Controlled Rectifiers (SCRs), thyristors, triacs, or other similar switching elements.

To prevent short circuit (or “shoot through”) conditions, only one transistor in each half-bridge circuit is turned on at a given time. As a precaution, gate driver126controls gate drive signals26a,26b,26c,26d,26e,26fsuch that for short periods of time after one of the transistors of a given half-bridge circuit turns off, the other transistor cannot turn on and, thus, both transistors in the given half-bridge circuit are off. This time is commonly known as “dead time” of the half-bridge circuit. For the illustrative system shown inFIG. 1, during dead time for each half-bridge circuit, the upper transistor (e.g., transistors Q1, Q3and Q5) and the lower transistor (e.g., transistors Q2, Q4and Q6) are both off.

Power is provided to motor104by turning on an upper transistor (e.g., one of transistors Q1, Q3and Q5) in a given half-bridge circuit to couple supply voltage VBB though the upper transistor to motor104, and turning on a lower transistor (e.g., one of transistors Q2, Q4and Q6) in another half-bridge circuit to couple ground voltage GND though the lower transistor to motor104, allowing current to flow through a corresponding winding of motor104. For example, if upper transistor Q1is turned on, then one of lower transistors Q4and Q6could be turned on to allow a current to flow through an associated winding of motor104.

Drive modulator116might include theta generator132and look-up table (LUT)134to store relationships between values of the PWM signal and the control signals24aprovided to gate driver126.

Motor control circuit102can also include a position/speed sensing circuit120coupled to receive differential signals (e.g., differential Hall signals HA+, HA−, HB+, HB−, HC+ and HC−) from Hall elements108,110and112. Position/speed sensing circuit120generates one or more signals30a, each signal related to a magnetic field sensed by a respective one of the Hall elements. Signal30acan thus be representative of the rotational position and/or rotational speed of motor104. Position/speed sensing circuit120also generates one or more signals31a, which might include signals related to a magnetic field sensed by the Hall elements, such as an estimated angular position of the motor (e.g., qualified theta signal619ofFIG. 6), a Hall timing pulse (e.g., qualified commutation pulse signal621ofFIG. 6), a direction of rotation indicator (e.g., direction error signal623ofFIG. 6), and/or a current Hall state indicator (e.g., qualified Hall signals30aofFIG. 6), as will be described in greater detail in regard toFIG. 6. The drive modulator116can be coupled to receive the signals30aand31a. The signals30acan be three square wave signals generated by comparing the generally sinusoidal signals generated by the Hall elements108,110and112with a threshold value. Alternatively, the signal30acan be one signal, for example, a serial or parallel digital signal that can represent information within separate square wave signals shown below in conjunction withFIG. 2.

Position/speed sensing circuit120can also be configured to generate a speed signal30brepresentative of a speed of rotation of motor104. In some embodiments, speed signal30bis also coupled to drive modulator116and is used by drive modulator116to represent the speed of rotation of motor104instead of the signal(s)30a. However, the signals(s)30amight still be used by drive modulator116to represent position of motor104. It will be appreciated that the signal(s)30ahave frequencies related to a speed of rotation of motor104. It will also be appreciated that, due to positions of the Hall elements108,110and112within motor104, the signals30ahave phases and relative phase relationships indicative of a rotational position of motor104. For example, Hall elements108,110and112might be positioned on hundred twenty degrees apart, as indicated by position markers140(not shown to scale).

In some embodiments, position/speed sensing circuit120might include, or otherwise be coupled to, Hall processing circuit130. Hall processing circuit130might be employed to process signals related to a magnetic field sensed by a respective one of the Hall elements. In some embodiments, Hall processing circuit130might be coupled to receive at least one of the gate drive signals26a,26b,26c,26d,26e,26ffrom gate driver126, and might also be coupled to receive at least one of the motor drive signals OUTA, OUTB and OUTC in order to detect a zero crossing of the current through (or voltage applied to) one or more of the windings of motor104. The zero crossing information can be used by position/speed sensing circuit120to estimate a position and/or back EMF of motor104. For example, zero crossing detection might be performed as described in U.S. Pat. No. 8,917,044 filed on Aug. 30, 2012 or U.S. patent application Ser. No. 15/016,351, filed on Feb. 5, 2016, both of which are assigned to the assignee of the present application and both of which are expressly incorporated by reference herein. In some embodiments, position/speed sensing circuit120might include a Hall signal qualifier (not shown inFIG. 1), as will be discussed in greater detail in conjunction withFIG. 6.

Drive modulator116generates PWM signals24athat have duty cycles that vary in accordance with sinusoid signals described more fully below in conjunction withFIG. 2, ultimately resulting in the variable duty cycle PWM motor drive signals OUTA, OUTB and OUTC being applied to motor104. Each one of the signals OUTA, OUTB and OUTC might have a respective phase advance, which can be the same phase advance, in accordance with the PHA signal and the detected speed of rotation and/or position of motor104. Motor control circuit102might also include oscillator122to generate a clock signal122athat determines a frequency of the PWM signal generated by drive modulator116. Drive modulator116might operate to provide a ramped PWM soft start to apply drive signals to motor104that ramp up to the desired maximum PWM duty cycle. This arrangement avoids high start-up currents as motor104comes up to speed.

Referring now toFIG. 2, a graph200has a horizontal axis with a scale in units of time in arbitrary units. The graph200also has a vertical axis with a scale in arbitrary units. A plurality of signals is shown in the graph200, and each signal has a separate vertical scale. As shown inFIG. 2, signals202,204,206are representative of the signals30aofFIG. 1based upon differential Hall signals HA+ and HA−, HB+ and HB−, and HC+ and HC−, respectively. For example, as described in conjunction withFIG. 6, signals HA202, HB204and HC206might be generated by using comparators (e.g., comparators602,604and606) upon signals generated by the three Hall elements108,110and112ofFIG. 1, resulting in three square wave signals. As described above in conjunction withFIG. 1, Hall elements108,110and112are physically positioned with respect to motor104so that the phase of signals202,204and206are one hundred twenty degrees offset relative to each other as motor104rotates. There can be one or more cycles of each one of the signals202,204and206upon each rotation of motor104.

SA signal208corresponds to a sinusoidal signal generated by and internal to drive modulator116ofFIG. 1. SA signal208need not be output from drive modulator116. Instead, as described more fully in conjunction withFIG. 3, SA signal208might be used to generate a PWM signal having a duty cycle that varies according to values of SA signal208.

SA signal208has peaks, for example, a peak208a, and low or zero regions, for example a low or zero region208b. In some embodiments, depending on a selection by way of a value of speed demand signal10ofFIG. 1, at the peaks of SA signal208, a resulting PWM signal will have a one hundred percent duty cycle, i.e., a state of the PWM signal will be fully on and the PWM signal will stop switching. In some embodiments, at low or zero regions of SA signal208, a resulting PWM signal will have a zero percent duty cycle, i.e. a state of the PWM signal will be fully off in the PWM signal will stop switching.

SB signal210and SC signal212correspond to sinusoidal signals generated by and internal to drive modulator116ofFIG. 1. Versions214,216and218of signals208,210and212are the same as signals208,210and212, respectively, but are advanced in phase. In some embodiments, the amount of the phase advance is determined based upon the PHA signal shown inFIG. 1, and a detected absolute speed of rotation of motor104, detected by position/speed sensing circuit120ofFIG. 1.

Signals208,210and212have phases corresponding to phases of signals202,204and206, respectively. In particular, SA signal208achieves a lowest value at a time t3coincident with a falling edge of signal202. Similarly, SB signal210achieves a lowest value at a time t5coincident with a falling edge of signal204and SC signal212achieves a lowest value at a time t7coincident with a falling edge of signal206. Thus, signals208,210and212have phases one hundred twenty degrees apart like the signals202,204and206. Phase advances described herein are relative phase advances, relative to positions of the signals208,210and212, which have zero phase advances relative to the signals202,204and206, respectively.

While signals208,210and212could be applied as signals to drive motor104, increased efficiency is achieved by employing PWM signals related to signals208,210and212(or to the phase advanced signals214,216and218) to drive motor104. While signals208,210and212show particular sinusoidal shapes particularly suitable for driving a three phase electric motor, in other embodiments, signals having other shapes can be used. For example, square wave shaped signals or trapezoidal shaped signals corresponding to signals208,210and212can be used.

Referring now toFIG. 3, graph300has a horizontal axis with a scale in units of time in arbitrary units and a vertical axis with a scale in arbitrary units. Signal302is like a portion of SA signal208ofFIG. 2, here shown in expanded form for clarity. As shown, signal302has two peaks304aand304band a central valley304c. A corresponding PWM signal306is shown in time synchronization with signal302. PWM signal306has regions (e.g., regions308aand308b) with a highest duty cycle (here, one hundred percent) coincident with the peaks304aand304bof signal302. Signal306also has regions (e.g., region308c) with a lowest duty cycle (here zero percent) coincident with zero values of signal302. Thus, PWM signal306has a duty cycle at any time that is related to a value of signal302at that same time.

While PWM signal306is shown to achieve a one hundred percent duty cycle coincident with the peaks304aand304b, other highest duty cycles are also possible, and the highest duty cycle can be selected by way of speed demand signal10ofFIG. 1. Thus, PWM signal306is representative of speed demand signal10having a highest demand signal value (e.g., one or one hundred percent). If speed demand signal10has a lower value, then the maximum duty cycle of PWM signal306at the peaks of signal302will be less than one hundred percent.

Thus, each of signals208,210and212ofFIG. 2(or the corresponding phase advanced signals214,216and218) have a corresponding PWM signal similar to PWM signal306, but each PWM signal at a different phase relative to each other. These PWM signals are used to drive motor104. Each one of the PWM signals has a respective duty cycle that varies in time according to values of a respective one of signals208,210and212ofFIG. 2(or the corresponding phase advanced signals214,216and218).

As will be discussed in greater detail below in conjunction withFIGS. 6-8,FIGS. 4 and 5show illustrative plots of signals of motor system100. For example,FIG. 4shows the Hall states of state machine800ofFIG. 8versus time (and rotation of motor104) in relation to the commutation pulse signal416, modulation signals SA408, SB410and SC412used to generate motor drive signals OUTA, OUTB and OUTC, and theta signal418representing the angular position of motor104.FIG. 5illustrates an example condition of the signals shown inFIG. 4. In particular,FIG. 5shows an illustrative error condition in the count value (waveform502A) that counts the time between Hall transitions, and in the theta signal (waveform518A) that is associated with the rotational position of motor104.

Referring toFIG. 6, additional detail of a portion of position/speed sensing circuit120is shown. As shown inFIG. 6, position/speed sensing circuit120includes comparators602,604and606to receive differential Hall signals HA+ and HA−, HB+ and HB−, and HC+ and HC−, respectively (e.g., from Hall elements108,110and112, respectively). Comparators602,604and606each generate Hall signals607based upon the respective differential Hall signals HA+ and HA−, HB+ and HB−, and HC+ and HC−. Hall signals607are provided to filter608, which generates filtered Hall signals609. For example, filter608might remove high frequency transient components from Hall signals607to generate filtered Hall signals609. Filter608also provides a pulse signal, commutation pulse signal611, that is generated at each change of the Hall state, to qualifier610.

Qualifier610processes filtered Hall signals609and commutation pulse signal611. For example, qualifier610might be implemented as a portion of Hall processing circuit130ofFIG. 1. As will be described in greater detail below, in some embodiments qualifier610might operate a state machine (e.g., as shown inFIG. 8) to verify or validate the filtered Hall signals609and commutation pulse signal611, to generate qualified Hall signals30aand one or more qualified control signals31a. Thus, as will be described, qualifier610ensures that the resulting qualified signals (e.g.,30aand31a) are accurate representations of rotational position and/or rotational speed of motor104.

Qualifier610receives filtered Hall signals609and generates qualified Hall signals617, which might be output from position/speed sensing circuit120as signals30a. The qualified Hall signals are indicative of a detected position of motor104. Further, qualifier610generates qualified theta (position) signal619, qualified commutation pulse signal621and direction error signal623, which might be output from position/speed sensing circuit120as signals31a. Each of qualified signals31awill be described in greater detail in conjunction withFIG. 5.

In some embodiments, qualifier610might also employ zero crossing information indicative a zero crossing of a current or voltage waveform of motor104(for example, a current through a winding, or a voltage applied to a winding), and be employed by qualifier610to assist in determining, for example, a direction of rotation of motor104.

Theta generator132of drive modulator116is coupled to receive signals31a, for example qualified theta signal619and qualified commutation pulse signal621. Theta generator132might also receive qualified Hall signals30a(or a value related to the qualified Hall signals) from LUT134. Theta generator132generates a theta ramp signal (e.g., the angle signal waveform418ofFIG. 4, or the angle signal waveforms518A or518B ofFIG. 5) that periodically reaches a maximum terminal value and resets to zero (or a minimum terminal value). The reset time of the ramp signal is fixed in relation to qualified theta signal619(i.e., a fixed rotational position of motor104).

In operation, theta generator132can identify a time period, measured by counting a number of system clock transitions (e.g., based on oscillator122ofFIG. 1), between position references identified by qualified theta signal619. In other words, theta generator132can identify a time (e.g., count a number of system clock transitions) that it takes motor104to turn through one rotation. In some embodiments, theta generator132might operate in a fixed relationship to the system clock (e.g., oscillator122), for example, by dividing the number of system clock transitions by a fixed scalar value, for example, by64or32. The clock signal is used by theta generator132to generate a rate at which ramp values of the theta signal are incremented and output. Resets to zero of the theta ramp signal are achieved once for every revolution of the motor.

Theta generator132might provide a theta value to LUT134. LUT134might then select one of a plurality of modulation profiles to provide to wave generator128to generate signals24ato correspondingly generate variable duty cycle PWM motor drive signals OUTA, OUTB and OUTC to drive motor104. For example, LUT134might sequence between modulation profiles based upon the theta value (e.g., qualified theta signal619), qualified commutation pulse signal621and direction error signal623(e.g., signals31a). In some embodiments, a zero crossing of the current in a motor winding (or of a voltage applied to a motor winding) might be employed by qualifier610to determine signals31a.

In some embodiments, LUT134might include a first set of one or more modulation profiles for situations, such as motor start up, when the exact position and speed of the motor is not yet known. In such situations, the modulation profile might be approximately trapezoidal in shape, such that this mode of operation is referred to as “trap mode” or “trapezoidal drive mode”. Similarly, in some embodiments, LUT134might include a second set of one or more modulation profiles for situations when the exact position and speed of the motor is known (e.g., synchronized or synched). In such situations, the modulation profile might be approximately sinusoidal in shape, such that this mode of operation is referred to as “sine mode” or “sinusoidal drive mode”.

In operation, qualifier610receives filtered Hall signals609, for example as individual signals from which a digital value can be generated, or directly as the 3-bit digital value. The 3-bit digital value is a Hall code that indicates the state of each magnetic field signal202,204and206ofFIG. 2. Qualifier610might include a register (not shown) that stores the 3-bit value, for example when a trigger signal is received. When the trigger signal is received, qualifier610compares the stored register value (e.g., a previously stored Hall code) with a current value of the 3-bit Hall code. In some embodiments, the trigger signal is Hall commutation pulse signal611. Hall commutation pulse signal611, in conjunction with the 3-bit Hall codes, is used by theta generator132to set the value of theta (e.g., the position of the motor) and, therefore, the values of variable duty cycle PWM motor drive signals OUTA, OUTB and OUTC, which are set to align with the theta value. By tracking a sequence of the 3-bit Hall codes, qualifier610can determine whether a present value of the 3-bit Hall code matches an anticipated value of the 3-bit Hall code, the anticipated value determined by one or more previous values of the 3-bit Hall code.

Referring toFIG. 7, a flow diagram of motor control technique700is shown. At block702, operation of motor system100starts, for example at a first power on of system100. At block704, motor control circuit102waits to receive a speed demand signal (e.g., speed demand signal10ofFIG. 1). At block706, if a received speed demand signal is above a threshold (e.g., non-zero or, in some embodiments, above a minimum threshold speed), then technique700proceeds to block708. Otherwise, if at block706the received speed demand signal is not above the threshold (e.g., the speed demand signal is zero or, in some embodiments, below the minimum threshold speed), then technique700continues to wait at block704to receive a speed demand signal.

At block708, qualifier610of position/speed sensing circuit120is operated in accordance with state machine800, which will be described in greater detail in conjunction withFIG. 8. At block710(and while the state machine ofFIG. 8is operating), it is determined (e.g., by Hall processing circuit130of position/speed sensing circuit120ofFIG. 1) whether motor sync (e.g., synchronization) has been achieved. Motor sync is achieved when a minimum speed of rotation of motor104is achieved and the Hall elements108,110and112are determined to accurately detect the rotational position of motor104. If, at block710, motor sync has not yet been achieved (e.g., motor rotational speed is too slow, and the Hall elements have yet to accurately detect the rotational position of the motor), then at block714, motor control circuit102(e.g., drive modulator116) drives the motor in trap mode (e.g., the drive signal is approximately trapezoidal in shape). Technique700returns to block706to check the received speed demand signal at block706, and technique700continues to operate until motor system100is turned off.

In trap mode at block714, the values of the qualified Hall signals30a(also referred to as qualified Hall states) are related to the variable duty cycle PWM motor drive signals OUTA, OUTB and OUTC as given in Table 1, where H indicates a high signal, L indicates a low signal, and Z indicates a high impedance (e.g., tri-stated) signal:

If, at block710, motor sync has been achieved (e.g., motor rotational speed is at or above a minimum speed, and the Hall elements can accurately detect the rotational position of the motor), then at block712, motor control circuit102(e.g., drive modulator116) drives the motor in sine mode (e.g., the drive signal is approximately sinusoidal in shape). Technique700returns to block706to check the received speed demand signal at block706, and technique700continues to operate until motor system100is turned off.

In some embodiments, at block710, motor sync is determined when two consecutive qualified commutation signal pulses (e.g., qualified commutation pulse signal621) are received and a Hall period counter has not overflowed, indicating that the motor is moving at a sufficient speed and in the expected direction. In sine mode at block712, a sinusoidal modulation profile is generated based on the qualified theta ramp signal (e.g.,518B ofFIG. 5) that represents 0 to 360 degrees of theta (e.g., the rotational position of motor104). One or more modulation profiles are stored in LUT134. A corresponding modulation profile is chosen based upon the value of qualified Hall signals30aand direction error signal623every time a qualified commutation pulse signal (e.g.,621) is received. In embodiments having a phase advance, an associated phase advance offset is added to the theta ramp to advance the phase in relation to the qualified Hall signals30a. Thus, the theta value at qualified Hall transitions (e.g., when qualified commutation pulse signal621is generated) is used to synchronize the modulation profile to the motor. Depending on the desired direction of rotation of motor104(e.g., forward or reverse), the OUTB and OUTC waveforms are exchanged.

Referring toFIG. 8, state machine800is shown representing the possible values of the 3-bit Hall code employed by qualifier610. As shown inFIG. 8, as the motor rotates, the 3-bit Hall codes would proceed around the valid Hall states. For example, if motor104is moving in a first direction (e.g., forward), the 3-bit Hall codes would be expected to proceed counter-clockwise from Hall state to Hall state (e.g., along state transitions802,804,806,808,810and812). Similarly, if motor104is moving in a second direction (e.g., reverse), the 3-bit Hall codes would be expected to proceed clockwise from Hall state to Hall state (e.g., along state transitions814,816,818,820,822and824). To avoid erroneous detection of multiple Hall state transitions (e.g., due to one or more of the Hall elements experiencing magnetic fields due to current steps in the motor windings), described embodiments employ qualifier610to generate qualified Hall signals30aand qualified theta signal619, qualified commutation pulse signal621and direction error signal623(collectively output as signals31a) such that LUT134updates the sinusoidal signal (e.g., signal24a) only in response to a valid Hall state change. For example, LUT134might update the sinusoidal signal (e.g., signal24a) only once per detected valid Hall state change.

For example, as shown inFIG. 8, when the received speed demand signal10is not above a threshold (e.g., the speed demand signal is zero or, in some embodiments, below a minimum threshold speed such that motor104is not being driven by variable duty cycle PWM motor drive signals OUTA, OUTB and OUTC), qualifier610might operate in the idle state until the motor is in motion and changes in the Hall states can be detected by the Hall elements. Qualifier610exits the idle state and proceeds to the detected Hall state (e.g., along state transitions828,830,834,840,842or848). In each Hall state, the commutation pulse signal (e.g., signal611) is received and qualifier610determines whether to qualify the commutation pulse as a qualified commutation pulse (e.g., signal621) such that the theta value (e.g., position of the motor) should be updated and, therefore, whether the sinusoidal signal should be updated.

Referring back toFIG. 4, a plot of signals of motor system100are shown. For example, the Hall states of state machine800ofFIG. 8are shown versus time (and rotation of motor104) as Hall states414. For example, as described in conjunction withFIG. 2, signals HA202, HB204and HC206might be generated by comparators602,604and606and shown collectively as signals607ofFIG. 6. Magnetic field signals HA, HB and HC are shown inFIG. 4as waveforms402,404and406, respectively. Magnetic field signals HA, HB and HC transition when the respective magnetic field sensing element output signals cross the threshold of the respective comparator (e.g., comparators602,604and606). At any given time, the signal levels of signals HA, HB and HC correspond to the 3-bit Hall state414, as shown. At each change of the Hall state, a pulse signal (e.g., commutation pulse signal611) is generated. Signals SA408, SB410and SC412correspond to the signals SA, SB and SC described in conjunction withFIGS. 2 and 3and can be used to generate the motor drive signals OUTA, OUTB and OUTC (or can be used to directly drive motor104). Theta signal418is generated by theta generator132as described in conjunction withFIG. 1. As will be described in greater detail in conjunction withFIG. 8, theta signal418is incremented by a predetermined amount each time the Hall state changes (until being reset after reaching its maximum value) to determine a rotational position of motor104. For example, the predetermined increment amount of the theta signal might be the number of degrees between each Hall element ofFIG. 1. In the illustrative embodiment shown inFIG. 1, each Hall element is separated by 60 degrees relative to the rotational position of motor104, so each change in Hall state is associated with a 60 degree rotation of motor104.

For example, as shown inFIG. 4, at time A, qualifier610receives a pulse of commutation pulse signal611and the 3-bit Hall state has transitioned from Hall state [011] to Hall state [001] (e.g., along state transition810). If qualifier610qualifies this state change, then theta generator132receives qualified signals30aand31aand sets the theta angle to 0 degrees. At time B, qualifier610receives a pulse of commutation pulse signal611and the 3-bit Hall state has transitioned from Hall state [001] to Hall state [101] (e.g., along state transition812). If qualifier610qualifies this state change, then theta generator132receives qualified signals30aand31aand sets the theta angle to 60 degrees.

At time C, qualifier610receives a pulse of commutation pulse signal611and the 3-bit Hall state has transitioned from Hall state [101] to Hall state [100] (e.g., along state transition802). If qualifier610qualifies this state change, then theta generator132receives qualified signals30aand31aand sets the theta angle to 120 degrees. At time D, qualifier610receives a pulse of commutation pulse signal611and the 3-bit Hall state has transitioned from Hall state [100] to Hall state [110] (e.g., along state transition804). If qualifier610qualifies this state change, then theta generator132receives qualified signals30aand31aand sets the theta angle to 180 degrees.

At time E, qualifier610receives a pulse of commutation pulse signal611and the 3-bit Hall state has transitioned from Hall state [110] to Hall state [010] (e.g., along state transition806). If qualifier610qualifies this state change, then theta generator132receives qualified signals30aand31aand sets the theta angle to 240 degrees. At time F, qualifier610receives a pulse of commutation pulse signal611and the 3-bit Hall state has transitioned from Hall state [010] to Hall state [011] (e.g., along state transition808). If qualifier610qualifies this state change, then theta generator132receives qualified signals30aand31aand sets the theta angle to 300 degrees. If, at the next received pulse of commutation pulse signal611, the Hall state has transitioned from Hall state [011] to Hall state [001] (e.g., along state transition810), then the theta angle is reset to 0 degrees (e.g., a complete rotation of the motor).

Referring toFIG. 5, an illustrative condition is shown of the signals shown inFIG. 4. In particular,FIG. 5shows an illustrative error condition in a count value (waveform502A) that counts the time between commutation pulses (e.g., signal516A), and in the theta signal (waveform518A) that is associated with the rotational position of motor104. In particular,FIG. 5shows that, at label A, a brief reverse Hall sequence occurs (e.g., Hall state 101 erroneously transitions back to previous state 001) due to glitches in the Hall signals (e.g., filtered Hall signals609). For example, such glitches might be caused by high current steps in the motor windings as the Hall states transition. In such cases, high current steps might cause glitches in Hall signals, particularly near zero crossings of the magnetic field sensed by a given Hall element.

Incorrect Hall sequences can lead to incorrect Hall commutation pulses (e.g., Hall commutation pulse signal611), as shown by label B and waveform516A. In particular, as shown by B, two extra incorrect pulses are generated on Hall commutation pulse signal611, shown as waveform516A, due to the glitch in the Hall state sequence as shown by A. These extra incorrect pulses in Hall commutation pulse signal611lead to two incorrect resets of count value502A, as shown by label D. Further, the extra incorrect pulses lead to errors in the theta value (e.g., ramp value518A), as shown by label F. Errors in the theta value correlate to errors in the determined rotational position of motor104, which lead to errors in the selection and generation of the sinusoidal modulation profile (e.g., by LUT134and wave generator128ofFIG. 1). For example, as shown inFIG. 5, incorrect commutation pulses at B result in incorrectly setting the theta value to a previous value, creating a non-forward motion output voltage vector, which can cause errors in the motor drive signals and, thus, incorrect operation of motor104, or even shutdown of motor104.

However, described embodiments employing qualifier610to generate qualified Hall signals30a, qualified theta signal619and qualified commutation pulse signal621, as well as direction error signal623, allow a Hall commutation pulse in response to a Hall state sequence (e.g., qualified commutation pulse signal621), as shown by label C, and, specifically, may allow only one qualified Hall commutation pulse per detected valid Hall state sequence. Thus, qualified commutation pulse signal621allows only one counter reset per valid Hall sequence as shown by label E, leading to

correct setting of theta angle, as shown by label G.

Referring back toFIG. 8, qualifier610operates by initializing a current hall register value at system startup (e.g., in the idle state). In each Hall state (e.g., [101], [100], [110], [010], [011], and [001]), qualifier610receives a changed Hall state (e.g., filtered Hall signals609) and a pulse of Hall commutation signal611. To qualify the received Hall state and commutation pulse, qualifier610determines if a direction of rotation of motor104has changed from the previous Hall state (e.g., if the current Hall state is not the expected Hall state determined based on one or more previous Hall states).

For example, as shown inFIG. 8, if motor104is rotating in a given direction indicated by state transitions802,804,806,808,810and812, qualifier610can determine an expected next state (e.g., at the next commutation pulse611) of Hall signals609(for example, Hall state [001] should transition along812to Hall state [101], etc.). If, however, qualifier610receives commutation pulse611and Hall signals609that indicate the motor has reversed its direction of rotation (for example, indicative of Hall state [001] transitioning along818to Hall state [011]), then qualifier sets direction error signal623, and does not qualify the Hall transition since the change in direction could be due to a glitch in the Hall signals609, and not due to a true change in rotational direction of the motor. When qualifier610does not qualify Hall signals609, qualifier610does not generate a qualified commutation pulse (e.g., signal621) corresponding to the received commutation pulse611, maintains the previously qualified Hall signals as qualified Hall signals30a, and maintains the previously qualified theta value as the qualified theta signal619.

For qualifier610to qualify Hall signals609(e.g., update qualified Hall signals30a, update qualified theta value619, and generate qualified commutation pulse621), Hall signals609must be equal to the expected next state (e.g., at the next commutation pulse611, Hall signals609must not indicate a change in rotational direction of motor104, and direction error signal623is not set). For example, Hall state [001] should transition along812to Hall state [101], and so on. If, at the next commutation pulse611, direction error signal623is set, qualifier610determines a number of previous Hall state transitions for which the direction error signal has been set. If the direction error signal has been set for a predetermined threshold number of previous Hall state transitions (e.g., a predetermined number of commutation pulses611), then qualifier610determines that motor104has changed direction of rotation, and qualifies Hall signals609(e.g., updates qualified Hall signals30a, updates qualified theta value619, and generates qualified commutation pulse621) for the reverse direction. Qualifier610clears direction error signal623, since the direction is determined to be correctly detected.

In an illustrative embodiment, qualifier610does not qualify Hall signals609indicative of a change of motor direction unless direction error signal623has been set for at least two previous transitions of Hall state signals609.

Thus, described embodiments provide an electronic circuit for controlling a motor. The electronic circuit includes a magnetic field sensing circuit responsive to magnetic field sensing elements disposed to sense rotation of the motor. The magnetic field sensing elements generate magnetic field signals, each having a state indicative of a rotational position of the motor. A position and speed sensing circuit generates a signal representative of the rotational position of the motor and a rotational speed of the motor and tracks state changes of the plurality of magnetic field signals. A gate driver circuit generates one or more motor drive signals that drive the motor based, at least in part, upon the sensed rotational position and control a voltage applied to the motor. The position and speed sensing circuit generates a qualified control signal based upon a determined valid state change of the plurality of magnetic field signals. The qualified control signal might include one or more of qualified theta signal619, qualified commutation pulse signal621, direction error signal623, and/or qualified Hall signals30a. The gate driver circuit generates the one or more motor drive signals based, at least in part, upon the qualified control signal.

As used herein, the term “processor” is used to describe an electronic circuit that performs a function, an operation, or a sequence of operations. The function, operation, or sequence of operations can be hard coded into the electronic circuit or soft coded by way of instructions held in a memory device. A “processor” can perform the function, operation, or sequence of operations using digital values or using analog signals. In some embodiments, the “processor” can be embodied in an application specific integrated circuit (ASIC). In some embodiments, the “processor” can be embodied in a microprocessor with associated program memory. In some embodiments, the “processor” can be embodied in a discrete electronic circuit. The “processor” can be analog, digital or mixed-signal.

While the illustrative embodiments have been described with respect to processes of circuits, described embodiments might be implemented as a single integrated circuit, a multi-chip module, a single card, or a multi-card circuit pack. Further, as would be apparent to one skilled in the art, various functions of circuit elements might also be implemented as processing blocks in a software program. Such software might be employed in, for example, a digital signal processor, micro-controller, or general purpose computer. Thus, described embodiments might be implemented in hardware, a combination of hardware and software, software, or software in execution by one or more processors.

Some embodiments might be implemented in the form of methods and apparatuses for practicing those methods. Described embodiments might also be implemented in the form of program code embodied in tangible media, such as magnetic recording media, hard drives, floppy diskettes, magnetic tape media, optical recording media, compact discs (CDs), digital versatile discs (DVDs), solid state memory, hybrid magnetic and solid state memory, or any other machine-readable storage medium, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the described embodiments.

Described embodiments might also be implemented in the form of program code, for example, whether stored in a storage medium, loaded into and/or executed by a machine, or transmitted over some transmission medium or carrier, such as over electrical wiring or cabling, through fiber optics, or via electromagnetic radiation, wherein, when the program code is loaded into and executed by a machine, such as a computer, the machine becomes an apparatus for practicing the described embodiments. When implemented on a processing device, the program code segments combine with the processor to provide a unique device that operates analogously to specific logic circuits. Such processing devices might include, for example, a general purpose microprocessor, a digital signal processor (DSP), a reduced instruction set computer (RISC), a complex instruction set computer (CISC), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic array (PLA), a microcontroller, an embedded controller, a multi-core processor, and/or others, including combinations of the above. Described embodiments might also be implemented in the form of a bitstream or other sequence of signal values electrically or optically transmitted through a medium, stored magnetic-field variations in a magnetic recording medium, etc., generated using a method and/or an apparatus as recited in the claims.

As used in this application, the words “exemplary” and “illustrative” are used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” or “illustrative” is not necessarily to be construed as preferred or advantageous over other aspects or designs. Rather, use of the words “exemplary” and “illustrative” is intended to present concepts in a concrete fashion.

To the extent directional terms are used in the specification and claims (e.g., upper, lower, parallel, perpendicular, etc.), these terms are merely intended to assist in describing the embodiments and are not intended to limit the claims in any way. Such terms, do not require exactness (e.g., exact perpendicularity or exact parallelism, etc.), but instead it is intended that normal tolerances and ranges apply. Similarly, unless explicitly stated otherwise, each numerical value and range should be interpreted as being approximate as if the word “about”, “substantially” or “approximately” preceded the value of the value or range.

Also for purposes of this description, the terms “couple,” “coupling,” “coupled,” “connect,” “connecting,” or “connected” refer to any manner known in the art or later developed in which energy is allowed to be transferred between two or more elements, and the interposition of one or more additional elements is contemplated, although not required. Conversely, the terms “directly coupled,” “directly connected,” etc., imply the absence of such additional elements. Signals and corresponding nodes or ports might be referred to by the same name and are interchangeable for purposes here.

As used herein, the term “predetermined,” when referring to a value or signal, is used to refer to a value or signal that is set, or fixed, in the factory at the time of manufacture, or by external means, e.g., programming, thereafter. As used herein, the term “determined,” when referring to a value or signal, is used to refer to a value or signal that is identified by a circuit during operation, after manufacture.

It should be understood that the steps of the illustrative methods and processes set forth herein are not necessarily required to be performed in the order described, and the order of the steps of such methods and processes should be understood to be merely illustrative. Likewise, additional steps might be included in such methods, and certain steps might be omitted or combined, in methods consistent with various embodiments.

For purposes of this description, it is understood that all gates are powered from a fixed-voltage power domain (or domains) and ground unless shown otherwise. Accordingly, all digital signals generally have voltages that range from approximately ground potential to that of one of the power domains and transition (slew) quickly. However, and unless stated otherwise, ground may be considered a power source having a voltage of approximately zero volts, and a power source having any desired voltage might be substituted for ground. Therefore, all gates might be powered by at least two power sources, with the attendant digital signals therefrom having voltages that range between the approximate voltages of the power sources.

Transistors are typically shown as single devices for illustrative purposes. However, it is understood that transistors will have various sizes and characteristics and might be implemented as multiple transistors coupled in parallel to achieve desired electrical characteristics from the combination, such as a desired physical size (e.g., gate width and length) or operating characteristic (e.g., isolation, switching speed, threshold voltage, gain, etc.). Further, the illustrated transistors might be composite transistors.

Unless explicitly stated otherwise, each numerical value and range should be interpreted as being approximate as if the word “about”, “substantially” or “approximately” preceded the value of the value or range.

It will be further understood that various changes in the details, materials, and arrangements of the parts that have been described and illustrated herein might be made by those skilled in the art without departing from the scope of the following claims.