Guten Morgen. Ich habe ein Verständnisproblem bezüglich der BEMF-Messung eines Brushless Antriebes. Folgendes: Vor ca. drei Wochen hat mich das Thema Brushless Motoren gepackt, zunächst mehr der Langeweile wegen, weil der Spaß aber nicht ganz so locker von der Hand ging wie ich mir das vorstellte, habe ich mich daran etwas festgebissen. Das Objekt der Begierde ist eine alte Festplatte, die ich recht "unrund" zum rotieren gezwungen habe. Für die FET's der Halbbrücke benutze ich zur Zeit IRF3717 und gesteuert wird der Antrieb durch einen ATMega16. Bisher bin ich noch nicht über die das Stadium der starren Blockkommutierung hinaus gekommen, weil ich ein paar unbeantwortete Fragen habe, die leider auch durch Recherche in diversen Foren nicht beantwortet sind. Meine erste Anlaufstelle waren mehrere Multikopterforen, jedoch gibt man da nur sehr ungern Wissen bezüglich Details der Steuerung raus, was bei kommerziellen Ambitionen der Forenbetreiber auch nachvollziehbar ist. Soweit dazu... Das Prinzip der Erfassung der BEMF ist soweit klar. - Beim Schalten eines Kommutierungsschrittes, Spannung der unbestromten Wicklung messen, mit der Wicklungsmittelspannung vergleichen und Timer starten. - Wenn die Spannung der unbestromten Wicklung = Wicklungsmittelspannung, Timer stopen, und nach der gleichen Zeit umschalten zum nächsten Kommutierungsschritt. - Dann das gleiche wieder von vorne. Ich möchte mich jetzt mal auf die als GIF-Dateien angehängten Schaltungen berufen. In beiden Schaltungen ist die Wicklungsmittelspannung auf den AnalogComparatorPin AIN0 gelegt. Warum macht man das? Das hat doch totsicher einen bestimmten Grund. Ich hatte mir eine ähnliche Schaltung ausgedacht, hätte aber die Wicklungsmittelspannung auf AREF geklemmt. Da ich aber bei meiner Recherche auf diese Schaltungen gestoßen bin und das jetzt mal als Referenz bezeichen möchte, dachte ich mir, es sei besser vorher mal nachzufragen warum die das so machen. Danke schonmal im Voraus für Hilfe. Ich hoffe, dieser Beitrag ist nicht zu dämlich, aber ich habe trotz intensiver Recherche noch keine Antwort gefunden und weiß dieses Forum und seine Nutzer durch ihre fachkundigkeit zu schätzen. mfg Chris
Chris schrieb: > In beiden Schaltungen ist die Wicklungsmittelspannung auf den > AnalogComparatorPin AIN0 gelegt. > Warum macht man das? Das hat doch totsicher einen bestimmten Grund. > Ich hatte mir eine ähnliche Schaltung ausgedacht, hätte aber die > Wicklungsmittelspannung auf AREF geklemmt. Hierfür gibt es mehrere Gründe: 1. Im Allgemeinen können A/D-Wandler nur Spannungen messen, die maximal der Referenzspannung (minus 1 Inkrement) entsprechen. Die abgegriffenen Spannungen der Phasen können jedoch höher liegen. Dies bekäme man aber mit jeweils einem Spannungsteiler in den Griff. 2. A/D-Wandler, insbesondere die in Microcontrollern üblicherweise eingesetzten SAR-Typen, funktionieren nur dann einwandfrei, wenn die Referenzspannung konstant bzw. zeitlich sehr langsam veränderlich ist. Dies ist im Falle des Mittensignals nicht der Fall. Man darf es hier aber auch nicht allzu stark glätten. 3. Bei den meisten A/D-Wandler darf sich die Referenzspannung nur in einem recht eingeschränkten Bereich bewegen. Dies wäre aber bei solch einem Motorregler auch nicht immer gegeben.
Hallo Chris, die Nulldurchgangserkennung funktioniert mit Hilfe des Analog Comparator des ATmega. Auf AIN0 liegt fest die Mittelspannung, während über den ADMUX der zu vergleichende Wert entsprechend der gerade unbestromten Spule an den AC gelegt wird. Die Erkennung verwendet bei diesen Schaltungen also nicht den AD-Wandler, wie auch in manchen AppNotes von Atmel beschrieben, sondern den AC. Wobei ich glaube, dass es auch AppNotes von Atmel gibt, die auch den AC verwenden. Allerdings musst Du bei den Schaltungen die Phasenverschiebung durch den Tiefpass in der Schaltung zur Nulldurchgangserkennung berücksichtigen, also nicht wie Du schriebst "nach der gleichen Zeit umschalten". Grüße, kaffeedoktor.
Danke für die Antworten, das erklärt mir einiges. Aber wie kann man denn den Analogcomparator über den Admux führen? Dazu steht ja rein gar nichts im Datenblatt...
Hallo Chris, wenn Du Dir mal das Blockschaltbild des AC im Datenblatt der ATmegas anschaust siehst Du, dass statt AIN1 auch ADC Multiplexer Output als negativer Eingang des AC möglich ist. Dort findest Du auch wie der ATmega konfiguriert sein muss. Grüße, kaffeedoktor.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.