Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
ELECTRONICALLY COMMUTATED MOTOR
Document Type and Number:
WIPO Patent Application WO/2000/021189
Kind Code:
A1
Abstract:
The invention relates to an electronically commutated motor (M) which has a galvanomagnetic rotor position sensor (40) for generating rotor position signals. A timer (CNT_HL) serves to achieve a premature commutation which occurs once the motor reaches a determined speed. The amount of commutation is a function of the motor speed.

More Like This:
JPS61227659BRUSHLESS MOTOR
JP7389609motor device
Inventors:
DUFNER THOMAS (DE)
HORNBERGER JOERG (DE)
JESKE FRANK (DE)
RAPPENECKER HERMANN (DE)
Application Number:
PCT/EP1999/005282
Publication Date:
April 13, 2000
Filing Date:
July 23, 1999
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
PAPST MOTOREN GMBH & CO KG (DE)
DUFNER THOMAS (DE)
HORNBERGER JOERG (DE)
JESKE FRANK (DE)
RAPPENECKER HERMANN (DE)
International Classes:
H02K29/08; H02P6/14; H02P6/15; H02P6/18; (IPC1-7): H02P6/14
Foreign References:
US4743815A1988-05-10
DE19700479A11997-07-17
US5285135A1994-02-08
US5717297A1998-02-10
GB2305314A1997-04-02
US5334917A1994-08-02
Attorney, Agent or Firm:
Raible, Hans (Schoderstrasse 10 Stuttgart, DE)
Download PDF:
Claims:
Patentansprüche
1. Elektronisch kommutierter Motor mit einem Stator, einem Rotor (39), und mit einem zur Steuerung der Kommutierung des Motors dienenden programmgesteuerten Mikroprozessor oder Mikrocontroller (11), im folgenden Mikroprozessor genannt, mit einer Vorrichtung zur Erfassung einer der Drehzahl des Rotors (39) im wesentlichen umgekehrt proportionalen ZeitgroBe (t_H), mit einer Vorrichtung zur Berechnung einer von dieser ZeitgroBe (t_H) abhangigen Zeit (tut)), mit einer Vorrichtung zur Auslösung einer MotorsteuerungsInterruptroutine (Fig.
2. in einem zeitlichen Abstand (tu !) von einer vorgegebenen Rotorstellung, welcher Abstand der von der erfaßten ZeitgroBe (t_H) abhangigen Zeit (tTi) entspricht, wobei diese Motorsteuerungsinterruptroutine Programmschritte (S310, S318, S320, S322) zum Bewirken einer Kommutierung des Motors entait.
3. Motor nach Anspruch 1, bei welchem die Motorsteuerungslnterruptroutine (Fig.
4. Programmschritte (S304, S306) entait, welche das Bewirken einer Kommutierung verhindern, wenn die von der erfaßten ZeitgroBe abhangige Zeit (t TI) grof3er ist als eine Zeitspanne (t_H), die der Rotor (39) aktuell zum Durchlaufen eines vorgegebenen Winkelwegs benötigt.
5. Motor nach Anspruch 2, mit einer Vorrichtung, welche an vorgegebenen Rotorstellungen eine rotorstellungsabhängige Interruptroutine (Fig. 8) auslost.
6. Motor nach Anspruch 3, bei welchem zur Erfassung der der Drehzahl des Rotors im wesentlichen umgekehrt proportionalen ZeitgroBe ein von den rotorstellungsabhängigen Interruptroutinen (Fig. 8) steuerbarer Timer (CNT_HL) vorgesehen ist.
7. Motor nach Anspruch 4, bei welchem der Timer (CNT_HL) auch zur Auslösung einer Motorsteuerungslnterruptroutine (Fig. 10) ausgebildet ist.
8. Motor nach Anspruch 5, bei welchem der Timer (CNT_HL) während eines rotorstellungsabhängigen Interrupts (Fig. 8) mit einem ersten vorgegebenen Zählwert (t_B) ladbar ist, welcher dem von der erfaßten Zeitgröße (t_H) abhangigen zeitlichen Abstand (tu !) entspricht, und welcher nach Zählen dieses ersten vorgegebenen Zählwerts einen Motorsteuerungslnterrupt (Fig. 10) bewirkt.
9. Motor nach einem oder mehreren der vorhergehenden Anspruche, bei welchem ein rotorstellungsabhängiger Interrupt (Fig. 8) eine höhere Prioritat hat als ein MotorsteuerungsInterrupt (Fig. 10).
10. Motor nach einem oder mehreren der Ansprüche 4 bis 7, bei welchem der Timer (CNT_HL) während eines Motorsteuerungsinterrupts (Fig. 10: S302) mit einem vorgegebenen Zählwert (t AR) ladbar ist, und im Anschluß an diesen Ladevorgang eine Zählung bis zum nächsten rotorstellungsabhangigen Interrupt (Fig. 8) erfolgt, um durch Bildung der Differenz zwischen dem vorgegebenen Zählwert (t_AR) und dem Zahlerstand (t_E) bei Erreichen des nächsten rotorstellungsabhängigen Interrupts (Fig. 8) einen zeitlichen Abstand (Fig. 7A: t_1) zwischen diesen nterruptvorgangen zu ermitteln.
11. Motor nach Anspruch 8, bei welchem zum Laden des vorgegebenen Zählwerts (t_AR) ein AutoreloadRegister (AR) vorgesehen ist, welches den ersten vorgegebenen Zahlwert (tT)) speichert und dem Timer (CNT_HL) während des Motorsteuerungslnterrupts (Fig. 10) als vorgegebenen Zählwert zuführt.
12. Verfahren zur drehzahlabhangigen Kommutierung eines elektronisch kommutierten Motors, welcher einen Stator und einen Rotor aufweist, ferner einen zur Steuerung seiner Kommutierung dienenden programmgesteuerten Mikroprozessor oder Mikrocontroller, im folgenden Mikroprozessor genannt, mit folgenden Schritten: a) eine zur Drehzahl des Rotors im wesentlichen umgekehrt proportionale Zeitgr6f3e (t_H) wird ermittelt; b) aus dieser Zeitgröße (t_H) wird nach einer vorgegebenen Rechenregel ein Zahlenwert (t TI) errechnet; c) beginnend bei einer vorgegebenen ersten Rotorstellung wird eine diesem errechneten Zahlenwert entsprechende erste Zeit gemessen; d) nach Ablauf dieser ersten Zeit wird eine Kommutierung (TN) ausgelöst; e) im Anschluß hieran wird bis zum Erreichen einer vorgegebenen zweiten Rotorstellung eine zweite Zeit (t_1) gemessen; erste und zweite Zeit werden addiert, und ihre Summe wird, ggf. durch mindestens einen Korrekturfaktor korrigiert, als eine zur Drehzahl des Motors im wesentlichen umgekehrt proportionale ZeitgroBe (t_H) verwendet.
13. Verfahren nach Anspruch 10, bei welchem die vorgegebene Rechenregel einen Subtraktionsschritt aufweist, bei welchem von der zur Drehzahl des Rotors im wesentlichen umgekehrt proportionalen ZeitgroBe (t_H) eine vorgegebene Zeit (t_ZW) subtrahiert wird.
14. Verfahren nach Anspruch 10 oder 11, bei welchem dann, wenn die dem errechneten Zahlenwert (tT!) entsprechende erste Zeit groBer ist als der zeitliche Abstand zwischen der vorgegebenen ersten Rotorstellung und der vorgegebenen zweiten Rotorstellung, der zeitliche Abstand zwischen diesen beiden Rotorstellungen direkt erfaBt und als eine zur Drehzahl des Motors im wesentlichen umgekehrt proportionale ZeitgroBe (t_H) verwendet wird (S256).
15. Verfahren nach einem oder mehreren der Ansprüche 10 bis 12, bei welchem die zur Drehzahl des Motors im wesentlichen umgekehrt proportionale ZeitgroBe (t_H) mit einem einer Mindestdrehzahl entsprechenden vorgegebenen Wert (t SZW) verglichen wird (Fig. 9: S264), ein dem Vergleichsresultat entsprechender logischer Wert (SZW) zwischengespeichert wird (Fig. 9: S266), und bei einem vorgegebenen Wert dieses logischen Werts (SZW) die nach Ablauf der ersten Zeit (tT!)erfotgendeAustosung einer Kommutierung unterdruckt wird (Fig. 10: S304, S306).
16. Verfahren nach einem oder mehreren der Ansprüche 10 bis 13, bei welchem bei Erreichen einer vorgegebenen Rotorstellung ein rotorstellungsabhängiger Interrupt mit einer Interruptroutine (Fig. 8A, 8B) ausgeführt wird, zu deren Beginn ein zur Zeitmessung dienender Timer (CNT_HL) angehalten (S202) und sein augenblicklicher Wert in einer Variablen (t_E) gespeichert wird.
17. Verfahren nach Anspruch 14, bei welchem in der rotorstellungsabhangigen Interruptroutine der zur Zeitmessung dienende Timer (CNT_HL) zeitlich nach seinem Anhalten (S202) mit einem zuvor nach der vorgegebenen Rechenregel berechneten Zah!enwert (tT!)ge!aden und dann gestartet wird (Fig. 8B: S238).
18. Verfahren nach Anspruch 14 und 15, bei welchem die Zeitspanne zwischen dem Anhalten des zur Zeitmessung dienenden Timers (CNT_HL) und seinem Starten als Korrekturfaktor (tCORR) verwendet wird, wenn die zur Drehzahl des Motors im wesentlichen umgekehrt proportionale ZeitgroBe (t_H) ermittelt wird.
19. Verfahren nach einem oder mehreren der Anspruche 10 bis 16, bei welchem die dem errechneten Zahlenwert (tT!) entsprechende erste Zeit, welche ab einer vorgegebenen ersten Rotorstellung gemessen wird, aus einer der Drehzahl des Rotors im wesentlichen umgekehrt proportionalen ZeitgroBe errechnet wird, welche etwa eine Rotorumdrehung vor dem Zeitpunkt ermittelt wurde, an dem die aktuelle Messung der ersten Zeit erfolgt (Fig. 18: 542,544, 546).
20. Verfahren nach einem oder mehreren der Ansprüche 10 bis 17, bei welchem mindestens ein nicht zeitkritischer Verfahrensschritt als Unterroutine (Fig. 9) ausgebildet ist, welche im Programmablauf aufgerufen wird, wenn Prozessorzeit verfugbar ist (Fig. 15).
21. Verfahren nach Anspruch 18, bei welchem die Berechnung der zur Drehzahl des Motors im wesentlichen umgekehrt proportionalen ZeitgroBe (t_H) und die Berechnung des der Messung der ersten Zeit zugrundeliegenden Zahlenwerts (t TI) in einer solchen Unterroutine (Fig. 9) erfolgen.
22. Verfahren nach einem oder mehreren der Ansprüche 10 bis 19, bei welchem mindestens ein fur Berechnungen erforderlicher Parameter (tZW) aus einem dem Motor zugeordneten nichtfluchtigen Speicher (26) in ein RAM (25) des Mikroprozessors (11) geladen wird.
23. Verfahren nach Anspruch 20, bei welchem dem nichtflüchtigen Speicher (26) ein Bus (30) zugeordnet ist, uber welchen mindestens ein Parameter im nichtflüchtigen Speicher (26) veränderbar ist.
24. Elektronisch kommutierter Motor mit einem Stator, einem Rotor (39), und mit einem zur Steuerung der Kommutierung des Motors (M) dienenden programmgesteuerten Mikroprozessor oder Mikrocontroller (11), im folgenden Mikroprozessor genannt, wobei bei mindestens einer vorgegebenen Rotorstellung ein Timer (CNT_HL) mit einem vorgegebenen Startwert (tu !) gestartet wird, welcher Timer (CNT_HL) nach Ablauf einer von dem Startwert (t TI) abhangigen Zeit einen Interrupt (Fig. 10) im Programm des Mikroprozessors (11) auslöst, wahrend dessen eine Kommutierung (Fig. 10: S318, S320, S322) des Motors (M) erfolgt.
25. Motor nach Anspruch 22, bei welchem der Startwert (t TI) des Timers (CNT_HL) eine Funktion einer drehzahlabhängigen Zeit (t_H) ist, die der Rotor (39) in einem dieser Kommutierung vorausgehenden Zeitbereich fur seine Drehung um einen vorgegebenen Drehwinkel benötigt hat.
26. Motor nach Anspruch 23, bei welchem zur Berechnung des Startwerts (tu !) eine vorgegebene Zeit (tZW) von der drehzahlabhängigen Zeit (t_H) subtrahiert wird.
27. Verfahren zur Bestimmung einer drehzahlabhängigen Gr6f3e bei einem elektronisch kommutierten Motor (M), welcher einen Stator, einen permanentmagnetischen Rotor (39), einen von diesem Rotor gesteuerten galvanomagnetischen Sensor (40), einen Mikroprozessor oder Mikrocontroller (11), im folgenden Mikroprozessor genannt, ein diesem Mikroprozessor zugeordnetes Steuerprogramm, und einen Timer (CNT_HL) aufweist, mit folgenden Schritten: a) Das Ausgangssignal des galvanomagnetischen Sensors (40) wird in ein rechteckformiges Signal (HALL) umgeformt; b) vorgegebene Signaländerungen des rechteckformigen Signals (HALL) werden vom Mikroprozessor erfaRt und durch das Steuerprogramm jeweils in einen rotorstellungsabhangigen Interrupt (Fig. 4: Y) umgesetzt; c) bei einem rotorstellungsabhängigen Interrupt (Y) wird ein erster Zählerstand (Fig. 4: t_0) des Timers festgehalten; d) bei einem darauffolgenden rotorstellungsabhängigen Interrupt (Y) wird ein zweiter Zählerstand (t_E) des Timers festgehalten; e) aus der Differenz der beiden Zählerstände (t0, tE) wird als drehzahlabhangige Grole ein Wert (Fig. 4: HL) ermittelt, welcher der Zeit entspricht, die der Rotor (39) fur das Durchlaufen eines vorgegebenen Drehwinkels benötigt (Fig. 4, Fig. 20).
28. Elektronisch kommutierter Motor (M) mit einem Stator (38), einem Rotor (39), und mit einem zur Steuerung der Kommutierung des Motors (M) dienenden programmgesteuerten Mikroprozessor oder Mikrocontroller (11), im folgenden Mikroprozessor genannt, mit einem Rotorlagegeber (40,41), dessen Ausgangssignal zwecks Auswertung durch den Mikroprozessor (11) einem interruptfähigen Eingang dieses Mikroprozessors zugeführt und in diesem verarbeitet wird, um an mindestens einem Ausgang des Mikroprozessors ein gegenüber dem Signal des Rotorlagegebers (40,41) um eine Verschiebungszeit verschobenes Steuerungssignal (OUT1, OUT2) zur Kommutierung des Motors zu liefern, wobei die Dauer der Verschiebungszeit eine vorgegebene Funktion der Drehzahl ist.
29. Elektronisch kommutierter Motor (M) nach Anspruch 26, bei welchem der Mikrocontroller (11) mindestens einen interruptfähigen Timer (CNT_HL) aufweist, mit dessen Hilfe der mindestens eine zur Ausgabe des Steuerungssignals dienende Ausgang des Mikroprozessors beeinflußt wird.
30. Elektronisch kommutierter Motor (M) nach Anspruch 27, bei welchem der Timer (CNT_HL) bei einem bestimmten Zustand automatisch mit einem Wert (t AR) nachgeladen und erneut gestartet wird.
31. Elektronisch kommutierter Motor (M) nach Anspruch 26 oder 27, bei welchem der Mikroprozessor bei jedem Wechsel des Signals (HALL) des Rotorlagegebers (40,41) einen Interrupt auslöst, und bei welchem Motor der Timer (CNT_HL) und die Interrupts zur Messung der HALLLange (HL) verwendet werden.
Description:
Elektronisch kommutierter Motor Die Erfindung betrifft einen elektronisch kommutierten Motor, und insbesondere einen elektronisch kommutierten Motor mit einem"Vorzundwinkel". Hierunter versteht man, daB die Kommutierung auf einen früheren Zeitpunkt verschoben wird, meist abhangig von der Drehzahl. Selbstverständlich wird bei einem Elektromotor nichts"gezundet", aber wegen seiner Anschaulichkeit verwendet man in der Praxis gerne diesen (aus der Automobiltechnik entlehnten) Begriff und spricht deshalb von einer "Zundwinkelverschiebung". Dieser Begriff wird deshalb nachfolgend verwendet, auch wenn er wissenschaftlich nicht völlig korrekt ist.

Zum Stand der Technik Elektronisch kommutierte Motoren mit Vorzündwinkel sind z. B. aus DE-A, 197 00 479.2 (intern: D201 i) bekannt. Hierbei ist die Genauigkeit der Kommutierung fur manche Fille nicht ausreichend grogs, und das Programm muB nach einem festgelegten Zeitschema ablaufen, was aufwendig ist und die Rechenleistung eines Prozessors in manchen Fällen nur unzureichend ausnutzt. Auch können die Kommutierungsvorgange zeitlich etwas schwanken, was die Geräusche eines solchen Motors erhöht.

Es ist deshalb eine Aufgabe der Erfindung, einen neuen elektronisch kommutierten Motor, und ein Verfahren zum Betreiben eines solchen Motors, bereitzustellen.

Nach einem ersten Aspekt der Erfindung wird diese Aufgabe gelöst durch einen elektronisch kommutierten Motor gemaB dem Patentanspruch 1. Ein solcher Motor arbeitet besonders bei hoheren Drehzahlen mit einem besseren Wirkungsgrad, weil die Kommutierung mit zunehmender Drehzahl immer mehr nach fruh verschoben werden kann. Durch die Verwendung einer Interruptroutine ergibt sich eine zeitlich präzise Steuerung des Kommutierungsvorgangs und damit ein ruhiger Lauf des Motors.

Eine andere Lösung der gestellten Aufgabe ergibt sich durch ein erfindungsgemäßes Verfahren gemaB dem Patentanspruch 11. Dadurch, daB anschließend an den Ablauf der ersten Zeit noch eine zweite Zeit gemessen wird, erhält man in sehr einfacher Weise durch Addition dieser beiden Zeiten, und ggf. eines Korrekturfaktors, eine zur Drehzahl des Motors im wesentlichen umgekehrt proportionale ZeitgroBe, welche bei einem nachfolgenden Kommutierungsvorgang als aktualisierte ZeitgroBe zur Berechnung eines neuen Zahlenwerts fur die erste Zeit dienen kann.

Dabei wird gemaR Patentanspruch 17 diese ZeitgroRe bevorzugt fur einen Kommutierungsvorgang verwendet, der eine Rotorumdrehung spater als die Messung der ersten und der zweiten Zeit liegt, weil sich dann ein besonders ruhiger Lauf des Motors ergibt. Wenn z. B. die Zeitgrof3e im Drehwinkelbereich 0° bis 180° el. gemessen wird, kann sie eine Umdrehung spater die Basis fur die Steuerung einer Kommutierung sein, die dort etwa im gleichen Winkelbereich 0° bis 180° el. stattfindet.

Auch wird in besonders bevorzugter Weise mindestens ein nicht zeitkritischer Verfahrensschritt als Unterroutine ausgebildet, welche im Programmablauf dann aufgerufen wird, wenn hierfur Prozessorzeit verfugbar ist. Dies ermöglicht es, im Gegensatz zu einem Programm mit festem Zeitschema, die Ressourcen eines Prozessors optimal zu nutzen, da bei dieser Verfahrensweise die Unterroutine dann abgearbeitet wird, wenn der Prozessor sonst gerade nichts zu tun hat.

Weitere Einzelheiten und vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den im folgenden beschriebenen und in den Zeichnungen dargestellten, in keiner Weise als Einschränkung der Erfindung zu verstehenden Ausfuhrungsbeispielen, sowie aus den übrigen Unteransprüchen. Es zeigt: Fig. 1 eine beispielhafte Ubersichtsdarstellung einer Ausführungsform der Erfindung, Fig. 2 die Pinbelegung des, uC COP842CJ, Fig. 3 ein Schaltbild, welches die Bauteile fur die Verarbeitung des Hallsignals zeigt, Fig. 4 eine Darstellung des Hallsignals und einer Kommutierung ohne Zundwinkelverschiebung, Fig. 5 eine schematische Darstellung zur Erläuterung der Berechnung eines (verfruhten) Kommutierungszeitpunkts TN aus Werten, die aus einem Signal HALL abgeleitet werden, Fig. 6A und 6B eine Darstellung der Berechnung der Hall-Lange, wenn kein Timer-Interrupt vorliegt, Fig. 7A und 7B eine Darstellung der Berechnung der Hall-Lange bei Vorliegen eines Timer- Interrupts, Fig. 8A und 8B ein Flußdiagramm einer Hall-lnterruptroutine mit Zundwinkelverschiebung, Fig. 9 ein Flußdiagramm einer Zundwinkelberechnungsroutine, Fig. 10 ein Flußdiagramm einer Timer-Interruptroutine mit Zundwinkelberechnung Fig. 11 eine Darstellung des Hallsignals beim Hochlauf eines Motors, Fig. 12A und 12B eine Darstellung des Hallsignals und der zugehörigen Variablen der Antriebsfunktion, Fig. 13 ein Schaltbild mit Teilen, die fur die Regelung und den Antrieb des elektronisch kommutierten Motors wichtig sind, Fig. 14 ein Schaltbild mit fur die Ansteuerung eines EEPROMs und die Datenverbindung uber einen Bus 30 wichtigen Teilen, Fig. 15 eine Darstellung einer bevorzugten Ausführungsform eines Funktionsmanagers, Fig. 16 ein in dem Funktionsmanager verwendetes Funktionsregister, Fig. 17 eine schematische Darstellung des Permanentmagneten eines vierpoligen AuBenrotors, Fig. 18A und 18B Schaubilder zur Erläuterung der Wirkung von Magnetisierungsfehlern des Außenrotors der Fig. 17, Fig. 19 ein Flußdiagramm zur Zundwinkelberechnung, analog Fig. 9, aber in einer bevorzugten, modifizierten Form, Fig. 20 ein Flußdiagramm einer Hall-Interruptroutine fur eine Kommutierung, wie sie in Fig. 4 dargestellt ist, Fig. 21 eine schematische Darstellung des Ablaufs der Kommutierung fur den Fall, daf3 die Kommutierungszeitpunkte elektronisch nach fruh verschoben werden, Fig. 22 den zeitlichen Verlauf des Signals HALL und des Stromes i_M in einer Motorwicklung ohne eine Verschiebung des Kommutierungszeitpunkts in Richtung fruh, und Fig. 23 den zeitlichen Verlauf des Signals HALL und des Stromes i_M in einer Motorwicklung bei einer Verschiebung des Kommutierungszeitpunkts in Richtung fruh.

Ubersicht elektronisch kommutierter Motor (ECM) Fig. 1 zeigt eine Ubersicht uber ein bevorzugtes Ausführungsbeispiel eines erfindungsgemaBen elektronisch kommutierten Motors (ECM). Dieser wird gesteuert mittels eines Mikrocontrollers (uC) 11, oder alternativ eines Mikroprozessors. Die Anschlüsse des beim Ausführungsbeispiel verwendeten uC 11 (COP842CJ) sind in Fig. 2 beispielhaft dargestellt.

Das in dem uC 11 ablaufende Programm ist mit Hilfe eines Funktionsmanagers strukturiert, welcher nachfolgend anhand von Fig. 15 und 16 beschrieben wird.

Der uC 11 hat uber die Funktion"CTL EEPROM"24 Zugriff auf einen nichtfluchtigen Speicher, hier ein EEPROM 26, von dem er Betriebsparameter in ein RAM 25 laden kann. Auch kann er Betriebsparameter im RAM 25 und im EEPROM 26 speichern. Der pC 11 kann uber eine Kommunikationsfunktion COMM 28 und ein Businterface 30 Daten empfangen und senden. Die empfangenen Daten kann er zur Motorsteuerung verwenden oder im RAM 25 oder EEPROM 26 speichern. Das EEPROM 26 und das Businterface 30 sind bei Fig. 14 beschrieben.

Als einfaches Beispiel ist in Fig. 1 ein elektronisch kommutierter Motor M mit einer einzigen Phase 38 dargestellt. Ein solcher Motor ist z. B. in der DE 2 346 380 C dargestellt. Die Bestromung dieser Phase 38 geschieht durch eine Transistorendstufe 36. Die Ausgange OUT1 und OUT2 des pC 11 steuern die als H-Brucke 37 geschalteten npn-Transistoren 141,142,143 und 144. Je nachdem, ob OUT1 auf HIGH und OUT2 auf LOW gesetzt sind, oder umgekehrt, verläuft der Strom durch die Statorwicklung 38 in die eine oder die andere Richtung. Selbstverstandlich eignet sich die Erfindung in gleicher Weise fur jede Art von elektronisch kommutiertem Motor, z. B. fur dreiphasige Motoren und andere. Es handelt sich also nur um ein Ausfuhrungsbeispiel.

Die Kommutierung erfolgt elektronisch. Hierzu wird die Stellung des permanentmagnetischen Rotors 39 uber einen Hallsensor 40 erfaf3t, uber eine elektronische Hall-Schaltung 41, welche in Fig. 3 naher beschrieben wird, zu einem Signal HALL aufbereitet und an eine Antriebsfunktion AF 42 weitergeleitet, welche eine Hall-Interruptroutine HIR (Fig. 8), eine Timer-lnterruptroutine TIR (Fig. 10), eine Zundwinkelberechnungsroutine ZWR (Fig. 9), und einen Timer CNT_HL aufweist. Der Timer CNT_HL ist beim Ausfuhrungsbeispiel Bestandteil des verwendeten uC 11, könnte aber auch ein separates Bauteil sein. Er dient dazu, Zeiten mit hoher Prazision zu messen und ist durch Befehle des uC 11 steuerbar.

Die Antriebsfunktion 42 sorgt fur die richtige Kommutierung der Transistorendstufe 36 und den sicheren Betrieb, z. B. bei Uberlastung der Transistorendstufe 36. Eine Kommutierung ohne Zundwinkelverschiebung wird bei Fig. 4 beschrieben. Die Kommutierung mit Zundwinkelverschiebung wird bei den Fig. 6 bis 12B beschrieben und ist in Fig. 21 dargestellt.

Ein Drehzahlregler RGL 43 regelt beim Ausführungsbeispiel die Motordrehzahl.

(Selbstverständlich kann der Motor M auch ohne Drehzahlregler 43 betrieben werden.) Die Drehzahiregelung kann z. B. mittels eines Pulsweitenmodulation- Generators (PWM-Generators) 34 oder uber eine Blocksteuerung geschehen, die bei 60 mit gestrichelten Linien schematisch angedeutet ist. Zur Blocksteuerung wird beispielhaft auf DE 444 1 372.6 (intern: D183i) verwiesen, die ein Beispiel einer solchen Blocksteuerung zeigt.

Der PWM-Generator 34 weist einen Dreiecksgenerator 35, eine Regelspannungserzeugung 45 und einen Komparator 120 auf und ist bei Fig. 13 naher erlautert. Die Erfindung kann selbstverständlich auch bei einem ECM ohne Drehzahlregelung verwendet werden.

Eine Strombegrenzung"I < ImaXll 44 vermindert die Bestromung der Endstufe 36, falls der Strom in der einzigen Phase 38 zu hoch wird, z. B. beim Start des Motors. Die Strombegrenzung 44 wird bei Fig. 13 naher beschrieben.

Am Ende der Beschreibung sind fur die in den einzelnen Figuren des Ausführungsbeispiels verwendeten elektronischen Bauteile bevorzugte Werte angegeben. Der Leser wird hierauf verwiesen.

Fig. 2 zeigt die Pinbelegung des beim Ausführungsbeispiel verwendeten Mikrokontrollers (, uC) 11 vom Typ COP842CJ der Firma National Semiconductors.

Die Beschriftung innerhalb des uC 11 entspricht der Beschriftung des Herstellers, die auberge Beschriftung der jeweiligen Leitungen zeigt die hauptsachlich in der Anmeldung verwendeten Bezeichnungen. Zur Kennzeichnung der Lage ist links oben ein schwarzer Viertelkreis eingezeichnet, der sich in den folgenden Figuren wiederfindet.

Fig. 3 zeigt ein detailliertes Schaltbild der Bauteile fur die Hall-Schaltung 41, welche das Signal des Hall-Sensors 40 aufbereitet, die Beschaltung der Takteingange CKO und CK1 und die Beschaltung des Reseteingangs RES. Die übrigen Bauteile sind in Fig. 3 nicht dargestellt.

Ein Schwingquarz 97, der an die Anschlüsse CKO und CK1 (vgl. Fig. 3) des uC 11 angeschlossen ist, gibt dessen Taktfrequenz vor, z. B. 10 MHz. Der Reseteingang Res (Fig. 3) ist uber einen Kondensator 99 mit Masse 100 und uber einen Widerstand 101 mit +Vcc verbunden. Diese beiden Bauelemente erzeugen in der üblichen Weise beim Einschalten einen Power-Up-Reset.

Der Hailgenerator 40 ist zur Stromversorgung uber einen Widerstand 106 mit + Vcc, und mit Masse 100, verbunden. Sein Ausgangssignal un wird den beiden Eingangen eines Komparators 108 zugeführt, dessen Vcc-Eingang ein Siebkondensator 110 zugeordnet ist. Der Ausgang des Komparators 108 ist uber einen Ruckfuhrwiderstand 112 mit dem positiven Eingang des Komparators 108 und uber einen sogenannten Pullup-Widerstand 114 mit +Vcc verbunden. Weiterhin ist der Ausgang des Komparators 108 direkt mit dem Port Hall (Fig. 3) des uC 11 verbunden, so daB man an diesem ein vom Rotormagneten 39 (Fig. 2) gesteuertes, rechteckformiges Signal HALL erhält.

Das Signal des Hall-Sensors 40, und die Kommutierung Fig. 4 zeigt ein Diagramm mit dem Signal HALL (Fig. 3) und der zugehörigen Kommutierung fur den Fall, daB keine"Zundwinkelverschiebung"verwendet wird, d. h. daB die Kommutierung direkt durch das Signal HALL gesteuert wird.

Das Signal HALL hat-in seiner idealisierten Form-wahrend einer Rotordrehung von 180° el. den Wert HALL = 0, und während der anschließenden Drehung von 180° el. den Wert HALL = 1. Jede Anderung von HALL = 1 zu HALL = 0, oder umgekehrt, bewirkt einen Interruptvorgang im uC 11, welcher in Fig. 4 in der Reihe HALL-INT mit einem Y bezeichnet ist.

Die Zeit zwischen zwei Hallwechseln, z. B. zwischen den Zeitpunkten t0 und tE, wird nachfolgend Hall-Lange HL oder auch Halizeit t_H genannt und ist in Fig. 4 als Ist-Hall-Lange HL eingezeichnet. Die Hall-Lange ist ein MaB fur die Drehzahl des Motors. Je kleiner sie ist, desto groBer ist die Drehzahl des Rotors 39 (Fig. 1). (Ein Istwert ist der aktuelle Wert, der am Motor gemessen wird.) Die Bestromung der Statorwicklungen wird bei diesem Beispiel durch die Ausgangssignale OUT1 und OUT2 des uC 11 (Fig. 1 und 2) gesteuert, welche in Fig.

4 beispielhaft fur den Betrieb bei niederen Drehzahlen angegeben sind und in Fig. 21 beschrieben werden.

Ist OUT1 auf 1 (HIGH) und OUT2 auf 0 (LOW), so fließt der Strom (Fig. 1) von der Plusspannung UN uber den Transistor 144, die Statorwicklung 38, den Transistor 141 und den MeBwiderstand 140 nach Masse.

Ist dagegen OUT1 auf 0 und OUT2 auf 1, so fließt der Strom (Fig. 1) von der Plusspannung UN uber den Transistor 142, in umgekehrter Richtung durch die Statorwicklung 38, uber den Transistor 143 und den MeBwiderstand 140 nach Masse.

Die Statorwicklung 38 wird dann umgekehrt bestromt.

Wenn keine Zundwinkelverschiebung vorgenommen wird, werden dort, wo sich das Signal HALL andert, also bei den Hall-Interrupts Y, beide Werte OUT1 und OUT2 durch den pC 11 kurzzeitig zu Null gemacht, z. B. wahrend 50 ps, um alle vier Transistoren 141 bis 144 kurzzeitig zu sperren und einen Kurzschluß in der Brucke 37 zu vermeiden. Dies ist in Fig. 4 dargestellt.

Eine einfache Hall-Interruptroutine fur die Kommutierung gemäß Fig. 4 wird nachfolgend bei Fig. 20 beschrieben.

Zusammenhang zwischen Drehzahl und Hall-Lange Die Hall-Lange HL ist in Fig. 4 dargestellt. Ihr Zusammenhang mit der Drehzahl n wird im folgenden aufgezeigt. Dieser Zusammenhang ist eine Funktion der Polzahl P des Rotors 39.

MiBt man die Hall-Lange HL'in Sekunden, so gilt HL'= T/P... (1) Hierbei bedeuten: T = Dauer einer Rotorumdrehung in Sekunden P = Polzahl des Rotors 39.

MiBt man die Drehzahl n in U/min, so gilt HL'= 60/ (n x P)... (2) Hierbei bedeuten n = Drehzahl in U/min P = Polzahl des Rotors 39 Da die Hall-Lange HL beim Ausfuhrungsbeispiel in us vorliegt, HL'aber in Sekunden, wird HL'zu HL renormiert HL = 1 000 000 HL'... (3) Fur P = 4, also einen vierpoligen Rotor, ergibt sich HL = 15 000 000/n... (4) Umgekehrt ist bei P = 4 n = 15 000 000/HL... (5) Hierbei bedeuten: n = Drehzahl in U/min HL = Hall-Lange in ps Der Drehzahl n = 2870 min~1 entspricht z. B. bei einem vierpoligen Rotor eine Hall- Länge HL von HL = 15 000 000/2870 = 5226 us.

Die prozessorinterne Hexadezimaldarstellung hierfur ist 0x146A. (Hexa- dezimalzahlen werden durch ein vorangestelltes Ox gekennzeichnet.) Die Zundwinkelverschiebung Beim Motor nach Fig. 1 ist der Rotorstellungssensor 40 in einer Pollücke des Stators angeordnet, also bei 0 ° el., und ein Wechsel des Signals HALL wird folglich erzeugt bei 0 ° el., 180 ° el., 360 ° el. etc., wie in Fig. 4 beispielhaft dargestellt. Fur eine solche Anordnung des Haligenerators wird beispielhaft verwiesen auf DE-A, 197 00 479.2 (intern: D201 i), Fig. 1, Teil 25.

Bei schnellaufenden Motoren ist es jedoch zur Optimierung der Leistung und des Wirkungsgrads notwendig, die Kommutierung des Stroms in der Statorwicklung 38 vor dem Wechsel des Hallsignals durchzufuhren, also in Fig. 4 zeitlich vor t_0, ebenso zeitlich vor t_E. Man kann das als Vorzundung oder Fruhzundung bezeichnen. Hierzu ware es möglich, den Rotorstellungssensor 40 relativ zum Stator des Motors 39 zu verschieben. Da der Motor aber meist in beiden Richtungen laufen soll, und der Vorzundwinkel bei beiden Drehrichtungen mit zunehmender Drehzahl zunehmen soll, ist dies nicht praktikabel.

Die Zundwinkelverschiebung wird deshalb elektronisch gesteuert. Hierzu wird der bereits beschriebene 16 Bit-Timer CNT_HL (Fig. 1) verwendet. Der Timer CNT_HL wird bei jedem Hall-Interrupt Y mit einem (zuvor berechneten) Anfangswert t-Ti geladen und anschließend heruntergezahit, bis er den Wert 0 erreicht. Beim Erreichen der Nuls lest der Timer CNT_HL im pC 11 einen sogenannten Timer- Interrupt aus, und der Timer wird automatisch mit dem Inhalt tAR eines sogenannten Autoreload-Registers AR (ebenfalls im uC 11) nachgeladen und erneut gestartet, vgl.

S302 in Fig. 10.

Bei einem Hall-Interrupt Y wird der Timer CNT_HL nun so eingestellt, daB er zu dem Zeitpunkt die Null erreicht und dadurch einen Interrupt auslost, zu dem die Kommutierung stattfinden soll. Dieser Timer-Interrupt wird in Fig. 5 mit TN, TN+1 etc. bezeichnet, und ein Hall-Interrupt mit HN, HN+1 etc.

Die Arbeitsweise des Timers ist durch den verwendeten uC vorgegeben, der diesen Timer enthalt. Dabei ist ggf. die Möglichkeit gegeben, den Timer uber ein Register des pC zu konfigurieren. Mögliche Konfigurationen betreffen z. B. das Auslösen eines Interrupts beim Erreichen der 0, oder automatisches Wiederaufladen des Timers bei Erreichen der 0.

Zusatzlich wird hier der Timer CNT_HL in sehr vorteilhafter Weise fur die Messung der Hall-Lange HL (Fig. 4) verwendet, die in Fig. 5 mit t_HN bezeichnet ist.

Fig. 5 zeigt die Berechnung des Timerstartwerts t TI. Dargestellt sind das Signal HALL, das an dem Eingang Hall (Fig. 2) des pC 11 anliegt, die Hall-Interrupts HN-1, HN etc., die Timer-Interrupts TN-1, TN etc. und die Hall-Längen t_HN 1, t_HN etc., welche beim Ausführungsbeispiel die Zeit angeben, die der vierpolige Rotor 39 fur eine Viertels-Umdrehung benötigt, also fur 180° el..

Die Begriffe Hall-Lange HL und Halizeit t_H werden im folgenden synonym verwendet. Eine Hallzeit t_HN+1 beginnt jeweils nach und exklusive einem Hall- Interrupt HN und endet mit und inklusive dem folgenden Hall-Interrupt HN, I. Die Hall- und Timer-interrupts werden nach der Halizeit, in der sie stattfinden, numeriert. Zur Hallzeit t_HN gehort also der Timer-Interrupt TN und-am Ende dieser Zeit-der Hall- Interrupt HO Unter dem Signal HALL sind in Fig. 5 die Werte des Timers CNT_HL eingetragen.

Zwischen den jeweiligen Werten zahlt der Timer CNT_HL herunter, z. B. im Zeitraum 310 von t-Ti auf 0, und im Zeitraum 312 von t-Ti auf t_E.

Der Timerstartwert tut) fur die Hallzeit tHN+2 wird bei diesem Beispiel aus der Hall- Lange t_HN berechnet. Hierzu wird, wie bei 300 symbolisch angegeben, während der Hallzeit t_HN+1 ein Wert tT) berechnet nach der Beziehung t-Ti: =tHN-tZW... (6) d. h. von der Hall-Lange t_HN wird eine (hier konstante) Zundwinkeizeit tZW abgezogen. Analog wird tut) fur die Halizeit t_HN+3 aus der Hall-Lange t_HN+ berechnet, wie bei 301 symbolisch angegeben, usw.

Auf diese Weise wird also zu den Zeitpunkten TN, TN+i, TN+2 etc kommutiert. TN liegt etwa um die Zeit t ZW fruher als HN, d. h. die Kommutierung wird nach fruh verschoben. Analog liegt TN+1 fruher als HN+1, etc. Die Zeitpunkte TN, TN+1 etc sind durch einen nach oben ragenden Pfeil angedeutet.

Nachfolgend wird anhand der Fig. 17 bis 19 beschrieben, wie bei einem vierpoligen Rotor 39 in sehr vorteilhafter Weise z. B. der Kommutierungszeitpunkt TN+4 durch die zeitlich vorhergehende Hall-Lange t_HN bestimmt werden kann, was einen besonders ruhigen Lauf des Motors ergibt. Diese Variante ist in Fig. 5 mit 304 bezeichnet und durch die strichpunktierten Linien 306,308 symbolisiert. Bei einem sechspoligen Rotor wurde analog der Kommutierungszeitpunkt TN+6 durch die Hall- Lange t_HN bestimmt werden.

Fig. 6 und Fig. 7 zeigen die beiden möglichen Fille, die bei der Messung der Hall- Langen t_H mit dem Timer CNT_HL auftreten können.

Dargestellt sind das Signal HALL, das an dem Eingang Hall (Fig. 2) des uC 11 anliegt, die Hall-lnterrupts HN und HN+i, ein Timer-Interrupt TN+1 (in Fig. 7), und an der Zeitachse stehen in Fig. 7A die Startwerte tub und die Stoppwerte tE des Timers CNT_HL, die bei der Berechnung der Hall-Lange t_HN+1, die ja erst wahrend der folgenden Hallzeit t_HN+2 ausgefuhrt wird, zur Verfugung stehen. t_B entspricht dem (zuvor berechneten) Startwert t-Ti des Timers CNT_HL beim Hall-Interrupt HN und tE dem Stoppwert des Timers CNT_HL beim Hall-Interrupt HN+l- Es können nun zwei Fille auftreten.

Der erste Fall (Fig. 6) ist, daB der Motor so stark beschleunigt, daB der Hall-Interrupt HN+1 auftritt, bevor der Timer CNT_HL den Wert 0 erreicht. In diesem Fall wird in der durch den Hall-Interrupt HN+1 ausgelosten Hall-Interruptroutine der Stoppwert des Timers CENT IL in tE gespeichert (S202 in Fig. 8A), der Motor wird kommutiert, der Timer CNT_HL und das Autoreload-Register AR werden erneut mit einem aus der Hall-Lange t_HN-1 berechneten Wert (Fig. 5) geladen, und der Timer CNT_HL wird erneut gestartet (S238 in Fig. 8B). Bei Fig. 6 tritt also während der Hailzeit t_HN+1 kein Timer-Interrupt TN+1 auf.

Die Hall-Lange t_HN+1 berechnet sich in diesem Fall nach der Beziehung tHN+i: = tB-tE + tCORR... (7) tCORR ist hierbei ein Korrekturwert, der in Fig. 9 bei S258 nager erläutert wird und in Fig. 6B dargestellt ist.

Der zweite Fall (Fig. 7A) ist, daB der Timer CNT_HL vor dem Auftreten des Hall- Interrupts HN+1 die 0 erreicht. Beim Erreichen der Null wird ein Timer-interrupt TN+1 ausgelöst, der in Fig. 10 dargestellt ist. Der Timer CNT_HL wird beim Timer-interrupt TN+1 automatisch mit dem Wert tAR aus dem Autoreload-Register AR (Fig. 1) nachgeladen und erneut gestartet, vgl. S302 in Fig. 10. t-B hat hier den gleichen Wert wie t-Ti und entspricht damit auch t-AR.

Dies zeigt Fig. 7B. In der Zeitspanne ab einem Zeitpunkt kurz nach HN bis TN+1 zahlt der Timer CNT_HL von t-B auf 0 herunter und löst beim Wert 0 den Timer-interrupt TN+1 aus. Am Anfang dieses Interrupts wird der Timer CNT_HL erneut mit t_B geladen, vgl. Fig. 10, S302, und zahlt dann während der Zeit bis HN+1 erneut herunter, erreicht dabei aber nicht den Wert 0, sondern nur den Wert t_E. Beim Hall-interrupt HN+1 wird der Timer CNT_HL erneut mit einem (zuvor berechneten) Wert tB' geladen, und die ganze Prozedur wiederholt sich.

In der durch das Auftreten des Timer-Interrupts TN+1 aufgerufenen Timer- lnterruptroutine wird, sofern die Zundwinkelverschiebung eingeschaltet ist, die Kommutierung durchgefuhrt, vgl. Fig. 10, S318, S320, S322, und ein Flag KD (Kommutierung Durchgefuhrt) wird auf 1 gesetzt, vgl. Fig. 10, S324.

Bei dem darauffolgenden Hall-Interrupt HN+1 wird der Timer CNT_HL erneut gestoppt und seine Endzeit tE abgespeichert, vgl. Fig. 8A, S202. Die Hall-Lange t_HN+1 (Fig.

7) wird aufgrund des gesetzten Flags KD (Fig. 9, S252) in den Schritten S254 und S258 von Fig. 9 folgendermaben berechnet: t_1: =tB-tE... (8) t_HN+1: = t_B + t_1 + tCORR... (9) Hierbei ist t_1 die Zeit zwischen dem Timer-interrupt TN+1 und dem Hall-Interrupt HN+i, wie in Fig. 7 dargestellt. Fur die Berechnung der Hall-Lange t_HN+1 muB zu dem Wert t_1 der Wert t_B addiert werden, da der Timer CNTHL zwischen dem Hall-Interrupt HN und dem Timer-Interrupt TN+1 diesen Wert auf Null heruntergezahlt hat. AuBerdem wird ggf. ein Korrekturwert tCORR addiert, der in Fig. 7B dargestellt ist, z. B. 40 us betragt und nachfolgend bei Fig. 9, S258, naher erläutert wird. Nach dem Hall- Interrupt HN+1 und einer Drehzahlberechnung (S274 in Fig. 9) muB das Flag KD wieder zuruckgesetzt werden (KD: = 0, vgl. S272 in Fig. 9).

Zahlenbeispiel zu Fig. 7 Bei HN wird der Timer CNTHL z. B. auf den (zuvor im Schritt 303 der Fig. 5 berechneten) Wert tT) = t_B = 9800 gesetzt. t_B hat also bei der Berechnung den Wert 9800 us. Bei TN+1 hat der Timer CNT_HL den Wert 0 erreicht, bewirkt einen Timer-Interrupt, und wird erneut mit 9800 geladen und gestartet (S302 in Fig. 10). Bei HN+1 hat der Zähler CNT_HL den Wert tE = 9640 erreicht. Der Wert t CORR soll 40 us betragen. Dann ist nach den Gleichungen (8) und (9) t_1: = 9800-9640 =160 us t_HN+1: = 9800 + 160 + 40 = 10000 us Die Hall-Lange tHN+i ist in diesem Beispiel also 10 000 us lang, entsprechend einer Drehzahl (Gleichung 5; vierpoliger Rotor) von nj = 15 000 000/t_HN+1 = 15 000 000/10 000 = 1500 U/min.

AnschlieBend wird kurz nach HN+1 der Timer CNT_HL auf einen neuen Wert tB' geladen, der dem (zuvor berechneten) Wert t_TI'entspricht, vgl. den Schritt 300 in Fig. 5.

Fig. 8A und 8B zeigen das Flußdiagramm einer beispielhaften Ausfuhrungsform einer bevorzugten Hall-Interruptroutine, also einer rotorstellungsabhangigen Interruptroutine. Diese wird ausgelöst beim Erreichen von vorgegebenen Rotorstellungen und ist zustandig fur die Bestimmung der Hall-Lange t_HN und auch fur die Kommutierung, sofern letztere nicht in der Timer-lnterruptroutine durchgefuhrt worden ist. Alle nachfolgend beschriebenen Register bzw. Variablen sind beim Ausführungsbeispiel 16 Bit grogs.

In S202 wird der Timer CNT_HL gestoppt und die Stoppzeit des Timers CNT_HL in tE gespeichert.

In den folgenden Schritten S204-S208 wird im uC 11 die Flanke fur den nächsten Hall-Interrupt eingestellt. Hierzu wird in S204 überprüft, ob HALL = 1 ist. Ist dies der Fall, wird in S206 die Flanke, bei der der nächste Hall-Interrupt ausgelöst werden soll, auf eine fallende Flanke (HIGH-> LOW) gesetzt. Ansonsten wird in S208 die Flanke auf steigende Flanke (LOW-> HIGH) gesetzt.

In S210 wird nun anhand des Flags DE (Drehzahl Erreicht) zwischen zwei Fallen unterschieden: 'ist DE = 1, so ist entweder kein Timer-interrupt aufgetreten, oder ein Timer- Interrupt ist aufgetreten, und die Zundwinkelverschiebung war eingeschaltet.

Beides sind, wie spater weiter erlautert wird, Zeichen dafur, daf3 der Motor seine Drehzahl erreicht hat.

Ist DE = 0, so war die Zundwinkelverschiebung ausgeschaltet (SZW = 0), und ein Timer-interrupt ist aufgetreten. Dies ist, wie spater erlautert wird, ein Zeichen dafur, daf3 die Mindestdrehzahl nmin, ab der die Zundwinkelverschiebung eingeschaltet wird, noch nicht erreicht ist.

Fur den Fall DE = 0 wird die Kommutierung durchgefuhrt und der Timer CNTHL auf einen festen Wert t-max (maximale Hall-Lange) gesetzt, der der Mindestdrehzahl nmin entspricht. lst z. B. die Mindestdrehzahl 300 U/min, so betragt nach Gleichung (4) tmax = 15 000 000/300 = 50 000 us Hierzu werden in S212 OUT1 und OUT2 auf 0 gesetzt.

In S214 werden das Autoreload-Register AR und der Zähler CNT_HL auf tmax (z. B.

50000) gesetzt. Der Timer CNT_HL arbeitet in diesem Beispiel mit einer Auflosung von 1 us. Das Setzen von CNTHL auf eine Lange von 50000 us entspricht einer Drehzahl von 300 U/min. Daraufhin wird der Timer CNTHL gestartet.

In S216 wird das Flag DE (war 0) auf 1 gesetzt und in S218-S222 die Kommutierung durchgefuhrt. Ist in S218 HALL = 1, so wird in S220 OUT1 auf HIGH, ansonsten in S222 OUT2 auf HIGH gesetzt. Fur die zwischen dem Ausschalten der Ports OUT1 und OUT2 in S212 und dem Einschalten von OUT1 bzw. OUT2 in S220 bzw. S222 durchgefuhrten Programmschritte S214-S218 hat das Programm eine gewisse Zeit benotigt, so daB eine ausreichende Kommutierungslucke (Fig. 21: t_G) eingehalten wurde, z. B. 50 us.

In S224 wird schließlich der Hall-Interrupt verlassen.

Falls in S210 DE = 1 war, wird in S230 die Berechnung der Hall-Lange t_H und des neuen Timerwerts t-TI fOr die Zundwinkelverschiebung angefordert. Das Hauptprogramm ist mit Hilfe eines Funktionsmanagers aufgebaut, der nachfolgend in Fig. 15 naher beschrieben ist. Der Funktionsmanager ermöglicht es, durch Setzen von Flags Routinen anzufordern und durch das Zurucksetzen der Flags die Anforderung zu loschen. Fur die Anforderung der Berechnung wird in S230 ein Flag FCT_ZWV auf 1 gesetzt.

Eine mögliche Alternative zu S230 besteht darin, die Berechnung direkt in der Hall- Interruptroutine (Fig. 8) durchzufuhren. Dies soll durch S232 angedeutet werden.

Wird die Berechnung in S232 ausgefuhrt, so kann fur die Berechnung der Timer- Interruptzeit tut) welche der Halizeit t_HN (z. B. t_H5) zugeordnet ist, die Halizeit thon-i (z. B. t_H4) verwendet werden. Wird S230 verwendet, so wird die Hallzeit t_HN 2 (z. B. t_H3) verwendet, oder eine noch frühere Hallzeit, wie bei den Fig. 17 bis 19 beschrieben. Wird die Berechnung im Hallinterrupt durchgefuhrt (S232), so entfallt S230. Die nachfolgende Beschreibung bezieht sich auf eine Version ohne S232.

In S234 (Fig. 8B) wird gepruft, ob das Flag KD = 1 ist (KD = Kommutierung Durchgefuhrt). Falls KD = 1 ist, so ist in der zu dem Hall-Interrupt gehörenden Hailzeit ein Timer-lnterrupt aufgetreten, wie in Fig. 7A fur HN+1 dargestellt, und die Zundwinkelverschiebung war eingeschaltet. In diesem Fall wurde die Kommutierung bereits im Timer-interrupt (TN+1 in Fig. 7A) durchgefuhrt, und es wird direkt zu S238 gesprungen.

Ist in S234 KD = 0, so ist in der zu dem Hall-Interrupt gehörigen Halizeit kein Timer- Interrupt aufgetreten, d. h. man hat die Situation gemaB Fig. 6. Die Kommutierungslücke (t_G in Fig. 21) wird in S236 durch das Setzen beider Ports OUT1 und OUT2 auf Null gestartet, d. h. die Statorwicklung 38 (Fig. 1) erhalt kurzzeitig keine Energie zugeführt. Der Fall, daB ein Timer-Interrupt aufgetreten ist, aber aufgrund inaktiver Zundwinkelverschiebung bei diesem Interrupt nicht kommutiert worden ist, wird in dem Zweig unter S210 fur DE = 0 berucksichtigt (Fig. 8A).

In S238 werden das Autoreload-Register AR und der Timer CNT_HL mit dem in der nachfolgend beschriebenen Zundwinkelberechnung (Fig. 9 oder 19) berechneten Wert t TI geladen, und der Timer CNT_HL wird gestartet.

In S240 wird die Zundwinkelverschiebung durch das Setzen des Flags SZW: = 1 auf aktiv gesetzt, da die erforderliche Drehzahl erreicht war (DE = 1), z. B. bei diesem Beispiel die Drehzahl 300 U/min.

In S242 wird wieder anhand des Flags KD (Kommutierung Durchgefuhrt) uberpruft, ob die Kommutierung bereits stattgefunden hat. Falls nicht (KD = 0), wird in S244 anhand des Signals HALL überprüft, ob entweder in S246 OUT1 auf HIGH oder in S248 OUT2 auf HIGH gesetzt wird. Die Kommutierungslücke (L-G in Fig. 21) wird hierbei durch die zwischen dem Ausschalten der Ports OUT1 und OUT2 (S236) und dem Einschalten liegenden Schritte S238 bis S244 erzeugt.

In S250 wird die Hall-lnterruptroutine schließlich verlassen.

Fig. 9 zeigt ein Flußdiagramm fur eine beispielhafte Routine zur Zundwinkelberechnung, welche bei erreichter Mindestdrehzahl bei jeder Hall- lnterruptroutine (Fig. 8) durch Setzen des Anforderungsbits FCTZWV (Fig. 15) angefordert wird, vgl. S230 in Fig. 8A. Die Zundwinkelberechnung wird durch den Funktionsmanager 190 (Fig. 15) aufgerufen, wenn keine Aufgaben höherer Priorität angefordert sind. Man kann deshalb nicht genau sagen, wann diese Berechnung stattfindet. Die Zeitpunkte BN (z. B. in Fig. 12A und 12B), an denen die Zundwinkel- berechnung ausgefuhrt wird, sind also nicht genau festgelegt, sondern stellen Beispieizeitpunkte dar.

Es ist zu beachten, daB die Berechnung der Hall-Lange t_H immer fur eine vorhergehende Hallzeit gilt. So wird z. B. während der Halizeit t_HN die Hall-Lange t-HN-1 berechnet.

In S252 wird anhand des Flags KD überprüft, ob in dem Timer-Interrupt (z. B. TN+1 in Fig. 7) eine Kommutierung durchgefuhrt wurde, vgl. S234 in Fig. 10. Falls ja (KD = 1), so ergibt sich gemiib S254, wie in Fig. 7 gezeigt und dort beschrieben, die Hall- Lange t_H aus der Startzeit t-B und der Zeit t_1, welche die Differenz von t_B und tE ist. Falls nein (KD = 0), ergibt sich gemaf3 S256 die Hall-Lange t_H aus der Differenz von t_B und tE, vgl. Fig. 6.

In S258 wird zu der Hall-Lange t_H eine Korrekturzeit tCORR addiert. Diese ergibt sich daraus, daB der Timer CNT_HL am Anfang der Hall-Interruptroutine (Fig. 8A und 8B) bei S202 angehalten, aber erst spater in S232 erneut gestartet wird. Bis dahin hat die Hall-Interruptroutine eine gewisse Zeit benötigt, die nun als tCORR (z. B. 40 us) addiert wird, um in S258 die exakte Hall-Lange t_H zu erhalten.

In S260 wird die augenblickliche Hall-Lange t_H in dem Ist-Hallwert t i abgespeichert, damit der momentane Ist-Hallwert allen anderen Programmteilen (z. B. der Regelung) als MaB fur die augenblickliche Drehzahl zur Verfugung steht.

In S262 wird die aktuelle Startzeit des Timers CNT_HL in tB gesichert, so daB sie fur die Berechnung von t-Ti wahrend der nächsten Hallzeit verfugbar ist.

Es folgt eine Uberprufung der Drehzahl, da erst ab einer vorgegebenen Mindestdrehzahl nmin, z. B. 300 U/min, eine Zundwinkelverschiebung durchgefuhrt werden soll. Hierzu wird in S264 verglichen, ob t-H > tSZW ist. t_SZW (z. B. 49664 us, was OxC200 entspricht) ist die maximale Hall-Lange, bis zu der eine Zundwinkelverschiebung durchgefuhrt werden soll. Ist t_H groBer als tSZW, so ist der Motor zu langsam, und in S266 wird mit SZW: = 0 die Zundwinkelverschiebung ausgeschaltet.

In S268 wird der Kommutierungszeitpunkt t TI, also der Zeitpunkt, zu dem ein Timer- Interrupt ausgelöst werden soll, berechnet. Hierzu wird in S268 ein Wert t ZW, namlich die Zeit, um die der Zeitpunkt der Kommutierung nach fruh verschoben werden soll, subtrahiert, z. B. 200 us. Das kann ein konstanter Wert sein, oder auch ein Wert, der von einem Motorparameter abhangig ist. Uber den Bus 30 (Fig. 14) kann dieser Wert tZW von auben verändert werden. Ist tZW = 0, so ist die Zündwinkelverschiebung abgeschaltet.

Die Zündwinkelberechnungsroutine ist nun abgearbeitet worden. Das Anforderungsbit FCTZWV (Fig. 15) wird in S270 auf 0 gesetzt, in S272 wird das Flag KD wieder auf 0 gesetzt, damit es fur die folgende Hallzeit genutzt werden kann, und in S274 wird das Anforderungsbit FCT_RGL (Fig. 15) der Regelung des Motors gesetzt, so daB diese angefordert wird.

Die Hauptaufgaben der Zundwinkelberechnungsroutine gemäß Fig. 9 waren also das Bestimmen der Zeitdauer der vorhergehenden Hall-Lange (S258), das Berechnen des Kommutierungszeitpunkts fur die folgende Hallzeit (S268), und das Anfordern der Regelung (S274).

Fig. 10 zeigt ein Flußdiagramm für eine beispielhafte Timer-lnterruptroutine, welche zur Motorsteuerung dient und ausgelost wird, wenn der in dem vorhergehenden Hall- Interrupt initialisierte und gestartete Timer CNT_HL auf 0 zuruckgezahtt hat, bevor der nächste Hall-Interrupt ausgelöst wird, vgl. Fig. 7A und 7B.

Beim Erreichen des Wertes 0 wird der Timer CNTHL in S302 mit dem Wert t_AR des Autoreload-Registers AR geladen und erneut gestartet, da er gleichzeitig fur die Berechnung der Hall-Lange t_H dient. Dieser Schritt wird von dem uC 11 bei Erreichen der 0 fur diesen Zähler automatisch ausgeführt und ist nur zur Verdeutlichung in das Fluf3diagramm aufgenommen worden.

In S304 wird anhand des Flags SZW überprüft, ob die Zundwinkelverschiebung aktiv ist. Ist sie nicht aktiv, so lauft der Motor langsamer als die minimale Drehzahl. Dies wird ersichtlich, da bei nicht aktiver Zundwinkelverschiebung, wenn der Timer- Interrupt stattgefunden hat, in der Hal 1-1 nterru ptroutine in S214 das Autoreloadregister AR und der Timer CNT_HL auf die der minimalen Drehzahl n_min entsprechende maximale Hall-Lange tmax gesetzt werden. Findet trotzdem der Timer-interrupt (TN+1 in Fig. 7) vor dem Hall-Interrupt (HN+1 in Fig. 7) statt, so ist die minimale Drehzahl nmin nicht erreicht, und das Flag DE (Drehzahl Erreicht) wird auf 0 gesetzt und in S308 die Timer-Interruptroutine verlassen.

Bei aktiver Zundwinkelverschiebung (SZW =1) wird von S304 nach S310 gesprungen, wo die beiden Ports OUT1 und OUT2 zum Beginn der Kommutierungslücke auf 0 gesetzt werden.

Die Schritte S312 bis S316 bilden eine Programmschleife, welche eine ausreichend lange Kommutierungslücke (t_G in Fig. 21) bewirkt. Hierzu wird in S312 einem Zähler DELCNT ein Verzogerungswert t_DEL zugeordnet, z. B. die Zahl 5. In S314 wird der Zähler DELCNTurn 1 dekrementiert und in S316 wird überprüft, ob DELCNT schon den Wert 0 erreicht hat, die Verzögerungsschleife also vollständig abgearbeitet ist.

Falls nicht, wird wieder nach S314 zuruckgesprungen und die Schleife setzt fort.

Wenn ein Durchlauf der Schleife z. B. 10 us benötigt, so erhalt man mit den oben genannten Werten eine Verzögerung von 50 us, während der die Ports OUT1 und OUT2 beide das Ausgangssignal 0 haben, was die Kommutierungslücke tG bewirkt.

AnschlieBend findet in gewohnter Weise die Kommutierung statt, wie bereits in Fig.

8A bei S218 bis S224 beschrieben. Ist in S318 der Hallwert HALL = 1, so wird in S320 OUT1 auf HIGH gesetzt, ansonsten wird in S322 OUT2 auf HIGH gesetzt. Die Kommutierung ist also-mit Zundwinkelverschiebung-im Timer-Interrupt und vor dem Hall-Interrupt durchgefuhrt worden, also in Fig. 7 zum Zeitpunkt TN+1 vor dem Hall- Interrupt Han+1.

In S324 wird das Flag KD (Kommutierung Durchgefuhrt) auf 1 gesetzt, damit die Hall- lnterruptroutine und die Zundwinkelberechnungsroutine dies erkennen können, und daraufhin wird die Hall-lnterruptroutine in S326 verlassen.

Fig. 11 zeigt beispielhaft eine Darstellung des Signals HALL, der Zeitpunkte der Hall-lnterrupts HN und der Timer-Interrupts TN beim Hochlauf eines erfindungsgemäßen Motors. Die Halizeiten t_HN, welche jeweils zwischen den Hall- Interrupts HN-1 und HN stehen, werden immer kurzer, da der Motor beschleunigt. Es tritt nicht während jeder Halizeit ein Timer-Interrupt auf. In diesem Beispiel wird in t_H2 und den folgenden Hallzeiten eine Zundwinkelberechnung ausgefuhrt, aufgrund der Beschleunigung des Motors treten in diesem Beispiel jedoch nur die Timer- Interrupts T1) T10 und Tll auf, da die Drehzahl erst ab t_H8 einigermaben konstant wird.

In Fig. 12A und 12B ist der Verlauf der Fig. 11 in vergroBertem MaBstab dargestellt und mit zusatzlichen Erlauterungen versehen.

Fig. 12A und 12B zeigen einen zeitlichen Beispielverlauf eines Starts eines erfindungsgemäßen Motors. Dieser soll das Zusammenspiel des Hall-interrupts, der Zündwinkelberechnung und des Timer-interrupts verdeutlichen.

In Fig. 12A und 12B werden folgende Variablen verwendet: DE: Flag"Drehzahl Erreicht" KD: Flag"Kommutierung Durchgefuhrt" SZW: Flag"Start ZundwinkelVerschiebung" t_AR: Wert im Autoreloadregister AR (Fig. 1) CNT_HL: Timer fur Timer-interrupt und Berechnung der Hall-Lange tE: Stoppzeit (Zeit des Endes) tH: Hall-Lange (Hallzeit) t-B: Startzeit (Zeit des Beginns) OUT1: Port des uC 11 zur Bestromung des Motors OUT2: Port des uC 11 zur Bestromung des Motors Das Signal HALL am Eingang Hall des uC 11 ist eingetragen. Die Hall-Längen t_H stehen jeweils zwischen den sie umschließenden Hall-Interrupts, z. B. t_H2 = 40 ms zwischen H1 und H2, t_H3 = 35 ms zwischen H2 und H3, etc. Hall-Interrupts sind jeweils mit HN, Timer-interrupts mit TN und Ausführungen der Zundwinkelberechnung mit BN angezeigt, wobei N die Indexzahl der zugehörigen Hall-Lange t_HN ist.

Unter dem Signal HALL befinden sich einige wichtige Variablen, welche in dem in dem uC 11 ablaufenden Programm verwendet werden. Die Angabe von Zeiten erfolgt aus Platzgründen in ms, wohingegen programmintern mit us-Zeiten gearbeitet wird.

Beim Start des Motors werden einige der Variablen initialisiert (Spalte INIT). t_TI und t-B werden mit 50 ms initialisiert. Dies entspricht einer Drehzahl von 300 U/min, und erst ab dieser Drehzahl wird in diesem Ausführungsbeispiel die Zundwinkelverschiebung eingeschaltet. DE und KD werden auf 0 gesetzt, da die erforderliche Drehzahl anfangs noch nicht erreicht ist, und SZW ist auch mit 0 initialisiert, da die Zundwinkelverschiebung ausgeschaltet ist.

Bei dem ersten Hall-Interrupt HO werden das Autoreload-Register AR und der Timer CNT_HL das erste Mal mit 50 ms geladen, und der Timer CNT_HL wird gestartet. Die Hall-Lange t_H1 betragt 60 ms, so daB der Timer-Interrupt T1 vor dem Hallinterrupt H1 auftritt.

Da die Zundwinkelverschiebung ausgeschaltet ist (SZW = 0), wird in der Timer- lnterruptroutine als einziges der Wert DE auf 0 gesetzt (S306 in Fig. 10). Dies zeigt dem Hall-lnterrupt an, daB der Motor noch nicht die Mindestdrehzahl nmin erreicht hat, da die Hall-Lange t_H1 groBer als die maximale Hall-Lange tmax ist, die der Mindestdrehzahl n_min entspricht. Der Timer CNT_HL wird automatisch mit dem Autoreload-Wert t_AR von 50 ms aufgeladen und gestartet.

Durch den Hall-Interrupt H1 wird die Hall-Interruptroutine (Fig. 8) aufgerufen. Die Stoppzeit tE von 40 ms, die sich daraus ergibt, daB zwischen dem Timer-lnterrupt T1, bei dem der Timer CNT_HL erneut auf 50 ms gesetzt wurde, und dem Hall-Interrupt H1 10 ms vergangen sind, wird gesichert. Da DE = 0 ist, wird die Kommutierung zum Zeitpunkt H1 durchgefuhrt, tAR und CNT_HL werden mit 50 ms geladen und der Timer CNT_HL wird gestartet. DE wird auf 1 gesetzt. Es wird keine Berechnung angefordert.

Wahrend der Hall-Lange t-H2 erreicht der Motor erstmals im Durchschnitt die Mindestdrehzahl von 300 U/min, so daB der Hall-Interrupt H2 ausgelöst wird, bevor der Timer CNT_HL auf Null heruntergezahlt hat. Es findet also kein Timer-lnterrupt T2 statt.

In der Hall-Interruptroutine beim Hallwechsel H2 wird die Stoppzeit tE des Timers CNT_HL von 10 ms gesichert. DE hat dadurch, daB wahrend der Hall-Lange tH2 kein Timer-Interrupt aufgetreten ist, seinen Wert DE = 1 behalten. Dadurch erkennt die Hall-Interruptroutine, daB die Drehzahl von 300 U/min überschritten wurde. In der Hal 1-1 nterru ptroutine wird die Zündwinkelberechnungsroutine (Fig. 9) angefordert und die Zundwinkelverschiebung wird durch SZW: = 1 aktiviert. Da innerhalb der Hall- Lange t_H2 noch nicht kommutiert wurde (KD = 0), wird die Kommutierung wahrend der Hall-lnterruptroutine zum Zeitpunkt H2 durchgefuhrt. Das Autoreload-Register AR und der Timer CNTHL werden mit dem beim Start des Motors auf 50 initialisierten Wert t TI geladen, da noch keine Zündwinkelberechung durchgefuhrt wurde, und der Timer CNT_HL wird erneut gestartet.

Wahrend der Hall-Lange t_H3 wird das erste Mal die Berechnung der Zundwinkelverschiebung ausgefuhrt. Es ist kein Timer-Interrupt aufgetreten (KD = 0), so daB sich die wahrend der Hall-Lange t_H3 berechnete Hall-Lange t_H2 aus t_B = 50 ms und tE = 10 ms zu t_H = 40 ms ergibt. Hieraus ergibt sich bei einer Zundwinkelverschiebungszeit von tZW = 0,2 ms eine Timer-lnterruptzeit von 39,8 ms. Die Timerstartzeit der Hallzeit t_H3 wird in t_B gesichert.

Die Hall-lnterruptroutine zum Hall-Interrupt H3 lauft analog zu der Hall-Interruptroutine zum Hall-Interrupt H2 ab, da der Motor weiterhin beschleunigt und der Hall-interrupt auftritt, bevor der Timer CNT_HL den Wert 0 erreicht. Es tritt deshalb in dieser Hallzeit kein Timer-Interrupt auf. Dies geschieht ebenso bei den Hall-Interrupts H4, H5, H6 und H7. Die Zundwinkelberechnungsroutinen B4, B5, B6 und B7 werden ebenfalls in der jeweiligen Hallzeit aufgerufen.

In der Halizeit t_H8 erreicht der Motor schließlich seine Solldrehzahl von 1500 U/min, die einer Hait-Lange von 10 ms entspricht. Da bei diesem Beispiel die Timer- Interruptzeit t TI fur die Hallzeit t_HN immer während der Halizeit tHN-iaus der Hall- Lange t_HN-2 berechnet wird, ist ein"Nachlauf"von zwei Hallzeiten vorhanden, d. h. die erste Hallzeit, bei der der Timer CNT_HL mit der korrekten Timer-Interruptzeit t TI gestartet ist, ist tHio, da die Hallzeit t_H8 die erste Halizeit mit 10 ms war und das Ergebnis aus der Hall-Langenberechnung der Halizeit von t_H8 erst in t_H1o verwendet wird.

Während der Hailzeit t_Hio wird die Zundwinkelberechnung B1o normal ausgeführt.

Der Startwert tut) fur das Autoreload-Register AR und den Timer CNT_HL betrug während der Hall-Interruptroutine zu Hg 9,8 ms.

Deshalb wird 9,8 ms nach dem Hall-Interrupt Hg ein Timer-interrupt T10 ausgelöst. Der Timer CNT_HL wird automatisch mit dem Wert t_AR (9,8 ms) aufgeladen und erneut gestartet. Die Zundwinkelverschiebung ist eingeschaltet (SZW = 1), so daR in der Timer-Interruptroutine (T10) kommutiert wird. Das Flag KD wird auf 1 gesetzt, um der folgenden Hall-Interruptroutine zu H1o und der Zundwinkelberechnung anzuzeigen, daB kommutiert wurde.

In der Hall-lnterruptroutine zum Hall-Interrupt H10 wird der Stoppwert des Timers CNT_HL in tE gesichert, die Zundwinkelberechnungsroutine angefordert, das Autoreload-Register AR und der Timer CNT_HL geladen, und der Timer CNT_HL gestartet. Da die Kommutierung bereits in der Timer-lnterruptroutine zum Timer- Interrupt T10 stattgefunden hat, wird nicht mehr kommutiert.

Die folgenden Hallzeiten t_H11 usw. verlaufen wie t_Hlo, falls sich Istdrehzahl oder Solldrehzahl des Motors nicht andern.

Regelung des Motors Fig. 13 zeigt den fur Regelung und Antrieb des Motors wichtigen Teil der Schaltung.

Gleiche oder gleich wirkende Teile wie in den vorhergehenden Figuren sind mit denselben Bezugszeichen bezeichnet wie dort und werden gewöhnlich nicht nochmals beschrieben.

Die Belegung der Anschlüsse des uC 11 ist wieder Fig. 3 zu entnehmen. Die Ausgange OUT1 und OUT2 des uC 11 steuern die als H-Brucke 37 geschalteten npn- Transistoren 141,142,143 und 144.

Ein Ausgang RGL des uC 11 ist uber einen Widerstand 123 an einen Kondensator 124 angeschlossen. Wird RGL auf HIGH gesetzt, so wird der Kondensator 124 aufgeladen, ist RGL auf LOW, so wird der Kondensator entladen, und ist RGL auf TRISTATE, so ist der Kondensator 124 von RGL abgekoppelt und halt seine Spannung. Ohne die Strombegrenzung 44, welche weiter unten beschrieben wird, könnte der Punkt 125 direkt mit dem Pluseingang des Komparators 120 verbunden werden.

Ist der npn-Transistor 150 nicht leitend, die Strombegrenzung 44 also inaktiv, so stellt sich uber den Widerstand 126 an einem kleineren Kondensator 127 die gleiche Spannung wie die des Kondensators 124 ein. Uber den Ausgang RGL des uC 11 kann also die Spannung an dem Pluseingang des Komparators 120 beeinflußt werden.

An dem Minuseingang des Komparators 120 liegt ein durch einen Dreiecksoszillator 35 erzeugtes Dreiecksignal an. Der Dreiecksoszillator 35 weist einen Komparator 130 auf. Vom Ausgang P3 des Komparators 130 fuhrt ein Mitkopplungswiderstand 132 zu dessen Pluseingang, und ebenso fuhrt ein Gegenkopplungswiderstand 131 vom Ausgang P3 des Komparators 130 zum Minuseingang des Komparators 130. Ein Kondensator 135 liegt zwischen dem Minuseingang des Komparators 130 und Masse 100. Der Ausgang des Komparators 130 ist ferner uber einen Widerstand 133 mit +Vcc verbunden. Der Pluseingang des Komparators 130 ist uber zwei Widerstände 134 und 136 mit +Vcc bzw. Masse 100 verbunden.

Zur Erlauterung der Wirkungsweise des Dreiecksgenerators 35 und der Steuerung des Ausgangs RGL des uC 11 durch den uC 11 wird auf DE198 36 882.8 (intern: D216) verwiesen.

Liegt die Spannung des Dreiecksignals am Minuseingang des Komparators 120 unter der des Referenzsignals am Pluseingang des Komparators 120, so ist der Ausgang OFF des Komparators 120 auf HIGH, und die unteren Transistoren 141 bzw.

143 können uber die logischen UND-Glieder 147 bzw. 148 durch OUT1 bzw. OUT2 aus-und eingeschaltet werden. Liegt die Spannung des Dreieckssignals uber der des Referenzsignals, so ist der Ausgang OFF des Komparators 120 auf LOW und damit kann die Statorwicklung 38 nicht bestromt werden.

Uber die Spannung am Kondensator 124 und damit auch am Kondensator 127 wird also das sogenannte Tastverhaltnis eingestellt, das Verhältnis der Dauer, die der Ausgang des Komparators 120 während einer Periode des Dreieckssignals auf HIGH ist zu einer ganzen Periode. Das Tastverhältnis kann zwischen 0 % und 100 % liegen. lst die Motordrehzahl z. B. zu hoch, so wird der Kondensator 124 uber RGL entladen und damit das Tastverhältnis verkleinert. Das Ganze wird als Pulsweitenmodulation (PWM) bezeichnet. Der Pullup-Widerstand 128 dient dazu, den Open-Collector-Ausgang OFF des Komparators 120 bei HIGH auf +Vcc zu ziehen.

Um beim Einschalten den Motor starten zu können, wird der Kondensator 124 bei der Initialisierung eine vorgegebene Zeitdauer uber RGL aufgeladen, damit die Spannung am Kondensator 127 den erforderlichen Mindestwert fur das Einschalten des Komparators 120 und damit der Bruche 37 erreicht.

Eine Strombegrenzung 44 wird dadurch verwirklicht, daB der Strom in der Statorwicklung 38 uber einen MeBwiderstand 140 zu Masse 100 fließt. Je hoher der Strom durch den Widerstand 140 ist, desto hoher ist die Spannung an ihm und damit auch das Potential am Punkt 149.

Erreicht das Potential an 149 einen bestimmten Wert, so wird der Transistor 150 leitend und reduziert die Spannung am Kondensator 127, und das Tastverhältnis am Ausgang des Komparators 120 wird dadurch kleiner. Der Widerstand 126 verhindert, daB der grole Kondensator 124 bei einer Strombegrenzung ebenfalls entladen wird, und er beschleunigt die Strombegrenzung, da der kleine Kondensator 127 schneller entladen werden kann. Nach dem Ende der aktiven Strombegrenzung wird der kleinere Kondensator 127 durch den groben Kondensator 124 wieder aufgeladen und so auf dessen Spannung gesetzt. Der Widerstand 126 und der Kondensator 127 bewirken also, daß die Strombegrenzung 44 eine höhere Priorität als die Regelung besitzt.

Die Strombegrenzung 44 weist ein Filterglied aus einem Widerstand 151 und einem Kondensator 152 gegen Masse, gefolgt von dem npn-Transistor 150, der bei einer genügend hohen Spannung an seiner Basis den Pluseingang des Komparators 120 auf Masse 100 zieht, auf. Dahinter folgt ein weiteres aus den Widerständen 153 und 155 und dem Kondensator 154 bestehendes Siebglied.

Fur die Beschreibung einer alternativen Form der Strombegrenzung wird auf DE 198 26 458.5 (intern: D215) verwiesen. Sie kann wie dort auch mit Hilfe eines Komparators aufgebaut werden und programmgesteuert sein.

EEPROM-Funktion Fig. 14 zeigt den Ausschnitt der Schaltung, der das EEPROM 26 und das Businterface 30 betrifft. Die Pinbelegung des uC 11 ist wieder Fig. 3 zu entnehmen.

Gleiche oder gleich wirkende Teile wie in den vorhergehenden Figuren sind mit denselben Bezugszeichen bezeichnet wie dort. Das EEPROM 26 ist z. B. vom Typ"2- Wire Serial CMOS EEPROM AT24C01A" (ATMEL) Das EEPROM 26 erhält an seinem Dateneingang SDA das Signal ESDA (Fig. 2) des pC 11 und an seinem Eingang SCL das Signal ESCL. Beide Leitungen sind uber Widerstände 172,173 mit +Vcc verbunden.

Der Schreibschutzeingang WP des EEPROM 26 ist mit dem Pin CS (Chip Select) des pC 11 verbunden. lst CS auf HIGH, so ist das EEPROM 26 schreibgeschutzt, ist CS auf LOW, so können Daten in das EEPROM 26 geschrieben werden. Die Anschlüsse VSS, A0, A1 und A2 des EEPROM 26 sind mit Masse 100 verbunden, und der Anschluß VCC des EEPROM 26 mit +Vcc.

Die Leitungen ESDA und ESCL stellen also den seriellen Bus zwischen dem uC 11 und dem EEPROM 26 dar, der hier als IIC-Bus betrieben wird.

Normalerweise wird das EEPROM 26 in der Fabrik einmal uber das Businterface 30 programmiert, eine Neuprogrammierung ist jedoch jederzeit möglich. Alternativ kann der Motor auch ohne den Bus 30 betrieben werden, wobei das EEPROM 26 dann mittels einer bekannten Vorrichtung programmiert wird, ehe man es in den Motor einsetzt.

Das Businterface 30 arbeitet mit einem IIC-Bus. Es verfugt uber eine Datenleitung DATA mit einem Anschluß 160, die uber einen Widerstand 162 an den Anschluß SDA des uC 11 angeschlossen ist. Vom Anschluß SDA führt ein Widerstand 165 zu +Vcc und ein Kondensator 167 zu Masse 100. AuBerdem ist der Anschluß SDA mit dem Emitter eines pnp-Transistors 168 verbunden, dessen Kollektor mit Masse 100 und dessen Basis uber einen Widerstand 169 mit dem Anschluß N 16 des pC 11 verbunden sind.

Weiterhin hat das Businterface 30 eine Taktleitung CLOCK mit einem Anschluß 161, die uber einen Widerstand 163 an den Anschluß SCL des uC 11 angeschlossen ist.

Vom Anschluß SCL des uC 11 fuhrt ein Widerstand 164 zu +Vcc und ein Kondensator 166 zu Masse 100.

Die Schaltung mit dem pnp-Transistor 168 dient dazu, sowohl den Ausgang N 16 als auch den Eingang SDA des C 11 mit der bidirektionalen Leitung DATA des IIC- Buses zu verbinden.

Fur eine weitergehende Beschreibung des EEPROM 26, des Businterfaces 30 und deren Programmierung wird auf DE 198 26 458.5 (intern: D215) verwiesen.

Mit dem Businterface 30 ist es möglich, Werte im EEPROM 26 zu verandern. So kann z. B. die minimale Drehzahl nmin, ab der die Kommutierung mit Zundwinkel eingeschaltet werden soll, durch das Setzen des Werts t_SZW im EEPROM verandert werden und somit die Konfiguration des Motors geändert werden. Ebenso geändert werden kann z. B. die Zündwinkeizeit t ZW.

Funktionsmanager Fig. 15 zeigt ein Flußdiagramm mit einer möglichen Ausführungsform des in dem uC 11 ablaufenden Gesamtprogramms. Nach dem Einschalten des Lüfters wird in dem pC 11 ein interner Reset ausgelost. In S600 erfolgt die Initialisierung des uC 11. Es werden z. B. Parameter aus dem EEPROM 26 in das RAM des uC 11 ubertragen.

Nach der Initialisierung erfolgt ein Sprung in den bereits erwähnten Funktionsmanager 190, der in S602 beginnt. Dieser regelt den Ablauf der einzelnen Unterprogramme und bestimmt deren Prioritäten.

Als erstes werden die Funktionen abgearbeitet, die zeitkritisch sind und bei jedem Durchlauf abgearbeitet werden mussen. Hierzu zahlt die Kommunikationsfunktion COMM in S602, da der IIC-Bus 30 (Fig. 14) z. B. bei einer Baudrate von 2 k alle 250 us überprüft werden muB.

Fig. 16 zeigt ein beispielhaftes Funktionsregister 195, in dem für jede weitere Funktion ein Bit reserviert ist.

In diesem Beispiel ist das Funktionsregister 195 1 Byte grogs, und es sind, von dem niederwertigsten Bit (LSB) beginnend, die folgenden Anforderungsbits fur die unten erklarten anforderbaren Funktionen definiert: Bit1: FCTZWV fur die Zundwinkelberechnungsroutine, Bit2: FCTRGL fur eine Regelroutine beliebiger Art.

Die restlichen Bits sind fur zusätzliche anforderbare Funktionen reserviert, die bei Bedarf in den Funktionsmanager 190 eingefugt werden können.

Soll eine bestimmte anforderbare Funktion durch eine andere Funktion oder eine Interruptroutine angefordert werden, so wird das Bit der anzufordernden Funktion auf 1 gesetzt. Das nächste Mal, wenn der Funktionsmanager 190 bei einem Durchlauf keine andere anforderbare Funktion mit höherer Priorität aufgerufen hat, so wird diese Funktion ausgeführt.

Ist eine angeforderte Funktion abgearbeitet, so setzt sie ihr Bit (Fig. 16) wieder auf 0, z. B. FCTRGL: = 0.

In Fig. 15 wird nach S602 in einer vorbestimmten Reihenfolge, von der wichtigsten anforderbaren Funktion ausgehend, jeweils gepruft, ob deren Anforderungsbit gesetzt ist. Ist dies bei einer Funktion der Fall, so wird diese ausgeführt, und daraufhin wird wieder an den Anfang S602 des Funktionsmanagers 190 gesprungen. Die Reihenfolge der Uberprufung des Funktionsregisters 195 gibt die Prioritierung der anforderbaren Funktionen vor. Je hoher eine solche Funktion in dem Funktionsmanager 190 steht, desto hoher ist ihre Priorität.

Die aufgerufenen Funktionen mussen so kurz sein, daf3 ihre Abarbeitungszeit, addiert zu den immer ausgefuhrten Funktionen (hier S602) und den Interruptroutinen, nie größer als die maximal zulassige Zeit zwischen zwei Abfragen des IIC-Buses 30 ist. In dem obigen Beispiel mit einer Baudrate von 2 k und einer maximal zulassigen Zeit von 250 us liegt die maximale Abarbeitungszeit fur die in S610 oder S614 aufgerufenen Funktionen bei ca. 100 us.

In S610 wird überprüft, ob das Anforderungsbit FCTZWV fur die Zund- winkelverschiebung gesetzt ist, also den Wert 1 hat. lst es gesetzt, so wird nach S612 gesprungen, und die Zundwinkel-Berechnungsroutine (Fig. 9 oder 19) wird ausgefuhrt. Vor der Beendigung setzt die Zundwinkel-Berechnungsroutine ihr Anforderungsbit FCTZWV zuruck und fordert in S274 durch Setzen des Anforderungsbits FCT_RGL die Regelroutine an.

War in S610 FCTZWV nicht gesetzt, so wird in S614 überprüft, ob FCT_RGL gesetzt ist. lst dies der Fall, so wird in S618 eine Regelroutine zur Regelung der Motordrehzahl aufgerufen.

Waren keine der in S610 und S614 überprüften Bits gesetzt, so wird wieder nach S602 gesprungen, und die Funktionen, die bei jedem Durchlauf des Funktionsmanagers 190 ausgeführt werden, werden erneut aufgerufen.

Fig. 15 zeigt auch bei 620 symbolisch einen Hall-Interrupt, der die höchste Priorität L1 (Level 1) hat. Ein Hall-Interrupt hat diese hohe Priorität, weil die genaue Erfassung der Hall-Signale fur einen ruhigen Lauf des Motors 39 sehr wichtig ist. Er unterbricht alle Prozesse des Funktionsmanagers 190, wie durch einen Pfeil 621 symbolisiert.

Unter dem Hall-Interrupt ist bei 622 ein Timer-interrupt dargestellt. Dieser hat eine niedrigere Prioritat L2 und unterbricht alle Prozesse unter ihm, wie durch den Pfeil 623 angedeutet. Eine exakte Kommutierung ist ebenfalls sehr wichtig fur einen ruhigen Lauf des Motors, und deshalb hat der Timer-Interrupt 622 die zweithochste Priorität.

Wenn Hall-Interrupt und Timer-interrupt gleichzeitig angefordert wurden, wurden sie nach der Reihenfolge ihrer Priorität abgearbeitet.

Die nachstniedere Priorität L3 hat die Funktion COMM, da bei der Kommunikation uber den Bus 30 keine Daten verlorengehen durfen.

Die nachstniedere Prioritat L4 hat die Funktion ZWV, die in S230 angefordert werden kann und die in Fig. 9 (oder 19) dargestellt ist.

Die niedrigste Prioritat L5 hat die Funktion RGL (S614), da sich die Drehzahl eines Motors-wegen dessen mechanischer Tragheit-gewohnlich langsam andert, so daB die Regelfunktion meist nicht zeitkritisch ist. Ggf. kann man aber auch die Reihenfolge der Schritte S610 und S614, und damit deren Prioritat, vertauschen.

Auf diese Weise gelingt es, die verschiedenen"Bedurfnisse"des Motors 39 in eine vorgegebene Hierarchie einzuordnen und die Ressourcen des C 11 optimal fur den Betrieb des Motors zu nutzen.

Zundwinkelverschiebung unter Berucksichtigung von Magnetisierungsfehlern des Rotors 39 Fig. 17 zeigt einen vierpoligen AuBenrotor 39. Dieser hat vier radial magnetisierte Pole 534,535,536,537, die in der dargestellten Weise durch (symbolisch angedeutete) Ubergangsbereiche 530 bis 533 voneinander getrennt sind. Es wird als Beispiel eine sogenannte trapezformige Magnetisierung angenommen, vgl. Fig. 18A.

Wegen der Inhomogenitaten des Magnetmaterials, und wegen unvermeidbarer Fehler in der (nicht dargestellten) Magnetisierungsvorrichtung, ist der Verlauf der MagnetfluBdichte besonders in den Ubergangsbereichen 530 bis 533 nicht exakt definiert, sondern von Rotor zu Rotor etwas verschieden.

Nimmt man an, daB sich der Rotor 39 in Richtung des Pfeiles 540 am Hallgenerator 40 vorbeidreht, so erhält man am Haligenerator 40 eine Hallspannung UH, deren Verlauf in Fig. 18A-wegen der Anschaulichkeit stark ubertrieben-dargestellt ist. Der Teil 534'dieser Hallspannung un wird vom Rotorpol 534 (Nordpol) erzeugt und ist etwas zu kurz, d. h. die Nulldurchgange dieser Hallspannung liegen bei 0° el. und etwa 170° el. statt-wie gewunscht-bei 0° el. und exakt 180° el.

Der Teil 535'der Hallspannung wird vom Rotorpol 535 erzeugt. Er beginnt bei etwa 170° el., endet bei etwa 370° el., und ist zu lang.

Der Teil 536'wird vom Rotorpol 536 erzeugt und erstreckt sich von etwa 370° el. bis etwa 550° el., hat also zwar die richtige Lange, aber nicht die richtige Phasenlage.

Der Teil 537'wird vom Rotorpol 537 erzeugt und erstreckt sich von etwa 550° el. bis 720° el., ist also etwas zu kurz. 720° el. entspricht bei diesem Motor wieder 0° el., weil sich der Rotor 39 dann einmal voll gedreht hat, und der Spannungsverlauf wiederholt sich dann, was in Fig. 18A bei 534'A angedeutet ist.

Fig. 18B zeigt das zugehörige Signal HALL, welches ein Spiegelbild der eben erlauterten Magnetisierungsfehler ist, d. h. sein erster Abschnitt 534"ist zu kurz, sein zweiter Abschnitt 535"ist zu lang, sein dritter Abschnitt 536"ist phasenverschoben, und sein vierter Abschnitt 537"ist zu kurz. Nach dem Winkel 720° el. beginnt ein Abschnitt 534"A, der-bei konstanter Drehzahl-dem Abschnitt 534"entspricht.

Die Abschnitte 534"und 537"tauschen also eine zu hohe Drehzahl vor, und der Abschnitt 535"eine zu niedrige Drehzahl.

Wird der Abschnitt 534"verwendet, um die Zeit tut) fur den Abschnitt 536"zu berechnen, wie das bei dem vorhergehenden Ausfuhrungsbeispiel erlautert wurde, so wird im Abschnitt 536"zu fruh kommutiert.

Wird der Abschnitt 535"verwendet, um die Zeit tut) fur den Abschnitt 537"zu berechnen, so wird dort zu spat kommutiert.

Dies kann zu einem unregelmäßigen Lauf des Motors und zu erhöhten Motorgeräuschen fuhren.

Deshalb wird nach der Erfindung bevorzugt die Hall-Lange eines Abschnitts des Signals HALL dazu verwendet, um die Zeit tTifur den eine Rotorumdrehung späteren Abschnitt zu berechnen, wie das in Fig. 5 mit den Bezugszeichen 304,306, 308 fur einen vierpoligen Rotor symbolisch an einem Beispiel dargestellt ist. Z. B. wird in Fig. 18B die Hall-Lange t_HN des Abschnitts 534"dazu verwendet, um die Zeit t-Ti fur den Abschnitt 534"A zu berechnen, wie das symbolisch und beispielhaft bei 542, 544,546 dargestellt ist. Dann treten diese Fehler nicht auf, denn bei konstanter Drehzahl sind z. B. die Abschnitte 534"und 534"A identisch, so daf3 sich Fehler nicht addieren konnen.

Fig. 19 zeigt eine entsprechende geanderte Zundwinkelberechnungsroutine fur die Kommutierung mit Zundwinkelverschiebung, wobei in der beschriebenen bevorzugten Weise eine Kompensation der Magnetisierungsfehler des Rotors 39 stattfindet. Alle Teile, die bereits in Fig. 9 vorgekommen sind, erhalten die gleichen Bezugszeichen wie dort und werden deshalb nicht nochmals beschrieben. Der Leser wird auf die dortige Beschreibung verwiesen.

Im Schritt 268'werden anstatt der direkten Berechnung des Timerstartwerts t TI (vgl.

S268 in Fig. 9) zwei Variablen t4 und t 3 zusatzlich verwendet, um die berechneten Timerstartwerte t-TI zwischenzuspeichern. Dem fur die folgende Halizeit t_HN verwendeten Timer Startwert t-Ti wird der aus der Hall-Lange t_HN-4 berechnete Timerstartwert t4 zugeordnet.

AnschlieBend werden die berechneten Timerstartwerte verschoben, so daB sie fur die nächste Zundwinkelberechnung in der richtigen Variablen stehen. Der Wert t_3, der aus der Hall-Lange t_HN-3 berechnet wurde, wird nach t4 verschoben, und der in der aktuellen Zundwinkelberechnung berechnete Timer Startwert (tH-tZW), wird in t3 gespeichert. (Hierbei ist t_H die Hall-Lange t_HN-2).

Weiterhin ist der Schritt S267 neu eingefugt. Die Speichervariablen t4 und t3 werden beim Ausschalten der Zundwinkelverschiebung (in S266: SZW: = 0) auf den Wert 50.000 gesetzt, damit sie einen definierten Zustand haben.

Fig. 20 zeigt eine beispielhafte Hall-Interruptroutine fur eine erfindungsgemäße Kommutierung ohne Zundwinkelverschiebung, wie sie in Fig. 4 dargestellt ist. Bei jedem Hall-Interrupt (Y in Fig. 4) wird das gerade ablaufende Programm unterbrochen, die sogenannte Umgebung des uC 11 (z. B. der Stapeizeiger [stack pointer] und die Register) wird abgespeichert, und die zu dem Interrupt gehörige Interrupt-Routine wird aufgerufen. Wenn die Interrupt-Routine abgearbeitet ist, gibt sie einen Befehl RETI (Return From Interrupt). Daraufhin wird die Umgebung des uC 11 so, wie sie vor dem Interrupt war, wieder hergestellt, und das unterbrochene Programm arbeitet weiter.

In diesem Ausfuhrungsbeispiel wird fur die Messung der Hall-Lange HL (Fig. 4) ebenfalls der 16 Bit-Timer CNT_HL verwendet, der, beginnend bei einem vorgegebenen Startwert, fortlaufend herunterzahlt und beim Erreichen von 0, wenn die Zählung fortgesetzt wird, wieder auf seinen maximalen Wert springt, sich also wie ein Ringzahler verhalt. Dieser Timer ist auch hier Bestandteil des uC 11. Die Hall- Lange HL kann hier z. B. fur eine Drehzahlregelung verwendet werden.

In S702 wird die Ist-Hall-Lange HL (vgl. Fig. 4) bestimmt. Ein aktueller Timerwert tE (Fig. 4) wird aus dem Timer CNT_HL ausgelesen, und durch die Subtraktion eines gespeicherten"alten"Timerwerts t_O (Fig. 4: Der Zeitpunkt des vorhergehenden Timer-Interrupts Y) wird die Hall-Lange HL berechnet. Hierzu wird tE-10 berechnet und von dem Ergebnis das Zweierkomplement gebildet. So erhält man immer die korrekte Zählerdifferenz, falls der Zahler nicht mehr als die Halte seines maximalen Werts weitergelaufen ist.

Daraufhin wird der aktuelle Timerwert tE in t0 gespeichert (S702). Die Auflösung des in diesem Ausführungsbeispiels verwendeten Timers CNT_HL ist 1 us, die Hall- Lange HL liegt also in us vor.

Ist z. B. t0 = 45000 und tE = 35000, so erhalt man eine Hall-Lange HL = (45000- 35000) = 10000, was 10000 ps entspricht.

In den folgenden Schritten wird die Kommutierung ausgeführt. In S704 wird gepruft, ob HALL = 1 (HIGH) ist. Ist HALL = 1, so wird in S710 OUT2 auf LOW gesetzt. Jetzt sind OUT1 und OUT2 auf LOW, und in S712 wird eine zeitliche Kommutierungslücke eingefugt, um bei der Kommutierung einen Kurzschluß in der Brückenschaltung 37 zu verhindern. Die Kommutierungslücke hat z. B. eine Dauer von 50 us. In S714 wird OUT1 auf HIGH gesetzt. In S716 wird schließlich der Port Hall des uC 11 konfiguriert, bei welcher Flanke er einen Hall-Interrupt HALL_INT auslösen soll. Die Flanke kann entweder so eingestellt werden, daB bei dem Ubergang HIGH nach LOW (fallende Flanke) ein Interrupt ausgelöst wird, oder aber bei dem Ubergang von LOW nach HIGH (steigende Flanke). Da in dem Zweig S710 bis S716 das Hall-Signal auf HIGH ist, muB der Port HALL auf einen Interrupt bei fallender Flanke, also HIGH nach LOW eingestellt werden, damit beim nächsten Hall-Wechsel wieder ein Hall-Interrupt ausgelost wird. Dies geschieht in S716.

Ist in S704 HALL = 0 (LOW), so geschieht in S720, S722, S724 analog die umgekehrte Kommutierung, und bei S726 das umgekehrte Setzen von HALL_INT.- In S730 wird die Hall-lnterruptroutine gemäß Fig. 20 verlassen.

Fig. 21 zeigt schematisch den Ablauf der Kommutierung bei n > 300 U/min, z. B. bei 2.000 U/min, also mit Zundwinkelverschiebung.

Bei Fig. 21 A ist das Rotorstellungssignal HALL dargestellt, das jeweils an den Stellen HN, HN+1, HN+2 einen rotorstellungsabhangigen Interrupt (Fig. 8) auslöst, also einen Hall-Interrupt, wie in Fig. 4 bei Y angegeben.

Beginnend beim Hall-Interrupt HN wird durch den Timer CNT_HL die Zeit tTi gemessen, die nach der Gleichung (6) aus den Werten t_HN und tZW berechnet wurde. Der Wert tZW kann, wie bereits angegeben, uber den Bus 30 geandert werden.

Zum Zeitpunkt TN+1 erreicht der Timer CNTHL den Wert 0 und 16st eine Motorsteuerungs-Interruptroutine gemäß Fig. 10 aus, also einen Timer-Interrupt.

Gemäß S310 in Fig. 10 werden zum Zeitpunkt TN+1 die Signale OUT2 (Fig. 21 B) und OUT1 (Fig. 21 C) beide zu Null gemacht, d. h. die Wicklung 38 wird von der Stromzufuhr getrennt, und nach einer Kommutierungslücke t-G (bewirkt durch die Programmschritte S312, S314, S316) wird bei S322 das Signal OUT1 auf HIGH gesetzt, da HALL = 1 ist, während OUT2 auf LOW bleibt, wie im Schritt S310 gespeichert. OUT1 = HIGH bedeutet, daB in Fig. 1 die Transistoren 141 und 144 leitend werden.

Ebenso werden zum Zeitpunkt TN+2 durch den Schritt S310 der Routine gemäß Fig.

10 die beiden Signale OUT1 und OUT2 auf LOW gesetzt, und anschließend wird nach der Kommutierungslücke tG der Wert OUT2 auf HIGH gesetzt, da HALL = 0 ist, vgl. die Schritte S318, S322 der Fig. 10, wahrend der Wert OUT1 den Wert LOW beibehalt, der im Schritt S310 gespeichert wurde. Dadurch werden in Fig. 1 die Transistoren 142 und 143 leitend.

Fig. 22 zeigt unten das Signal HALL, und oben den Strom i_M (Fig. 1) in der einzigen Statorwicklung 38. Bei Fig. 22 ist die Zundwinkelverschiebung ausgeschaltet, d. h. tZW = 0. Man erkennt, daB sich nach einer Kommutierung zum Zeitpunkt HN (Anderung des Signals HALL) der Strom i_M nur langsam andert. Er erreicht deshalb in diesem Fall nur eine niedrige Amplitude, d. h. der Motor M erzeugt nur eine niedrige Leistung.

Fig. 23 zeigt wieder unten das Signal HALL, und daruber den Strom i_M (Fig. 1), aber mit verfruhter Kommutierung ("Fruhzundung"), d. h. der Strom i_M wird um die Zeit t ZW fruher als der Hallwechsel HN kommutiert. Man erkennt deutlich, daB sich der Strom i_M nach der Kommutierung sofort sehr rasch andert und eine wesentlich höhere Amplitude erreicht als bei Fig. 22, d. h. der Motor M erzeugt in diesem Fall eine höhere Leistung und kann deshalb eine höhere Drehzahl erreichen. Die Kommutierung liegt bei Fig. 23 etwa 15'ex. vor einem Wechsel des Signals HALL.

Es folgt eine Tabelle mit typischen Beispielen fur die Werte der verwendeten Bauteile: Kondensatoren: 135 1,5 nF 127,152 10 nF 99,110,166,167 33 nF 154 100 nF Tantalkondensator 124 3, 3 pF Widerstände: 140 3Q 162,163 47 Q 153,155 1 kQ 133,136 2,2 kQ 106 3,3 kQ 164,165 4,7 kQ 123,131,132 10k 172,173 22 kQ 114,126 33 kQ 134 47 kQ 101,112,128,169 100 kQ npn-Transistor 150 BC846 pnp-Transistor 168 BC856B Komparatoren 108,120,130 LM2901 D Hallsensors 40 HW101A EEPROM 26 2-Wire Serial CMOS EEPROM AT24C01A (ATMEL) Mikrocontroller 11 COP842CJ (Nat. Semicond.)