[go: up one dir, main page]

WO1997015111A9 - A brushless dc motor assembly - Google Patents

A brushless dc motor assembly

Info

Publication number
WO1997015111A9
WO1997015111A9 PCT/US1996/016728 US9616728W WO9715111A9 WO 1997015111 A9 WO1997015111 A9 WO 1997015111A9 US 9616728 W US9616728 W US 9616728W WO 9715111 A9 WO9715111 A9 WO 9715111A9
Authority
WO
WIPO (PCT)
Prior art keywords
motor
brushless
control board
stator winding
routine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/US1996/016728
Other languages
French (fr)
Other versions
WO1997015111B1 (en
WO1997015111A2 (en
WO1997015111A3 (en
Filing date
Publication date
Application filed filed Critical
Priority to AU74551/96A priority Critical patent/AU7455196A/en
Publication of WO1997015111A2 publication Critical patent/WO1997015111A2/en
Publication of WO1997015111A3 publication Critical patent/WO1997015111A3/en
Publication of WO1997015111A9 publication Critical patent/WO1997015111A9/en
Publication of WO1997015111B1 publication Critical patent/WO1997015111B1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Definitions

  • the present invention relates to a brushless dc motor assembly, and more particularly, to a brushless dc motor which is capable of receiving AC input from a wall outlet or other source.
  • Brushless DC motors are widely used in due to their simplicity of design, and high efficiency. Difficulty has been encountered, however, in adapting brushless dc motors for receiving an AC input. To do this, the common approach has been to provide the motor with an externally mounted rectifier circuitry, typically including a step-down transformer. This construction, however, causes a significant increase in the overall size of the device which, of course, is undesirable in many applications. In addition, wide variations in AC input voltage to rectifier circuitry results in wide variations in the DC input to the motor, thus affecting motor performance and controllability. Finally, existing brushless dc motors are only capable of operating under relatively low power, e.g. 5 watts.
  • Another object of other present invention is to provide a brushless dc motor which operates at high power levels.
  • Still another object of the present invention is to provide a brushless dc motor having internal motor drive electronics including a power zenor diode for eliminating the detrimental effects of back EMF from the motor.
  • Still another object of the present invention is to provide a brushless dc motor having control and drive electronics including MOSFETS for increasing efficiency and a heat sink for dissipating heat generated by the MOSFETS.
  • Still another object of the present invention is to provide a brushless dc motor having a rotor shaft with a plastic or ceramic magnet and a bifiler wound stator.
  • Still another object of the present invention is to provide a brushless dc motor having a conduit box housing for the control electronics mounted on a heat sink.
  • the present invention relates to a brushless dc motor assembly including a brushless dc motor, and a control board having at least one output connected to a stator winding of said brushless dc motor for providing current flow to said stator winding.
  • the control electronics on the control board control current flow to said stator winding based on desired motor operating characteristics.
  • the control electronics include a housekeeping power supply for providing a stable 5v DC signal from a rectified AC line voltage, and a microprocessor for controlling output to the stator windings according to desired operating characteristics.
  • the control electronics also include a MOSFET output amplifier having a power zener diode connected to the drain thereof, said power zenor dissipating temporary back emf resulting from switching of said MOSFET from an on to an off state.
  • a hall device mounted to a stator of said brushless dc motor is also provided.
  • the hall device provides a signal representative of the rotational speed of a rotor of said motor to the control board.
  • the control electronics on said control board control said current flow to said stator winding responsive to said signal from the hall device.
  • the control board is preferably attached to a heatsink whereby the heatsink is attached to MOSFETS on said control board for dissipating heat generated by said MOSFETS.
  • FIG. l is a front view of a motor assembly according to the present invention.
  • FIG . 2 is a side view of a preferred rotor assembly according to the invention.
  • FIG . 2a is an end view of the rotor assembly of FIG. 2.
  • FIG . 3 is a side view of a second preferred rotor assembly according to the invention.
  • FIG . 3a is an end view of the rotor assembly of FIG. 3.
  • FIG. 4 is a plan view of a salient-type stator winding useful in accordance with the invention.
  • FIG. 5 is a plan view of a bifiler-type stator winding useful in accordance with the invention.
  • FIG. 6 is a top view of a stator with a stator mounted hall device according to the invention.
  • FIG. 7 is a side view of the stator with a stator mounted hall device shown in FIG. 6
  • FIGS. 8a-8d are successive views of a preferred hall effect device assembly according to the invention.
  • FIGS. 9 is a block diagram of the control board electronics according to the invention.
  • FIG. 10 is a detailed schematic of a preferred control board according to the invention.
  • FIG 11 is a schematic of a preferred house keeping power supply according to the invention.
  • FIG 12 is a schematic of a preferred low side drive circuit including power zener according to the invention.
  • FIG: 13 shows an end view of a preferred heat sink assembly according to the present invention.
  • FIG. 14 shows an side view of the preferred heat sink assembly shown in FIG. 13.
  • FIG. 15 shows a top view of a preferred MOSFET retainer bar according to the present invention.
  • FIG. 16 shows an side view of the preferred MOSFET retainer bar shown in FIG. 15.
  • FIG. 17 Is an upper level flow chart showing the preferred logic flow of microprocessor software according to the invention.
  • FIGS 18-36 Are flow charts showing the preferred logic flow of the routines and subroutines of the microprocessor software according to the invention.
  • a brushless dc motor 2 is provided having a conduit box 3, and a heat sink 4 attached thereto.
  • the heat sink 4 is attached to a control board 5 which is fastened inside the conduit box.
  • the control board includes electronic circuitry for providing rectification of an AC input (not shown) provided through a cut-away lead exit 6, and for controlling excitation of the stator field windings. Based on feed back control signals and user-defined parameters, control electronics on the control board create and maintain specific motor operating characteristics, e.g speed, torque, or current, according to desired specifications.
  • a space 7 is provided between the heat sink 4 and the control board 5.
  • the rotor assembly 8 of the motor 2 includes a shaft 9 and a known permanent magnet 10 fixed about a rotor core 11.
  • Known drive bearings 12, 13, e.g. ball or sleeve bearings, are provided on either end of the rotor shaft to provide bearing surfaces.
  • the permanent magnet 10 may be of either the plastic or ceramic type depending on desired motor characteristics. Generally, however, plastic magnets display lower field strength than ceramic magnets. In the case of a plastic permanent magnet, as shown in FIGS. 2-2a, the magnet is arranged such that the rotor core 9 outer diameter matches the magnet 10 inner diameter, and the rotor core and magnet are flush on both ends 14, 15 of the rotor core 10.
  • FIGS. 3-3a where a ceramic permanent magnet is used, as shown in FIGS. 3-3a, four sections 16-18 of ceramic magnet are fixed circumferentially about the rotor core 11 to be 90 degrees offset from each other. In the preferred embodiment of a 3.3" motor design, a space 20 of about .1" is allowed between each of the ceramic magnets.
  • the stator lamination is preferably a 3.3" shaded-pole configuration 23 produced by FASCO Industries of Ozark, Missouri.
  • the number of stacks and phase windings can be varied for individual user application.
  • the phase A 21 and phase B 22 coils may be wound in a salient-type phase set up, as shown in FIG. 4, or in a bifiler arrangement whereby the phase A 21 and phase B 22 coils are wound on each pole, as shown in FIG. 5 (shading bands not shown) .
  • the introduction of bifiler windings on the preferred stator lamination, as shown, results in a more efficient motor which converts current to force every 1/4 turn (90 degrees) of the motor.
  • Hall effect devices are commonly mounted to an electric motor to sense the rotational speed of the rotor shaft, and to provide a control signal representative of the rotational speed for controlling the operating characteristics of the motor.
  • the output of a hall device which is representative of rotational speed, is supplied to the control board as a feedback control signal.
  • a stator mounted hall assembly 24 as shown in FIGS 6 and 7 is preferred.
  • Correct hall device 25 orientation requires proper positioning of the device within the assembly housing 24, as well as stable placement of the assembly 24 on the stator 23.
  • a fifteen degree hall device lead angle A relative to the stator windings (not shown) produces the most efficient motor operation.
  • the assembly 24 provides for this lead angle with the hall device 25 placed off-center with respect to successive stator poles 26-29.
  • This arrangement combined with direct stator-mounting of the assembly 24, virtually guarantees stable orientation of the hall device to the windings.
  • the assembly is unaffected by alignment of sleeve, endplate or other peripheral motor components.
  • the assembly includes male-end connector legs 30,31 with respect to the stator, conveniently taking advantage of existing female-end conversions, specifically a stator ground hole 32 and the space 33 between stator lamination.
  • a preferred hall device assembly is shown in FIGS. 8A-8D.
  • the assembly includes a first leg 30 which is adapted to securely fit into the stator ground hole 32 (FIG. 6) , and a second T-shaped leg 31 adapted to fit in the space 33 (FIG. 6) between the stator lamination.
  • the vertical portion 34 of the T-shaped leg 31 fits in the space 33 between the lamination, while the horizontal 35 portion rests against the inner surfaces 37 and 38 of the stator lamination.
  • the male-female attachment of the hall device assembly 24 to the stator 23 eliminates the need to affix the assembly with rivets, screws, or other secondary devices. Attachment and removal of the hall assembly are swift and convenient. In fact, the assembly can be mounted using either ground hole 32 or 39 (FIG. 6) or placed on the opposite side of the stator 40 for reversible motor application. Finally, the hall device 25 is contained within the confines of the plastic assembly itself eliminating the possibility of direct damage to the pliable leads 41.
  • the conduit box 3 may be formed in two embodiments depending on the space requirements of the application.
  • the first embodiment is a metal or plastic conduit box 3 fastened to the motor sleeve, as shown in FIG. 1.
  • the arcuate bottom 42 of the conduit box rests against the motor sleeve 43 and is fastened thereto.
  • a cut-away lead exit 6 is also provided for connecting AC input leads to the control board 5 through an appropriate connector.
  • the box is spot welded to the sleeve 2, and the heat sink 4 is attached to the box with screws through screw holes 44 on either side 45, 46 of the box.
  • An ABS plastic conduit box may be attached to the motor sleeve via two weld bolts with the heat sink snapped in place in the top of the box.
  • the second conduit box embodiment is a stand-alone conduit box (not shown) , and is used when remote electronics are necessary.
  • the stand-alone conduit box is connected to the motor by 18-24" leads, and can be made from either plastic or metal.
  • control board 5 is contained within the conduit box 3, and is attached to the heat sink 4.
  • a block diagram of the preferred control board design is provided in FIG. 9. The operation of the control board electronics will be described, first in general terms, with a more detailed description to follow.
  • the AC input 47 passes to the AC-DC converter 48 which is preferably a known bridge rectifier. Ripple in the DC output 49 of the AC-DC converter is filtered by a filtering network 50 comprising a simple parallel connecte capacitor.
  • the filtered DC signal 51 is provided to the motor as a common connection, and as an input to the housekeeping power supply 52.
  • the housekeeping power supply creates and maintains a steady +5V DC signal 53 for operation of the controller electronics 54.
  • the controller electronics 54 include a microprocessor which is programmed to create and maintain desired operating characteristics and motor control from user defined input 65.
  • the controller electronics 54 provide input 62, 63 to the low side drive electronics 55 to control the phase A and phase B winding currents 56, 57 provided by the lowside drive electronics to the respective stator windings 58, 59.
  • the rotational speed of the rotor shaft is monitored via a hall device 60 which provides the controller electronics 54 with a feedback signal 61 representative the rotational speed.
  • a feedback signal 64 is taken from the lowside drive electronics 55 which is representative of the current output to the motor.
  • a microprocessor in the controller electronics controls the phase A and phase B winding currents using the combination of these two feedback signals 61, 64 and pre-programmed, user-identified operating characteristics.
  • FIG. 10 there is shown a detailed schematic of a preffered embodiment of a control board according to the invention.
  • the AC input 47 is received into the control board and rectified by a known AC-DC converter 48, preferably a bridge rectifier. Ripple in the rectified AC is filtered by a known filter network, e.g. by means of capacitor.
  • the DC output of the rectifier at 51 is provided as a common connection 66 to the motor, and as the input to a house-keeping power supply (HKPS) circuit 52.
  • HKPS house-keeping power supply
  • HKPS 52 in the design of the control board eliminates the need for a step-down transformer as required in prior art designs. As a result, the motor can be directly connected to a wall outlet without the use of a costly, space- consuming AC power supply. In addition, the HKPS can handle a large variation in line (input) voltage without degrading the logic (output) voltage. This feat can be done without the addition of a secondary regulator.
  • the input voltage at 51 to the HKPS 52 is considered 200 VDC maximum (160VDC with load) .
  • the resistor R2 preferably a 150k ohm/.25W device, limits the current through the zenor diode VRl which is a rated 500 mW element.
  • the zenor diode VRl must conduct at a voltage high enough to overcome the threshold voltage of the gate 67 of the MOSFET Ql, which for the preferred IRF630 MOSFET is 2-4 VDC.
  • the zenor diode is reverse-biased at 9.1VDC. With the zenor diode in conduction, the MOSFET Ql is on, and the drain 68 current flows allowing the capacitor C2 to charge.
  • the capacitor C2 will charge until the MOSFET source 69 voltage is greater than the gate voltage (non-conduction MOSFET mode) . This occurs when the combination of the gate threshold voltage of the MOSFET and the potential voltage of the capacitor C2 is greater than the zenor diode VRl voltage. With the MOSFET off, the capacitor will discharge a discrete amount, until the MOSFET source voltage is less than the gate voltage. At this point, the MOSFET is on, and the process repeats itself. The diode CR2 at the drain 68 prevents back current from discharging the capacitor C2 in the event that the input voltage is lost. The end result is a MOSFET Ql that continually switches on and off maintaining a relatively stable 5 VDC output 70 for the controller electronics.
  • the 5 VDC output is achieved as long at the input signal falls within an acceptable range determined by the performance parameters of the circuit elements, specifically the MOSFET.
  • the input voltage can vary from 17-200VDC.
  • the HKPS can handle a large variation in line voltage without effecting logic voltage.
  • Another advantage of this HKPS is its ability to "step-down" such a wide range of voltage (i.e. 200VDC to 5VDC) .
  • microprocessors can be used according to the invention.
  • a PIC16C71 microprocessor 12 available from Microchip Corporation of Chandler, Arizona, USA is used based on cost, efficiency, and performance characteristics.
  • the microprocessor input 65 is user defined depending on the application.
  • the user i/o interface 52 is active low with select bits provided to the user for control of motor characteristics, e.g. speed and torque.
  • the microprocessor 12 controls the phase A 71 and phase B 72 outputs to achieve the desired operating characteristics.
  • the software for the microprocessor logic used to control the phase A and phase B outputs will be discussed in detail below.
  • phase A 70 and phase B 71 outputs of the microprocessor 12 are provided as inputs to the gates 73, 74 of driving MOSFETS Q4, Q3 in the low side drive electronics 55. Since there are two phases to the motor, two driving MOSFETs Q4, Q3 are used, one for each phase. Two diodes CR3, CR4 are placed in series with each driving MOSFET to prevent back current from one driving MOSFET to the other.
  • a power zenor diode 75 is incorporated into the low side drive electronics 55 to account for a momentary increase of voltage (1200 VDC) at the drains 76, 77 of the driving MOSFETS due to back EMF caused by the switching action of the driving MOSFETS.
  • This effect is inherent in a bifiler wound motor (phase-shared magnetic fields due to opposed windings on each pole) unlike a motor with salient poles.
  • the back EMF In order for the driving MOSFETS to control drain current, the back EMF must be managed. This management concept is accomplished with the application of a zenor diode configuration 75 capable of high- power dissipation (hence the name "power zenor”) .
  • the voltage at the source of the MOSFETS is 200VDC maximum (160VDC nominal) ; approximately 400VDC is the maximum desired output voltage at the drain.
  • the zenor diode VR2 is rated at 180V. While the driving MOSFETs Q3, Q4 are operating (one is off and the other is on) there is no current through the power zenor 75 (i.e. voltage at power zenor MOSFET Q2 drain 78 is less than 400VDC) .
  • the voltage at the drain 78 of the power zenor MOSFET Q2 rapidly increases resulting in a reverse-biased zenor diode VR2. Since the zenor diode voltage VR2 is constant at this time, any excessive voltage applied to the MOSFET drain is dissipated through the MOSFET rather than the zenor diode VR2.
  • the zenor diode VR2 clamps the voltage at the drain 78 equal to the zenor diode voltage plus the 200VDC at the source (gate threshold voltage must be considered but at 2-4VDC is negligible) .
  • the power zenor 75 conducts until the switching action of the driving MOSFET is accomplished and the resulting increased voltage resonates back to an acceptable level.
  • a power zenor configuration 75 may not be needed.
  • input voltages up to 100VDC or 70VAC a different configuration can be utilized. Because the zenor diode VR2 can handle power dissipation at this level, the extra MOSFET Q2 in the power zenor configuration is no longer needed. Instead, a zenor diode VR2 (with accompanying protection diode) is placed between the drain and gate of each driving MOSFET Q3,Q4.
  • the aluminum heat sink 4 is provided for dissipating heat produced by the power devices (i.e. four MOSFETs Q1-Q4) contained on the motor control board 5.
  • the power devices i.e. four MOSFETs Q1-Q4 contained on the motor control board 5.
  • FIGS 13-14 it has been found that production efficiency and overall cost is improved by aligning all four MOSFETS Q1-Q4 above and to one side of the control board 5.
  • the heat sink 4 dissipates most of the heat through the fins 79 below the board 5 which is positioned within a slots 80, 81 on either side of the heat sink.
  • One side 82 of the heat sink extends above one side of the control board 5 for MOSFET attachment.
  • the board itself can be wave-soldered with the MOSFETs in place. This eliminates the additional step of hand-soldering the MOSFETs to the board (as is necessary when these devices are attached to the heat sink below the board) .
  • the MOSFETs Q1-Q4 are connected to the heat sink via a Teflon plastic or aluminum retainer bar 83, shown particularly in FIGS. 15 and 16. The MOSFETs are secured to the heat sink underneath extension 84 of the bar 83.
  • the bar in turn, is held in place against the heatsink 4 with only two screws through holes 85 , 86 in the bar and holes 87,88 in the heat sink 4, instead of an individual screw for each MOSFET. Finally, by placing the MOSFETs in this above-board configuration additional space is afforded to the control board for circuit design.
  • the microprocessor 12 receives feedback from the hall device 60, and from a lowpass filter/op amp circuit 89.
  • the hall device 60 provides a signal which is representative of the rotational speed of the rotor shaft 9.
  • the low pass filter is connected to the sources 90, 91 of the driving MOSFETS Q4, Q3 to obtain a current signal at 92 representative of the driving current.
  • the difference between this signal, and a signal at 95 representative of the operational amplifier output at 93, is amplified by the op amp 94 and provided as a feedback input to the microprocessor 12.
  • the output of the op amp at 93 increases, therefore, with increasing drive current.
  • the microprocessor 12 uses the hall device signal 61 and the op amp feed back signal at 93 to control the torque (rotational speed x current) , rotational speed, and/or current of the motor by adjusting the phase A and phase A outputs in response to sensed changes.
  • FIGS. 17 is a basic flow chart for the software which is preferably used in the microprocessor 12 to control motor parameters.
  • the software may be customized to control several motor parameters according to user desired performance.
  • the microprocessor self test 91 is initiated by the software to verify the integrity of the microprocessor.
  • the software then performs an initialization routine 92, a three pole switch routine 93 to determine the status of a user defined/controlled switch inputs 223, and a soft start routine 94 to slowly ramp up the speed of the rotor.
  • a Main Setup routine 95 is then initiated to set flags and registers used in the main routine 96.
  • the main routine 96 executes various user specific applications 97 in combination with standard subroutines 98 to control speed, torque, current, and/or volume flow output 225 based on user input and feedback signals 224.
  • the timer interrupt routine 99 is used in connection with the main routine and the soft start routine to provide a timed interrupt for incrementing counters, saving data, setting flags, etc.
  • the timer interrupt routine includes a timer subroutine 100 for determining necessary speed adjustments and performing necessary speed changes.
  • a Pulse Width Modulation (PWM) Interrupt 101 operates in connection with the Main Routine for counting hall edges and controlling the pulsing of the phases for speed control.
  • motor shut down is performed by either a hard brake 102 routine or an instant shut down routine 103.
  • the Hard Brake 102 routine responds to the hard brake flag to shut down the motor with very little coasting.
  • the instant shutdown 103 routine allows the motor to coast to a stop.
  • the Initialize Routine 92 defines constants 104, defines register addresses 105, defines interrupts and code origins 106, defines I/O ports 107, defines interrupts and the pre-scaler 108, initializes the timer 109, and clears all remaining registers 110.
  • the switch routine 93 is initiated to determine the status of the user input for controlling motor start up.
  • the SELECT, SELECT INPUT 0, and SELECT INPUT 1 inputs to the Switch Routine are user defined based on the application. Alternatively, an external three-position switch may be provided to allow external control of these processor inputs for user control of motor operation.
  • the switch routine first determines if the select input 115 has been set low. If not, then soft start routine 94 is initiated. If so, then if speed input 0 is low and speed input l is high 116, then the soft start routine 94 is initiated. Otherwise, the routine ends 114 and the motor will not start. For virtually all applications, the motor/controller will not operate when the user controlled three-position switch is in the middle position, and will operate in the low or high positions.
  • the soft start routine 94 follows the switch routine 94 and slowly ramps up the motor from a stopped rotor position by pulsing the phases on and off (PWM) , resulting in a softer start up and less noise.
  • PWM phase on and off
  • An added feature is an increasing variable torque factor which allows the motor to start up under heavier loads and colder temperatures. Speed is increased in this routine by changing the duty cycle of the PWM, thus creating more torque as the speed of the motor increases.
  • the soft start routine begins by initializing the PWM counter 117.
  • the hall signal 119 is then checked 118 for a high or low condition. If the hall signal is low, phase A processor output is selected for pulse width modulation (PWM) 120, phase B output 121 is set low, and rising hall edge detection is set 123. If the hall signal is high, phase B is selected for PWM 124, phase A is set low 125, and falling hall edge detection is set 126.
  • PWM pulse width modulation
  • One PWM is then performed 127.
  • the bus voltage input 129 is then checked. If the bus voltage is below minimum 128, then a timeout flag is set 130. If it is not below minimum, then the current sense input 131 is checked 132 to determine if it is above maximum. If the maximum current sense is exceeded a timeout flag is set 133.
  • the hall signal 134 is checked 135 to determine if the next hall edge has been received. If so, the routine loops back to the beginning. If not, the PWM counter is checked 136 to see if it is equal to zero. If PWM counter does not equal zero, the routine loops back to perform one PWM. If the PWM counter equals zero, the soft start timer is checked 137 to determine if it has expired. If the timer has expired, the routine proceeds to the main setup 95. If not, the routine loops back to the beginning.
  • a Timer Interrupt routine 99 is used in connection with the main routine and the soft start routine 94.
  • the Interrupt is activated based on the 1:256 prescaler, which means it occurs every 65,536 microseconds. Every fifteenth time through this interrupt, approximately one second has elapsed, thus triggering the tasks of incrementing the seconds counter, saving the hall edges per second, and setting a calculation flag (if necessary) , and calling a timer subroutine (if necessary) .
  • the timer subroutine performs a comparison of registers to determine rotor speed adjustment. This routine is called from the timer interrupt and performs the necessary speed changes. Referring to FIG. 22, the Timer Interrupt routine flow depends on the status 138 of the soft start routine 94.
  • the timer interrupt routine checks to determine whether the motor is in the desired operational window 139 . If not, the routine increments or decrements the PWM counter appropriately 140 and sets the timeout flag 141. If the operational window has been, then the timeout routine determines if one second has expired 144. If not, the routine ends 146. If one second has not expired, the speed and set up variables are saved, and the timer is reset before the routine ends 145.
  • the Timer Interrupt routine checks the PWM counter to determine if it is less than or equal to the destination PWM value 142. If it is not, then the PWM counter is decremented 143. If it is, then the Timeout Routine determines if one second has expired 144. If not, the routine ends 146. If one second has not expired, the speed and set up variables are saved, and the timer is reset 145 before the routine ends 146.
  • a timer subroutine is called from the timer interrupt in most applications to perform the necessary speed changes. Referring to FIG. 23, the timer subroutine compares a predefined theoretical value of the current, bus voltage, torque, speed, or any calculated value, to the actual value calculated value to determine the speed change 147.
  • the routine returns to the Timer Interrupt routine 99. If the theoretical and actual values are different, then the Timer Subroutine determines the increment or decrement to speed via PWM 149. The necessary changes to the PWM are performed 150, and the flow returns to the Timer Interrupt routine 99.
  • a Main Setup routine 95 follows he soft start 94 to prepare for the main processing depending on user defined operating characteristics.
  • user defined variables are initialized 151 the flow proceeds to the main processing routine 96.
  • flags are set, and the global interrupt enable is set. Flags may be set here for OWC output on/off and for a hard brake or natural coast stop.
  • the Main Routine contains 96 several routines 98 and calls various applications 97 according to desired user specifications.
  • Routines used within the main routine in connection with these applications include, a Pulse Width Modulation (PWM) Interrupt Routine 101, a Maximum/Minimum Routine 162, Transition Routine 163, A/D Routine 164, Calculation Routine 165, and a Table Lookup Routine 166.
  • PWM Pulse Width Modulation
  • the PWM Interrupt routine 101 activates a motor controlling Interrupt on a hall edge.
  • the first task is to determine the correct phase to fire.
  • the selected phase is then pulsed on and off eight times, with forty-microsecond pulses, to soften current change.
  • the phase is off for a varying amount of time, and then turned on off the remaining time until another hall edge is received.
  • a count of hall edges per second is also done here.
  • the PWM interrupt 101 begins with initialization of the PWM counter 167.
  • the hall signal 169 is then checked for a high or low condition 168. If the hall signal is low, phase A processor output is selected for pulse width modulation (PWM) 173, phase B output is set low 174, and rising hall edge detection is set 174. If the hall signal is high, phase B is selected for PWM 170, phase A is set low 171, and falling hall edge detection is set 172.
  • PWM pulse width modulation
  • phase B is selected for PWM 170
  • phase A is set low 171
  • falling hall edge detection is set 172.
  • an additional step 178 is performed to determine if the user has required a skip of phase PWM for a preset number of hall edges. If so, the flow proceeds to the end of the routine 190.
  • One PWM is then performed 180.
  • the bus voltage input is then checked 182. If the bus voltage 181 is below minimum, then a timeout flag is set 183. If it is not below minimum, then the current sense input 184 is checked 185 to determine if it is above maximum. If the maximum current sense is exceeded a timeout flag is set 186.
  • the hall signal 188 is checked 187 to determine if the next hall edge has been received. If so, the routine loops back to the beginning 101. If not, the PWM counter is checked to see if it is equal to zero 189. If PWM counter does not equal zero, the routine loops back to perform one PWM 180. If the PWM counter equals zero, the PWM Interrupt Routine ends 190.
  • the Minimum/Maximum routine 162 is performed to checked to see that the bus voltage, current sense, and rotor speed are within a particular range, otherwise an instant shutdown is performed. These checkpoints are determined by the user. Referring to FIG. 27, the Minimum/Maximum routine 162 checks the minimum and maximum limits on bus voltage, speed and current 191. If a limit has been exceeded 192 then the Instant Shutdown routine is performed 103. If the limit has not been exceeded, then flow returns to the Main Routine 96.
  • the instant shutdown routine 103 turns the phase outputs off and waits for the switch to be cycled off then back on, which restarts the microprocessor. The motor will coast to a stop unless the switch is cycled.
  • the instant shutdown routine 103 disables all interrupts 193, turns both phases 196 off 194, and sets OWC 197 low 195.
  • Instant Shutdown then determines 198 if Speed Input 0 is low and Speed Input 1 199 is low. If so, then the flow returns to beginning 90 to restart the microprocesor. If not, then flow loops back to the beginning of the Instant Shutdown routine 103.
  • a Hard Brake Routine may also be called by the main routine in some application to turn off both phases if a hard brake flag is set. Opposite phases are selected and pulsed on and off every three microseconds to slow the rotor down dramatically. The phases are alternated between hall edges until the time elapsed between two hall edges is large enough to represent a stopped rotor. Very little coasting occurs, if any.
  • the Hard Brake Routine 102 turns interrupts off 200, and checks the hall position 201. Opposite phases are pulsed in three microsecond pulses 202. When the time between two hall edges is between a user-defined, pre-set number of counts, the shut down routine is executed 203.
  • the transition routine controls flags and handles delays between switching. When switching to the off position after soft start, there is a two second delay before instant shutdown. When switching from high to low or vise versa, there is an eight second transition period where calculations and some tests are skipped to allow motor performance changes. In some applications, set points are needed, such as constant speed, constant current, and constant torque. These are set when an optional three-position user operated switch is thrown.
  • the Transition Routine 163 first determines whether the three-position switch 205 has changed position 210. If not, then the transition flag is cleared after 8 seconds 209 and flow is continued to the main routine 96. If the switch position has changed, the Transition routine sets variables/flags to reflect the change 204, sets the off flag if the switch is in the off position 206, clears the off flag if the switch is changed from "off" in 2 seconds or less 207, and transfers flow to the shutdown routine if the switch is off for more than 2 seconds 208.
  • the A/D routine performs and controls A/D conversion of analog input signals. All A/D conversions are based on the bits in the PCYCLE register which starts at zero. If the LSB bit is zero, the last A/D conversion is saved and the next conversion is setup based on bits one and two. If the LSB bit is one, the twenty microsecond A/D conversion is started. In all cases the PCYCLE register is incremented for proper execution on the following loop through the main routine.
  • the A/D routine 164 checks the PCYCLE value and branches 212 based on PCYCLE to: (1) save speed/setup bus voltage; (2) save speed/setup current; (3) save bus voltage/setup speed; (4) save current/setup speed; or (5) perform conversion.
  • the A/D routine then increments PCYCLE 213 and returns flow to the Main Routine 96.
  • the calculation routine is required in applications such as the constant and variable torque applications.
  • the calculation routine can be located anywhere in the main routine but is usually found after the A/D routine.
  • a calculation flag is set in the Timer Interrupt to determine how often the calculation is to be performed. Calculations are usually not performed during a switch transition period. Referring to FIG. 35, the flow of the calculation routine 165 for torque is shown. First, the Calculation Routine loads the number of Hall edges per second and stores the value 214. The routine then loads the number of current base on an A/D conversion 215, and multiplies the hall edges by the current to determine torque 216. Flow is then passes back to the main routine 96.
  • the table look up routine is required by some applications to determine the proper rotor speed, such as applications for creating constant volume flow, following a curve/table, or possibly selectable speeds.
  • the Table Lookup routine loads or calculates an index 217 and then calls a table 218. The table location is loaded 219, the index value is added 220 and moved into the program counter 221, and flow is returned to the table lookup 22. The table lookup then returns flow to the Main Routine 96.
  • Variable speed - Speed is adjusted through a potentiometer giving a true variable speed within the resolution of the potentiometer A/D conversion.
  • the potentiometer value is saved directly into the varying delay register so that no timer subroutine is needed to determine speed change. Calculations or calculation flags are not needed.
  • Variable current - Current is adjusted through a potentiometer giving a variable current within the resolution of the potentiometer and current A/D conversions.
  • the potentiometer value is saved directly into the theoretical current register and is compared to the actual current to determine speed change. This requires a timer subroutine. Calculations or calculation flags are not needed.
  • Variable Torque - Torque is adjusted through a potentiometer giving a variable torque within the resolution of the potentiometer current and current A/D conversions and of the error counting the hall edges per second.
  • the potentiometer value is saved directly into the theoretical torque register and is compared to the calculated torque value to determine speed change. This requires a timer subroutine, a torque calculation routine, and a calculation flag.
  • Constant Speed - Speed is set in the transition routine where the value is saved directly into the theoretical speed register and is compared to the actual speed value to determine speed change. This requires a timer subroutine. Calculations, calculation flags, and potentiometer A/D conversion are not neede .
  • Constant Current - Current is set in the transition routine where the value is saved directly into the theoretical current register and is compared to the actual current value to determine current change. This requires a timer subroutine. Calculations or calculation flags are not needed.
  • Constant Torque - Torque is set in the transition routine where the value is saved directly into the theoretical torque register and is compared to the calculated torque value to determine speed change. This requires a timer subroutine, a torque calculation routine, and a calculation flag.
  • Selectable Speeds By using a lookup table and several input lines, a variety of combinations can be used for selectable speed control. The selected speed value is compared to the actual speed value to determine speed change. This routine requires a timer subroutine. Calculations, calculation flags, and potentiometer conversion are not needed. This routine is very similar to constant speed.
  • Quar_0 mcvf TEMPI 0 number of pwms (y of x*y) movwf PCNTRO save into general counter Quar 1 movl .25 number of pwms (x of x*y) movwf TEMP2 save into general counter btfsc PORTB,SSINO is speed input LSB low goto Hal_l continue btfss PORTB,SSIN1 is speed input MSB high goto Sd_inst no ... instant shutdown
  • Del 0 decfsz CNTR1 decrement general counter goto Del_0 continue delay movf PHASE,0 load PHASE into W xorwf PORTB, 1 set phase low btfsc INTCO , INTF check if hall edge received goto Halrcvd continue movf PSTORO,O load W movwf CNTR1 save into general counter
  • Edgwait btfsc PORTB,SSINO is speed input LSB low goto Edg_I continue btfss PORTB,SSINI is speed input MSB high goto Sd_inst no...instant shutdown
  • Offsw btfss BITREG,OFFSWTC -check if off switch flag already set clrf SECCNTR ,-clear the seconds counter bsf BITREG,OFFSWTC ;set off switch flag set transition flag load 2 seconds into W
  • SECCNTR-2 has 2 seconds elapsed? finished with transition routine check if Hard Brake set hard braking instant shutdown check transition flag finished with transition routine load x seconds into W
  • SECCNTR-x has x seconds elapsed? clear transition flag
  • Ad_go bsf ADCONO,ADGO set ADGO bit to begin A/D conversion return ,-continue
  • Ad_cur movlw b' 00000001' select fosc/2 and AINO movwf ADCONO set up A/D return continue
  • Ad_bus movlw b'00001001' select fosc/2 and AINl movwf ADCONO ,-set up A/D return ,-continue
  • Ad_spd btfsc PCYCLE, 2 -check bit 2 for current or voltage goto Ad_sbus ,- save old bus voltage ;Save Current Sense
  • Ad_scur movf ADRES,0 -load W with last A/D conversion movwf CSACTL , save current sense (1:8 PWMS) cvlw b' 00010001, ,-select fosc/2 and AIN2 movwf ADCONO ,-set up A/D and start conversion return ;continue
  • Gieoff bcf INTCON,GIE -disable global interrupts btfsc INTCON,GIE ; erify disable goto Gieoff ,-no ... try again return ,-return to call
  • TIMER INTERRUPT (1:256 Prescale) save W register load STATUS into W save STATSAV timer interrupt flag? no ... goto PWM interrupt reset timer flag decrement timer counter finished with interrupt lead Hall counter MSB into W save Hall storage MSB load Hall counter LSB into w • save Hall storage LSB
  • select pgO registers turn phase A off turn phase B off clear hall interrupt flag move PWM storage LSB into W save into PWM counter LSB increment hall counter LSB check for carry increment hall counter MSB alignment of hall signal and phases hall high, select phase B high unselect phase B select phase A select pgl registers set rising hall edge detect select pgO registers high or low speed?
  • Halchg load W save increasing torque delay counter shift right loops save into general counter
  • Halchg2 -alignment of hall signal and phases
  • 6-PSTORO delay loops save into general counter decrement general counter continue delay load PHASE into W set phase low check if hall edge received continue load w save into general counter decrement general counter continue delay decrement general counter continue pulsing decrement general counter continue loop load PHASE into W set phase high is- speed input LSB low continue is speed input MSS high no...instant shutdown check if hall edge received continue waiting for hall edge clear hall edge if present decrement general counter continue loop decrement general counter continue loop
  • Tablels call the low speed table movlw .1 addlw .1 movwf TTHEO ,-save torque theoretical movlw .2 subwf TTHEO, 1 goto Timechk ,-continue
  • Highsw bcf BITREG,OFFSWTC -clear off switch flag btfsc BITREG,HIGHLOW ,-check high speed flag goto Highspd ,-continue bsf BITREG,HIGHLOW ,-set high/low speed flag bsf BITREG,TRANS8 ,-set transition flag bsf BITREG,WAITOWC ,-set waitowc flag bcf BITREG2,SLOWFST ,-clear slow/fast flag set four seconds flag number PWMs save into PWM Storage LSB clear the seconds counter continue check if in transition continue clear carry bit divide Hall storage MSB by 2 divide Hall storage LSB by 2 high minimum 93 @ 2800 RPM check carry for negative result turn OWC off clear carry bit divide Hall storage MSB by 2 divide Hall storage LSB by 2 high maximum 145 @ 4300 RPM check carry for negative result turn OWC off check if MSB set check if zero over 255 value to decrement
  • SECCNTR-X has x seconds elapsed? instant shutdown finished with transition routine check transition flag finished with transition routine load x seconds into W
  • SECCNTR-X has x seconds elapsed? continue clear transition flag perform closed loop operation A/D SUBROUTINES FOR MAIN INTERRUPT
  • select pgO registers turn phase A off turn phase B off clear hall interrupt flag move PWM storage LSB into W save into PWM counter LSB increment hall counter LSB check for carry increment hall counter MSB alignment of hall signal and phases hall high
  • select phase B high unselect phase B select phase A select pgl registers set rising hall edge detect select pgO registers continue unselect phase A select phase B select pgl registers set falling hall edge detect select pgO registers check high speed flag delay loops for low check high speed flag delay loops for high save into general counter decrement general counter continue delay decrement general counter continue to PWM load PHASE into W set phase high perform XOR on bit 3 of port B check for OWC switch OWC high/low load STATUS into W restore STATUS register lead WSAV into W end of interrupt LOW SPEED LOOK UP TABLE

Abstract

A brushless dc motor assembly including a brushless dc motor, and a control board having at least one output connected to a stator winding of said brushless dc motor for providing current flow to said stator winding. Control electronics on the control board control current flow to said stator winding using a microprocessor and based on desired motor operating characteristics. The control electronics include a housekeeping power supply for providing a stable 5v DC signal from a rectified AC line voltage. The control electronics also include a MOSFET output amplifier having a power zener diode connected to the drain thereof, said power zener dissipating temporary back emf resulting from switching of said MOSFET from an on to an off state. A hall device mounted to a stator of said brushless dc motor is also provided. The hall device provides a signal representative of the rotational speed of a rotor of said motor to the control board. The control electronics on said control board control said current flow to said stator winding responsive to said signal from the hall device. The control board is preferably attached to a heatsink whereby the heatsink is attached to MOSFETS on said control board for dissipating heat generated by said MOSFETS.

Description

1 A BRUSHLESS DC MOTOR ASSEMBLY
Field of the Invention:
The present invention relates to a brushless dc motor assembly, and more particularly, to a brushless dc motor which is capable of receiving AC input from a wall outlet or other source.
Background of the Invention:
Brushless DC motors are widely used in due to their simplicity of design, and high efficiency. Difficulty has been encountered, however, in adapting brushless dc motors for receiving an AC input. To do this, the common approach has been to provide the motor with an externally mounted rectifier circuitry, typically including a step-down transformer. This construction, however, causes a significant increase in the overall size of the device which, of course, is undesirable in many applications. In addition, wide variations in AC input voltage to rectifier circuitry results in wide variations in the DC input to the motor, thus affecting motor performance and controllability. Finally, existing brushless dc motors are only capable of operating under relatively low power, e.g. 5 watts.
In view of these and other disadvantages of the prior art, there is a need in the art for a brushless dc motor which is capable of being powered by an AC source (e.g. a common wall outlet) and is efficient, compact, and cost effective.
Objects of the Invention
Accordingly, it is an object of the present invention to provide a brushless dc motor which is capable of operating from an AC input source.
Another object of other present invention is to provide a brushless dc motor which operates at high power levels.
Yet another object of the present invention is to provide a brushless dc motor which includes a control board for allowing customized control of motor parameters. Still another object of the present invention is to provide a brushless dc motor having an internal house keeping power supply which is capable of providing a stable DC voltage to control electronics over a wide range of AC input voltages.
Still another object of the present invention is to provide a brushless dc motor having internal motor drive electronics including a power zenor diode for eliminating the detrimental effects of back EMF from the motor.
Still another object of the present invention is to provide a brushless dc motor having control and drive electronics including MOSFETS for increasing efficiency and a heat sink for dissipating heat generated by the MOSFETS.
Still another object of the present invention is to provide a brushless dc motor having a rotor shaft with a plastic or ceramic magnet and a bifiler wound stator.
Still another object of the present invention is to provide a brushless dc motor having a conduit box housing for the control electronics mounted on a heat sink.
These and other objects of the present invention will become apparent from a review of the description provided below.
Summary of the Invention:
The present invention relates to a brushless dc motor assembly including a brushless dc motor, and a control board having at least one output connected to a stator winding of said brushless dc motor for providing current flow to said stator winding.
The control electronics on the control board control current flow to said stator winding based on desired motor operating characteristics. The control electronics include a housekeeping power supply for providing a stable 5v DC signal from a rectified AC line voltage, and a microprocessor for controlling output to the stator windings according to desired operating characteristics. The control electronics also include a MOSFET output amplifier having a power zener diode connected to the drain thereof, said power zenor dissipating temporary back emf resulting from switching of said MOSFET from an on to an off state.
A hall device mounted to a stator of said brushless dc motor is also provided. The hall device provides a signal representative of the rotational speed of a rotor of said motor to the control board. The control electronics on said control board control said current flow to said stator winding responsive to said signal from the hall device. The control board is preferably attached to a heatsink whereby the heatsink is attached to MOSFETS on said control board for dissipating heat generated by said MOSFETS.
Brief Description of the Drawing:
A preferred embodiment of the invention is described below with reference to the following figures wherein like numerals represent like parts:
FIG. l: is a front view of a motor assembly according to the present invention.
FIG . 2 : is a side view of a preferred rotor assembly according to the invention.
FIG . 2a is an end view of the rotor assembly of FIG. 2.
FIG . 3 : is a side view of a second preferred rotor assembly according to the invention.
FIG . 3a is an end view of the rotor assembly of FIG. 3.
FIG. 4: is a plan view of a salient-type stator winding useful in accordance with the invention.
FIG. 5: is a plan view of a bifiler-type stator winding useful in accordance with the invention. FIG. 6: is a top view of a stator with a stator mounted hall device according to the invention.
FIG. 7: is a side view of the stator with a stator mounted hall device shown in FIG. 6
FIGS. 8a-8d: are successive views of a preferred hall effect device assembly according to the invention.
FIGS. 9: is a block diagram of the control board electronics according to the invention.
FIG. 10: is a detailed schematic of a preferred control board according to the invention.
FIG 11: is a schematic of a preferred house keeping power supply according to the invention.
FIG 12: is a schematic of a preferred low side drive circuit including power zener according to the invention.
FIG: 13: shows an end view of a preferred heat sink assembly according to the present invention.
FIG: 14: shows an side view of the preferred heat sink assembly shown in FIG. 13.
FIG: 15: shows a top view of a preferred MOSFET retainer bar according to the present invention.
FIG: 16: shows an side view of the preferred MOSFET retainer bar shown in FIG. 15.
FIG: 17: Is an upper level flow chart showing the preferred logic flow of microprocessor software according to the invention. FIGS 18-36: Are flow charts showing the preferred logic flow of the routines and subroutines of the microprocessor software according to the invention.
Detailed Description of the Invention:
With reference to FIG 1, a preferred embodiment of a motor assembly l according to the present invention will be described in general terms with a more detailed description to follow.
As can be seen, a brushless dc motor 2 is provided having a conduit box 3, and a heat sink 4 attached thereto. The heat sink 4 is attached to a control board 5 which is fastened inside the conduit box. The control board includes electronic circuitry for providing rectification of an AC input (not shown) provided through a cut-away lead exit 6, and for controlling excitation of the stator field windings. Based on feed back control signals and user-defined parameters, control electronics on the control board create and maintain specific motor operating characteristics, e.g speed, torque, or current, according to desired specifications. To allow for dissipation of heat from power elements on the control board 5, i.e. MOSFETS, a space 7 is provided between the heat sink 4 and the control board 5.
Turning to FIGS. 2-2a, the rotor assembly 8 of the motor 2 includes a shaft 9 and a known permanent magnet 10 fixed about a rotor core 11. Known drive bearings 12, 13, e.g. ball or sleeve bearings, are provided on either end of the rotor shaft to provide bearing surfaces. As is know to those skilled in the art, the permanent magnet 10 may be of either the plastic or ceramic type depending on desired motor characteristics. Generally, however, plastic magnets display lower field strength than ceramic magnets. In the case of a plastic permanent magnet, as shown in FIGS. 2-2a, the magnet is arranged such that the rotor core 9 outer diameter matches the magnet 10 inner diameter, and the rotor core and magnet are flush on both ends 14, 15 of the rotor core 10. Where a ceramic permanent magnet is used, as shown in FIGS. 3-3a, four sections 16-18 of ceramic magnet are fixed circumferentially about the rotor core 11 to be 90 degrees offset from each other. In the preferred embodiment of a 3.3" motor design, a space 20 of about .1" is allowed between each of the ceramic magnets.
As shown in FIGS. 4-6, the stator lamination is preferably a 3.3" shaded-pole configuration 23 produced by FASCO Industries of Ozark, Missouri. The number of stacks and phase windings can be varied for individual user application. In the preferred 2- phase motor design, the phase A 21 and phase B 22 coils may be wound in a salient-type phase set up, as shown in FIG. 4, or in a bifiler arrangement whereby the phase A 21 and phase B 22 coils are wound on each pole, as shown in FIG. 5 (shading bands not shown) . The introduction of bifiler windings on the preferred stator lamination, as shown, results in a more efficient motor which converts current to force every 1/4 turn (90 degrees) of the motor.
In order to provide reliable control of the operating characteristics of an electric motor, e.g. speed and torque, various hall effect devices have been widely used in the art. Hall effect devices are commonly mounted to an electric motor to sense the rotational speed of the rotor shaft, and to provide a control signal representative of the rotational speed for controlling the operating characteristics of the motor. In the present invention, the output of a hall device, which is representative of rotational speed, is supplied to the control board as a feedback control signal.
A crucial factor for efficient motor control, however, is stable orientation of a hall effect device to the stator windings of the motor. With the stability being a major concern, keeping in mind production and efficiency, a stator mounted hall assembly 24, as shown in FIGS 6 and 7 is preferred. Correct hall device 25 orientation requires proper positioning of the device within the assembly housing 24, as well as stable placement of the assembly 24 on the stator 23. As shown in Fig 6, it has been determined that a fifteen degree hall device lead angle A relative to the stator windings (not shown) produces the most efficient motor operation. The assembly 24 provides for this lead angle with the hall device 25 placed off-center with respect to successive stator poles 26-29. This arrangement combined with direct stator-mounting of the assembly 24, virtually guarantees stable orientation of the hall device to the windings. Advantageously, the assembly is unaffected by alignment of sleeve, endplate or other peripheral motor components.
Referring also to FIG 6, the assembly includes male-end connector legs 30,31 with respect to the stator, conveniently taking advantage of existing female-end conversions, specifically a stator ground hole 32 and the space 33 between stator lamination. A preferred hall device assembly is shown in FIGS. 8A-8D. As can be seen in FIG. 8A, the assembly includes a first leg 30 which is adapted to securely fit into the stator ground hole 32 (FIG. 6) , and a second T-shaped leg 31 adapted to fit in the space 33 (FIG. 6) between the stator lamination. The vertical portion 34 of the T-shaped leg 31 fits in the space 33 between the lamination, while the horizontal 35 portion rests against the inner surfaces 37 and 38 of the stator lamination.
The male-female attachment of the hall device assembly 24 to the stator 23 eliminates the need to affix the assembly with rivets, screws, or other secondary devices. Attachment and removal of the hall assembly are swift and convenient. In fact, the assembly can be mounted using either ground hole 32 or 39 (FIG. 6) or placed on the opposite side of the stator 40 for reversible motor application. Finally, the hall device 25 is contained within the confines of the plastic assembly itself eliminating the possibility of direct damage to the pliable leads 41.
Turning again to FIG. 1, the conduit box 3 may be formed in two embodiments depending on the space requirements of the application. The first embodiment is a metal or plastic conduit box 3 fastened to the motor sleeve, as shown in FIG. 1. The arcuate bottom 42 of the conduit box rests against the motor sleeve 43 and is fastened thereto. A cut-away lead exit 6 is also provided for connecting AC input leads to the control board 5 through an appropriate connector. In the case of a metal conduit box, the box is spot welded to the sleeve 2, and the heat sink 4 is attached to the box with screws through screw holes 44 on either side 45, 46 of the box. An ABS plastic conduit box may be attached to the motor sleeve via two weld bolts with the heat sink snapped in place in the top of the box. The second conduit box embodiment is a stand-alone conduit box (not shown) , and is used when remote electronics are necessary. The stand-alone conduit box is connected to the motor by 18-24" leads, and can be made from either plastic or metal.
In either embodiment of the conduit box, the control board 5 is contained within the conduit box 3, and is attached to the heat sink 4. A block diagram of the preferred control board design is provided in FIG. 9. The operation of the control board electronics will be described, first in general terms, with a more detailed description to follow.
As shown in FIG. 9, the AC input 47 passes to the AC-DC converter 48 which is preferably a known bridge rectifier. Ripple in the DC output 49 of the AC-DC converter is filtered by a filtering network 50 comprising a simple parallel connecte capacitor. The filtered DC signal 51 is provided to the motor as a common connection, and as an input to the housekeeping power supply 52. The housekeeping power supply, as will be described in detail below, creates and maintains a steady +5V DC signal 53 for operation of the controller electronics 54.
The controller electronics 54 include a microprocessor which is programmed to create and maintain desired operating characteristics and motor control from user defined input 65. The controller electronics 54 provide input 62, 63 to the low side drive electronics 55 to control the phase A and phase B winding currents 56, 57 provided by the lowside drive electronics to the respective stator windings 58, 59. The rotational speed of the rotor shaft is monitored via a hall device 60 which provides the controller electronics 54 with a feedback signal 61 representative the rotational speed. Also, a feedback signal 64 is taken from the lowside drive electronics 55 which is representative of the current output to the motor. A microprocessor in the controller electronics controls the phase A and phase B winding currents using the combination of these two feedback signals 61, 64 and pre-programmed, user-identified operating characteristics.
Turning now to FIG. 10, there is shown a detailed schematic of a preffered embodiment of a control board according to the invention. As shown, the AC input 47 is received into the control board and rectified by a known AC-DC converter 48, preferably a bridge rectifier. Ripple in the rectified AC is filtered by a known filter network, e.g. by means of capacitor. The DC output of the rectifier at 51 is provided as a common connection 66 to the motor, and as the input to a house-keeping power supply (HKPS) circuit 52.
Including the HKPS 52 in the design of the control board eliminates the need for a step-down transformer as required in prior art designs. As a result, the motor can be directly connected to a wall outlet without the use of a costly, space- consuming AC power supply. In addition, the HKPS can handle a large variation in line (input) voltage without degrading the logic (output) voltage. This feat can be done without the addition of a secondary regulator.
Referring particularly to FIG. 11, the input voltage at 51 to the HKPS 52 is considered 200 VDC maximum (160VDC with load) . The resistor R2, preferably a 150k ohm/.25W device, limits the current through the zenor diode VRl which is a rated 500 mW element. The zenor diode VRl must conduct at a voltage high enough to overcome the threshold voltage of the gate 67 of the MOSFET Ql, which for the preferred IRF630 MOSFET is 2-4 VDC. The zenor diode is reverse-biased at 9.1VDC. With the zenor diode in conduction, the MOSFET Ql is on, and the drain 68 current flows allowing the capacitor C2 to charge.
The capacitor C2 will charge until the MOSFET source 69 voltage is greater than the gate voltage (non-conduction MOSFET mode) . This occurs when the combination of the gate threshold voltage of the MOSFET and the potential voltage of the capacitor C2 is greater than the zenor diode VRl voltage. With the MOSFET off, the capacitor will discharge a discrete amount, until the MOSFET source voltage is less than the gate voltage. At this point, the MOSFET is on, and the process repeats itself. The diode CR2 at the drain 68 prevents back current from discharging the capacitor C2 in the event that the input voltage is lost. The end result is a MOSFET Ql that continually switches on and off maintaining a relatively stable 5 VDC output 70 for the controller electronics. The 5 VDC output is achieved as long at the input signal falls within an acceptable range determined by the performance parameters of the circuit elements, specifically the MOSFET. In this configuration, for an IRF630 MOSFET the input voltage can vary from 17-200VDC. As a result, the HKPS can handle a large variation in line voltage without effecting logic voltage. Another advantage of this HKPS is its ability to "step-down" such a wide range of voltage (i.e. 200VDC to 5VDC) .
Referring again to FIG. 10, several microprocessors can be used according to the invention. Preferably, however a PIC16C71 microprocessor 12 available from Microchip Corporation of Chandler, Arizona, USA is used based on cost, efficiency, and performance characteristics. The microprocessor input 65 is user defined depending on the application. The user i/o interface 52 is active low with select bits provided to the user for control of motor characteristics, e.g. speed and torque. Based on the user i/o, the microprocessor 12 controls the phase A 71 and phase B 72 outputs to achieve the desired operating characteristics. The software for the microprocessor logic used to control the phase A and phase B outputs will be discussed in detail below.
Referring particularly to FIG. 12, the phase A 70 and phase B 71 outputs of the microprocessor 12 are provided as inputs to the gates 73, 74 of driving MOSFETS Q4, Q3 in the low side drive electronics 55. Since there are two phases to the motor, two driving MOSFETs Q4, Q3 are used, one for each phase. Two diodes CR3, CR4 are placed in series with each driving MOSFET to prevent back current from one driving MOSFET to the other.
A power zenor diode 75 is incorporated into the low side drive electronics 55 to account for a momentary increase of voltage (1200 VDC) at the drains 76, 77 of the driving MOSFETS due to back EMF caused by the switching action of the driving MOSFETS. This effect is inherent in a bifiler wound motor (phase-shared magnetic fields due to opposed windings on each pole) unlike a motor with salient poles. In order for the driving MOSFETS to control drain current, the back EMF must be managed. This management concept is accomplished with the application of a zenor diode configuration 75 capable of high- power dissipation (hence the name "power zenor") .
The voltage at the source of the MOSFETS is 200VDC maximum (160VDC nominal) ; approximately 400VDC is the maximum desired output voltage at the drain. To accomplish this, the zenor diode VR2 is rated at 180V. While the driving MOSFETs Q3, Q4 are operating (one is off and the other is on) there is no current through the power zenor 75 (i.e. voltage at power zenor MOSFET Q2 drain 78 is less than 400VDC) .
At the point when the driving MOSFETs switch from on to off, the voltage at the drain 78 of the power zenor MOSFET Q2 rapidly increases resulting in a reverse-biased zenor diode VR2. Since the zenor diode voltage VR2 is constant at this time, any excessive voltage applied to the MOSFET drain is dissipated through the MOSFET rather than the zenor diode VR2. The zenor diode VR2 clamps the voltage at the drain 78 equal to the zenor diode voltage plus the 200VDC at the source (gate threshold voltage must be considered but at 2-4VDC is negligible) . The power zenor 75 conducts until the switching action of the driving MOSFET is accomplished and the resulting increased voltage resonates back to an acceptable level.
Where a 115 VAC input (i.e. from a wall outlet) is not desired, a power zenor configuration 75 may not be needed. For input voltages up to 100VDC or 70VAC a different configuration can be utilized. Because the zenor diode VR2 can handle power dissipation at this level, the extra MOSFET Q2 in the power zenor configuration is no longer needed. Instead, a zenor diode VR2 (with accompanying protection diode) is placed between the drain and gate of each driving MOSFET Q3,Q4.
In the preferred embodiment of the invention, the aluminum heat sink 4 is provided for dissipating heat produced by the power devices (i.e. four MOSFETs Q1-Q4) contained on the motor control board 5. Referring to FIGS 13-14, it has been found that production efficiency and overall cost is improved by aligning all four MOSFETS Q1-Q4 above and to one side of the control board 5. The heat sink 4 dissipates most of the heat through the fins 79 below the board 5 which is positioned within a slots 80, 81 on either side of the heat sink. One side 82 of the heat sink extends above one side of the control board 5 for MOSFET attachment.
With this configuration, several desirable results are accomplished. First, with the MOSFETs above the control board, the board itself can be wave-soldered with the MOSFETs in place. This eliminates the additional step of hand-soldering the MOSFETs to the board (as is necessary when these devices are attached to the heat sink below the board) . Second, the MOSFETs Q1-Q4 are connected to the heat sink via a Teflon plastic or aluminum retainer bar 83, shown particularly in FIGS. 15 and 16. The MOSFETs are secured to the heat sink underneath extension 84 of the bar 83. The bar, in turn, is held in place against the heatsink 4 with only two screws through holes 85 , 86 in the bar and holes 87,88 in the heat sink 4, instead of an individual screw for each MOSFET. Finally, by placing the MOSFETs in this above-board configuration additional space is afforded to the control board for circuit design.
Turning again to FIG. 10, to control the phase A and phase B winding currents, the microprocessor 12 receives feedback from the hall device 60, and from a lowpass filter/op amp circuit 89. The hall device 60 provides a signal which is representative of the rotational speed of the rotor shaft 9. The low pass filter is connected to the sources 90, 91 of the driving MOSFETS Q4, Q3 to obtain a current signal at 92 representative of the driving current. The difference between this signal, and a signal at 95 representative of the operational amplifier output at 93, is amplified by the op amp 94 and provided as a feedback input to the microprocessor 12. The output of the op amp at 93 increases, therefore, with increasing drive current. The microprocessor 12 uses the hall device signal 61 and the op amp feed back signal at 93 to control the torque (rotational speed x current) , rotational speed, and/or current of the motor by adjusting the phase A and phase A outputs in response to sensed changes.
FIGS. 17 is a basic flow chart for the software which is preferably used in the microprocessor 12 to control motor parameters. The software may be customized to control several motor parameters according to user desired performance.
With reference to FIG. 17, upon power up 90 the microprocessor self test 91 is initiated by the software to verify the integrity of the microprocessor. The software then performs an initialization routine 92, a three pole switch routine 93 to determine the status of a user defined/controlled switch inputs 223, and a soft start routine 94 to slowly ramp up the speed of the rotor. A Main Setup routine 95 is then initiated to set flags and registers used in the main routine 96. The main routine 96 executes various user specific applications 97 in combination with standard subroutines 98 to control speed, torque, current, and/or volume flow output 225 based on user input and feedback signals 224.
The timer interrupt routine 99 is used in connection with the main routine and the soft start routine to provide a timed interrupt for incrementing counters, saving data, setting flags, etc. The timer interrupt routine includes a timer subroutine 100 for determining necessary speed adjustments and performing necessary speed changes. A Pulse Width Modulation (PWM) Interrupt 101 operates in connection with the Main Routine for counting hall edges and controlling the pulsing of the phases for speed control. Finally, motor shut down is performed by either a hard brake 102 routine or an instant shut down routine 103. The Hard Brake 102 routine responds to the hard brake flag to shut down the motor with very little coasting. The instant shutdown 103 routine allows the motor to coast to a stop. Two assembly language code program listings specific to the preferred Microchip PIC16C71 are attached hereto. These programs listings contain preferred versions of the routines and applications described below. One program is designed to implement a constant CFM in a particular application, and the other is designed to create a constant RPM. Changes in these specific applications are required based on required operating characteristics, as will be apparent to those skilled in the art. Nonetheless, the standard routines set forth in the listings remain relatively unchanged from application to application.
Turning now to FIGS. 18-36, a detailed explanation of each routine will follow. With reference now to FIG. 18, the Initialize Routine 92 defines constants 104, defines register addresses 105, defines interrupts and code origins 106, defines I/O ports 107, defines interrupts and the pre-scaler 108, initializes the timer 109, and clears all remaining registers 110.
The switch routine 93, as shown in FIG. 19, is initiated to determine the status of the user input for controlling motor start up. The SELECT, SELECT INPUT 0, and SELECT INPUT 1 inputs to the Switch Routine are user defined based on the application. Alternatively, an external three-position switch may be provided to allow external control of these processor inputs for user control of motor operation.
The switch routine first determines if the select input 115 has been set low. If not, then soft start routine 94 is initiated. If so, then if speed input 0 is low and speed input l is high 116, then the soft start routine 94 is initiated. Otherwise, the routine ends 114 and the motor will not start. For virtually all applications, the motor/controller will not operate when the user controlled three-position switch is in the middle position, and will operate in the low or high positions.
The soft start routine 94 follows the switch routine 94 and slowly ramps up the motor from a stopped rotor position by pulsing the phases on and off (PWM) , resulting in a softer start up and less noise. An added feature is an increasing variable torque factor which allows the motor to start up under heavier loads and colder temperatures. Speed is increased in this routine by changing the duty cycle of the PWM, thus creating more torque as the speed of the motor increases.
Referring to FIGS. 20 and 21, the soft start routine begins by initializing the PWM counter 117. The hall signal 119 is then checked 118 for a high or low condition. If the hall signal is low, phase A processor output is selected for pulse width modulation (PWM) 120, phase B output 121 is set low, and rising hall edge detection is set 123. If the hall signal is high, phase B is selected for PWM 124, phase A is set low 125, and falling hall edge detection is set 126.
One PWM is then performed 127. The bus voltage input 129 is then checked. If the bus voltage is below minimum 128, then a timeout flag is set 130. If it is not below minimum, then the current sense input 131 is checked 132 to determine if it is above maximum. If the maximum current sense is exceeded a timeout flag is set 133.
Next, the hall signal 134 is checked 135 to determine if the next hall edge has been received. If so, the routine loops back to the beginning. If not, the PWM counter is checked 136 to see if it is equal to zero. If PWM counter does not equal zero, the routine loops back to perform one PWM. If the PWM counter equals zero, the soft start timer is checked 137 to determine if it has expired. If the timer has expired, the routine proceeds to the main setup 95. If not, the routine loops back to the beginning.
A Timer Interrupt routine 99 is used in connection with the main routine and the soft start routine 94. The Interrupt is activated based on the 1:256 prescaler, which means it occurs every 65,536 microseconds. Every fifteenth time through this interrupt, approximately one second has elapsed, thus triggering the tasks of incrementing the seconds counter, saving the hall edges per second, and setting a calculation flag (if necessary) , and calling a timer subroutine (if necessary) . The timer subroutine performs a comparison of registers to determine rotor speed adjustment. This routine is called from the timer interrupt and performs the necessary speed changes. Referring to FIG. 22, the Timer Interrupt routine flow depends on the status 138 of the soft start routine 94. While the soft start is proceeding, the timer interrupt routine checks to determine whether the motor is in the desired operational window 139 . If not, the routine increments or decrements the PWM counter appropriately 140 and sets the timeout flag 141. If the operational window has been, then the timeout routine determines if one second has expired 144. If not, the routine ends 146. If one second has not expired, the speed and set up variables are saved, and the timer is reset before the routine ends 145.
If the soft start routine is finished, then the Timer Interrupt routine checks the PWM counter to determine if it is less than or equal to the destination PWM value 142. If it is not, then the PWM counter is decremented 143. If it is, then the Timeout Routine determines if one second has expired 144. If not, the routine ends 146. If one second has not expired, the speed and set up variables are saved, and the timer is reset 145 before the routine ends 146. A timer subroutine is called from the timer interrupt in most applications to perform the necessary speed changes. Referring to FIG. 23, the timer subroutine compares a predefined theoretical value of the current, bus voltage, torque, speed, or any calculated value, to the actual value calculated value to determine the speed change 147. If the values are equal 148, then the routine returns to the Timer Interrupt routine 99. If the theoretical and actual values are different, then the Timer Subroutine determines the increment or decrement to speed via PWM 149. The necessary changes to the PWM are performed 150, and the flow returns to the Timer Interrupt routine 99.
Referring to FIG. 24, a Main Setup routine 95 follows he soft start 94 to prepare for the main processing depending on user defined operating characteristics. In this routine, user defined variables are initialized 151 the flow proceeds to the main processing routine 96. Also, flags are set, and the global interrupt enable is set. Flags may be set here for OWC output on/off and for a hard brake or natural coast stop. Referring again to FIG. 17, the Main Routine contains 96 several routines 98 and calls various applications 97 according to desired user specifications. Depending on user requirements, within the main routine may be applications for creating variable speed 152, selectable speeds 161, variable current 153, variable torque 154, constant speed 160, constant current 156 , constant torque 155, constant volume flow 158, selectable speeds 161, and/or for following a curve or table may be accessed 159. Routines used within the main routine in connection with these applications include, a Pulse Width Modulation (PWM) Interrupt Routine 101, a Maximum/Minimum Routine 162, Transition Routine 163, A/D Routine 164, Calculation Routine 165, and a Table Lookup Routine 166.
The PWM Interrupt routine 101 activates a motor controlling Interrupt on a hall edge. The first task is to determine the correct phase to fire. The selected phase is then pulsed on and off eight times, with forty-microsecond pulses, to soften current change. For speed control, the phase is off for a varying amount of time, and then turned on off the remaining time until another hall edge is received. A count of hall edges per second is also done here.
Referring to FIGS. 25 and 26, the PWM interrupt 101 begins with initialization of the PWM counter 167. The hall signal 169 is then checked for a high or low condition 168. If the hall signal is low, phase A processor output is selected for pulse width modulation (PWM) 173, phase B output is set low 174, and rising hall edge detection is set 174. If the hall signal is high, phase B is selected for PWM 170, phase A is set low 171, and falling hall edge detection is set 172. In some applications where full power is not desired, an additional step 178 is performed to determine if the user has required a skip of phase PWM for a preset number of hall edges. If so, the flow proceeds to the end of the routine 190.
One PWM is then performed 180. The bus voltage input is then checked 182. If the bus voltage 181 is below minimum, then a timeout flag is set 183. If it is not below minimum, then the current sense input 184 is checked 185 to determine if it is above maximum. If the maximum current sense is exceeded a timeout flag is set 186.
Next, the hall signal 188 is checked 187 to determine if the next hall edge has been received. If so, the routine loops back to the beginning 101. If not, the PWM counter is checked to see if it is equal to zero 189. If PWM counter does not equal zero, the routine loops back to perform one PWM 180. If the PWM counter equals zero, the PWM Interrupt Routine ends 190.
The Minimum/Maximum routine 162 is performed to checked to see that the bus voltage, current sense, and rotor speed are within a particular range, otherwise an instant shutdown is performed. These checkpoints are determined by the user. Referring to FIG. 27, the Minimum/Maximum routine 162 checks the minimum and maximum limits on bus voltage, speed and current 191. If a limit has been exceeded 192 then the Instant Shutdown routine is performed 103. If the limit has not been exceeded, then flow returns to the Main Routine 96.
The instant shutdown routine 103 turns the phase outputs off and waits for the switch to be cycled off then back on, which restarts the microprocessor. The motor will coast to a stop unless the switch is cycled. Referring to FIG. 28, the instant shutdown routine 103 disables all interrupts 193, turns both phases 196 off 194, and sets OWC 197 low 195. Instant Shutdown then determines 198 if Speed Input 0 is low and Speed Input 1 199 is low. If so, then the flow returns to beginning 90 to restart the microprocesor. If not, then flow loops back to the beginning of the Instant Shutdown routine 103.
A Hard Brake Routine may also be called by the main routine in some application to turn off both phases if a hard brake flag is set. Opposite phases are selected and pulsed on and off every three microseconds to slow the rotor down dramatically. The phases are alternated between hall edges until the time elapsed between two hall edges is large enough to represent a stopped rotor. Very little coasting occurs, if any.
Referring to FIG. 29, the Hard Brake Routine 102 turns interrupts off 200, and checks the hall position 201. Opposite phases are pulsed in three microsecond pulses 202. When the time between two hall edges is between a user-defined, pre-set number of counts, the shut down routine is executed 203.
The transition routine controls flags and handles delays between switching. When switching to the off position after soft start, there is a two second delay before instant shutdown. When switching from high to low or vise versa, there is an eight second transition period where calculations and some tests are skipped to allow motor performance changes. In some applications, set points are needed, such as constant speed, constant current, and constant torque. These are set when an optional three-position user operated switch is thrown.
Referring to FIG. 30, the Transition Routine 163 first determines whether the three-position switch 205 has changed position 210. If not, then the transition flag is cleared after 8 seconds 209 and flow is continued to the main routine 96. If the switch position has changed, the Transition routine sets variables/flags to reflect the change 204, sets the off flag if the switch is in the off position 206, clears the off flag if the switch is changed from "off" in 2 seconds or less 207, and transfers flow to the shutdown routine if the switch is off for more than 2 seconds 208.
The A/D routine performs and controls A/D conversion of analog input signals. All A/D conversions are based on the bits in the PCYCLE register which starts at zero. If the LSB bit is zero, the last A/D conversion is saved and the next conversion is setup based on bits one and two. If the LSB bit is one, the twenty microsecond A/D conversion is started. In all cases the PCYCLE register is incremented for proper execution on the following loop through the main routine.
Referring to FIG. 34, the A/D routine 164 checks the PCYCLE value and branches 212 based on PCYCLE to: (1) save speed/setup bus voltage; (2) save speed/setup current; (3) save bus voltage/setup speed; (4) save current/setup speed; or (5) perform conversion. The A/D routine then increments PCYCLE 213 and returns flow to the Main Routine 96.
The calculation routine is required in applications such as the constant and variable torque applications. The calculation routine can be located anywhere in the main routine but is usually found after the A/D routine. A calculation flag is set in the Timer Interrupt to determine how often the calculation is to be performed. Calculations are usually not performed during a switch transition period. Referring to FIG. 35, the flow of the calculation routine 165 for torque is shown. First, the Calculation Routine loads the number of Hall edges per second and stores the value 214. The routine then loads the number of current base on an A/D conversion 215, and multiplies the hall edges by the current to determine torque 216. Flow is then passe back to the main routine 96.
The table look up routine is required by some applications to determine the proper rotor speed, such as applications for creating constant volume flow, following a curve/table, or possibly selectable speeds. Referring to FIG. 36, the Table Lookup routine loads or calculates an index 217 and then calls a table 218. The table location is loaded 219, the index value is added 220 and moved into the program counter 221, and flow is returned to the table lookup 22. The table lookup then returns flow to the Main Routine 96.
Turning again to FIG 17, a brief description of the user defined applications 97 executed in the main routine with the above described routines is provided below
Variable speed - Speed is adjusted through a potentiometer giving a true variable speed within the resolution of the potentiometer A/D conversion. The potentiometer value is saved directly into the varying delay register so that no timer subroutine is needed to determine speed change. Calculations or calculation flags are not needed.
Variable current - Current is adjusted through a potentiometer giving a variable current within the resolution of the potentiometer and current A/D conversions. The potentiometer value is saved directly into the theoretical current register and is compared to the actual current to determine speed change. This requires a timer subroutine. Calculations or calculation flags are not needed. Variable Torque - Torque is adjusted through a potentiometer giving a variable torque within the resolution of the potentiometer current and current A/D conversions and of the error counting the hall edges per second. The potentiometer value is saved directly into the theoretical torque register and is compared to the calculated torque value to determine speed change. This requires a timer subroutine, a torque calculation routine, and a calculation flag.
Constant Speed - Speed is set in the transition routine where the value is saved directly into the theoretical speed register and is compared to the actual speed value to determine speed change. This requires a timer subroutine. Calculations, calculation flags, and potentiometer A/D conversion are not neede .
Constant Current - Current is set in the transition routine where the value is saved directly into the theoretical current register and is compared to the actual current value to determine current change. This requires a timer subroutine. Calculations or calculation flags are not needed.
Constant Torque - Torque is set in the transition routine where the value is saved directly into the theoretical torque register and is compared to the calculated torque value to determine speed change. This requires a timer subroutine, a torque calculation routine, and a calculation flag.
Constant Volume Flow - For constant CFM, actual torque is calculated in the main routine. This value is used in a table lookup to determine the theoretical rotor speed for that particular torque. This theoretical speed is compared to the actual speed value to determine speed change. This requires a timer subroutine, a torque calculation subroutine, a calculation flag, and a torque /speed lookup table.
Selectable Speeds - By using a lookup table and several input lines, a variety of combinations can be used for selectable speed control. The selected speed value is compared to the actual speed value to determine speed change. This routine requires a timer subroutine. Calculations, calculation flags, and potentiometer conversion are not needed. This routine is very similar to constant speed.
Follow Curv /Table - Any equation can be put in table format and followed based upon speed, current, torque, etc. One dependent value is found in a table based on another independent value. These values can be compared to determine speed change. This requires a timer subroutine, possibly a calculation routine, a calculation flag, and a lookup table.
The embodiments which have been described herein are but some of the several which utilize this invention and are set forth here by way of illustration but not of limitation. It is obvious that many other embodiments which will be readily apparent to those skilled in the art may be made without departing materially from the spirit and scope of this invention.
DESCRIPTION Two Speed Constant RPM
- Soft start with progressive torque
- Hard brake or natural coast stop
- Max/Min speed, bus voltage, and current sense monitor Two Speed Settings (Low/High)
- Low Speed Every Other Phase/High Speed Every Phase
- Variable Speed Compensation
REGISTER/BIT ADDRESSES
Predefined Register Addresses LIST P=16C71 ;Identifies PIC16C71
;16C71 Special-purpose registers
;16C71 STATUS bits
;16C71 INTCON register bits
;16C71 ADCN0 register bits
Figure imgf000025_0001
;16C71 ADCNl register bits
Figure imgf000026_0001
;16C71 OPTION register bits
PORTB register bits
Hall Signal Input
Set Speed Input MSB
Set Speed Input LSB
Operational Window Correct
Phase B Output
Phase A Output
Figure imgf000026_0002
Speed Select
;BITREG register bits
0FFSWTC equ Oh Off Switch Flag
TRANS8 equ lh 8 Second Transition Flag
HIGHLO equ 2h High/Low Speed Flag
SLOWFST equ 3h Slow Or Fast Speed Transition Flag
HBRAKE equ 4h Hard Brake On/Off Flag
OWCFLAG equ 6h OWC Flag
SFTSTRT equ 7h Soft Start Flag
;BITREG2 register bits
;Define General Purpose Registers
High Byte Of 16-bit Result
Low Byte Of 16-bit Result
PWM Counter LSB
PWM Storage LSB
Theoretical MSB
Theoretical LSB
PWM Cycle Counter ,-Timer
Timer Counter
Seconds Counter
Hall Edges Counter MSB
Hall Edges Counter LSB
Hall Edges Storage MSB
Hall Edges Storage LSB
Bus Voltage Value (A/D)
Current Sense Actual Value
Bit Register For Loop Control
Bit Register For Loop Control 2
Select Phase A Or B 2
Save Value Of W Register
Save Value Of Status Register
Speed Adjustment
Temporary Register 1
Temporary Register 2
General Counter 1
Figure imgf000026_0003
General Counter CODE ORIGINS
rEstablish Program Origin And Interrupt Vectors
,-reset vector
Figure imgf000027_0001
;interrupt vector org lOh ;start of code
INITIALIZE REGISTERS
Initialize Page I Registers
Start select pgl registers set port A I/O (I=input) send values to port A set port B I/O (I=input) send values to port B change AIN3 to Vref for A/D set ADCONl register select prescaler, timer and INT edges
Figure imgf000027_0002
set OPTION register
;Clear Variables
Figure imgf000027_0003
Figure imgf000028_0001
Initialize Variables movlw .15 ,-set timer to approximately 1 sec movwf TCNTR ;timer counter movlw .75 ,-set starting value movwf BV ,-save bus voltage movwf CSACTL ;save current sense
START UP ROUTINE
;Start Up Switch btfsc PORTB,SELECT ;check if speed select low
;restart micro
,-wait for speed input LSB to go low ;continue
,-wait for speed input MSB to go high
Figure imgf000028_0002
,-restart micro
/Perform Soft Start With Increasing Torque
,-set soft start flag number of hall edges save into general counter load W save increasing torque delay counter shift right loops save into general counter clear carry bit divide by 2 decrement general counter continue shifting load W check if zero continue with Main Setup number of hall edges doubled save into temporary counter alignment of hall signal and phases continue with high hall signal turn phase B off select phase A
Figure imgf000028_0003
unselect phase B
SUBSTITUTE SHEET (RULE 261 bs f STATUS , RPO ; select pgl registers
bsf OPTION, INTEDG ,-set rising hall edge detect bcf STATUS,RPO select pgO registers goto Quar_0 continue
Hihall bcf PORTB, PHA turn phase A off bcf PHASE, 5 unselect phase A bsf PHASE,4 select phase B bsf STATUS,RPO select pgl registers bcf OPTION, INTEDG set falling hall edge detect bcf STATUS,RPO select pgO registers
Quar_0 mcvf TEMPI, 0 number of pwms (y of x*y) movwf PCNTRO save into general counter Quar 1 movl .25 number of pwms (x of x*y) movwf TEMP2 save into general counter btfsc PORTB,SSINO is speed input LSB low goto Hal_l continue btfss PORTB,SSIN1 is speed input MSB high goto Sd_inst no ... instant shutdown
Hal 1 movf PHASE,0 load PHASE into W xorwf PORTB, 1 set phase high movf PSTORO,0 load W sublw .6 6-PSTORO delay loops movwf CNTR1 save into general counter
Del 0 decfsz CNTR1 decrement general counter goto Del_0 continue delay movf PHASE,0 load PHASE into W xorwf PORTB, 1 set phase low btfsc INTCO , INTF check if hall edge received goto Halrcvd continue movf PSTORO,O load W movwf CNTR1 save into general counter
Del l decfsz CNTR1 decrement general counter goto Del_l continue delay
Pul 1 decfsz TEMP2 decrement general counter goto Hal_l continue pulsing decfsz PCNTRO decrement general counter goto Quar_l continue loop movf PHASE,O load PHASE into W xorwf PORTB, 1 set phase high
Edgwait btfsc PORTB,SSINO is speed input LSB low goto Edg_I continue btfss PORTB,SSINI is speed input MSB high goto Sd_inst no...instant shutdown
Edg_l btfss INTCON, INTF ,- check if hall edge received goto Edgwait ;continue waiting for hall edge Halrcvd bcf INTCON, INTF ,-clear hall edge if present decfsz CNTR2 ; ecrement general counter gotc Halchg2 ;continue loop decfsz TEMPI ;decrement general counter goto Halchg ,-continue loop
;Setup For PWM, Timer, And Main Program Processing
Msetup movlw .25 ,-PWM starting point LSB ;save in PWM storage LSB
,-save into PWM counter LSB
,-set timer to approximately I see
;timer counter
,-clear seconds counter
;clear flags and enable TMRO and PWM
; rite INTCON register
,-global enable
;clear soft start flag
,-set OWC output ;SET HARD BRAKE
Figure imgf000030_0001
MAIN PROGRAM
Main
:Call A/D Routine call Ad-main ;A/D conversion routine ;Check Bus Voltage & Current Sense Minimum/Maximum movlw .230 ,-current sense absolute maximum @ 5.SV/4.95A subwf CSACTL,C ;subtract CSACTL-CSMAX btfsc STATUS,CARRY ;check carry for negative result goto Sd inst ;instant shutdown if below maximum nop movlw .5 ,-current sense absolute minimum @ 5.5V/0.11A subwf CSACTL,O subtract CSACTL-CSMIN btfss STATUS,CARRY check carry for negative result goto Sd inst instant shutdown if below maximum nop movlw .49 bus voltage absolute minimum @ 5.5V/80V subwf BV,0 subtract BV-BVMIN btfss STATUS,CARRY check carry for negative result goto Sd inst instant shutdown if below minimum nop movlw .80 ;bus voltage absolute maximum @ 5.5V/130V subwf BV,0 ;subtract BV-BVMAX btfsc STATUS,CARRY ;check carry for negative result goto Sd inst ;instant shutdown if below minimum nop
,-Speed Transition Routine
Transit btfss PORTB,SSINI ,-check operation goto next checkpoint check operation gotc off switch goto high switch start
Cpl ;check operation
Figure imgf000030_0002
,-goto off switch LOWSW bcf BITREG,OFFSWTC ,-clear off switch flag btfss BITREG,HIGHLOW ,-check high speed flag goto Chk_low ,-contmue bcf BITREG,HIGHLOW ,-clear high/low speed flag bsf BITREG,TRANS8 set transition flag movlw .100 number PWMs movwf PSTORO save into PWM Storage LSB
Clrf SECCNTR clear the seconds counter goto Timechk goto time check
Chk-low movlw .100 load W with SETRPM movwf THEOO save into Hall Theoretical LSB clrf THE01 clear Hall Theoretical MSB bcf STATUS,CARRY clear carry bit rrf HSTOR1,O divide Hall storage MSB by 2 rrf HSTORO,0 divide Hall storage LSB by 2 sublw .40 rotor speed low minimum @ 1200 RPM btfsc STATUS,CARRY check carry for negative result goto Sd_ιnst instant shutdown if below minimum nop bcf STATUS,CARRY clear carry bit rrf HSTOR1,0 divide Hall storage MSB by 2 rrf HSTORO,0 divide Hall storage LSB by 2 sublw .133 rotor speed low maximum @ 4000 RPM btfss STATUS,CARRY check carry for negative result goto Sd_ιnst instant shutdown if below minimum nop goto Timechk ,-goto time check
Highsw bcf BITREG,OFFSWTC ,-clear off switch flag btfsc BITREG,HIGHLOW ,-check high speed flag goto Chk_hι continue bsf BITREG,HIGHLOW ,-set high/low speed flag bsf BITREG,TRANS8 set transition flag movlw .10 number PWMs movwf PSTORO save into PWM Storage LSB clrf SECCNTR clear the seconds counter goto Timechk goto time check
Chk-hi movlw .160 load W with constant SETRPM movwf THEOO save into Hall Theoretical LSB clrf THE01 clear Hall Theoretical MSB bcf STATUS, CARRY clear carry bit rrf HSTOR1, 0 divide Hall storage MSB by 2 rrf HSTORCO divide Hall storage LSB by 2 sublw .53 rotor speed high minimum 1600 RPM btfsc STATUS, CARRY check carry for negative result goto Sd inst instant shutdown if below minimum nop bcf STATUS,CARRY ;clear carry bit rrf HSTORl.O ;dιvιde Hall storage MSB by 2 rrf HSTORO,0 ; ivide Hall storage LSB by 2 sublw .166 ;rotor speed high maximum 0 5000 RPM btfss STATUS,CARRY ;check carry for negative result goto Sd_ιnst ; instant shutdown if below minimum nop goto Timechk ;goto time check
Offsw btfss BITREG,OFFSWTC ,-check if off switch flag already set clrf SECCNTR ,-clear the seconds counter bsf BITREG,OFFSWTC ;set off switch flag set transition flag load 2 seconds into W
SECCNTR-2 has 2 seconds elapsed? finished with transition routine check if Hard Brake set hard braking instant shutdown check transition flag finished with transition routine load x seconds into W
SECCNTR-x has x seconds elapsed?
Figure imgf000032_0001
clear transition flag
Trnsend
Mamend goto Main ;perform closed loop operation
A/D SUBROUTINES FOR MAIN INTERRUPT
,-A/D Conversion With High/Low Flag Check And Current Averager
;increment PWM Cycle Counter
,-check bit 0
,-start A/D conversion (1:2 PWMS)
,-check bit 1
,-setup A/D speed input (1:4 PWMS)
,-check bit 2
,-setup A/D bus voltage (1:8 PWMS)
Figure imgf000032_0002
;setup A/D current sense {1 8 PWMS)
,-Begin A/D, Check Current Sense High, Bus Voltage Low, Shutdown Flag
Ad_go bsf ADCONO,ADGO ;set ADGO bit to begin A/D conversion return ,-continue
; Initialize A/D For Current Sense (AINO) And Save Speed Input Conversion
Ad_cur movlw b' 00000001' select fosc/2 and AINO movwf ADCONO set up A/D return continue
; Initialize A/D For Bus Voltage (AINl) And Save Speed Input Conversion
Ad_bus movlw b'00001001' ; select fosc/2 and AINl movwf ADCONO ,-set up A/D return ,-continue
; Initialize A/D For Speed Input (AIN2) And Save Current Or Bus Voltage Conversion
Ad_spd btfsc PCYCLE, 2 ,-check bit 2 for current or voltage goto Ad_sbus ,- save old bus voltage ;Save Current Sense
Ad_scur movf ADRES,0 ,-load W with last A/D conversion movwf CSACTL , save current sense (1:8 PWMS) cvlw b' 00010001, ,-select fosc/2 and AIN2 movwf ADCONO ,-set up A/D and start conversion return ;continue
Save Bus Voltage
Ad_sbus movf ADRES,O load W with last A/D conversion movwf BV save bus voltage (1-8 PWMS) movlw b'OOOlOOOl select foscl2 and AIN2 movwf ADCONO set up A/D return continue
CHECK ACTUAL VS THEORETICAL
Timrsub movf THE01, 0 load W with THE01 subwf HST0R1, 0 HSTOR1-THE01 btfsc STATUS,Z check if MSBs are equal goto Chklsb goto check LSB routine btfsc STATUS,CARRY check carry bit goto Speeddn continue Speedup movf THEOO,0 load THEOO into W subwf HST0R0,0 HST0R0-THEOO movwf SPDADJ save difference goto PWMdecr goto decrement routine Speeddn movf HSTORO,O load HSTORO into W subwf THEOO,O THEOO-HSTORO movwf SPDADJ save difference goto Pwmincr goto increment routine Chklsb movf THEOO,O load THEOO into W subwf HST0R0,0 HSTORO-THEOO btfsc STATUS,Z check if zero return continue movwf SPDADJ HSTORO-THEOO btfss STATUS,CARRY check if positive comf SPDADJ, 1 complement the difference btfsc STATUS,CARRY check if positive goto Pwmincr goto increment routine Pwmdecr movlw .7 delay loops movwf TEMP2 save into temporary counter bcf STATUS,CARRY clear carry rrf SPDADJ, 1 divide by 2 Pwmdcnt decf PSTORO, 1 decrement PWM storage LSB btfsc STATUS,Z check if zero incf PSTORO, 1 increment PWM storage MSB bcf STATUS,CARRY clear carry rrf SPDADJ, 1 divide by 2 btfsc STATUS,Z check if zero goto Tsubend finished with timrsub decfsz TEMP2 decrement temporary counter goto Pwmdcnt continue
SUIITTTUTE SHEET (RULE 26)
Figure imgf000034_0001
DISABLE GLOBAL INTERRUPTS
,-Disabling Global Interrupts
Gieoff bcf INTCON,GIE ,-disable global interrupts btfsc INTCON,GIE ; erify disable goto Gieoff ,-no ... try again return ,-return to call
HARD BRAKING ROUTINE
disable all interrupts set OWC low turn phase A off turn phase B off clear PWM counter LSB clear Hall counter MSB alignment of hall signal and phases continue with high hall signal a delay a delay turn phase 9 on for a +1 us pulse for a +1 us pulse turn phase B off increment check if zero increment load W compare to timer constant motor almost stopped? yes.. . instant shutdown
Figure imgf000034_0002
turn phase B on for a +1 us pulse for a +1 us pulse turn phase B off continue pulsing clear PWM counter LSB clear Hall counter MSB alignment of hall signal and phases continue with low hall signal a delay turn phase A on for a +1 us pulse for a +1 us pulse turn phase A off increment check if zero increment load W compare to timer constant motor almost stopped? yes ... instant shutdown turn phase A on for a +1 us pulse for a +1 us Pulse turn phase A off
Figure imgf000035_0001
continue loop
INSTANT SHUTDOWN ROUTINE
Sd inst ,-disable all interrupts ,-set OWC low ,-phase A off ,-phase B
;is speed input LSB low ;no...instant shutdown ,-is speed input MSB low
Figure imgf000035_0002
,-no ... instant shutdown goto Start ,-restart microprocessor
TIMER INTERRUPT (1:256 Prescale) save W register load STATUS into W save STATSAV timer interrupt flag? no ... goto PWM interrupt reset timer flag decrement timer counter finished with interrupt lead Hall counter MSB into W save Hall storage MSB
Figure imgf000035_0003
load Hall counter LSB into w save Hall storage LSB
,-clear Hall counter LSB
,-clear Hall counter MSB
,-call incr/decr routine
,-set timer to approx lsec w/extra 576us
;save in timer counter
;increment elasped seconds
Figure imgf000036_0001
;finished with interrupt
PWM INTERRUPT (25KHz)
select pgO registers turn phase A off turn phase B off clear hall interrupt flag move PWM storage LSB into W save into PWM counter LSB increment hall counter LSB check for carry increment hall counter MSB alignment of hall signal and phases hall high, select phase B high unselect phase B select phase A select pgl registers set rising hall edge detect select pgO registers high or low speed? continue continue unselect phase A select phase B select pgl registers set falling hall edge detect select pgO registers check high speed flag delay loops for low (9) check high speed flag delay loops for high (3) save into general counter decrement general counter continue delay decrement general counter continue to PWM load PHASE into W set phase high perform XOR on bit 3 of port B check for OWC switch OWC high/low load STATUS into W restore STATUS register
Figure imgf000036_0002
load WSAV into W retfie ,-end of interrupt end
DESCRIPTION: This program is designed to implement a constant CFM based on the comparison of a torque calculation and an RPM-torque look-up table. High/Low Switch determines the selectable speed ranges for furnace.
REGISTER/BIT ADDRESSES
,-Predefined Register Addresses LIST P=16C71 ;Identifies PIC16C71
,-Division constants
,-16C71 Special-purpose registers
;16C71 STATUS bits
,-16C71 INTCON register bits
;16C71 ADCNO register bits
Figure imgf000038_0001
CHS1 equ 4h
CHSO equ 3h
ADGO equ 2h
ADIF equ lh
ADON equ Oh
PCFG1 equ lh ;16C71 ADCNl register bits
PCFGO equ Oh
INTEDG equ 6h ,-16C71 OPTION register bits
PORTA register bits SELECT3 equ 2h ,-Selection Bit 3 SELECT2 equ 4h ,-Selection Bit 2
; PORTB register bit
Hall Signal Input Set Speed Input MSB Set Speed Input LSB Operational Window Correct Phase B Output Phase A Output Selection Bit 0
Figure imgf000039_0001
Selection Bit 1
;BITREG register bits
OFFSWTC equ Oh Off Switch Flag
TRANS8 equ lh Eight Second Transition Flag
HIGHLOW equ 2h High/Low Speed Flag
WAITOWC equ 3h Wait For OWC Flag
OWCFLAG equ 6h OWC Flag
SFTSTRT equ 7h Soft Start Flag
,-BITREG2 register bits
SLOWFST equ Oh Slow Or Fast Transition Flag
FOURSEC equ In Four Seconds Start Flag
CALCFRQ equ 3h Calculation Frequency Flag
STARTUP equ 5h Starting 15 Seconds Flag
,-Define General Purpose Registers
Calculation MSB
Calculation LSB
General Counter I
General Counter 2
PWM Counter LSB
PWM Storage LSB
PWM Cycle Counter
Timer Counter
Seconds Counter
Hall Edges Counter MSB
Hall Edges Counter LSB
Hall Edges Storage MSB
Hall Edges Storage LSB
Torque Calculation
Torque Constant Theoretical
Bus Voltage Value.
Figure imgf000039_0002
Current Sense Sum MSB Current Sense Sum LSB
Current Sense Actual Value
Bit Register For Loop Control
Bit Register For Loop Control 2
Select Phase A Or B
Save Value Of W Register
Save Value Of Status Register
B-bit Multiplicand
8-bit Multiplier
Temporary Register
Current Calculation for Blocked Flue
Figure imgf000040_0001
CODE ORIGINS
;Establish Program Origin And Interrupt Vectors org OOh goto Start ;reset vector org 04h goto Int V ,- interrupt vector org 07h ,-start of code
INITIALIZE REGISTERS
; Initialize Page 1 Registers
Start ,-select pgl registers ,-set port A 1/0 (I=input) ,-send values to port A ,-set port B I/O (l=input) ,- send values to port B
,-set AINO.L to analog; AIN2,3,4 to digital ,-set ADCONI register
;select prescaler, timer and INT edges
Figure imgf000040_0002
,-set OPTION register
;Clear Variables
Figure imgf000040_0003
Figure imgf000041_0001
Initialize Variables set timer to approximately 1 sec timer counter set starting value save bus voltage
Figure imgf000041_0002
save current sense
START UP ROUTINE
,-Check Selection Bits And Low/High Fire Commands
;check selection bit 0
,-return to start up
,-check selection bit l
,-return to start up
,-check selection bit 2
;return to start up
,-check selection bit 3
;return to start up
,-wait for speed input LSB to go low
;continue
,-wait for speed input MSB to go high
Figure imgf000041_0003
;restart micro
/Perform Soft Start With Increasing Torque
Go set soft start flag number of hall edges save into general counter
Halchg load W save increasing torque delay counter shift right loops save into general counter
Shftng clear carry bit divide by 2 decrement general counter continue shifting load W check if zero continue with Main Setup
,-number of hall edges doubled
,-save into temporary counter
Halchg2 ,-alignment of hall signal and phases
;continue with high hall signal
,-turn phase B off
,-select phase A
Figure imgf000041_0004
,-unselect phase 3 select pgl registers set rising hall edge detect select pgO registers continue turn phase A off unselect phase A select phase B select pgl registers set falling hall edge detect select pgO registers number of pwms (y of x*y) save into general counter number of pwms (x of x*y) save into general counter is speed input LSB low continue is speed input MSB high no...instant shutdown load PHASE into W set phase high load W
6-PSTORO delay loops save into general counter decrement general counter continue delay load PHASE into W set phase low check if hall edge received continue load w save into general counter decrement general counter continue delay decrement general counter continue pulsing decrement general counter continue loop load PHASE into W set phase high is- speed input LSB low continue is speed input MSS high no...instant shutdown check if hall edge received continue waiting for hall edge clear hall edge if present decrement general counter continue loop decrement general counter
Figure imgf000042_0001
continue loop
;Setup For PWM, Timer, And Main Program Processing
Msetup
Figure imgf000042_0002
clear clear clear seconds counter
PWM starting point LSB save in PWM storage LSB save into PWM counter LSB set timer to approximately I see timer counter clear flags and enable TMRO and PWM write INTCON register global enable clear hall edge if present (soft start exit) ,-set OWC flag ,-set WAITOWC flag
Figure imgf000043_0001
,-set HIGHLOW flag
MAIN PROGRAM
Main
/Call A/D Routine
Ad call call Ad main ;A/D conversion routine
:Check For Full Restriction On Start Up Before Flame
continue load W
15 seconds to stabilize check if positive continue load w econd check(24 total sees before flame) ,-check if zero
,-set starting seconds flag load W save into current load with bus voltage actual save into multiplicand load constant save into multiplier
BV*constant clear carry multiply by 2 multiply by 2 add to current check MSB check flag turn OWC off ated start up current with blocked flue /subtract CSACTL-CSCALC ,-check carry for negative result
Figure imgf000043_0002
,-turn OWC off /Calculate Torque Constant check flag continue with transition ,-check flag continue with transition ,-clear flag clear carry bit load Hall storage LSB save into multiplicand load Current Sense save into multiplier HSTORO * CSRCTL check HSTORl check if zero continue load into W add to H_BYTE check high or low speed continue clear carry multiply by 2 multiply by 2 load with bus voltage actual subtract x-BV with voltage x @ 120VAC check if zero finished with calculation check if negative goto adjust up save W temporarily clear carry divide by 2 clear carry divide by 2 load w subtract from torque value clear carry divide by 2 subtract from torque value goto end of calculation save W temporarily take complement of temporary clear carry divide by 2 clear carry divide by 2 load W add to torque value clear carry divide by 2 add to torque value load W
Figure imgf000044_0001
save torque calculated value
/Speed Transition Routine
Transit btfss PORTB,SSIN1 ,-check operation goto Cpl ,-goto next checkpoint btfsc PORTB,SSINO ,-check operation goto Offsw ,-goto off switch goto Highsw ,-goto high switch start
Cpl btfss PORTB, SSINO ,-check operation goto Offsw ,-goto off switch Lowsw bcf BITREG,OFFSWTC ,-clear off switch flag btfss BITREG,HIGHLOW ,-check high speed flag goto Lowspd /continue bcf BITREG,HIGHLOW ,-clear high/low speed flag bsf BITREG, RANS8 ,-set transition flag bsf BITREG,WAITOWC ,-set waitowc flag bcf BITREG2,SLOWFST ,-clear slow/fast flag movlw .55 number PWMs movwf PSTORO save into PWM Storage LSB clrf SECCNTR clear the seconds counter goto Timechk continue
Lowspd btfsc BITREG,TRANS8 check if in transition goto Timechk continue bcf STATUS,CARRY clear carry bit rrf HSTORl,O divide Hall storage MSB by 2 rrf HSTORO,O divide Hall storage LSB by 2 sublw .60 low minimum 60 @ 1800 RPM btfsc STATUS,CARRY check carry for negative result call Owcoff turn OWC off bcf STATUS,CARRY clear carry bit rrf HSTORl, 0 divide Hall storage MSB by 2 rrf HSTORO,0 divide Hall storage LSB by 2 sublw .108 low maximum 108 @ 3200 RPM btfss STATUS,CARRY check carry for negative result call Owcoff turn OWC off
Ls-tabl movlw .230 ,-load maximum current value (# pts + offset-1) subwf HSTORO,O subtract maximum from HSTORO btfss STATUS,CARRY check for overflow goto Table continue movlw .110 load maximum table value (# pts-l) goto Tab_ls goto call low speed table
Table movlw .120 ,-load offset into W (# starting pts omitted) subwf HSTORO,0 subtract offset from HSTORO btfss STATUS,CARRY check for overflow movl .0 load minimum table value btfsc STATUS,Z check for overflow movlw .0 load minimum table value movf HSTORO,O if no offset, uncomment this line
Tab Is call Tablels call the low speed table movlw .1 addlw .1 movwf TTHEO ,-save torque theoretical movlw .2 subwf TTHEO, 1 goto Timechk ,-continue
Highsw bcf BITREG,OFFSWTC ,-clear off switch flag btfsc BITREG,HIGHLOW ,-check high speed flag goto Highspd ,-continue bsf BITREG,HIGHLOW ,-set high/low speed flag bsf BITREG,TRANS8 ,-set transition flag bsf BITREG,WAITOWC ,-set waitowc flag bcf BITREG2,SLOWFST ,-clear slow/fast flag set four seconds flag number PWMs save into PWM Storage LSB clear the seconds counter continue check if in transition continue clear carry bit divide Hall storage MSB by 2 divide Hall storage LSB by 2 high minimum 93 @ 2800 RPM check carry for negative result turn OWC off clear carry bit divide Hall storage MSB by 2 divide Hall storage LSB by 2 high maximum 145 @ 4300 RPM check carry for negative result turn OWC off check if MSB set check if zero over 255 value to decrement
HSTORO-180 check if negative clear W goto table value to increment
HSTORO+76 call the high speed table
,-save torque theoretical
continue check if off switch flag already set clear the seconds counter set off switch flag set transition flag load x seconds into W
SECCNTR-X has x seconds elapsed? instant shutdown finished with transition routine check transition flag finished with transition routine load x seconds into W
SECCNTR-X has x seconds elapsed? continue clear transition flag
Figure imgf000046_0001
perform closed loop operation A/D SUBROUTINES FOR MAIN INTERRUPT
,-A/D Conversion With High/Low Flag Check And Current Averager Ad main btfsc PCYCLE,0 check bit 0 start A/D conversion (1:2 PWMS) check bit 1 setup A/D current sense (1:4 PWMS) setup A/D bus voltage (1:4 PWMS) increment PWM cycle counter finished A/D routine /clear carry bit /divide by 2 ,-divide by 2
,-clear carry bit /divide by 2 divide by 2 clear carry bit load into W save current sense clear current sense sum LSB clear current sense sum MSB
Figure imgf000047_0001
finished A/D routine
/Begin A/D, Check Current Sense High & Bus Voltage Low
Ad_go bsf ADCONO,ADGO ,-set ADGO bit to begin A/D conversion urrent sense relative maximum® 5.45V/4.75A subtract CSACTL-CSHIGH check carry for negative result turn OWC off bus voltage relative minimum @ 5.45V/81V subtract BV-BVLOW check carry for negative result turn OWC off
Figure imgf000047_0002
return to main
Initialize A/D For Current Sense (AINO) And Save Bus Voltage load W with last A/D conversion save bus voltage (1:4 PWMS) select fosc/2 and AINO set up A/D
Figure imgf000047_0003
return to main
Initialize A/D For Bus Voltage (AINl) And Save Current Sense load W with last A/D conversion add to sum (1:4 PWMS) check for carry increment sum MSB select fosc/2 and AINl set up A/D and start conversion
Figure imgf000047_0004
return to main TIMER INCREMENT/DECREMENT AND SET OWC AND SLOW/FAST FLAG
check transition speed continue frequency of mcr/decr and with counter check if zero finished check if in transition finished check if OWC finished ;check if starting ISseconds expired finished lead into W TTHEO-TCALC check if zero
,-check if positive
,-goto decrement routine
,-increment PWM storage LSB
/finished
/decrement PWM storage LSB
/finished
,-increment PWM storage LSB
Figure imgf000048_0001
,-end of Timr id routine
DISABLE GLOBAL INTERRUPTS /Disabling Global Interrupts
Gieoff bcf INTCON,GIE disable global interrupts btfsc INTCON,GIE verify disable gotc Gieoff no ... try again return return to call
8x8 CODE EFFICIENT MULTIPLIER
Figure imgf000048_0002
ret lw
OWC OFF ROUTINE
Owcoff bcf BITREG,WAITOWC ,-clear flag bcf BITREG,OWCFLAG ,-clear flag bcf PORTB,OWC ,-set OWC signal low return ,-return
INSTANT SHUTDOWN ROUTINE
disable all interrupts set OWC low phase A off phase B off is speed input LSB low no ... instant shutdown is speed input MSB low no...instant shutdown
Figure imgf000049_0001
restart microprocessor
TIMER INTERRUPT (1:256 Prescale Or 65536us) rsave W register
:load STATUS into W rsave STATSAV
:timer interrupt flag? mo...goto PWM interrupt
:reset timer flag rset flag
:decrement timer counter
:finished with interrupt load Hall counter MSB into W ;save Hall storage MSB load Hall counter LSB into W save Hall storage LSB -,clear Hall counter LSB rclear Hall counter MSB rcall Tirnrsub rset timer to approx I sec :save in timer counter /increment elasped seconds /finished with interrupt
Figure imgf000049_0002
,-check four seconds flag bsf BITREG2,SLOWFST ,-set flag after approximately nine seconds bsf BITREG2 , FOURSEC ,-set flag after 4 1/2 seconds Tintend goto Int end /finished with interrupt
PWM INTERRUPT (25KHz)
select pgO registers turn phase A off turn phase B off clear hall interrupt flag move PWM storage LSB into W save into PWM counter LSB increment hall counter LSB check for carry increment hall counter MSB alignment of hall signal and phases hall high, select phase B high unselect phase B select phase A select pgl registers set rising hall edge detect select pgO registers continue unselect phase A select phase B select pgl registers set falling hall edge detect select pgO registers check high speed flag delay loops for low check high speed flag delay loops for high save into general counter decrement general counter continue delay decrement general counter continue to PWM load PHASE into W set phase high perform XOR on bit 3 of port B check for OWC switch OWC high/low load STATUS into W restore STATUS register lead WSAV into W
Figure imgf000050_0001
end of interrupt LOW SPEED LOOK UP TABLE
org 200h
Tablels
Figure imgf000051_0001
Figure imgf000052_0001
Figure imgf000053_0001
HIGH SPEED LOOK UP TABLE
Figure imgf000053_0002
Figure imgf000054_0001
Figure imgf000055_0001
end

Claims

What is claimed is:
1. A brushless dc motor assembly comprising: a brushless dc motor,- a control board having at least one output connected to a stator winding of said brushless dc motor for providing current flow to said stator winding,- controll electronics on said control board for controlling said current flow to said stator winding based on desired motor operating characteristics, said control electronics including a housekeeping power supply for providing a stable 5v DC signal from a rectified AC line voltage.
2. A brushless dc motor assembly comprising: a brushless dc motor; a control board having at least one output connected to a stator winding of said brushless dc motor for providing current flow to said stator winding; controll electronics on said control board for controlling said current flow to said stator winding based on desired motor operating characteristics, said control electronics including a MOSFET output amplifier having a power zener diode connected to the drain thereof, said power zenor dissipating temporary back emf resulting from switching of said MOSFET from an on to an off state.
3. A brushless dc motor assembly comprising: a brushless dc motor,-
a hall device mounted to a stator of said brushless dc motor, said hall device providing a signal representative of the rotational speed of a rotor of said motor to a control board, said control board having at least one output connected to a stator winding of said brushless dc motor for providing current flow to said stator winding; and control electronics on said control board for controlling said current flow to said stator winding responsive to said signal.
4. A brushless dc motor assembly comprising: a brushless dc motor,- a control board mounted to a heatsink, said control board having at least one output connected to a stator winding of said brushless dc motor for providing current flow to said stator winding; controll electronics comprising a MOSFET on said control board for controlling said current flow to said stator winding based on desired motor operating characteristics, wherein said heat sink is attached to said MOSFET for dissipating heat generated by said MOSFET.
5. A brushless dc motor assembly comprising: a brushless dc motor,- a control board having at least one output connected to a stator winding of said brushless dc motor for providing current flow to said stator winding; controll electronics on said control board for controlling said current flow to said stator winding based on desired motor operating characteristics, said control electronics including microprocessor for controlling said output according to desired operating characteristics.
6. A brushless dc motor according to claim 5, wherein microprocessor comprises a set of programmed instructions for pulsing said output to slowly ramp up the speed of a rotor of said motor.
7. A brushless dc motor according to claim 5, wherein said motor is a 2-phase motor and said microprocessor controls a phase a output and a phase b output to drive electronics using programmed instructions based on desired operating specifications.
8. A microprocessor for controlling a phase a and a phase b stator winding of a brushless dc motor, said microprocessor comprising programmed instructions for controlling dc output to said windings based on user defined specifications.
9. A brushless dc motor according to claim 5, wherein microprocessor comprises a set of programmed instructions for controlling the pulse width of said output.
PCT/US1996/016728 1995-10-17 1996-10-17 A brushless dc motor assembly Ceased WO1997015111A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU74551/96A AU7455196A (en) 1995-10-17 1996-10-17 A brushless dc motor assembly

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US567795P 1995-10-17 1995-10-17
US60/005,677 1995-10-17

Publications (4)

Publication Number Publication Date
WO1997015111A2 WO1997015111A2 (en) 1997-04-24
WO1997015111A3 WO1997015111A3 (en) 1997-06-05
WO1997015111A9 true WO1997015111A9 (en) 1997-07-24
WO1997015111B1 WO1997015111B1 (en) 1997-08-21

Family

ID=21717138

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1996/016728 Ceased WO1997015111A2 (en) 1995-10-17 1996-10-17 A brushless dc motor assembly

Country Status (2)

Country Link
AU (1) AU7455196A (en)
WO (1) WO1997015111A2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19826458A1 (en) 1998-06-13 1999-12-16 Papst Motoren Gmbh & Co Kg Arrangement with an electric motor
DE19836882A1 (en) 1998-08-14 2000-02-17 Papst Motoren Gmbh & Co Kg Electric motor has characteristic field stored as digital values for associating parameter and motor speed values, and microcontroller or microprocessor
JP2001128432A (en) * 1999-09-10 2001-05-11 Jianzhun Electric Mach Ind Co Ltd Ac power supply drive type dc brushless electric motor
JP3658310B2 (en) 2000-11-16 2005-06-08 東芝テック株式会社 PWM control circuit, electric blower and vacuum cleaner
DE102013215949A1 (en) * 2012-09-26 2014-03-27 Schaeffler Technologies Gmbh & Co. Kg An electronic module comprising an electric motor, preferably an electrically commutated motor
US11139722B2 (en) 2018-03-02 2021-10-05 Black & Decker Inc. Motor having an external heat sink for a power tool

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4528486A (en) * 1983-12-29 1985-07-09 The Boeing Company Controller for a brushless DC motor
US4636936A (en) * 1984-04-19 1987-01-13 General Electric Company Control system for an electronically commutated motor
US4626750A (en) * 1985-09-10 1986-12-02 Curtis Instruments, Inc. Solid state d.c. motor control
US4893067A (en) * 1987-05-06 1990-01-09 Black & Decker Inc. Direct current motor speed control
US4959797A (en) * 1987-12-11 1990-09-25 Tensor Development, Inc. System for tightening threaded fastener assemblies
US4958269A (en) * 1988-07-27 1990-09-18 Eaton Corporation Current control for microprocessor motor drive
US5331258A (en) * 1992-03-30 1994-07-19 Solaria Research Enterprises, Ltd. Synchronous-rectification type control for direct current motors and method of making
US5410229A (en) * 1992-07-31 1995-04-25 Black & Decker Inc. Motor speed control circuit with electronic clutch
US5317245A (en) * 1992-10-29 1994-05-31 Mfm Technology, Inc. Brushless DC motor control network
US5486747A (en) * 1993-07-29 1996-01-23 United Technologies Motor Systems General purpose motor controller
DE59405829D1 (en) * 1993-09-15 1998-06-04 Papst Motoren Gmbh & Co Kg Arrangement with a commutatorless DC motor commutated via a semiconductor arrangement

Similar Documents

Publication Publication Date Title
KR101404564B1 (en) Control of an electrical machine
US5492273A (en) Heating ventilating and/or air conditioning system having a variable speed indoor blower motor
US5592058A (en) Control system and methods for a multiparameter electronically commutated motor
CN102939707B (en) For the controller of brushless motor
US7259531B1 (en) Speed control of brushless DC motors
KR100911070B1 (en) Blower and electric device with such blower mounted thereon
KR100430794B1 (en) Power supply apparatus and air conditioner using the same
JPH01157287A (en) Pwm system for ecm motor
US5712551A (en) Starting circuit protection apparatus and method for brushless DC motor compressor
US6664756B2 (en) Conversion circuit for a DC brushless motor
CN205992869U (en) Brushless Motor Controller
US6222333B1 (en) DC brushless motor controller apparatus and method
RU2455750C1 (en) Centrifugal pumping unit
US20230291335A1 (en) Multispeed alternating current motor
WO1997015111A9 (en) A brushless dc motor assembly
JP2003199382A (en) Control method of brushless DC motor
WO1997015111A2 (en) A brushless dc motor assembly
JP4142803B2 (en) Brushless motor
KR100296303B1 (en) Torque ripple reductance of a bldc motor
KR19990075671A (en) Control method of open loop section
JP3552396B2 (en) Control driving device for brushless DC motor
JP2533598B2 (en) DC brushless motor
KR100320175B1 (en) Reduction of cogging torque ripple of a bldc motor
JP2749347B2 (en) DC brushless motor
JP3528525B2 (en) Motor speed control circuit