Rotorwinkelbestimmung mittels Hall Sensoren eines Brushless Motors

Gast #2774359
Lesenswert?

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.
#2774670
Lesenswert?

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) #2775048
Lesenswert?

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) #2775106
Lesenswert?

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 #2776844
Lesenswert?

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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren