Abstract:
The circuit comprises a pulse width modulated (PWM) input signal, a resistor, an instrumentation amplifier, a filter and an analog to digital converter. The method of performing synchronization comprises sampling an analog signal and forming a digital data stream representing the signal, filtering the data stream to remove harmonics, measuring an approximate level of ripple in the data stream, detecting a change in the level of ripple, and based upon change in the level of ripple, determining if a stall has occurred.

Description:
TECHNICAL FIELD 
   The present invention relates generally to electronic circuits, and in particular to circuits for controlling stepper motors. 
   BACKGROUND 
   Stepper motors are widely used in speedometers, tachometers and similar gauges in automobiles and other applications. A stepper motor is one which moves through an integer number of steps as it goes through a revolution. This operation is controlled by the mechanical construction of the motor and its magnets. 
   In many conventional applications a stepper motor load may be moved to finite number position regardless of the origin position i.e. where the motor starts at. For example, if stepper motor drives a speedometer needle in an automotive application, there is zero position where speedometer readings are zero corresponding to where the speed is zero. In another application if a stepper motor is used to move a printer head, there is an origin position that corresponds to the left side (start position) of a sheet of paper. In these example applications the motor load must be moved to some initial position and uses this is as the origin point. 
   A stepper motor must be synchronized, which means that the position at which a needle (such as a speedometer needle) attached to the motor hits a stop point (for example zero miles per hour in a speedometer) needs to be sensed so the motor recognizes that it is at the zero point. The operation of a conventional stepper motor stop position synchronization solution  100  is shown in  FIG. 1 .  FIG. 1  shows operation  100 , with five positions of a rotor magnet and needle. 
   The first position  110  shows a rotor magnet  111 , a first coil  112  through which drive current ‘Idr’ is passed, a second coil  114  through which a voltage ‘Vind’ is induced, a needle  116  and a stop point  118 . In some embodiments the first and second coils may be orthogonal to each other. In other applications they may be non-orthogonal to each other. 
   The second position  120  shows a rotor magnet  121  which has rotated from the first position of  110 , a first coil  122  through which voltage ‘Vind’ is induced, a second coil  124  through which a drive current ‘Idr’ is passed, a needle  126  which has moved from position  116  and a stop point  128 . 
   The third position  130  shows a rotor magnet  131  which has rotated from the position of  120 , a first coil  132  through which drive current ‘Idr’ is passed in a reverse direction, a second coil  134  through which a voltage ‘Vind’ is induced in a reverse direction, a needle  136  and a stop point  138 . 
   The fourth position  140  shows a rotor magnet  141  which has rotated from the third position of  130 , a first coil  142  through which voltage ‘Vind’ is induced in a reverse direction, a second coil  144  through which a drive current ‘Idr’ is passed in a reverse direction, a needle  146  which has moved from position  136 , and which has reached stop point  148 . 
   The fifth position  150  shows a rotor magnet  151  which has not rotated from the position of  140 , a first coil  152  through which drive current Idr is passed, a second coil  154  through which no induced voltage is present (since the rotor magnet  150  has not moved), a needle  156  which has not moved from position  146 , as it has stayed against stop point  158 . 
     FIG. 2  shows a graph  200  of five drive pulses  210 ,  220 ,  230 ,  240  and  250  corresponding to the first position  110 , second position  120 , third position  130 , fourth position  140  and fifth position  150  of  FIG. 1 . 
     FIG. 3  shows a graph  300  of induced voltages drive pulses  310 ,  320 ,  330 ,  340  and  350  corresponding to the first position  110 , second position  120 , third position  130 , fourth position  140  and fifth position  150  of  FIG. 1 . The induced voltage for the fifth position is negligible, as shown by no ‘bump’  350  on the graph. The lack of induced voltage at the fifth position is due to the fact the needle  156  is stuck against the stop point  158 , hence the rotor  151  cannot turn and no induced voltage is present. 
   In a conventional solution, the induced voltage of  FIG. 3  is monitored, and at point  350  when no induced voltage is present, the solution recognizes that the stop position has been reached. Back electro magnetic force (EMF) is only generated when the motor/needle are moving in the magnetic field because the rotating permanent magnet creates an inducted voltage in both coils. In some conventional motor constructions when the stop point is reached, the motor rotor ‘dances’ around the stop, so the back EMF signal is reduced in amplitude. In other conventional motor constructions the signal waveform changes after reaching the stop, and the new waveform depends on the stop position relative to the rotor magnet pole position relative to the stator. 
   The conventional solution for stepper motor stop position synchronization uses a full-step coil drive voltage as shown in  FIG. 2 . The full step mode refers to an operation mode where only one coil is powered at a time. In this mode the rotor jumps in a 90 degree step (for a two pole motor with a 90 degree step). The jump angle can differ between motor constructions for example when the rotor magnet has more than 2 poles). In full step mode the coil current can have only two values, zero current and full coil current. 
   Microstepping is a technique where a current is applied to more than one coil to get a partial step actuation. This differs from a full-step method, as in the microstep solution partial steps are applied at a time. In an exemplary microstep mode the coils are powered by two phase-shifted signals that can have more than 2 values. In this microstep mode it is possible that two coils are powered at same time. In this microstep mode each full step is separated by some number of microsteps that allows reduction of vibration and providing smooth rotor rotation. 
   The conventional full-step solution for stepper motor stop position synchronization operates in the following manner. A full step coil drive voltage is applied to the stepper motor through a powered coil, and a signal is sensed on a second un-powered coil. When the stepper motor needle hits a stop point the needle cannot move further and the back EMF is reduced significantly. When the sensed signal on the un-powered coil indicates that the back EMF has reduced significantly, the needle is considered to have reached the stop point. 
   Disadvantages of the conventional solution include that it is coarse in finding the zero point. Furthermore since the motor operates in full-step mode with large steps, the motor/needle moves in large jumps and the action of the needle hitting the stop pin can cause wear on the mechanism over time and/or cause the needle to stick against the pin. 
     FIG. 4  illustrates the operation of the conventional solution of  FIG. 1 . The stall detection begins by retrieving the expected signal levels for a specific motor load and speed values (step  410 ). Once this is done, the stepper motor executes its task as determined by the microprocessor subsystem. When the coils in the stepper motor are energized by the driver circuit, the current feedback is amplified and digitized (step  420 ). The received digitized and conditioned feedback signal is then compared to the expected range of feedback signal levels (step  430 ). After the comparison, a decision is made as to whether the received digitized and conditioned feedback signal was within the expected signal levels (step  440 ). If the received signal is within the expected range, then a decision is made (step  460 ) whether the rotation phase is finished. If motor should continue to rotate, then the decision logic returns to step  420  by sampling the coil current again. If the rotation is finished, a confirmation message confirming the completion of the task is sent to the central system (step  470 ). The controller now knows that the rotation cycle is completed, i.e. that the gauge pointer reached desired position. 
   A disadvantage of the conventional solution of  FIGS. 1 and 4  is that the expected feedback signal values must be collected for different motor speeds and load values, requiring the control firmware calibration for each speed/load profile. Moreover, this algorithm is difficult to adapt when motor rotor accelerates/decelerates during operation. 
   Another conventional sensor-less stop synchronization solution described in U.S. Pat. No. 6,667,595 analyzes the voltage back-EMF signal timing parameters rather the doing a simple amplitude analysis. In the method of U.S. Pat. No. 6,667,595 the current ramp slope in the full step mode is analyzed, and the stop point is characterized by increasing coil current setup time. 
   Another conventional sensor-less stop synchronization solution is described in U.S. Pat. No. 6,815,923 which uses the coil drive current feedback signal and compares the signal with some predefined lookup table for a given motor speed and load. When a stop is reached, the current waveform changes and a comparator detects the rotor stalling. In spite of the fact that microstep mode synchronization was not considered in this patent, it can be used here. A disadvantage of the solution of U.S. Pat. No. 6,815,923 is that for correct operation the appropriate feedback signal tables for different speed and load values should be collected and stored in the microcontroller memory, which makes the solution motor and load dependent, and tuning may be required after changing the motor. 
   It would be desirable to provide stop synchronization in the microstep mode that allows greater synchronization accuracy and reduces the noise and vibration during synchronization by using microstep mode instead full step mode. 

   
     BRIEF DESCRIPTION OF THE DRAWINGS 
       FIG. 1  (Prior Art) illustrates the operation of a conventional stepper motor stop position synchronization solution. 
       FIG. 2  (Prior Art) illustrates a graph of drive pulses applied in the conventional solution of  FIG. 1 . 
       FIG. 3  (Prior Art) illustrates a graph of induced voltages generated in the conventional solution as a result of the drive pulses of  FIG. 2 . 
       FIG. 4  (Prior Art) illustrates a flowchart showing operation of the conventional solution of  FIG. 1 . 
       FIG. 5  illustrates a current waveform when a stop point is reached showing ripple on the waveform as a result of the stop. 
       FIG. 6  illustrates a filtered current waveform when a stop point is reached emphasizing ripple on the waveform as a result of the stop. 
       FIG. 7  illustrates a flowchart showing operation of the improved sensor-less method for stepper motor stop synchronization. 
       FIG. 8  illustrates a first improved circuit for stepper motor stop synchronization. 
       FIG. 9  illustrates a second improved circuit for stepper motor stop synchronization. 
   

   DETAILED DESCRIPTION 
   An embodiment is described of an improved sensor-less method and circuit for stepper motor stop synchronization. The improved synchronization solution for stepper motors allows for elimination of noise/vibration during full-step synchronization by using a microstep operation to determine changes in back EMF during synchronization. The improved sensor-less method and circuits and signal processing methods are in one embodiment optimized for low-power, direct microcontroller driven stepper motors for gauges. In other embodiments the improved sensor-less method and circuit can be used for other types of stepper motors. 
   Unlike conventional solutions the improved solution senses the coil current during microstep operation and uses an adaptive, learning-free algorithm to determining the rotor stall. Learning-free means the solution does not require additional learning steps to collect reference waveforms for given speed/load values. In the conventional solution the reference waveforms must be collected and stored in memory and compared to measured waveforms to check when a stop is reached. 
   In the improved microstep solution, when the pointer reaches a stop point, a ripple or ‘dancing’ waveform is seen on the induced voltage output. The current waveform changes when the pointer reaches a stop due to loss of synchronization between the rotor and the rotating magnetic field vector, hence causing the ripples. These ripples can be separated and used to detect the reaching of a stop point. The improved solution can detect ripple for any motor type, and does not have to be customized to each motor, unlike the conventional solution which must be customized to each motor in a learning step. 
     FIG. 5  shows the coil current waveform at the step motor with the Y-axis  510  showing analog to digital converter (ADC) counts, and the X-axis  520  showing the microstep number in the range from  3550  to  4050 , with steps shown at  3600 ,  3700 ,  3800 ,  3900 , and  4000 . In  FIG. 5  the stop has been reached around microstep number  3820 . A first section of the graph  530  shows a sinusoidal current waveform where the needle and rotor are moving, and a second section of the graph  540  shows a small noise on the waveform (circled as  550 ) where the needle and rotor are not moving, visible as ‘dancing’ or ripple on the waveform. 
   To separate ripples from the current waveform the waveform is digitized using an analog to digital converter (ADC) and samples are processed using digital filtering. The result of this filtering is shown on  FIG. 6 .  FIG. 6  shows the filtered coil current waveform  600  at a step motor with the Y-axis  610  showing filtered values and the X-axis  620  showing the microstep number.  FIG. 6  shows that for this embodiment the current ripple amplitude approximately doubles when the stop has been reached. This increase in the ripple amplitude can be identified by decision logic. In one embodiment the decision logic may be implemented as a simple threshold comparator, which compares the instant ripples signal with filtered values. When a stop is detected, the ripple level increases sharply. The low pass filter does not detect this sharp increasing, the comparator detects the rotor stall. Note: the low-pass filter detects a slow change in ripple level during phases where the rotation speed accelerates and decelerates.  FIG. 7  illustrates a filtering scheme  700  for a current waveform signal processing. The ADC data stream  710  is passed to notch filters  720  for removing the primary and any higher harmonics from the input signal. A high-pass filter  730  removes possible DC offset from the data stream. The output  730  of the high-pass filter is passed to level detector  740  which estimates the ripples value. This is simple absolute value calculation. The high-pass filter  730  outputs signed output data and the level detector calculates the signal absolute value by removing the sign. This acts as a rectifier function, implemented in firmware. In other embodiments software or hardware implementations could be used. 
   The output of the level detector  740  is passed to low-pass filter  750  which tracks slow changes in the ripples level caused by the possible rotation speed changes during acceleration/deceleration of the motor drive phases. The comparator  760  compares the actual ripples level with the slow-changed low-pass filter “baseline” level and signals the stall detection  770  when the ripple level changes enough to indicate a stall. In one embodiment the step of indicating stall comprises comparing the change in the level of ripple with a threshold value and if the threshold value is exceeded, signaling that a stall has occurred. The filtering scheme described here is one possible embodiment, other filtering schemes can be used also to achieve the same result. 
   In the solution described the ADC sample time is synchronized with a coil current update value during microstep operation. This synchronization prevents possible aliasing problems and provides a constant sample frequency relative to rotation speed (the ADC conversion is triggered the same number of times regardless of rotation speed). The motor coil is driven in the microstep operation by the digitized sinusoidal signal. One sinusoidal period is divided into a number of microsteps. Each microstep corresponds to one coil drive signal value. The ADC samples synchronously with coil drive signal updates. 
     FIG. 8  shows a first improved circuit  800  for stepper motor stop synchronization using a resistive bridge for coil current separation. The circuit  800  comprises a pulse width modulated source  810  coupled to inputs of a buffer  820  and to an inverter  840 . The output of buffer  820  is coupled to the top of a first resistor tree and to the top of a second resistor tree. The first resistor tree comprises resistor  850  coupled in series with resistor  852 , coupled in series with resistor  854 . A first (top) side of resistor  850  is coupled to the output of buffer  820 . A second (bottom) side of resistor  854  is coupled to an output of inverter  840 . The second resistor tree comprises resistor  860  coupled in series with resistor  862 , coupled in series with resistor  864 . A first (top) side of resistor  860  is coupled to the output of buffer  820 . A second (bottom) side of resistor  864  is coupled to an output of inverter  840 . A load  830  (typically a motor coil to be driven) has a first side coupled to a node between resistor  850  and resistor  852 , and has a second side coupled between resistor  862  and resistor  864 . An instrumentation amplifier (INA)  870  has a first input coupled between resistor  852  and resistor  854 , and has a second input coupled between resistor  860  and resistor  862 . An output of the instrumentation amplifier  870  is coupled to a low pass filter (LPF)  880 , which has an output coupled to analog to digital converter (ADC)  890 . 
   The resistive bridge suppresses a high-voltage common mode signal from a relatively small differential current sense resistor signal. This bridge allows the use of instrumentation amplifiers with a relatively small common mode reduction ratio at the pulse width modulated (PWM) signal frequency. An example of suitable instrumentation amplifiers is the amplifiers built into a system on a chip microcontroller. In one embodiment the resistor values for the bridge may in one embodiment be selected where R 850  is equal to R 864 , R 852  is equal to R 862 , R 854  is equal to R 860 , and R 854  is equal to the sum of R 850  and R 852 . In this case the instrumentation amplifier input voltage is proportional to the  830  load current and has little dependence from the PWM drive signal. 
   In one embodiment the improved solution may be used to control low-power gauge motors with bipolar drive circuits. In this embodiment an H-bridge power scheme may be used for driving the motor coils. An H-bridge is a configuration of control switches that allows operation of a bidirectional coil current at single polarity power supply. In another embodiment, the improved stop detection solution can be used for unipolar motor operation, where single current polarity drivers may be used instead of bipolar drivers. 
     FIG. 9  shows a second improved circuit  900  for a stepper motor stop synchronization using a switching-cap instrumentation amplifier. Circuit  900  comprises a pulse width modulated source  910  coupled in series to load  920  (typically the motor to be driven), where the load  920  is further coupled to a first side of resistor  930  and to a first input of instrumentation amplifier (INA)  970 . A second side of resistor  930  is coupled to a second input of instrumentation amplifier  970  and to a switch  940 . The switch  940  is configured to switch between a first voltage (vdd)  950  and a second voltage (vss)  960 . The instrumentation amplifier  970  has an output coupled to low pass filter (LPF)  980 , which has an output coupled to analog to digital converter (ADC)  990 . In the circuit shown above, the PWM driver minimum voltage should be approximately equal to VSS, and the PWM driver output maximum voltage should be approximately equal to VDD. 
   Advantages of the improved solution include that it allows smooth microstep rotation during a motor synchronization process, and is well suited to implementation in microcontroller and programmable logic devices having built-in instrumentation amplifiers. Furthermore, the improved solution has no learning requirements so can be used with different motors without firmware change. 
   Embodiments of the present invention are well suited to performing various other steps or variations of the steps recited herein, and in a sequence other than that depicted and/or described herein. In one embodiment, such a process is carried out by processors and other electrical and electronic components, e.g., executing computer readable and computer executable instructions comprising code contained in a computer usable medium. 
   For purposes of clarity, many of the details of the improved solution and the methods of designing and manufacturing the same that are widely known and are not relevant to the present invention have been omitted from the following description. 
   It should be appreciated that reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Therefore, it is emphasized and should be appreciated that two or more references to “an embodiment” or “one embodiment” or “an alternative embodiment” in various portions of this specification are not necessarily all referring to the same embodiment. Furthermore, the particular features, structures or characteristics may be combined as suitable in one or more embodiments of the invention. 
   Similarly, it should be appreciated that in the foregoing description of exemplary embodiments of the invention, various features of the invention are sometimes grouped together in a single embodiment, figure, or description thereof for the purpose of streamlining the disclosure aiding in the understanding of one or more of the various inventive aspects. This method of disclosure, however, is not to be interpreted as reflecting an intention that the claimed invention requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive aspects lie in less than all features of a single foregoing disclosed embodiment. Thus, the claims following the detailed description are hereby expressly incorporated into this detailed description, with each claim standing on its own as a separate embodiment of this invention.