This relates to electronic motor drive and control, and more particularly to circuitry and methods for controllably driving stepper motors.
Stepper motors are DC electric motors that controllably rotate and hold the rotational position of a rotor. A common type of stepper motor includes one or more coils driven by motor driver circuitry to control the rotational position and velocity of the rotor. For example, the rotor can be rotated to a particular rotational position by driving a current waveform with a variable amplitude (e.g., according to a sinusoidal waveform) to the motor coils, and can be held at a constant position by driving coil current at a constant amplitude. Stepper motor may be unipolar (a single pair of poles) or bipolar (two pairs of poles). In bipolar stepper motors, each pair of poles may be driven from metal-oxide-semiconductor field-effect transistors (MOSFETs) with gates driven by pulse-width modulation (PWM) signals from a driver circuit to provide the appropriate current waveform to the coils.
A useful attribute of stepper motors is the simplicity with which excitation changes at the motor control input translate to precise positional changes of the motor, without requiring an external sensor to monitor the position of the motor. Regulation of the currents in the stepper motor coils can attain precise position and velocity control to the extent sufficient for many precision applications.
To maintain this simplicity of operation, stepper motors are generally controlled by open-loop position control systems. Because of this open-loop control, however, the system controller in the motor driver circuitry may have no information regarding the torque demand of the motor or the load torque being applied to the motor. If the terminals of a motor coil are disconnected from the driver circuitry, the magnetic field from the coil will disappear and the motor will stall. The motor driver circuitry cannot sense this open-load condition, however, and thus will continue to drive its driver transistors, which can cause loss of motor position at the system controller, power loss due to conduction through the still-connected coil, and in some cases mechanical damage (e.g., vibration) to the motor itself.
One prior art approach passively detects an open-load condition at the coil terminals prior to power-up by pushing a fixed current into the coil terminals to detect whether a coil is connected, and begins driving the motor only if a coil is connected at those terminals. This approach is unable to detect disconnection of a motor coil during operation, however. In another prior art approach, external sensors are provided at the motor terminals to sense the presence of load. However, such external sensors can be cost-prohibitive both in the cost of the sensor and in the additional board space required, and have proven difficult to integrate with other fault-diagnostics in the motor drive system.
It is within this context that the embodiments described herein arise.
In an example, motor driver circuitry includes driver transistors coupled to first and second output terminals, gate driver circuitry with outputs coupled to gate terminals of the driver transistors, controller circuitry coupled to the gate driver circuitry, a trip limit current source, an open-load limit current source, comparator circuitry, and fault detect circuitry. The comparator circuitry has a comparator output, inputs coupled to the driver transistors, an input coupled to the trip limit current source, and an input coupled to the open-load limit current source. The comparator circuitry receives a standstill signal from the controller circuitry and is configured to compare a drive current at the driver transistors with a trip limit current responsive to the standstill signal indicating a standstill state, and configured to compare the driver current with an open-load limit current responsive to the standstill signal indicating a motor running state. The fault detect circuitry has an input coupled to the comparator output and has a fault output.
In another example, a method of detecting an open-load condition at a motor driver circuit includes operating a motor driver circuit to provide drive current to a motor coil, sensing the drive current, comparing the drive current to one or more of a trip limit current and an open-load limit current, generating an open-load fault signal responsive to a standstill signal indicating a standstill state and the comparing step determining that the drive current is less than the trip limit current, and generating an open-load fault signal responsive to the standstill signal indicating a motor running state and the comparing step determining that the drive current is less than the open-load limit current.
In another example, stepper motor driver circuitry includes driver circuitry coupled to first and second output terminals, standstill detect circuitry configured to generate a standstill signal indicating an operating state, comparator circuitry coupled to the standstill detect circuitry and configured to compare a drive current at the driver transistors to a trip limit current responsive to the standstill signal indicating a standstill state, and to compare the drive current to an open-load limit current responsive to the standstill signal indicating a motor running state, and fault detect circuitry configured to present an open-load fault signal responsive to a signal at an output of the comparator circuitry.
Technical advantages enabled by one or more of these examples include detection of an open-load condition at outputs of a motor driver system during its operation, without requiring external sensors or closed-loop control. Further advantages include the ability to integrate active open-load detection into the motor driver circuitry, for example in the same integrated circuit and operable during different phases of a two-phase or bipolar stepper motor application. Further advantages include the avoiding of false open-load faults, such as at 0° phases in the sinusoidal current waveforms, and in both standstill and motor running operating states.
Other technical advantages enabled by these examples will be apparent to those of ordinary skill in the art having reference to the following specification together with its drawings.
The same reference numbers or other reference designators are used in the drawings to illustrate the same or similar (in function and/or structure) features.
One or more examples are described herein as implemented in driver circuitry for electric stepper motors, as these examples can provide particular benefits in that context. However, aspects of these examples may be beneficially applied in other motor drive and control applications, as well as other implementations of driver circuitry using open-loop control. Accordingly, the following description is provided by way of example only.
Control inputs circuit 110 in system 100 has inputs receiving control signals from an external source, for example a host computer, host microcontroller, or network node (e.g., in an “Internet of Things”, or “IoT”, environment). Examples of such control signals include enable signals, signals to advance a rotation of motor 160, signals indicating the direction of rotation, and signals indicating a granularity or resolution of an angular step of rotation. Control inputs circuit 110 may also receive mode configuration information, such as may be stored in a configuration register (e.g., in controller 120) to specify an operational mode. Control inputs circuit 110 may include analog and digital circuits including buffers, filters, level shifters, latches, and the like.
Control inputs circuit 110 has outputs coupled to inputs of controller 120. Controller 120 in system 100 includes logic circuitry, for example programmable, semi-custom, or custom (hard-wired) digital logic, programmed or configured to control the operation of system 100 in its driving and control of bipolar motor 160. Controller 120 accordingly has outputs coupled to inputs of gate drivers 125A and 125B. Controller 120 is configured to generate the appropriate control signals to gate drivers 125A and 125B to step the rotation of motor 160, for example to rotate the motor 160 at a selected velocity to a selected position, according to control inputs received by control inputs circuit 110.
Gate drivers 125A and 125B are coupled to H-bridges 130A and 130B, respectively. Gate driver 125A has outputs coupled to H-bridge 130A, to provide drive signals to the gates of field-effect transistors (FETs) in H-bridge 130A. In turn, H-bridge 130A has output terminals AOUT+ and AOUT− coupled to motor coil 165A. Similarly, gate driver 125B has outputs coupled to gates of FETs in H-bridge 130B, which in turn has output terminals BOUT+ and BOUT− coupled to motor coil 165B. For smooth operation of a bipolar stepper motor such as motor 160 of
In system 100 of
Examples of stepper motor control systems for regulating coil current according to a stepped or microstepped sinusoid waveform are described in U.S. Pat. No. 11,368,112, U.S. Patent Application Publication No. US 2021/0050808, and U.S. Patent Application Publication No. US 2021/0099116, all of which are commonly assigned herewith and incorporated herein by this reference.
System 100 of
In this example, FETs 202+, 202−, 204+, and 204− of gate driver 130A are n-channel devices. FET 202+ has its drain coupled to power supply voltage VM, its source at output terminal AOUT+ and its gate coupled to gate driver 125A to receive gate driver signal HS1. FET 202− has its drain coupled to power supply voltage VM, its source at output terminal AOUT− and its gate coupled to gate driver 125A to receive gate driver signal HS2. FET 204+ has its drain coupled to output terminal AOUT−, its source at a common potential (e.g., system or circuit ground), and its gate coupled to gate driver 125A to receive gate driver signal LS2. FET 204− has its drain coupled to output terminal AOUT+, its source at the common potential, and its gate coupled to gate driver 125A to receive gate driver signal LS1.
Coil 165A of motor 160 is coupled between output terminals AOUT+ and AOUT−. In this description, a positive coil current IA will be considered as flowing in the direction from output terminal AOUT+ to output terminal AOUT−. Accordingly, H-bridge 130A sources a positive current IA through coil 165A by gate driver 125A turning on FETs 202+ and 204+ and turning off FETs 202− and 204−, and sources a negative current IA by gate driver 125A turning on FETs 202− and 204− and turning off FETs 202+ and 204+.
Waveform 210 in the right-hand side of
Within each microstep, H-bridges 130A and 130B are controlled between alternating drive and decay modes to maintain the peak coil current at the desired level for that phase (e.g., at that value of index IDX).
Within current comparator circuitry 140A, sine DAC 302 has an input coupled to controller 120 to receive index signal IDX, which indicates the step or microstep in the sinusoidal waveform currently driven by H-bridge 130A to motor coil 165A in this example. Sine DAC 302 also receives a reference voltage VREF representative of the full-scale current level, for example as may be generated by power management and voltage regulator circuitry 150. Sine DAC 302 has an output coupled to an input of V2I stage 304, and forwards a voltage corresponding to the amplitude of a reference current for the current microstep. V2I stage 304 converts the voltage from sine DAC 302 into a corresponding trip limit current ITRIP. The output of V2I stage 304 is coupled to the drain of n-channel MOS transistor 306. MOS transistor 306 has its source at ground, and its gate coupled to the gate of FET 204+ in H-bridge 130A to receive drive voltage DV as applied by gate driver 125A during the drive phase of positive coil current IA. The drain of transistor 306 is coupled to the negative input of comparator 310.
Current source 307 is biased from power supply voltage VM, and is biased to conduct current at a selected open-load limit current IOL. Open-load limit current IOL is a relatively low amplitude current limit within the full-scale range of the sinusoidal waveform of coil currents IA, IB.
In this example, the positive inputs of comparators 310 and 312 are coupled to output terminal AOUT− of H-bridge 130A to receive a voltage V_IDRV corresponding to the level of coil current IA conducted through low-side FET 204+. Comparator 310 compares the sensed coil current IA, as reflected by voltage V_IDRV, with trip limit current ITRIP for the current microstep, as reflected by voltage V_ITRIP at the drain of transistors 306. Similarly, comparator 312 compares the sensed coil current IA with open-load limit current IOL, as reflected by voltage V_IOL at the drain of transistor 308.
Referring again to
Multiplexer 314 has a select input coupled to standstill detection circuitry 325, to receive standstill signal HOLD indicating the operating state of motor 160 as either in a standstill state or a motor running state. Multiplexer 314 has an output at which it presents a signal LDP corresponding to the result of the one of comparators 310, 312 that is selected in response to standstill signal HOLD. In this example, multiplexer 314 selects trip signal TRIP at the output of comparator 310 in response to standstill signal HOLD indicating (e.g., at a logic “1” level) that the operating state of motor 160 is in a standstill state, and selects signal IOL_CMP in response to standstill signal HOLD indicating (e.g., at a logic “0” level) that motor 160 is in a motor running state. In this example, the output of multiplexer 314, presenting signal LDP, is coupled to open-load detection circuitry 145.
Referring back to
Timer/counter 320 has an input receiving a clock signal CLK, for example a clock signal used in the PWM of gate drivers 125A, 125B or another clock signal of a period shorter than the microstep interval. Timer/counter 320 has an output coupled to logic circuitry 322 of open-load detection circuitry 145, at which timer/counter 320 outputs signal THOLD to indicate the elapse of a selected hold time interval. For example, timer/counter 320 may measure the hold time interval by counting a selected number of cycles of clock signal CLK, with that number of cycles programmable or selectable by way of a digital value applied to timer/counter 320 by controller 120. In this example, the hold time interval can be tuned by selection or programming of timer/counter 320 according to the characteristics of motor 160 or the particular motor application, or dynamically tuned based on the instantaneous rotational speed of motor 160.
Logic circuitry 322 of open-load detection circuitry 145 has an input coupled to controller 120 to receive a signal HI-Z, which indicates that a high-impedance state (corresponding to a phase angle of 0° in the sinusoidal coil current waveform) is present at H-bridge 130A. Logic circuitry 322 has an output presenting open-load fault signal OL_FAULT, for example to controller 120 or to other circuitry in system 100.
According to this example, the current operating state of stepper motor driver system 100 determines the current limit used in detecting an open-load condition at output terminals AOUT+ and AOUT− and terminals BOUT+ and BOUT−. More particularly, standstill signal HOLD from standstill detection circuitry 325 is used to determine whether open-load detection circuitry 145 detects an open-load fault based on trip limit current ITRIP when motor 160 is in a standstill state, or based on open-load limit current IOL when motor 160 is in a motor running state.
For the case of motor 160 is in a standstill or holding state, the use of trip limit current ITRIP for determination of an open-load fault avoids the generation of a false open-load fault in certain conditions. As shown in
On the other hand, the determination of open-load faults based on open-load limit current IOL according to this example also avoids generation of a false open-load fault when motor 160 is in a motor running state. In some implementations, stepper motor driver system 100 may be coupled to one or both of motor coils 165A, 165B having a sufficiently high inductance that coil currents IA, IB may not reach the regulated level trip limit current ITRIP in at least some of the microsteps of the sinusoidal waveform. Use of trip limit current ITRIP as the criterion for detecting an open-load condition thus could result in false detection of an open-load fault. According to this example, detection of open-load faults with motor 160 in the motor running state is instead based on comparing coil currents IA, IB against the open-load limit IOL, avoiding this potential cause of a false open-load fault.
As also described above, open-load fault detect circuitry 145 in this example issues an open-load fault signal OL_FAULT in response to signal LDP from current comparator circuitry 140A. 140B continuing for a measured hold time interval as measured by timer/counter 320. This hold time interval avoids the generation of a false open-load fault in the motor running state during those phases in which trip limit current ITRIP is less than the open-load limit IOL. Because the amplitudes of coil currents IA. IB sinusoidally vary in the motor running state, the duration of the microsteps in which trip limit current ITRIP is less than the open-load limit IOL does not continue for long. Proper setting of the hold time interval measured by timer/counter 320 to be longer than the duration at these low-current phases near 0° can thus avoid false open-load faults in the motor running state.
Open-load fault detection according to this example begins from state 400 in which system 100 is driving motor 160. More particularly, in this state 400, system 100 is driving coil current IA from terminals AOUT+, AOUT− to coil 165A, and also driving coil current IB from terminals BOUT+, and BOUT− to coil 165B. Open-load fault signal OL_FAULT from open-load fault detect circuitry 145 is at a logic “0” level in this state 400, indicating no open-load fault.
According to this example method, each of coil currents IA and IB are separately and independently monitored by system 100 for open-load conditions, with open-load fault detect circuitry 145 issuing signal OL_FAULT (e.g., at a logic “1” level) in response to detection of an open-load fault at either of terminal pairs AOUT+ and AOUT−, and BOUT+ and BOUT−. For purposes of this description, the method of
From state 400, decision 401A first determines whether the microstep index for coil current IA is at 0° phase. As described above relative to
In decision 403A, the current state of motor 160 as being driven by system 100 is determined, for example by standstill detection circuitry 325 based on inputs from controller 120. The result of decision 403A is communicated by standstill detection circuitry 325 issuing standstill signal HOLD to current comparator circuitry 140 at a logic level according to this determination. For example, standstill detection circuitry 325 may issue standstill signal HOLD (e.g., at a logic “1” level) to indicate that motor 160 is being held in a standstill state, or at a low logic level (e.g., at a logic “0” level) to indicate that motor 160 is in a motor running state.
In response to decision 403A determining that system 100 is holding motor 160 in a standstill state, current comparator circuitry 140 compares coil current IA to trip limit current ITRIP for the current microstep in the sinusoidal waveform of current IA in decision 405A. Conversely, in response to decision 403A determining that motor 160 is in a motor running state, current comparator circuitry 140 compares coil current IA to open-load limit current IOL in decision 407A. As described above relative to
If comparison decision 405A or 407A, as the case may be, determines that coil current IA is at or above (in magnitude) trip limit current ITRIP or open-load limit current IOL, respectively (decision 405A or 407A is “no”), open-load fault detection returns to state 400 to repeat the comparison and detection process. On the other hand, if the selected comparison decision 405A or 407A determines that coil current IA is below (in magnitude) trip limit current ITRIP or open-load limit current IOL, respectively (decision 405A or 407A is “yes”), process 408A is executed. In process 408A, timer/counter 320 begins measuring the duration of the current open-load fault condition, for example by initiating the counting of cycles of clock signal CLK. Decision 409A then determines whether the open-load fault condition has continued for the duration of a selected hold time tHOLD as measured by timer/counter 320. If hold time tHOLD has not yet elapsed since timer/counter 320 was started in process 408A (decision 409A is “no”), monitoring of coil current IA relative to trip limit current ITRIP or open-load limit current IOL continues, for example by repeating the process from state 400. Timer/counter 320 continues monitoring the fault condition so long as coil current IA remains below trip limit current ITRIP or open-load limit current IOL and hold time tHOLD has not yet elapsed (decision 409A returns “no”).
If the fault condition resolves prior to the elapse of hold time tHOLD, by coil current IA exceeding (in magnitude) trip limit current ITRIP or open-load limit current IOL (decision 405A or 407A is “no”), timer/counter 320 is reset in process 410A, and the comparison and detection process continues from state 400. If, however, the fault condition of coil current IA below (in magnitude) trip limit current ITRIP or open-load limit current IOL has continued for the duration of hold time tHOLD (decision 409A is “yes”), open-load fault detect circuitry 145 issues open-load fault signal OL_FAULT (e.g., at a high logic level, or logic 1) to controller 120 in process 420. Controller 120 can then process the fault by the appropriate action, for example by disabling gate drivers 125A, 125B for both motor coils, and the like. In addition, controller 120 may report fault diagnostic information to a host controller or system, for example by reporting which of coils 165A, 165B is open, the number of microsteps missed during this open-load condition, etc.
The examples described in this specification enable motor driver circuitry to detect an open-load condition at its outputs during operation, without external sensors or closed-loop control. More particularly, active open-load detection according to these examples can be integrated into the motor driver circuitry, for example in the same integrated circuit and operable during different phases of a two-phase or bipolar stepper motor application. Further, these examples can avoid generating false open-load faults, such as at 0° phases in the sinusoidal current waveforms, and in both standstill and motor running operating states.
As used herein, the terms “terminal,” “node,” “interconnection,” and “pin” are used interchangeably. Unless specifically stated to the contrary, these terms are generally used to mean an interconnection between or a terminus of a device element, a circuit element, an integrated circuit, a device, or other electronics or semiconductor component.
Unless otherwise stated, “about,” “approximately,” or “substantially” preceding a value means+/−10 percent of the stated value. Modifications are possible in the described examples, and other examples are possible within the scope of the claims.
A device that is “configured to” perform a task or function may be configured (e.g., programmed and/or hardwired) at a time of manufacturing by a manufacturer to perform the function and/or may be configurable (or re-configurable) by a user after manufacturing to perform the function and/or other additional or alternative functions. The configuring may be through firmware and/or software programming of the device, through a construction and/or layout of hardware components and interconnections of the device, or a combination thereof.
A circuit or device described herein as including certain components may instead be adapted to be coupled to those components to form the described circuitry or device. For example, a structure described as including one or more semiconductor elements (such as transistors), one or more passive elements (such as resistors, capacitors, and/or inductors), and/or one or more sources (such as voltage and/or current sources) may instead include only the semiconductor elements within a single physical device (e.g., a semiconductor die and/or integrated circuit (IC) package) and may be adapted to be coupled to at least some of the passive elements and/or the sources to form the described structure either at a time of manufacture or after a time of manufacture, for example, by an end-user and/or a third-party. While, in some example embodiments, certain elements are included in an integrated circuit and other elements are external to the integrated circuit, in other example embodiments, additional or fewer features may be incorporated into the integrated circuit. In addition, some or all of the features illustrated as being external to the integrated circuit may be included in the integrated circuit and/or some features illustrated as being internal to the integrated circuit may be incorporated outside of the integrated. As used herein, the term “integrated circuit” means one or more circuits that are: (i) incorporated in/over a semiconductor substrate; (ii) incorporated in a single semiconductor package; (iii) incorporated into the same module; and/or (iv) incorporated in/on the same printed circuit board.
Circuits described herein are reconfigurable to include the replaced components to provide functionality at least partially similar to functionality available prior to the component replacement. Components shown as resistors, unless otherwise stated, are generally representative of any one or more elements coupled in series and/or parallel to provide an amount of impedance represented by the shown resistor. For example, a resistor or capacitor shown and described herein as a single component may instead be multiple resistors or capacitors, respectively, coupled in parallel between the same nodes. For example, a resistor or capacitor shown and described herein as a single component may instead be multiple resistors or capacitors, respectively, coupled in series between the same two nodes as the single resistor or capacitor.
Uses of the phrase “ground” in the foregoing description include a chassis ground, an Earth ground, a floating ground, a virtual ground, a digital ground, a common ground, and/or any other form of ground connection applicable to, or suitable for, the teachings of this description.
While one or more embodiments have been described in this specification, it is of course contemplated that modifications of, and alternatives to, these embodiments, such modifications and alternatives capable of obtaining one or more of the technical effects of these embodiments, will be apparent to those of ordinary skill in the art having reference to this specification and its drawings. It is contemplated that such modifications and alternatives are within the scope of the claims presented herein.
Number | Date | Country | Kind |
---|---|---|---|
202341000308 | Jan 2023 | IN | national |