Rotorwinkelbestimmung mittels Hall Sensoren eines Brushless Motors

Gast #2774359
Hallo,

Ich habe hier einen Brushless Motor mit integrierten Hall Sensoren. Die 
Sensoren liefern im wesentlichen einen 6 Schritt Code pro elektrischer 
Periode. Anhand der Signale moechte ich den Rotorwinkel bestimmen (mir 
reicht die geringe Aufloesing da ich danach noch ein Getriebe mit hoher 
Uebersetzung habe wodurch die Aufloesung auf der Abtriebsseite 
wesentlich hoeher ist).

Die Sensorsignale sehen wie folgt aus:

A:   0    0    1    1    1    0
B:   0    0    0    1    1    1
C:   1    0    0    0    1    1
     0    60  120  180  240  360

Die drei Signale koennte ich jetzt an einen Mikrocontroller anschliessen 
und damit einen Counter inkrementieren lassen und diesen Counter dann zu 
gewuenschten Zeitpunkten auslesen. Ich benoetige das ganze jedoch in 
vierfacher Ausfuehrung und moechte nicht 12 Pins auf dem yC belegen 
(Falls ich ueberhaupt einen geeigneten finden wuerde). Daher bin ich auf 
der suche nach einer Art "Decoder-IC". Solche IC's gibt es fuer 
Quadratur Encoder (z.B. 4 Kanal Quadratur Decoder mit serieller 
Schnittstelle).

Normalerweise werden die Hall Sensoren werden zur Kommutierung 
verwendet. Ich habe bisher nur Brushless Driver IC's gefunden die ein 
Tachosignal ausgeben jedoch noch keinen der auch das Positionssignal zur 
Verfuegung stellt. Ich brauche nur das Positionssignal. Es muss also 
kein Brushless Treiber IC sein. Kennt jemand einen geeigneten Baustein?

Danke im Vorraus

Dominik E.
Kannst Du nicht einfach die Spannungen der drei Leitungen A, B und C mit 
drei Widerständen zusammenführen und dann über einen ADC messen?


        1k
A o----[===]--------+
                    |
        2k2         |
B o----[===]--------+
                    |
        4k7         |
C o----[===]--------+-------o zum ADC


So müsstest Du für jede der 6 Phasen eine andere Spannung erhalten.
(Firma: L-E-A)
Hallo,

Dominik E. schrieb:

> Die Sensorsignale sehen wie folgt aus:
>
> A:   0    0    1    1    1    0
> B:   0    0    0    1    1    1
> C:   1    0    0    0    1    1
>      0    60  120  180  240  360


Das verstehe ich jetzt nicht! Für mein Verständnis sollten die Signale 
bei 0° und 360° identisch sein. Oder hat bei Dir eine Umrdehung 420°?

Bei richtig eingestellten Hallsensoren sollte der Zustand 0/0/0 übrigens 
nicht auftreten.

Grüßle,
Volker.
(Firma: L-E-A)
Karl Heinz Buchegger schrieb:

> 240 + 60 macht 300 und nicht 360

OK, hätte mir eigentlich auch auffallen müssen.
Trotzdem irritieren mich die Zustände 0/0/0 und 1/1/1.

Bei der üblichen Kombination von drei Hallsensoren und einem Gebermagnet 
mit der selben Polpaarzahl wie der Rotor, können diese Kombinationen 
nicht auftreten. Ich würde prüfen, ob jedes Hallsignal wirklich 
symmetrisch ist (also Tastverhältnis 50%), wenn Du den Motor gleichmäßig 
antreibst, beispielsweise mit einem Akkuschrauber.

Grüßle,
Volker.
Gast
Völlig richtig - mein Fehler.

so stimmts.

A:   1    1    1    0    0    0
B:   0    0    1    1    1    0
C:   1    0    0    0    1    1
     0    60  120  180  240  300


Stefan Frings schrieb:
>         1k
> A o----[===]--------+
>                     |
>         2k2         |
> B o----[===]--------+
>                     |
>         4k7         |
> C o----[===]--------+-------o zum ADC

Eigentlich eine gute Idee. Mal schaun ob sich in die Richtung was machen 
lässt.

Kennt vielleicht jemand noch eine bessere/schnellere/einfachere 
Möglichkeit? Ein Counter IC der das ganze in Hardware realisiert und das 
Signal über I2C, SPI, etc. zur Verfügung stellt wär mir sehr recht.

Danke nochmal

Dominik

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.