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.