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.
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.
Volker Bosch schrieb: > Das verstehe ich jetzt nicht! Für mein Verständnis sollten die Signale > bei 0° und 360° identisch sein. Tippfehler. 240 + 60 macht 300 und nicht 360
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.
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
Warum machst Du nicht einfach eine Porterweiterung via SPI, z.B. mit einem 74HC165? Je nach Drehzahl des Motors musst du da allerdings entsprechend oft Abfragen, aber einige kHz sollten trotzdem reichen. Mit freundlichen Grüßen Thorsten Ostermann
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.