Forum: Mikrocontroller und Digitale Elektronik Schaltung für BackEMF von STM


von Christian (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen
Ich versuche einen BrushlessDC-Motor mit dem 6-Step Verfahren 
anzusteuern (EvalBoard B-G431B-ESC1). Normalerweise wird die BackEMF ja 
mit einem virtuellen Nullpunkt verglichen. STMicroelectronics scheint 
hier jedoch ein anderes Vorgehen zu haben. Wenn ich das richtig 
verstanden habe wird nur gesampelt, wenn keine Spannung auf den anderen 
Phasen anliegt (Signal BEMFx). Kommutiert wird am Nulldurchgang. Über 
einem Widerstand (hier 10k) fällt die Phasenspannung im High-Zustand ab. 
Kann mir jemand erklären für was GPIO_BEMF  ist und für was der 
zusätzliche Widerstand und Diode ist. Ich finde hier leider nichts in 
den Dokumentationen von STMicroelectronics und auch hier im Forum finde 
ich die Schaltung nicht.

Danke euch.

Gruss
Christian

von Achim M. (minifloat)


Lesenswert?

Christian schrieb:
> Kann mir jemand erklären für was GPIO_BEMF  ist und für was der
> zusätzliche Widerstand und Diode ist.

Die 3 GPIO_BEMF bilden einen einfachen Phasenspannungs-Komparator. Dazu 
muss an jedem GPIO_BEMF der Pulldown aktiviert werden. Die Diode ist 
dazu da, dass wenn mehr als 3,3V+Diodendrop an OUT anliegen, nicht 
wesentlich mehr als 3,3V und auch keine negative Spannung an den Pins 
ankommen können. Das schont die ESD-Schutzdioden der GPIO_BEMF-Pins. Der 
2k2 ist ein Angstwiderstand.

Im Six-Step-Betrieb werden jeweils nur zwei der drei Motoranschlüsse 
aktiv, mit PWM, getrieben. Wenn du den Pegelwechsel am dritten - während 
die beiden anderen gerade auf Low-Side=GND liegen, detektierst, muss 
weitergeschaltet werden. Dazu den Status, der in der vorherigen 
PWM-Periode erfasst wurde, mit dem Status, der soeben erfasst wurde, 
vergleichen.

Beachte, dass die Schaltung eine Asymmetrie des Low-High- und 
High-Low-Wechsels aufweist. Das kann man aber durch Software 
korrigieren, da die Umschaltschwellen der CMOS-Eingänge bekannt sind. 
Das High-Low-Ereignis muss eventuell proportional zur Motordrehzahl 
zeitlich verzögert werden, damit's passt. Bei Trapez-BEMF kann es aber 
auch ohne schon gut genug sein, alles eine Frage der Flankensteilheit.

BEMFx ist vermutlich nur dazu da, saubereres Kommutieren bei kleinen 
Drehzahlen (kleine BEMF-Spannung!) mittels ADC-Messung zu machen. 
Low-High-Flanke sobald ADC-Counts wesentlich größer 0 werden, 
High-Low-Flanke sobald die ADC-Counts nahezu 0 erreichen.

mfg mf

: Bearbeitet durch User
von Christian (Gast)


Lesenswert?

Ach so ist das. Jetzt verstehe ich es.
Vielen Dank für deine Antwort Achim.

Gruss Christian

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
Noch kein Account? Hier anmelden.